我想迁移到 nftables(Ubuntu Trusty,内核 3.19)。但是我想知道如何迁移 ARP 数据包的 ebtables 规则:
-p ARP --arp-op请求--arp-ip-src 192.168.178.237 --arp-mac-src 2:fb:c5:e0:ef:a3 -j 接受
该命令nft add rule bridge filter qemu1-o arp operation request counter accept
有效,但我不知道如何将 ip/mac 约束添加到规则中。
答案1
不幸的是,nftables
目前 arp 表中还没有实现源和目标 ipv4 地址的语法。
根据经验,我发现可以改用以下表达式:
plen 4 @nh,64,32
(源 IP)plen 4 @nh,96,32
(目的 IP)
值中的 IPv4 地址应以十进制类型指定integer
。
您可以使用一些在线转换器将您的 IP 地址转换为数字格式。
在你的例子192.168.178.237
中3232281325
因此最终规则如下:
nft add rule arp filter input arp operation request arp plen 4 @nh,64,32 3232281325 ether saddr 2:fb:c5:e0:ef:a3 counter accept
PS:您可以使用xtables-nft-multi
最新的 iptables 包,它提供了nf_tables
兼容的后端来导入您的旧命令并检查新的语法。