我有两个使用相同 IP 范围但属于不同网络的网络适配器。
我尝试了这个但是没有用:
iptables -t nat -A OUTPUT -p all -d 1.2.3.0/8 -j DNAT --to-destination 192.168.0.0/8 -o eth0
iptables -t nat -A OUTPUT -p all -d 3.2.1.0/8 -j DNAT --to-destination 192.168.0.0/8 -o eth1
例子:
eth0 的 IP 为 192.168.0.1,网络范围为 192.168.0.*
eth1 在单独的网络上具有 192.168.0.8 的 IP,范围为 192.168.0。*
1.2.3.* = 192.168.0.* 通过 eth1
3.2.1.* = 192.168.0.* 通过 eth0
我可以用 iptables 来做这个吗?
答案1
您的问题不清楚,但假设您想将 1.2.3.4 流量路由到一个 NIC,将 4.3.2.1 路由到另一个 NIC,那么您需要使用以下方法更新路由表路线命令。
例子 :
route add -net 1.2.3.4 netmask 255.0.0.0 dev eth1
route add -net 4.3.2.1 netmask 255.0.0.0 dev eth0
答案2
您要么必须专门编写代码来执行此操作,要么添加 512 条单独的 NAT 规则。该DNAT
模块将多个 IP 视为循环,而不是映射。