1arptables-translate -A OUTPUT --proto-type ipv4 -s 1.2.3.4 -j ACCEPT 2nft 'add rule arp filter OUTPUT arp htype 1 arp hlen 6 arp plen 4 arp ptype 0x800 arp saddr ip 1.2.3.4 counter accept' 3 4arptables-translate -I OUTPUT -o oifname 5nft 'insert rule arp filter OUTPUT oifname "oifname" arp htype 1 arp hlen 6 arp plen 4 counter' 6 7iptables-translate -I OUTPUT -p udp -d 8.8.8.8 -j ACCEPT 8nft 'insert rule ip filter OUTPUT ip protocol udp ip daddr 8.8.8.8 counter accept' 9 10iptables-translate -F -t nat 11nft flush table ip nat 12 13iptables-translate -I INPUT -i iifname -s 10.0.0.0/8 14nft 'insert rule ip filter INPUT iifname "iifname" ip saddr 10.0.0.0/8 counter' 15 16iptables-translate -A INPUT -i iif+ ! -d 10.0.0.0/8 17nft 'add rule ip filter INPUT iifname "iif*" ip daddr != 10.0.0.0/8 counter' 18 19iptables-translate -I INPUT -s 10.11.12.13/255.255.0.0 20nft 'insert rule ip filter INPUT ip saddr 10.11.0.0/16 counter' 21 22iptables-translate -I INPUT -s 10.11.12.13/255.0.255.0 23nft 'insert rule ip filter INPUT ip saddr & 255.0.255.0 == 10.0.12.0 counter' 24 25iptables-translate -I INPUT -s 10.11.12.13/0.255.0.255 26nft 'insert rule ip filter INPUT ip saddr & 0.255.0.255 == 0.11.0.13 counter' 27 28iptables-translate -I INPUT ! -s 10.11.12.13/0.255.0.255 29nft 'insert rule ip filter INPUT ip saddr & 0.255.0.255 != 0.11.0.13 counter' 30 31iptables-translate -I INPUT -s 0.0.0.0/16 32nft 'insert rule ip filter INPUT ip saddr 0.0.0.0/16 counter' 33 34iptables-translate -I INPUT -s 0.0.0.0/0 35nft 'insert rule ip filter INPUT counter' 36 37iptables-translate -I INPUT ! -s 0.0.0.0/0 38nft 'insert rule ip filter INPUT ip saddr != 0.0.0.0/0 counter' 39 40ip6tables-translate -I INPUT -i iifname -s feed::/16 41nft 'insert rule ip6 filter INPUT iifname "iifname" ip6 saddr feed::/16 counter' 42 43ip6tables-translate -A INPUT -i iif+ ! -d feed::/16 44nft 'add rule ip6 filter INPUT iifname "iif*" ip6 daddr != feed::/16 counter' 45 46ip6tables-translate -I INPUT -s feed:babe::1/ffff:ff00:: 47nft 'insert rule ip6 filter INPUT ip6 saddr feed:ba00::/24 counter' 48 49ip6tables-translate -I INPUT -s feed:babe:c0ff:ee00:c0be:1234:5678:90ab/ffff:0:ffff:0:ffff:0:ffff:0 50nft 'insert rule ip6 filter INPUT ip6 saddr & ffff:0:ffff:0:ffff:0:ffff:0 == feed:0:c0ff:0:c0be:0:5678:0 counter' 51 52ip6tables-translate -I INPUT -s feed:babe:c0ff:ee00:c0be:1234:5678:90ab/0:ffff:0:ffff:0:ffff:0:ffff 53nft 'insert rule ip6 filter INPUT ip6 saddr & 0:ffff:0:ffff:0:ffff:0:ffff == 0:babe:0:ee00:0:1234:0:90ab counter' 54 55ip6tables-translate -I INPUT ! -s feed:babe:c0ff:ee00:c0be:1234:5678:90ab/0:ffff:0:ffff:0:ffff:0:ffff 56nft 'insert rule ip6 filter INPUT ip6 saddr & 0:ffff:0:ffff:0:ffff:0:ffff != 0:babe:0:ee00:0:1234:0:90ab counter' 57 58ip6tables-translate -I INPUT -s ::/16 59nft 'insert rule ip6 filter INPUT ip6 saddr ::/16 counter' 60 61ip6tables-translate -I INPUT -s ::/0 62nft 'insert rule ip6 filter INPUT counter' 63 64ip6tables-translate -I INPUT ! -s ::/0 65nft 'insert rule ip6 filter INPUT ip6 saddr != ::/0 counter' 66 67iptables-translate -A FORWARD -p 132 68nft 'add rule ip filter FORWARD ip protocol sctp counter' 69 70ip6tables-translate -A FORWARD -p 132 71nft 'add rule ip6 filter FORWARD meta l4proto sctp counter' 72 73iptables-translate -A FORWARD ! -p 132 74nft 'add rule ip filter FORWARD ip protocol != sctp counter' 75 76ip6tables-translate -A FORWARD ! -p 132 77nft 'add rule ip6 filter FORWARD meta l4proto != sctp counter' 78 79iptables-translate -A FORWARD -p 253 80nft 'add rule ip filter FORWARD ip protocol 253 counter' 81 82ip6tables-translate -A FORWARD -p 253 83nft 'add rule ip6 filter FORWARD meta l4proto 253 counter' 84 85iptables-translate -A FORWARD ! -p 253 86nft 'add rule ip filter FORWARD ip protocol != 253 counter' 87 88ip6tables-translate -A FORWARD ! -p 253 89nft 'add rule ip6 filter FORWARD meta l4proto != 253 counter' 90 91iptables-translate -A FORWARD -m tcp --dport 22 -p tcp 92nft 'add rule ip filter FORWARD tcp dport 22 counter' 93 94ip6tables-translate -A FORWARD -m tcp --dport 22 -p tcp 95nft 'add rule ip6 filter FORWARD tcp dport 22 counter' 96 97ebtables-translate -I INPUT -i iname --logical-in ilogname -s 0:0:0:0:0:0 98nft 'insert rule bridge filter INPUT iifname "iname" meta ibrname "ilogname" ether saddr 00:00:00:00:00:00 counter' 99 100ebtables-translate -A FORWARD ! -i iname --logical-in ilogname -o out+ --logical-out lout+ -d 1:2:3:4:de:af 101nft 'add rule bridge filter FORWARD iifname != "iname" meta ibrname "ilogname" oifname "out*" meta obrname "lout*" ether daddr 01:02:03:04:de:af counter' 102 103ebtables-translate -I INPUT -p ip -d 1:2:3:4:5:6/ff:ff:ff:ff:00:00 104nft 'insert rule bridge filter INPUT ether type 0x800 ether daddr and ff:ff:ff:ff:00:00 == 01:02:03:04:00:00 counter' 105 106ebtables-translate -I INPUT -p Length 107nft 'insert rule bridge filter INPUT ether type < 0x0600 counter' 108 109ebtables-translate -I INPUT -p ! Length 110nft 'insert rule bridge filter INPUT ether type >= 0x0600 counter' 111 112# asterisk is not special in iptables and it is even a valid interface name 113iptables-translate -A FORWARD -i * -o eth*foo 114nft 'add rule ip filter FORWARD iifname "\*" oifname "eth*foo" counter' 115 116# escape only suffix asterisk and translate only the last plus character 117iptables-translate -A FORWARD -i eth*foo*+ -o eth++ 118nft 'add rule ip filter FORWARD iifname "eth*foo**" oifname "eth+*" counter' 119 120# skip for always matching interface names 121iptables-translate -A FORWARD -i + 122nft 'add rule ip filter FORWARD counter' 123 124# match against invalid interface name to simulate never matching rule 125iptables-translate -A FORWARD ! -i + 126nft 'add rule ip filter FORWARD iifname "INVAL/D" counter' 127