nftables பாக்கெட் வடிகட்டி வெளியீடு 0.9.9

IPv0.9.9, IPv4, ARP மற்றும் நெட்வொர்க் பிரிட்ஜ்களுக்கான (iptables, ip6table, arptables மற்றும் ebtables ஆகியவற்றை மாற்றுவதை நோக்கமாகக் கொண்ட) பாக்கெட் வடிகட்டி இடைமுகங்களை ஒருங்கிணைத்து, பாக்கெட் வடிகட்டி nftables 6 வெளியிடப்பட்டது. அதே நேரத்தில், துணை நூலகமான libnftnl 1.2.0 வெளியீடு வெளியிடப்பட்டது, இது nf_tables துணை அமைப்புடன் தொடர்புகொள்வதற்கான குறைந்த-நிலை API ஐ வழங்குகிறது. nftables 0.9.9 வெளியீடு வேலை செய்ய தேவையான மாற்றங்கள் Linux கர்னல் 5.13-rc1 இல் சேர்க்கப்பட்டுள்ளன.

nftables தொகுப்பில் பயனர் இடத்தில் இயங்கும் பாக்கெட் வடிகட்டி கூறுகள் உள்ளன, அதே சமயம் கர்னல்-நிலை வேலை nf_tables துணை அமைப்பால் வழங்கப்படுகிறது, இது 3.13 வெளியீட்டிலிருந்து லினக்ஸ் கர்னலின் ஒரு பகுதியாக உள்ளது. கர்னல் நிலை ஒரு பொதுவான நெறிமுறை-சுயாதீன இடைமுகத்தை மட்டுமே வழங்குகிறது, இது பாக்கெட்டுகளிலிருந்து தரவைப் பிரித்தெடுப்பதற்கும், தரவு செயல்பாடுகளைச் செய்வதற்கும் மற்றும் ஓட்டக் கட்டுப்பாடுக்கும் அடிப்படை செயல்பாடுகளை வழங்குகிறது.

வடிகட்டுதல் விதிகள் மற்றும் நெறிமுறை-குறிப்பிட்ட ஹேண்ட்லர்கள் பயனர் இடத்தில் பைட்கோடாக தொகுக்கப்படுகின்றன, அதன் பிறகு இந்த பைட்கோடு Netlink இடைமுகத்தைப் பயன்படுத்தி கர்னலில் ஏற்றப்பட்டு, BPF (Berkeley Packet Filters) ஐ நினைவூட்டும் ஒரு சிறப்பு மெய்நிகர் இயந்திரத்தில் கர்னலில் செயல்படுத்தப்படுகிறது. இந்த அணுகுமுறையானது கர்னல் மட்டத்தில் இயங்கும் வடிகட்டுதல் குறியீட்டின் அளவைக் கணிசமாகக் குறைக்கவும், நெறிமுறைகளுடன் பணிபுரியும் நெறிமுறைகளைப் பாகுபடுத்தும் அனைத்து செயல்பாடுகளையும் பயனர் இடத்திற்கு நகர்த்தவும் உங்களை அனுமதிக்கிறது.

