nftables paket filtri 0.9.9 buraxılışı

IPv0.9.9, IPv4, ARP və şəbəkə körpüləri (iptables, ip6table, arptables və ebtables əvəz etmək məqsədi daşıyır) üçün paket filtrləmə interfeyslərini birləşdirən nftables 6 paket filtrinin buraxılışı nəşr edilmişdir. Eyni zamanda, nf_tables alt sistemi ilə qarşılıqlı əlaqə üçün aşağı səviyyəli API təmin edən libnftnl 1.2.0 köməkçi kitabxanasının buraxılışı nəşr olundu. Nftables 0.9.9 buraxılışının işləməsi üçün tələb olunan dəyişikliklər Linux nüvəsi 5.13-rc1-ə daxil edilmişdir.

Nftables paketinə istifadəçi məkanında işləyən paket filtri komponentləri daxildir, nüvə səviyyəsi isə 3.13 buraxılışından bəri Linux nüvəsinin bir hissəsi olan nf_tables alt sistemi tərəfindən təmin edilir. Kernel səviyyəsində paketlərdən məlumatların çıxarılması, verilənlər üzərində əməliyyatların yerinə yetirilməsi və axını idarə etmək üçün əsas funksiyaları təmin edən yalnız ümumi protokoldan asılı olmayan interfeys təmin edilir.

Filtrləmə qaydalarının özləri və protokola xas işləyicilər istifadəçi məkanı bayt koduna tərtib edilir, bundan sonra bu bayt kodu Netlink interfeysindən istifadə edərək nüvəyə yüklənir və BPF-ə (Berkeley Paket Filtrləri) bənzəyən xüsusi virtual maşında nüvədə icra olunur. Bu yanaşma nüvə səviyyəsində işləyən filtrləmə kodunun ölçüsünü əhəmiyyətli dərəcədə azaltmağa və təhlil qaydaları və protokollarla işləmək məntiqinin bütün funksiyalarını istifadəçi sahəsinə köçürməyə imkan verir.

Əsas yeniliklər:

  • 'Boşaltma' bayrağından istifadə edərək, axın cədvəlinin işlənməsini şəbəkə adapteri tərəfinə köçürmək imkanı həyata keçirilib. Flowtable paketin yönləndirilməsi yolunu optimallaşdırmaq üçün bir mexanizmdir, burada bütün qayda emal zəncirlərinin tam keçidi yalnız birinci paketə tətbiq edilir və axındakı bütün digər paketlər birbaşa yönləndirilir. masa ip qlobal { flowtable f { qarmaq girişi prioritet filtri + 1 cihazlar = { lan3, lan0, wan } bayraqların yüklənməsi } zəncir irəli {tip filtr çəngəl irəli prioritet filtri; siyasəti qəbul etmək; ip protokolu { tcp, udp } flow add @f } zəncir yazısı { type nat hook postrouting priority filter; siyasəti qəbul etmək; oifname "wan" maskarad } }
  • Cədvəlin bir proses tərəfindən eksklüziv istifadəsini təmin etmək üçün sahibinin bayrağını masaya əlavə etmək üçün əlavə dəstək. Proses başa çatdıqda, onunla əlaqəli cədvəl avtomatik olaraq silinir. Proses haqqında məlumat qaydalar dumpində şərh şəklində göstərilir: cədvəl ip x { # progname nft flags owner chain y { type filter hook input priority filter; siyasəti qəbul etmək; əks paketlər 1 bayt 309 } }
  • Çoxlu VLAN teqlərini tək Ethernet çərçivəsinə əvəz etmək üçün vasitələri müəyyən edən IEEE 802.1ad spesifikasiyası (VLAN yığma və ya QinQ) üçün əlavə dəstək. Məsələn, xarici Ethernet çərçivəsinin 8021ad və vlan id=342 növünü yoxlamaq üçün siz konstruksiyadan istifadə edə bilərsiniz ... eter növü 802.1ad vlan id 342 Ethernet çərçivəsinin xarici tipini yoxlamaq üçün 8021ad/vlan id=1, yuvalanmış 802.1 q/vlan id=2 və əlavə IP paket inkapsulyasiyası: ... eter növü 8021ad vlan id 1 vlan növü 8021q vlan id 2 vlan növü ip sayğacı
  • Vahid iyerarxiya qruplarından istifadə edərək resursları idarə etmək üçün əlavə dəstək v2. v2 və v1 qrupları arasındakı əsas fərq, CPU resurslarının ayrılması, yaddaş istehlakının tənzimlənməsi və giriş/çıxış üçün ayrı-ayrı iyerarxiyalar əvəzinə bütün növ resurslar üçün ümumi qruplar iyerarxiyasının istifadəsidir. Məsələn, cgroupv2 birinci səviyyəsindəki rozetin əcdadının “system.slice” maskasına uyğun olub-olmadığını yoxlamaq üçün aşağıdakı konstruksiyadan istifadə edə bilərsiniz: ... socket cgroupv2 level 1 “system.slice”
  • SCTP paketlərinin komponentlərini yoxlamaq imkanı əlavə edildi (bunun üçün tələb olunan funksionallıq Linux kernel 5.14-də görünəcək). Məsələn, paketdə 'data' növü və 'type' sahəsi olan bir yığın olub-olmadığını yoxlamaq üçün: ... sctp chunk data mövcuddur ... sctp chunk data type 0
  • Qaydaların yüklənməsi əməliyyatının icrası “-f” bayrağından istifadə etməklə təxminən iki dəfə sürətləndirilib. Qaydalar siyahısının çıxarılması da sürətləndirilib.
  • Bayraq bitlərinin təyin olunub-olunmadığını yoxlamaq üçün kompakt forma verilir. Məsələn, snat və dnat status bitlərinin təyin edilmədiyini yoxlamaq üçün aşağıdakıları təyin edə bilərsiniz: ... ct status ! snat,dnat sin bitinin bit maskasında təyin olunduğunu yoxlamaq üçün syn,ack: ... tcp flags syn / syn,ack fin və rst bitlərinin bitmaskında təyin edilmədiyini yoxlamaq üçün syn,ack,fin,rst: ... tcp bayraqları ! = fin,rst / syn,ack,fin,rst
  • Set/map typeof təriflərində "hökm" açar sözünün istifadə edilməsinə icazə verin: map xm { typeof iifname əlavə edin. ip protokolu ci dport: hökm ;}

Mənbə: opennet.ru

Добавить комментарий