nftables pakete iragazkiaren bertsioa 0.9.4

argitaratua pakete-iragazkia askatzea nftables 0.9.4, iptables, ip6table, arptables eta ebtables-en ordezko gisa garatzen ari dena, IPv4, IPv6, ARP eta sareko zubietarako paketeak iragazteko interfazeak bateratuz. nftables paketeak erabiltzailearen espazioan exekutatzen diren pakete-iragazkien osagaiak biltzen ditu, kernel maila, berriz, nf_tables azpisistemak ematen du, 3.13 bertsiotik Linux nukleoaren parte izan dena. nftables 0.9.4 funtzionatzeko beharrezkoak diren aldaketak nukleoaren etorkizuneko adarrean sartzen dira Linux 5.6.

Nukleo mailan, paketeetatik datuak ateratzeko, datuekin eragiketak egiteko eta fluxua kontrolatzeko oinarrizko funtzioak eskaintzen dituen protokolotik independentea den interfaze generiko bat baino ez da eskaintzen. Iragazte-arauak beraiek eta protokoloaren berariazko kudeatzaileak erabiltzaile-espazioko byte-kodean konpilatzen dira, eta ondoren byte-kode hori nukleoan kargatzen da Netlink interfazea erabiliz eta nukleoan exekutatzen da BPF (Berkeley Packet Filters) antzeko makina birtual berezi batean. Ikuspegi honek nukleo mailan exekutatzen den iragazketa-kodearen tamaina nabarmen murriztea eta analizatzeko arauen funtzio guztiak eta protokoloekin lan egiteko logika erabiltzaileen espaziora eramatea ahalbidetzen du.

Berrikuntza nagusiak:

  • Elkarketa-barrutietarako laguntza (konkatenazioa, parekatzea errazten duten zenbait helbide eta ataken lotura). Esaterako, elementuak eranskin bat diren "zerrenda zuria" multzo baterako, "tartea" marka zehaztuz gero, multzoak eranskinean barrutiak izan ditzakeela adieraziko da ("ipv4_addr . ipv4_addr . inet_service" eranskinerako aurrez posible zen zehatza zerrendatzea. "192.168.10.35. 192.68.11.123" bezalako partidak, eta orain "80-192.168.10.35-192.168.10.40-192.68.11.123-192.168.11.125-80"-XNUMX-XNUMX.

    taula ip foo {
    ezarri zerrenda zuria {
    idatzi ipv4_addr. ipv4_helbidea. inet_zerbitzua
    bandera tartea
    elementuak = { 192.168.10.35-192.168.10.40 . 192.68.11.123-192.168.11.125 . 80}
    }

    kate-barra {
    type filter hook prerouting lehentasunezko iragazkia; politika jaitsiera;
    ip saddr . ip daddr. tcp dport@whitelist onartu
    }
    }

  • Multzoetan eta mapa-zerrendetan, posible da "typeof" zuzentaraua erabiltzea, zeinak elementuaren formatua zehazten du mapak egiterakoan.
    Adibidez:

    taula ip foo {
    ezarri zerrenda zuria {
    typeof ip saddr
    elementuak = { 192.168.10.35, 192.168.10.101, 192.168.10.135 }
    }

    kate-barra {
    type filter hook prerouting lehentasunezko iragazkia; politika jaitsiera;
    ip daddr @whitelist onartu
    }
    }

    taula ip foo {
    mapa addr2mark {
    typeof ip saddr: meta marka
    elementuak = { 192.168.10.35 : 0x00000001, 192.168.10.135 : 0x00000002 }
    }
    }

  • NAT loturetan eranskinak erabiltzeko gaitasuna gehitu da, mapa zerrendetan edo izendun multzoetan oinarrituta NAT itzulpenak definitzean helbide eta ataka bat zehaztea ahalbidetzen duena:

    nft gehitu araua ip nat pre dnat ip addr . ataka ip saddr mapa { 1.1.1.1 : 2.2.2.2 . hogeita hamar}

    nft gehitu mapa ip nat helmugak { type ipv4_addr . inet_service: ipv4_addr. inet_zerbitzua\\; }
    nft gehitu araua ip nat pre dnat ip addr . ataka ip saddr . tcp dport mapa @helmugak

  • Hardwarearen azelerazioari euskarria sare-txarteleko sorbaldetan iragazketa-eragiketa batzuk kenduta. Azelerazioa ethtool utilitatearen bidez gaitzen da ("ethtool -K eth0 hw-tc-offload on"), eta ondoren kate nagusirako nftabletan aktibatzen da "deskargatu" bandera erabiliz. Linux 5.6 nukleoa erabiltzean, hardware-azelerazioa onartzen da goiburuko eremuak bat etortzeko eta sarrerako interfazea ikuskatzeko paketeak jaso, bota, bikoiztu (dup) eta birbidaltzeko (fwd) konbinatuta. Beheko adibidean, 192.168.30.20 helbidetik datozen paketeak kentzeko eragiketak sare-txartelaren mailan egiten dira, paketeak nukleora pasatu gabe:

    # cat fitxategia.nft
    taula netdev x {
    katea y {
    mota iragazkia kako sarrera gailua eth0 lehentasuna 10; banderak deskargatu;
    ip saddr 192.168.30.20 jaitsiera
    }
    }
    # nft -f fitxategia.nft

  • Arauetan errore baten lekuari buruzko informazioa hobetu da.

    # nft ezabatu araua ip yz handle 7
    Errorea: Ezin izan da prozesatu araua: Ez dago fitxategi edo direktorio hori
    ezabatu araua ip yz heldulekua 7
    ^

    # nft ezabatu araua ip xx heldulekua 7
    Errorea: Ezin izan da prozesatu araua: Ez dago fitxategi edo direktorio hori
    ezabatu araua ip xx heldulekua 7
    ^

    # nft ezabatu taula twst
    Errorea: ez dago horrelako fitxategirik edo direktoriorik; Γ’β‚¬Λœtest' taula esan nahi al zenuen familiako ipetan?
    ezabatu mahai bira
    ^^^^

    Lehenengo adibideak 'y' taula sisteman ez dagoela erakusten du, bigarrenak '7' kudeatzailea falta dela erakusten du eta hirugarrenak taularen izena idaztean akats-iradokizun bat erakusten du.

  • Esklaboen interfazea egiaztatzeko laguntza gehitu da "meta sdif" edo "meta sdifname" zehaztuz:

    ... meta sdifname vrf1 ...

  • Eskuinera edo ezkerrera aldatzeko laguntza gehitu da. Adibidez, lehendik dagoen paketeen etiketa bat bit 1 utziz aldatzeko eta beheko bit-a 1ean ezartzeko:

    … meta marka ezarri meta marka lshift 1 edo 0x1 …

  • "-V" aukera inplementatu da bertsio hedatuaren informazioa bistaratzeko.

    #nft -V
    nftables v0.9.4 (Jive at Five)
    cli:readline
    json: bai
    minigmp: ez
    libxtables: bai

  • Komando-lerroko aukerak derrigorrezkoak dira orain komandoen aurretik. Esate baterako, "nft -a list ruleset" zehaztu behar duzu, eta "nft list ruleset -a" exekutatzen errore bat sortuko da.

    Iturria: opennet.ru

Gehitu iruzkin berria