முக்கிய கண்டுபிடிப்புகள்:

  • பிணைய அடாப்டர் பக்கத்திற்கு ஃப்ளோடேபிள் செயலாக்கத்தை நகர்த்துவதற்கான திறன் செயல்படுத்தப்பட்டது, 'ஆஃப்லோட்' கொடியைப் பயன்படுத்தி இயக்கப்பட்டது. Flowtable என்பது பாக்கெட் திசைதிருப்பலின் பாதையை மேம்படுத்துவதற்கான ஒரு பொறிமுறையாகும், இதில் அனைத்து விதி செயலாக்க சங்கிலிகளின் முழுமையான பத்தியும் முதல் பாக்கெட்டுக்கு மட்டுமே பயன்படுத்தப்படும், மேலும் ஓட்டத்தில் உள்ள மற்ற அனைத்து பாக்கெட்டுகளும் நேரடியாக அனுப்பப்படும். டேபிள் ஐபி குளோபல் {ஃப்ளோடேபிள் எஃப் {ஹூக் இன்க்ரெஸ் முன்னுரிமை ஃபில்டர் + 1 டிவைஸ்கள் = {லான்3, லேன்0, வான் } ஃபிளாக்ஸ் ஆஃப்லோட் } செயின் ஃபார்வர்ட் {டிப் ஃபில்டர் ஹூக் ஃபார்வர்ட் ப்ரைரிட்டி ஃபில்டர்; கொள்கை ஏற்றுக்கொள்வது; ip புரோட்டோகால் { tcp, udp } ஓட்டம் சேர் @f } சங்கிலி இடுகை { வகை நாட் ஹூக் போஸ்ட்ரூட்டிங் முன்னுரிமை வடிகட்டி; கொள்கை ஏற்றுக்கொள்வது; oifname "வான்" முகமூடி } }
  • ஒரு செயல்பாட்டின் மூலம் அட்டவணையின் பிரத்தியேகப் பயன்பாட்டை உறுதிசெய்ய, ஒரு டேபிளுடன் உரிமையாளர் கொடியை இணைப்பதற்கான ஆதரவு சேர்க்கப்பட்டது. ஒரு செயல்முறை முடிவடையும் போது, ​​அதனுடன் தொடர்புடைய அட்டவணை தானாகவே நீக்கப்படும். செயல்முறை பற்றிய தகவல் ஒரு கருத்து வடிவத்தில் விதிகள் டம்ப்பில் காட்டப்படும்: அட்டவணை ip x { # progname nft கொடிகள் உரிமையாளர் சங்கிலி y { வகை வடிகட்டி ஹூக் உள்ளீடு முன்னுரிமை வடிகட்டி; கொள்கை ஏற்றுக்கொள்வது; கவுண்டர் பாக்கெட்டுகள் 1 பைட்டுகள் 309 } }
  • IEEE 802.1ad விவரக்குறிப்புக்கு (VLAN ஸ்டேக்கிங் அல்லது QinQ) ஆதரவு சேர்க்கப்பட்டது, இது பல VLAN குறிச்சொற்களை ஒற்றை ஈதர்நெட் சட்டத்தில் மாற்றுவதற்கான வழிமுறையை வரையறுக்கிறது. எடுத்துக்காட்டாக, வெளிப்புற ஈதர்நெட் பிரேம் 8021ad மற்றும் vlan id=342 வகையைச் சரிபார்க்க, நீங்கள் கட்டுமானத்தைப் பயன்படுத்தலாம் ... ஈதர் வகை 802.1ad vlan id 342 ஐப் பயன்படுத்தி ஈதர்நெட் சட்டத்தின் வெளிப்புற வகை 8021ad/vlan id=1, உள்ளமைக்கப்பட்ட 802.1 q/vlan id=2 மற்றும் மேலும் IP பாக்கெட் இணைத்தல்: ... ஈதர் வகை 8021ad vlan id 1 vlan வகை 8021q vlan id 2 vlan வகை ip கவுண்டர்
  • ஒருங்கிணைந்த படிநிலை cgroups v2 ஐப் பயன்படுத்தி வளங்களை நிர்வகிப்பதற்கான ஆதரவு சேர்க்கப்பட்டது. cgroups v2 மற்றும் v1 ஆகியவற்றுக்கு இடையேயான முக்கிய வேறுபாடு என்னவென்றால், CPU ஆதாரங்களை ஒதுக்கீடு செய்வதற்கும், நினைவக நுகர்வுகளை ஒழுங்குபடுத்துவதற்கும், I/O க்கும் தனித்தனி படிநிலைகளுக்குப் பதிலாக, அனைத்து வகையான ஆதாரங்களுக்கும் பொதுவான cgroups படிநிலையைப் பயன்படுத்துவதாகும். எடுத்துக்காட்டாக, முதல் நிலை cgroupv2 இல் உள்ள ஒரு சாக்கெட்டின் மூதாதையர் “system.slice” முகமூடியுடன் பொருந்துகிறதா என்பதைச் சரிபார்க்க, நீங்கள் கட்டுமானத்தைப் பயன்படுத்தலாம்: ... சாக்கெட் cgroupv2 நிலை 1 “system.slice”
  • SCTP பாக்கெட்டுகளின் கூறுகளைச் சரிபார்க்கும் திறன் சேர்க்கப்பட்டது (இதற்குத் தேவையான செயல்பாடு லினக்ஸ் கர்னல் 5.14 இல் தோன்றும்). எடுத்துக்காட்டாக, ஒரு பாக்கெட்டில் 'தரவு' வகை மற்றும் புலம் 'வகை' உள்ள பகுதி உள்ளதா என்பதைச் சரிபார்க்க: ... sctp chunk தரவு உள்ளது ... sctp chunk தரவு வகை 0
  • "-f" கொடியைப் பயன்படுத்தி விதி ஏற்றுதல் செயல்பாட்டின் செயலாக்கம் தோராயமாக இரண்டு முறை துரிதப்படுத்தப்பட்டது. விதிகளின் பட்டியலின் வெளியீடும் துரிதப்படுத்தப்பட்டுள்ளது.
  • கொடி பிட்கள் அமைக்கப்பட்டுள்ளதா என்பதைச் சரிபார்க்க ஒரு சிறிய படிவம் வழங்கப்படுகிறது. எடுத்துக்காட்டாக, ஸ்னாட் மற்றும் dnat நிலை பிட்கள் அமைக்கப்படவில்லை என்பதைச் சரிபார்க்க, நீங்கள் குறிப்பிடலாம்: ... ct நிலை ! snat,dnat பிட்மாஸ்க் syn,ack: ... tcp ஃபிளாக்ஸ் syn / syn,ack பிட்மாஸ்க் syn,ack,fin,rst இல் fin மற்றும் rst பிட்கள் அமைக்கப்படவில்லை என்பதைச் சரிபார்க்க, syn / syn,ack: ... tcp கொடிகள் ! = fin,rst / syn,ack,fin,rst
  • செட்/வரைபட வகை வரையறைகளில் "தீர்ப்பு" முக்கிய சொல்லை அனுமதிக்கவும்: வரைபடம் xm { typeof iifname . ஐபி நெறிமுறை th dport : தீர்ப்பு ;}

ஆதாரம்: opennet.ru

கருத்தைச் சேர்