מהדורת מסנן מנות 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. רמת הקרנל מספקת רק ממשק גנרי בלתי תלוי בפרוטוקול המספק פונקציות בסיסיות לחילוץ נתונים ממנות, ביצוע פעולות נתונים ובקרת זרימה.

כללי הסינון עצמם והמטפלים הספציפיים לפרוטוקול מורכבים לתוך bytecode של מרחב המשתמש, ולאחר מכן קוד בית זה נטען לתוך הליבה באמצעות ממשק Netlink ומבוצע בקרנל במכונה וירטואלית מיוחדת הדומה ל-BPF (Berkeley Packet Filters). גישה זו מאפשרת להקטין משמעותית את גודל קוד הסינון הפועל ברמת הקרנל ולהעביר את כל הפונקציות של חוקי הניתוח וההיגיון של עבודה עם פרוטוקולים למרחב המשתמש.

חידושים עיקריים:

  • Сокращено потребление памяти при загрузке больших 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

מקור: OpenNet.ru

הוספת תגובה