ΠΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠΈΠ»ΡΡΡΠ° Π·Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ nftables 1.0.7 Π±Π΅ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ΠΎ, ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°ΠΉΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈΡΠ΅ Π·Π° ΡΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ Π·Π° IPv4, IPv6, ARP ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΌΠΎΡΡΠΎΠ²Π΅ (Π½Π°ΡΠΎΡΠ΅Π½ΠΈ ΠΊΡΠΌ Π·Π°ΠΌΡΠ½Π° Π½Π° iptables, ip6table, arptables ΠΈ ebtables). ΠΠ°ΠΊΠ΅ΡΡΡ nftables Π²ΠΊΠ»ΡΡΠ²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π·Π° ΡΠΈΠ»ΡΡΡ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ°Π±ΠΎΡΡΡ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, Π΄ΠΎΠΊΠ°ΡΠΎ Π½ΠΈΠ²ΠΎΡΠΎ Π½Π° ΡΠ΄ΡΠΎΡΠΎ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΎΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° nf_tables, ΠΊΠΎΡΡΠΎ Π΅ ΡΠ°ΡΡ ΠΎΡ ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux ΠΎΡ Π²Π΅ΡΡΠΈΡ 3.13. ΠΠ° Π½ΠΈΠ²ΠΎ ΡΠ΄ΡΠΎ ββΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΠ°ΠΌΠΎ ΠΎΠ±Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌ ΠΎΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ», ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΡΠΎΠΊΠ°.
Π‘Π°ΠΌΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΡΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅ ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈΡΠ΅ Π·Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Ρ Π² Π±Π°ΠΉΡ ΠΊΠΎΠ΄ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ ΡΠΎΠ·ΠΈ Π±Π°ΠΉΡ ΠΊΠΎΠ΄ ΡΠ΅ Π·Π°ΡΠ΅ΠΆΠ΄Π° Π² ΡΠ΄ΡΠΎΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Netlink ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π² ΡΠ΄ΡΠΎΡΠΎ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π°, Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΡΠ²Π°ΡΠ° BPF (Berkeley Packet Filters). Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΡΠ°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΡΠΈΠ»ΡΡΠΈΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄, ΡΠ°Π±ΠΎΡΠ΅Ρ Π½Π° Π½ΠΈΠ²ΠΎ ΡΠ΄ΡΠΎ, ΠΈ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π·Π° Π°Π½Π°Π»ΠΈΠ· ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ:
- ΠΠ° ΡΠΈΡΡΠ΅ΠΌΠΈ Ρ ΡΠ΄ΡΠΎ ββΠ½Π° Linux 6.2+ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΡΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ vxlan, geneve, gre ΠΈ gretap, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΡΠΎΡΡΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π·Π°Π³Π»Π°Π²ΠΊΠΈ Π² ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠ°Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΠ΅ IP Π°Π΄ΡΠ΅ΡΠ° Π² Π·Π°Π³Π»Π°Π²ΠΊΠ°ΡΠ° Π½Π° Π²Π»ΠΎΠΆΠ΅Π½ ΠΏΠ°ΠΊΠ΅Ρ ΠΎΡ VxLAN, Π²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° (Π±Π΅Π· Π΄Π° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΡΠ²ΠΎ Π΄Π° Π΄Π΅ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠ°ΡΠ΅ Π·Π°Π³Π»Π°Π²ΠΊΠ°ΡΠ° Π½Π° VxLAN ΠΈ Π΄Π° ΡΠ²ΡΡΠΆΠ΅ΡΠ΅ ΡΠΈΠ»ΡΡΡΠ° ΠΊΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° vxlan0): ... udp dport 4789 vxlan ip ΠΏΡΠΎΡΠΎΠΊΠΎΠ» udp ... udp dport 4789 vxlan ip saddr 1.2.3.0 24/4789 ... udp dport 1.2.3.4 vxlan ip saddr . vxlan ip daddr { 4.3.2.1 . XNUMX}
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅ Π½Π° ΠΎΡΡΠ°ΡΡΡΠΈ ΡΠ»Π΅Π΄ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ ΠΎΡ ΡΠΏΠΈΡΡΠΊΠ° Ρ Π½Π°Π±ΠΎΡΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ ΠΈΠ»ΠΈ ΡΠ°ΡΡ ΠΎΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΡΡΠΈΡ ΡΠ°ΠΌΠΎ ΠΈΠ·ΡΡΠ»ΠΎ). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅Π΄ ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ 25 ΠΎΡ ΡΠΏΠΈΡΡΠΊ Ρ Π½Π°Π±ΠΎΡΠΈ Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΈ 24-30 ΠΈ 40-50, 24, 26-30 ΠΈ 40-50 ΡΠ΅ ΠΎΡΡΠ°Π½Π°Ρ Π² ΡΠΏΠΈΡΡΠΊΠ°. ΠΠΎΠΏΡΠ°Π²ΠΊΠΈΡΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎΡΠΎ ΡΠ»ΠΈΠ²Π°Π½Π΅, ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ Π² ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°ΡΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° 5.10+ ΡΡΠ°Π±ΠΈΠ»Π½ΠΈ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ. # nft list ruleset table ip x { set y { typeof tcp dport flags interval auto-merge elements = { 24-30, 40-50 } } } # nft delete element ip xy { 25 } # nft list ruleset table ip x { set y { typeof tcp dport ΡΠ»Π°Π³ΠΎΠ²Π΅ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ = { 24, 26-30, 40-50 } } }
- Π Π°Π·ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΈ ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΈ ΠΏΡΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° Π°Π΄ΡΠ΅ΡΠΈ (NAT). ΡΠ°Π±Π»ΠΈΡΠ° ip nat { Π²Π΅ΡΠΈΠ³Π° prerouting { type nat hook prerouting ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ dstnat; ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΏΡΠΈΠ΅ΠΌΠ°; dnat ΠΊΡΠΌ ip daddr. tcp dport map { 10.1.1.136 . 80: 1.1.2.69. 1024, 10.1.1.10-10.1.1.20. 8888-8889: 1.1.2.69. 2048-2049 } ΠΏΠΎΡΡΠΎΡΠ½Π΅Π½ } }
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° "ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ" ΠΈΠ·ΡΠ°Π·, ΠΊΠΎΠΉΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΠΏΠΈΡΡΠΊ. Π’Π°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΎΡ ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux 5.14. ΡΠ°Π±Π»ΠΈΡΠ° ip x { set y { typeof ip daddr. tcp dport size 65535 ΡΠ»Π°Π³ΠΎΠ²Π΅ dynamic,timeout last timeout 1h } chain z { type filter hook output priority filter; ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΏΡΠΈΠ΅ΠΌΠ°; Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ @y {ip daddr. tcp dport } } } # nft ΡΠΏΠΈΡΡΠΊ set ip xy table ip x { set y { typeof ip daddr. tcp dport ΡΠ°Π·ΠΌΠ΅Ρ 65535 ΡΠ»Π°Π³ΠΎΠ²Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅Π½, ΡΠ°ΠΉΠΌΠ°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π΅Π½ ΡΠ°ΠΉΠΌΠ°ΡΡ 1h Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ = { 172.217.17.14 . 443 ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΎ 1s591ms ΡΠ°ΠΉΠΌΠ°ΡΡ 1h ΠΈΠ·ΡΠΈΡΠ° 59m58s409ms, 172.67.69.19. 443 ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΎ 4s636ms ΡΠ°ΠΉΠΌΠ°ΡΡ 1h ΠΈΠ·ΡΠΈΡΠ° 59m55s364ms, 142.250.201.72. 443 ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΎ 4s748ms ΡΠ°ΠΉΠΌΠ°ΡΡ 1h ΠΈΠ·ΡΠΈΡΠ° 59m55s252ms, 172.67.70.134. 443 ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΎ 4s688ms ΡΠ°ΠΉΠΌΠ°ΡΡ 1h ΠΈΠ·ΡΠΈΡΠ° 59m55s312ms, 35.241.9.150. 443 ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΎ 5s204ms ΡΠ°ΠΉΠΌΠ°ΡΡ 1h ΠΈΠ·ΡΠΈΡΠ° 59m54s796ms, 138.201.122.174. 443 ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΎ 4s537ms ΡΠ°ΠΉΠΌΠ°ΡΡ 1h ΠΈΠ·ΡΠΈΡΠ° 59m55s463ms, 34.160.144.191. 443 ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΎ 5s205ms ΡΠ°ΠΉΠΌΠ°ΡΡ 1h ΠΈΠ·ΡΠΈΡΠ° 59m54s795ms, 130.211.23.194. 443 ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΎ 4s436ms ΡΠ°ΠΉΠΌΠ°ΡΡ 1h ΠΈΠ·ΡΠΈΡΠ° 59m55s564ms } } }
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠ²ΠΎΡΠΈ Π² ΡΠΏΠΈΡΡΡΠΈΡΠ΅ Ρ Π½Π°Π±ΠΎΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΡΠ΅ ΠΊΠ²ΠΎΡΠ° Π·Π° ΡΡΠ°ΡΠΈΠΊ Π·Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ΅Π»Π΅Π²ΠΈ IP Π°Π΄ΡΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅: table netdev x { set y { typeof ip daddr size 65535 ΠΊΠ²ΠΎΡΠ° Π½Π°Π΄ 10000 mbytes } chain y { type filter hook egress device "eth0" priority filter; ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΏΡΠΈΠ΅ΠΌΠ°; ip daddr @y drop } } # nft add element inet xy { 8.8.8.8 } # ping -c 2 8.8.8.8 # nft ΡΠΏΠΈΡΡΠΊ Ρ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠ°Π±Π»ΠΈΡΠ° netdev x { set y { type ipv4_addr size 65535 ΠΊΠ²ΠΎΡΠ° Π½Π°Π΄ 10000 mbytes elements = { 8.8.8.8. 10000 ΠΊΠ²ΠΎΡΠ° Π½Π°Π΄ 196 mbytes ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ 0 Π±Π°ΠΉΡΠ° } } Π²Π΅ΡΠΈΠ³Π° y { ΡΠΈΠΏ ΡΠΈΠ»ΡΡΡ ΠΊΡΠΊΠ° ΠΈΠ·Ρ ΠΎΠ΄ΡΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ "ethXNUMX" ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ΅Π½ ΡΠΈΠ»ΡΡΡ; ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΏΡΠΈΠ΅ΠΌΠ°; ip daddr @y ΡΠΏΠ°Π΄ } }
- ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΈ Π² ΡΠΏΠΈΡΡΡΠΈΡΠ΅ Ρ Π½Π°Π±ΠΎΡΠΈ Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠΏΠΈΡΡΠΊ Ρ Π°Π΄ΡΠ΅Ρ Π½Π° ΠΌΠ΅ΡΡΠΎΠ½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ VLAN ID ΠΊΠ°ΡΠΎ ΠΊΠ»ΡΡ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ VLAN Π½ΠΎΠΌΠ΅ΡΠ° (daddr. 123): table netdev t { set s { typeof ether saddr. vlan id ΡΠ°Π·ΠΌΠ΅Ρ 2048 ΡΠ»Π°Π³ΠΎΠ²Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅Π½, ΡΠ°ΠΉΠΌΠ°ΡΡ ΠΈΠ·ΡΠ°ΠΊΠ²Π°Π½Π΅ 1m } Π²Π΅ΡΠΈΠ³Π° c { ΡΠΈΠΏ ΡΠΈΠ»ΡΡΡ ΠΊΡΠΊΠ° Π²Ρ ΠΎΠ΄Π½ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ eth0 ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ 0; ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΏΡΠΈΠ΅ΠΌΠ°; ether type != 8021q Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ @s { ether daddr. 123 } Π±ΡΠΎΡΡ } }
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π½ΠΎΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° βΡΠ½ΠΈΡΠΎΠΆΠΈβ Π·Π° Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ (Π·Π° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Π·Π° ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅, ΡΡ Π½Π΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° ENOENT ΠΏΡΠΈ ΠΎΠΏΠΈΡ Π·Π° ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ Π½Π° Π»ΠΈΠΏΡΠ²Π°Ρ ΠΎΠ±Π΅ΠΊΡ). ΠΠ·ΠΈΡΠΊΠ²Π° ΠΏΠΎΠ½Π΅ Linux 6.3-rc ΡΠ΄ΡΠΎ, Π·Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ. ΡΠ½ΠΈΡΠΎΠΆΠΈ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° IP ΡΠΈΠ»ΡΡΡ
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru