versió 1.0.1 del filtre de paquets nftables

S'ha publicat el llançament del filtre de paquets nftables 1.0.1, que unifica les interfícies de filtratge de paquets per a IPv4, IPv6, ARP i ponts de xarxa (amb l'objectiu de substituir iptables, ip6table, arptables i ebtables). Els canvis necessaris perquè la versió nftables 1.0.1 funcioni s'inclouen al nucli Linux 5.16-rc1.

El paquet nftables inclou components de filtre de paquets que s'executen a l'espai d'usuari, mentre que el nivell del nucli el proporciona el subsistema nf_tables, que forma part del nucli de Linux des del llançament 3.13. A nivell del nucli, només es proporciona una interfície genèrica independent del protocol que proporciona funcions bàsiques per extreure dades dels paquets, realitzar operacions sobre dades i controlar el flux.

Les regles de filtratge i els controladors específics del protocol es compilen en bytecode de l'espai d'usuari, després del qual aquest bytecode es carrega al nucli mitjançant la interfície Netlink i s'executa al nucli en una màquina virtual especial semblant a BPF (Berkeley Packet Filters). Aquest enfocament permet reduir significativament la mida del codi de filtratge que s'executa al nivell del nucli i moure totes les funcions de les regles d'anàlisi i la lògica de treballar amb protocols a l'espai d'usuari.

Principals innovacions:

  • Reducció del consum de memòria en carregar llistes de mapes i conjunts grans.
  • S'ha accelerat la recàrrega de llistes de conjunts i mapes.
  • S'ha accelerat la sortida de taules i cadenes seleccionades en grans conjunts de regles. Per exemple, el temps d'execució de l'ordre "nft list ruleset" per mostrar un conjunt de regles de 100 mil línies és de 3.049 segons, i quan s'emet només les taules nat i filter ("nft list table nat", "nft list table filter") es redueix a 1.969 i 0.697 segons.
  • L'execució de consultes amb l'opció "--concisa" s'ha accelerat quan es processen regles amb llistes de mapes i conjunts grans.
  • És possible filtrar el trànsit de la cadena de "sortida", que es processa al mateix nivell que el controlador de sortida a la cadena netdev (ganxo de sortida), és a dir. en l'etapa en què el controlador rep un paquet de la pila de xarxa del nucli. filtre netdev de taula { sortida de cadena { dispositius de sortida de ganxo de filtre de tipus = { eth0, eth1 } prioritat 0; definició de meta prioritats ip saddr map { 192.168.10.2 : abcd:2, 192.168.10.3 : abcd:3 } } }
  • Permet la concordança i la modificació de bytes a la capçalera i el contingut d'un paquet amb un desplaçament determinat. # nft afegir regla xy @ih,32,32 0x14000000 comptador # nft afegir regla xy @ih,32,32 establir 0x14000000 comptador

Font: opennet.ru

Afegeix comentari