使用nftables动态map实现源目地址相同时丢包的语法错误排查
解决nftables丢弃源目同地址流量的规则问题
你想创建nftables过滤规则丢弃源地址与目的地址相同的流量,之前尝试用映射的方法但触发语法错误,其实根本不需要绕弯子用map,nftables本身就支持直接比较源IP和目的IP。
你之前的错误配置:
table inet my_table { map srcdest { type ipv4_addr: ipv4_addr; } chain my_chain { meta nfproto ipv4 update @srcdest { ip saddr : ip daddr } meta nfproto ipv4 ip saddr ip saddr map @srcdest drop } }
最后一行报错是因为ip saddr map @srcdest的写法不符合nftables规则语法,而且这种用map中转的思路完全没必要。
正确的做法是直接匹配源IP等于目的IP的流量,规则如下:
table inet my_table { chain my_chain { # 处理IPv4流量 meta nfproto ipv4 ip saddr == ip daddr drop # 如果需要处理IPv6流量,添加下面一行 meta nfproto ipv6 ip6 saddr == ip6 daddr drop } }
这样就能直接丢弃所有源地址与目的地址相同的IPv4/IPv6流量,语法完全符合nftables要求,也不需要额外的映射配置。
内容的提问来源于stack exchange,提问作者Aise
相关产品推荐
相关产品推荐

