nftables пакет филтер 1.0.1 ослободување

Објавено е објавувањето на пакетните филтри nftables 1.0.1, обединувајќи ги интерфејсите за филтрирање пакети за IPv4, IPv6, ARP и мрежни мостови (наменети да ги заменат iptables, ip6table, arptables и ebtables). Промените што се потребни за да функционира издавањето на nftables 1.0.1 се вклучени во кернелот на Linux 5.16-rc1.

Пакетот nftables вклучува компоненти за филтер за пакети кои работат во корисничкиот простор, додека работата на ниво на јадрото е обезбедена од потсистемот nf_tables, кој е дел од кернелот Линукс од објавувањето 3.13. Нивото на јадрото обезбедува само генерички интерфејс независен од протокол кој обезбедува основни функции за извлекување податоци од пакети, извршување операции со податоци и контрола на протокот.

Самите правила за филтрирање и ракувачите специфични за протоколот се компајлираат во бајтекод на кориснички простор, по што овој бајтекод се вчитува во кернелот со помош на интерфејсот на Netlink и се извршува во кернелот во специјална виртуелна машина што личи на BPF (Berkeley Packet Filters). Овој пристап овозможува значително да се намали големината на кодот за филтрирање што работи на ниво на јадрото и да се преместат сите функции на правилата за парсирање и логиката на работа со протоколи во корисничкиот простор.

Главните иновации:

  • Намалена потрошувачка на меморија при вчитување големи списоци со комплети и мапи.
  • Повторното вчитување на списоците со множества и мапи е забрзано.
  • Излезот на избраните маси и синџири во големи групи правила е забрзан. На пример, времето на извршување на командата „nft list ruleset“ за прикажување на множество правила со 100 илјади редови е 3.049 секунди, а кога се издаваат само табелите nat и филтер („nft list table nat“, „nft list table filter ”) е намалена на 1.969 и 0.697 секунди.
  • Извршувањето на прашања со опцијата „--кратко“ е забрзано при обработка на правила со големи списоци со множества и мапи.
  • Можно е да се филтрира сообраќајот од синџирот „излез“, кој се обработува на исто ниво како управувачот за излез во синџирот netdev (излезна кука), т.е. во фазата кога возачот добива пакет од стекот на мрежата на јадрото. табела netdev филтер { синџир излез { тип филтер кука излез уреди = { eth0, eth1 } приоритет 0; мета приоритетен сет ip saddr map { 192.168.10.2 : abcd:2, 192.168.10.3 : abcd:3 } } }
  • Овозможува совпаѓање и модификација на бајти во заглавието и содржината на пакетот при дадено поместување. # nft додадете правило xy @ih,32,32 0x14000000 бројач # nft додадете правило xy @ih,32,32 сет 0x14000000 бројач

Извор: opennet.ru

Додадете коментар