የnftables 1.0.7 ፓኬት ማጣሪያ ተለቋል። የIPv4፣ IPv6፣ ARP እና የኔትወርክ ድልድዮችን (iptables፣ ip6table፣ arptables እና ebtables) የፓኬት ማጣሪያ በይነገጾችን ያጣምራል (ይህም iptables፣ ip6table፣ arptables እና ebtables ለመተካት የታለመ ነው)። የnftables ፓኬጅ የተጠቃሚ-ቦታ ፓኬት ማጣሪያ ክፍሎችን ያካትታል፣ የከርነል-ደረጃ ተግባር ደግሞ የከርነል አካል በሆነው nf_tables ንዑስ ስርዓት ይሰጣል። Linux ከተለቀቀበት ጊዜ ጀምሮ፣ በከርነል ደረጃ ላይ አጠቃላይ ፕሮቶኮል-ነጻ የሆነ በይነገጽ ብቻ ነው የቀረበው፣ ይህም ከፓኬቶች ውሂብ ለማውጣት፣ የውሂብ ስራዎችን ለማከናወን እና የፍሰት ቁጥጥርን ለማከናወን መሰረታዊ ተግባርን ይሰጣል።
የማጣሪያው ደንቦች እራሳቸው እና ፕሮቶኮል-ተኮር ተቆጣጣሪዎች በተጠቃሚ ቦታ ውስጥ ወደ ባይትኮድ ይሰባሰባሉ፣ ከዚያ በኋላ ይህ ባይትኮድ በኔትሊንክ በይነገጽ በመጠቀም ወደ ኪነል ውስጥ ይጫናል እና በልዩ ሁኔታ በኪነል ውስጥ ይፈጸማል ምናባዊ ማሽን, BPF (የበርክሌይ ፓኬት ማጣሪያዎች) የሚያስታውስ። ይህ አካሄድ በከርነል ደረጃ የሚሰራውን የማጣሪያ ኮድ መጠን በከፍተኛ ሁኔታ ለመቀነስ ያስችላል እና ሁሉንም የደንብ ትንተና እና የፕሮቶኮል ሎጂክ ወደ ተጠቃሚ ቦታ ያንቀሳቅሳል።
ዋና ለውጦች፡-
- ለከርነል ላላቸው ስርዓቶች Linux 6.2+ የvxlan፣ geneve፣ gre እና gretap ፕሮቶኮሎችን ለማዛመድ ድጋፍን ይጨምራል፣ ይህም በተሸፈኑ ፓኬቶች ውስጥ ራስጌዎችን ለመፈተሽ ቀላል አገላለጾችን መጠቀም ያስችላል። ለምሳሌ፣ ለመፈተሽ የአይፒ አድራሻዎች ከVxLAN በተሰራው ፓኬት ራስጌ ውስጥ፣ አሁን ደንቦችን መጠቀም ይችላሉ (የVxLAN ራስጌን መጀመሪያ ማስወገድ እና ማጣሪያውን ከvxlan0 በይነገጽ ጋር ማያያዝ ሳያስፈልግዎት)፡ ... udp dport 4789 vxlan ip protocol udp ... udp dport 4789 vxlan ip saddr 1.2.3.0/24 ... udp dport 4789 vxlan ip saddr . vxlan ip daddr { 1.2.3.4 . 4.3.2.1 }
- ከፊል ስረዛ ከተደረገ በኋላ የቀረውን የስብስብ ዝርዝር አባል በራስ-ሰር ማዋሃድ። ይህ ከነባር ክልል ውስጥ አንድን አባል ወይም የክልል ክፍል እንዲያስወግዱ ያስችልዎታል (ቀደም ሲል መላው ክልል ብቻ ሊሰረዝ ይችላል)። ለምሳሌ፣ ኤለመንት 25ን ከ24-30 እና 40-50 ክልል ካለው የስብስብ ዝርዝር ውስጥ ከሰረዙ በኋላ፣ የተቀሩት የስብስብ ዝርዝር ክፍሎች 24፣ 26-30 እና 40-50 ናቸው። በራስ-ሰር ለማዋሃድ የሚያስፈልጉ ጥገናዎች በ5.10+ የተረጋጉ የከርነል ቅርንጫፎች ጥገና ላይ ይቀርባሉ (ይጠየቃሉ)። # nft ዝርዝር ደንቦች ስብስብ ሰንጠረዥ ip x { set y { typeof tcp dport flags interval auto-merge elements = { 24-30, 40-50 } } } # nft delete element ip xy { 25 } # nft ዝርዝር ደንቦች ስብስብ ሰንጠረዥ ip x { set y { typeof tcp dport flags interval auto-merge elements = { 24, 26-30, 40-50 } } }
- በኔትወርክ አድራሻ ትርጉም (NAT) ማፒንግ ውስጥ እውቂያዎችን እና ክልሎችን የመጠቀም ፈቃድ ነቅቷል። table ip nat { chain prerouting { type nat hook prerouting priority dstnat; policy accept; dnat to ip daddr . tcp dport map { 10.1.1.136 . 80 : 1.1.2.69 . 1024, 10.1.1.10-10.1.1.20 . 8888-8889 : 1.1.2.69 . 2048-2049 } continuous } }
- ለ"የመጨረሻ" አገላለጽ ድጋፍ ታክሏል፣ ይህም የደንብ አባል ወይም የስብስብ ዝርዝር ለመጨረሻ ጊዜ ጥቅም ላይ እንደዋለ ለማወቅ ያስችልዎታል። ይህ ባህሪ ከዋናው ጀምሮ የተደገፈ ነው። Linux 5.14. የጠረጴዛ ip x { set y { typeof ip daddr. tcp dport መጠን 65535 ባንዲራዎች dynamic, timeout last timeout 1h } chain z { type filter hook output priority filter; policy accept; update @y { ip daddr.tcp dport } } } # nft list set ip xy table ip x { set y { typeof ip daddr.tcp dport መጠን 65535 ባንዲራዎች dynamic,timeout last timeout 1h elements = { 172.217.17.14 . 443 ለመጨረሻ ጊዜ ጥቅም ላይ የዋለ 1s591ms timeout 1h 59m58s409ms, 172.67.69.19 . 443 ለመጨረሻ ጊዜ ጥቅም ላይ የዋለ 4s636ms የጊዜ ማብቂያ 1 ሰዓት ያበቃል 59m55s364ms፣ 142.250.201.72። 443 ለመጨረሻ ጊዜ ጥቅም ላይ የዋለ 4s748ms የጊዜ ማብቂያ 1 ሰዓት ያበቃል 59m55s252ms፣ 172.67.70.134። 443 ለመጨረሻ ጊዜ ጥቅም ላይ የዋለ 4s688ms የጊዜ ማብቂያ 1 ሰዓት ያበቃል 59m55s312ms፣ 35.241.9.150። 443 ለመጨረሻ ጊዜ ጥቅም ላይ የዋለ 5s204ms የጊዜ ማብቂያ 1 ሰዓት ያበቃል 59m54s796ms፣ 138.201.122.174። 443 ለመጨረሻ ጊዜ ጥቅም ላይ የዋለ 4s537ms የጊዜ ማብቂያ 1 ሰዓት ያበቃል 59m55s463ms፣ 34.160.144.191። 443 ለመጨረሻ ጊዜ ጥቅም ላይ የዋለ 5s205ms የጊዜ ማብቂያ 1 ሰዓት ያበቃል 59m54s795ms፣ 130.211.23.194። 443 ለመጨረሻ ጊዜ ጥቅም ላይ የዋለ 4s436ms የጊዜ ማብቂያ 1 ሰዓት ያበቃል 59m55s564ms } } }
- በተቀመጡ ዝርዝሮች ውስጥ ኮታዎችን የመግለጽ ችሎታን አክሏል። ለምሳሌ፣ ለእያንዳንዱ ኢላማ የአይፒ አድራሻ የትራፊክ ኮታ ለመግለጽ፣ የሚከተሉትን መግለጽ ይችላሉ፦ table netdev x { set y { typeof ip daddr መጠን 65535 ኮታ ከ10000 mbytes በላይ } chain y { type filter hook egress device "eth0" priority filter; policy accept; ip daddr @y drop } } # nft add element inet xy { 8.8.8.8 } # ping -c 2 8.8.8.8 # nft list rulesset table netdev x { set y { type ipv4_addr size 65535 ኮታ ከ10000 mbytes በላይ ክፍሎች = { 8.8.8.8 ኮታ ከ10000 mbytes በላይ ጥቅም ላይ ውሏል 196 ባይትs } } chain y { type filter hook egress device "eth0" priority filter; policy accept; ip daddr @y drop } }
- ቋሚዎች በስብስብ ዝርዝሮች ውስጥ ይፈቀዳሉ። ለምሳሌ፣ የመድረሻ አድራሻ እና የVLAN መታወቂያ እንደ ዝርዝር ቁልፍ ሲጠቀሙ፣ የVLAN ቁጥርን በቀጥታ መግለጽ ይችላሉ (daddr.123): table netdev t { set s { typeof ether saddr. vlan id size 2048 flags dynamic,timeout timeout 1m } chain c { type filter hook ingress device eth0 priority 0; policy accept; ether type != 8021q update @s { ether daddr .123 } counter } }
- አዲስ "አጥፋ" የሚል ትዕዛዝ ለነገሮች ያለ ቅድመ ሁኔታ ለመሰረዝ ታክሏል (ከሰርዝ ትዕዛዙ በተለየ መልኩ የጎደለ ነገርን ለመሰረዝ ሲሞከር ENOENT አያመነጭም)። ቢያንስ ከርነል ይፈልጋል። Linux 6.3-rc. የሠንጠረዥ አይፒ ማጣሪያን ማጥፋት
ምንጭ: opennet.ru
