Eo amin'ny sehatry ny kernel, interface tsy miankina amin'ny protocol generic ihany no omena izay manome asa fototra amin'ny fakana angona avy amin'ny fonosana, fanaovana asa amin'ny data, ary fanaraha-maso ny fandehanana. Ny fitsipika fanivanana sy ireo mpikirakira manokana momba ny protocole dia natambatra ho bytecode-space-n'ny mpampiasa, ary avy eo dia ampidirina ao amin'ny kernel ity bytecode ity amin'ny alΓ lan'ny interface Netlink ary atao ao anaty kernel ao anaty milina virtoaly manokana mitovy amin'ny BPF (Berkeley Packet Filters). Ity fomba fiasa ity dia ahafahana mampihena be ny haben'ny kaody sivana mandeha amin'ny haavon'ny kernel ary mamindra ny fiasa rehetra amin'ny fitsipi-pitenenana sy ny lojika amin'ny fiasana amin'ny protocols ho any amin'ny habaka mpampiasa.
Fanavaozana lehibe:
- Fanohanana ny elanelana eo amin'ny fifandraisana (fifandraisana, adiresin'ny amboara sasany ary seranana manatsotra fampitahana). Ohatra, ho an'ny "lisitra fotsy" iray izay misy singa dia attachment, manondro ny saina "interval" dia manondro fa ny setroka dia afaka mampiditra salan'isa ao amin'ny fametahana (ho an'ny fametahana "ipv4_addr . ipv4_addr . inet_service" dia azo atao ny mitanisa ny marina mifanandrify amin'ny endrika "192.168.10.35. 192.68.11.123", ary izao dia azonao atao ny mamaritra ny vondron'ny adiresy "80-192.168.10.35-192.168.10.40".
table ip foo {
mametraka lisitra fotsy {
karazana ipv4_addr . ipv4_addr. inet_service
elanelana saina
singa = { 192.168.10.35-192.168.10.40 . 192.68.11.123-192.168.11.125. 80}
}barazy {
karazana sivana hook prerouting laharam-pahamehana sivana; fidinana politika;
ip saddr. ip dadr. tcp dport @whitelist manaiky
}
} - Ao amin'ny lisitra sy ny lisitry ny sarintany dia azo atao ny mampiasa ny torolΓ lana "karazana", izay mamaritra ny endriky ny singa rehefa mifanandrify.
Ohatra:table ip foo {
mametraka lisitra fotsy {
karazana ip saddr
singa = { 192.168.10.35, 192.168.10.101, 192.168.10.135 }
}barazy {
karazana sivana hook prerouting laharam-pahamehana sivana; fidinana politika;
ip daddr @whitelist manaiky
}
}table ip foo {
sari-tany addr2mark {
karazana ip saddr: meta mark
singa = { 192.168.10.35 : 0x00000001, 192.168.10.135 : 0x00000002 }
}
} - Nampiana ny fahafahana mampiasa ny fikambanan'ny NAT bindings, izay ahafahanao mamaritra adiresy sy seranan-tsambo rehefa mamaritra ny fiovan'ny NAT mifototra amin'ny lisitry ny sari-tany na andiana anarana:
nft add rule ip nat pre dnat ip addr . seranan-tsambo mankany ip saddr map {1.1.1.1: 2.2.2.2. telopolo}
nft add map ip nat destinations { type ipv4_addr . inet_service: ipv4_addr. inet_service \\; }
nft add rule ip nat pre dnat ip addr . port ho ip saddr. tcp dport map @destinations - Fanohanana ny fanafainganana ny fitaovana miaraka amin'ny asa sivana sasany ataon'ny karatra tambajotra. Ny fanafainganana dia alefa amin'ny alΓ lan'ny fampiasa ethtool ("ethtool -K eth0 hw-tc-offload on"), ary avy eo dia alefa amin'ny nftables ho an'ny rojo lehibe amin'ny fampiasana ny saina "offload". Rehefa mampiasa ny Linux kernel 5.6, dia tohanana ny fanafainganana ny fitaovana amin'ny fampitoviana ny saha lohapejy sy ny fisafoana interface tsara miaraka amin'ny fonosana fandraisana, fanariana, famadihana (dup), ary fandefasana (fwd). Ao amin'ny ohatra etsy ambany, ny fampandehanana ny fandefasana fonosana avy amin'ny adiresy 192.168.30.20 dia atao amin'ny haavon'ny karatra tambajotra, nefa tsy mampita ny fonosana amin'ny kernel:
# cat file.nft
table netdev x {
rojo y {
karazana fitaovana fampidiran-dresaka sivana eth0 laharam-pahamehana 10; faneva offload;
ip saddr 192.168.30.20 mitete
}
}
# nft -f rakitra.nft - Fanatsarana vaovao momba ny toerana misy lesoka ao amin'ny fitsipika.
# nft hamafa fitsipika ip yz mitantana 7
Error: Tsy afaka nandamina fitsipika: Tsy misy rakitra na lahatahiry toy izany
esory ny fitsipika ip yz tΓ nana 7
^# nft hamafa fitsipika ip xx tΓ nana 7
Error: Tsy afaka nandamina fitsipika: Tsy misy rakitra na lahatahiry toy izany
esory ny fitsipika ip xx 7
^# nft mamafa latabatra twst
Error: Tsy misy rakitra na lahatahiry toy izany; table Γ’β¬Λtest' ao amin'ny family ip ve no tianao holazaina?
mamafa latabatra twst
^^^^Ny ohatra voalohany dia mampiseho fa ny latabatra "y" dia tsy ao amin'ny rafitra, ny faharoa dia ny "7" mpitantana tsy hita, ary ny fahatelo dia misy typo bitsika aseho rehefa manoratra ny anaran'ny latabatra.
- Fanampiana fanampiny amin'ny fanamarinana ny interface andevo amin'ny famaritana ny "meta sdif" na "meta sdifname":
... meta sdifname vrf1 ...
- Fanohanana fanampiny ho an'ny fampandehanan-draharaha miankavanana na ankavia. Ohatra, hanova ny mari-pamantarana fonosana efa misy tavela 1 bit ary apetraho amin'ny 1 ny bitika kely:
β¦ marika meta mametraka marika meta lshift 1 na 0x1 β¦
- Safidy "-V" nampiharina mba hampisehoana fampahalalana momba ny dikan-teny.
# nft -V
nftables v0.9.4 (Jive amin'ny dimy)
cli:readline
json: eny
migmp: tsy
libxtables: eny - Ny safidy andalana baiko dia tsy maintsy voafaritra mialoha ny baiko. Ohatra, mila mamaritra ny "nft -a list ruleset" ianao, ary ny fandehanana "nft list ruleset -a" dia hiteraka hadisoana.
Source: opennet.ru