iptables:!匹配多个ip地址

iptables:!匹配多个ip地址

我需要重定向来自网络外部 (5.9.0.0) 的数据包,因此我尝试在其中一台计算机上添加此操作(它具有三个接口 5.9.30.20、5.9.20.20、5.9.10.20),但我得到RTNETLINK answers: Network is unreachable

iptables -t nat -A PREROUTING –p icmp --icmp-type echo-reply ! -d 5.9.0.0/16 -j DNAT --to-destination 5.9.40.10

据我用谷歌搜索,那是因为我的计算机位于 5.9.30.0/24、5.9.20.0/24 和 5.9.10.0/24,而 5.9.0.0/16 是上一级。

所以我也尝试了这种方法:

iptables -t nat -A PREROUTING –p icmp --icmp-type echo-reply ! -d 5.9.30.0/24,5.9.10.0/24,5.9.20.0/24 -j DNAT --to-destination 5.9.40.10

但我得到了iptables: ! is not allowed with multiple IP addresses

我可以检查数据包的目的地/源不是 5.9.10.0/24、5.9.20.0/24 或 5.9.30.0/24 吗?

答案1

独立于我对你想在那里做什么的怀疑:

您可以分别检查多个地址:

iptables -t nat -N dnat_operation
iptables -t nat -A PREROUTING -j dnat_operation
iptables -t nat -A dnat_operation -d 5.9.30.0/24 -j RETURN
iptables -t nat -A dnat_operation -d 5.9.10.0/24 -j RETURN
iptables -t nat -A dnat_operation -d 5.9.20.0/24 -j RETURN
iptables -t nat -A dnat_operation # do whatever with the packets which are left

相关内容