我想改变这一点:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
178.212.120.5 192.168.1.254 255.255.255.255 UGH 0 0 0 eth2.2
208.67.222.222 192.168.1.254 255.255.255.255 UGH 0 0 0 eth2.2
192.168.1.0 * 255.255.255.0 U 0 0 0 eth2.2
192.168.10.0 * 255.255.255.0 U 0 0 0 br0
239.0.0.0 * 255.0.0.0 U 0 0 0 br0
default 192.168.1.254 0.0.0.0 UG 0 0 0 eth2.2
变成这样:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
178.212.120.5 192.168.1.254 255.255.255.255 UGH 0 0 0 ra0
208.67.222.222 192.168.1.254 255.255.255.255 UGH 0 0 0 ra0
192.168.1.0 * 255.255.255.0 U 0 0 0 ra0
192.168.10.0 * 255.255.255.0 U 0 0 0 br0
239.0.0.0 * 255.0.0.0 U 0 0 0 br0
default 192.168.1.254 0.0.0.0 UG 0 0 0 ra0
并按以下方式配置 NAT:
- 公共 NAT 接口带有
ra0
IP192.168.1.3
- NAT 内部子网已
192.168.10.0/24
开启br0
我遇到的问题是我知道如何使用 Linuxroute
和ifconfig
命令,但我对 一无所知iptables
。
答案1
一个“粗略而现成的”答案是使用 route 和 ifconfig 来设置 ra 接口和路由,然后发出 iptables 命令 -
/sbin/iptables -t nat -I POSTROUTING -o ra0 -j MASQUERADE
这将伪装(所有)从 ra0 发出的流量,但不伪装从 br0 发出的流量。但我注意到,ra0 的“NAT 接口”实际上不是真实世界的 IP 地址,因此要么您正在进行双重 nat,要么该 IP 地址不正确。