nftables pakketfilter 1.0.1 release

Опубликован выпуск пакетного фильтра nftables 1.0.1, унифицирующего интерфейсы фильтрации пакетов для IPv4, IPv6, ARP и сетевых мостов (нацелен на замену iptables, ip6table, arptables и ebtables). Необходимые для работы выпуска nftables 1.0.1 изменения включены в состав ядра Linux 5.16-rc1.

It nftables-pakket omfettet pakketfilterkomponinten dy't yn brûkersromte rinne, wylst it kernelnivo wurdt fersoarge troch it nf_tables-subsysteem, dat sûnt release 3.13 diel is fan 'e Linux-kernel. Op it kernelnivo wurdt allinich in generike protokol-ûnôfhinklike ynterface levere dy't basisfunksjes leveret foar it ekstrahearjen fan gegevens út pakketten, it útfieren fan operaasjes op gegevens en it kontrolearjen fan stream.

De filterregels sels en protokol-spesifike handlers wurde kompilearre yn bytekoade foar brûkersromte, wêrnei't dizze bytekoade yn 'e kearn laden wurdt mei de Netlink-ynterface en útfierd yn' e kearn yn in spesjale firtuele masine dy't liket op BPF (Berkeley Packet Filters). Dizze oanpak makket it mooglik om de grutte fan 'e filterkoade dy't op it kernelnivo rint signifikant te ferminderjen en alle funksjes fan parsingregels en de logika fan wurkjen mei protokollen yn brûkersromte te ferpleatsen.

Wichtichste ynnovaasjes:

  • Сокращено потребление памяти при загрузке больших set- и map-списков.
  • Ускорена перезагрузка set- и map-списков.
  • Ускорен вывод избранных таблиц и цепочек в больших наборах правил. Например, время выполнения команды «nft list ruleset» для вывода набора правил, насчитывающего 100 тысяч строк, составляет 3.049 секунды, а при выводе только таблиц nat и filter («nft list table nat», «nft list table filter») сокращается до 1.969 и 0.697 секунд.
  • Ускорено выполнение запросов с опцией «—terse» при обработке правил с большими set- и map-списками.
  • Предоставлена возможность фильтрации трафика из цепочки «egress», обрабатываемой на том же уровне, что egress-обработчик в цепочке netdev (hook egress), т.е. на стадии когда драйвер получает пакет от сетевого стека ядра. table netdev filter { chain egress { type filter hook egress devices = { eth0, eth1 } priority 0; meta priority set ip saddr map { 192.168.10.2 : abcd:2, 192.168.10.3 : abcd:3 } } }
  • Разрешено сопоставление и изменение байтов в заголовке и содержимом пакета по заданному смещению. # nft add rule x y @ih,32,32 0x14000000 counter # nft add rule x y @ih,32,32 set 0x14000000 counter

Boarne: opennet.ru

Add a comment