nftables 0.9.9 пакет шүүлтүүрийг гаргалаа. Энэ нь IPv4, IPv6, ARP болон сүлжээний гүүрнүүдийн пакет шүүлтүүрийн интерфэйсийг нэгтгэдэг (iptables, ip6table, arptables болон ebtables-ийг орлох зорилготой). nf_tables дэд системтэй харилцах доод түвшний API-г хангадаг дагалдах libnftnl 1.2.0 номын санг нэгэн зэрэг гаргалаа. nftables 0.9.9-д шаардлагатай өөрчлөлтүүдийг цөмд оруулсан болно. Linux 5.13-rc1.
nftables багц нь хэрэглэгчийн орон зайд ажилладаг пакет шүүлтүүрийн бүрэлдэхүүн хэсгүүдийг агуулдаг бол цөмийн түвшний ажлыг цөмийн нэг хэсэг болох nf_tables дэд систем хангадаг. Linux 3.13 хувилбар гарснаас хойш цөмийн түвшинд зөвхөн ерөнхий протоколоос хамааралгүй интерфэйсийг хангаж байгаа бөгөөд энэ нь пакетуудаас өгөгдөл гаргаж авах, өгөгдлийн үйлдлүүдийг гүйцэтгэх, урсгалыг хянах үндсэн функцийг хангаж өгдөг.
Шүүлтүүрийн дүрмүүд болон протоколд тохирсон боловсруулагчдыг хэрэглэгчийн орон зайд байткод болгон хөрвүүлдэг бөгөөд үүний дараа энэхүү байткод нь Netlink интерфэйсийг ашиглан цөмд ачаалагдаж, цөмд тусгай хэлбэрээр гүйцэтгэгддэг. виртуал машин, BPF (Беркли Пакет Шүүлтүүр)-ийг санагдуулдаг. Энэ арга нь цөмийн түвшинд ажиллаж байгаа шүүлтүүрийн кодын хэмжээг мэдэгдэхүйц багасгах боломжийг олгодог бөгөөд бүх дүрмийн задлан шинжлэх болон протоколын логикийг хэрэглэгчийн орон зайд шилжүүлдэг.
Гол инноваци:
- Урсгалын хүснэгтийн боловсруулалтыг сүлжээний адаптерийн тал руу шилжүүлэх боломжийг хэрэгжүүлсэн бөгөөд "ачаалах" тугийг ашиглан идэвхжүүлсэн. Flowtable нь багц дамжуулах замыг оновчтой болгох механизм бөгөөд дүрэм боловсруулах бүх гинжин хэлхээг зөвхөн эхний багцад ашиглах ба урсгалын бусад бүх пакетуудыг шууд дамжуулдаг. хүснэгт ip global { flowtable f { дэгээ орох тэргүүлэх шүүлтүүр + 1 төхөөрөмж = { lan3, lan0, wan } туг буулгах } гинж урагш {төрлийн шүүлтүүр дэгээ урагш тэргүүлэх шүүлтүүр; бодлогыг хүлээн зөвшөөрөх; ip протокол {tcp, udp} flow add @f } гинжин бичлэг { type nat hook postrouting priority filter; бодлогыг хүлээн зөвшөөрөх; oifname "wan" маскарад } }
- Хүснэгтэнд эзэмшигчийн тугийг хавсаргах нэмэлт дэмжлэг нь хүснэгтийг процессоор онцгой ашиглах боломжийг баталгаажуулдаг. Процесс дуусахад холбогдох хүснэгт автоматаар устгагдана. Процессын мэдээлэл дүрмийн dump-д тайлбар хэлбэрээр харагдана: table ip x { # progname nft flags owner chain y { type filter hook input priority filter; бодлогыг хүлээн зөвшөөрөх; эсрэг пакетууд 1 байт 309 } }
- IEEE 802.1ad (VLAN stacking эсвэл QinQ) тодорхойлолтод дэмжлэг нэмсэн бөгөөд энэ нь олон VLAN хаягуудыг нэг Ethernet фреймд орлуулах арга хэрэгслийг тодорхойлдог. Жишээлбэл, гадаад Ethernet фрэймийн төрөл 8021ad ба vlan id=342-г шалгахын тулд та 802.1ad vlan id 342 гэсэн бүтцийг ашиглаж, гадаад Ethernet хүрээний төрлийг 8021ad/vlan id=1, үүрлэсэн 802.1q/vlan id=2, цаашилбал ... ether төрлийн 8021ad vlan id=2, мөн ... ether type-ыг ашиглаж болно. 8021ad vlan id 1 vlan төрөл 8021q vlan id 2 vlan төрлийн ip тоолуур
- Нэгдсэн cgroups v2 шатлалыг ашиглан нөөцийн менежментийн дэмжлэг нэмэгдсэн. cgroups v2 ба v1-ийн гол ялгаа нь CPU-ийн нөөцийн хуваарилалт, санах ойн удирдлага, оролт гаралтын тусдаа шатлалын оронд бүх төрлийн нөөцийн хувьд нийтлэг бүлгүүдийн шатлалыг ашиглах явдал юм. Жишээлбэл, cgroupv2-ын эхний түвшний залгуурын өвөг дээдэс "system.slice" масктай таарч байгаа эсэхийг шалгахын тулд та дараах бүтцийг ашиглаж болно: ... socket cgroupv2 түвшин 1 "system.slice"
- Добавлена возможность проверки составных частей пакетов SCTP (необходимая для работы функциональность появится в ядре Linux 5.14). Например, для проверки наличия в пакете chunk-а с типом ‘data’ и полем ‘type’: … sctp chunk data exists … sctp chunk data type 0
- "-f" тугийг ашиглан ачаалах дүрмийг ойролцоогоор хоёр дахин нэмэгдүүлсэн. Дүрмийн жагсаалтын гаралтыг мөн хурдасгасан.
- Туг дээрх битүүдийн тохиргоог шалгах авсаархан хэлбэрийг өгсөн болно. Жишээлбэл, snat болон dnat төлөвийн битүүдийг тохируулаагүй эсэхийг шалгахын тулд та дараахийг зааж өгч болно: ... ct status ! snat,dnat syn битийг syn,ack битийн маск дээр тохируулсан эсэхийг шалгах: ... tcp flags syn / syn,ack нь fin болон rst битүүдийг syn,ack,fin,rst битийн маск дээр тохируулаагүй эсэхийг шалгах: ... tcp флагууд != fin,rst / syn,ack,fin,rst
- "Шийдвэр" гэсэн түлхүүр үгийг багц/газрын зургийн төрлийн тодорхойлолтод зөвшөөрнө: газрын зураг нэмэх xm { typeof iifname . ip протокол. th dport: шийдвэр ;}
Эх сурвалж: opennet.ru
