Yadro darajasi paketlardan ma'lumotlarni olish, ma'lumotlar operatsiyalarini bajarish va oqimlarni boshqarish uchun asosiy funktsiyalarni ta'minlaydigan faqat umumiy protokoldan mustaqil interfeysni ta'minlaydi. Filtrlash mantig'ining o'zi va protokolga xos ishlov beruvchilar foydalanuvchi maydonida bayt-kodga kompilyatsiya qilinadi, shundan so'ng bu bayt kod Netlink interfeysi yordamida yadroga yuklanadi va BPF (Berkeley Packet Filters) ni eslatuvchi maxsus virtual mashinada bajariladi. Ushbu yondashuv yadro darajasida ishlaydigan filtrlash kodining hajmini sezilarli darajada kamaytirish va protokollar bilan ishlash uchun tahlil qilish qoidalari va mantiqining barcha funktsiyalarini foydalanuvchi maydoniga ko'chirish imkonini beradi.
Asosiy innovatsiyalar:
- Vaqt bo'yicha mos keladigan paketlarni qo'llab-quvvatlash. Siz qoida ishga tushiriladigan vaqt va sana diapazonlarini belgilashingiz va haftaning alohida kunlarida ishga tushirishni sozlashingiz mumkin. Shuningdek, davr vaqtini soniyalarda ko'rsatish uchun yangi "-T" opsiyasi qo'shildi.
meta vaqt \»2019-12-24 16:00\" — \»2020-01-02 7:00\"
meta soat \"17:00\" - \"19:00\"
meta kun \"Jum\" - SELinux belgilarini tiklash va saqlashni qo'llab-quvvatlash (secmark).
ct secmark meta secmark to'plami
meta secmark to'plami ct secmark - Har bir backend uchun bir nechta qoidani aniqlash imkonini beruvchi sinproksi xaritalar roʻyxatini qoʻllab-quvvatlash.
jadval ip foo {
sinproksi https-sinproksi {
Xabar 1460
miqyosi 7
vaqt tamg'asi sack-perm
}sinproksi boshqa-sinproksi {
Xabar 1460
miqyosi 5
}zanjir oldingi {
turi filtri kanca oldindan marshrutlash ustuvor xom; siyosatni qabul qilish;
tcp dport 8888 tcp bayroqlari syn nottrack
}zanjir bar {
turi filtri kanca oldinga ustuvor filtri; siyosatni qabul qilish;
ct holati yaroqsiz, kuzatilmagan sinproksi nomi ip saddr xaritasi {192.168.1.0/24 : “https-synproxy”, 192.168.2.0/24 : “boshqa-sinproksi” }
}
} - Paketlarni qayta ishlash qoidalaridan o'rnatilgan elementlarni dinamik ravishda olib tashlash qobiliyati.
nft qoidani qo'shish ... o'chirish @set5 { ip6 saddr . ip6 daddr}
- Tarmoq ko'prigi interfeysi metama'lumotlarida aniqlangan ID va protokol bo'yicha VLAN xaritasini qo'llab-quvvatlash;
meta ibrpvid 100
meta ibrvproto vlan - Qoidalarni ko'rsatishda to'plamlar elementlarini istisno qilish uchun "-t" ("--terse") opsiyasi. "Nft -t list qoidalar to'plami" ishga tushirilsa, quyidagilar chiqadi:
jadval ip x {
o'rnatish y {
ipv4_addr yozing
}
}Va "nft list qoidalari" bilan
jadval ip x {
o'rnatish y {
ipv4_addr yozing
elementlar = {192.168.10.2, 192.168.20.1,
192.168.4.4, 192.168.2.34 }
}
} - Umumiy filtrlash qoidalarini birlashtirish uchun netdev zanjirlarida bir nechta qurilmalarni belgilash imkoniyati (faqat yadro 5.5 bilan ishlaydi).
netdev x jadvalini qo'shing
zanjir qo'shish netdev xy {\
turi filtri kanca kirish qurilmalar = { eth0, eth1 } ustuvor 0;
} - Ma'lumotlar turlarining tavsiflarini qo'shish qobiliyati.
#nft ipv4_addrni tavsiflaydi
ma'lumotlar turi ipv4_addr (IPv4 manzili) (asosiy turdagi butun son), 32 bit - Libreadline o'rniga linenoise kutubxonasi bilan CLI interfeysini yaratish qobiliyati.
./configure --with-cli=linenoise
Manba: opennet.ru