我有一个简单的网络,两台Linux机器都是ubuntu。
Linux #1 (eth0:192.168.1.10) <--> Linux #2 (eth1: 192.168.1.11) +-+ (eth2: 192.168.2.10) +--+ FW (192.168.2.11)
基本上,我希望Linux #1的流量能够在互联网上运行,我认为我需要将Linux #2作为路由器。什么在起作用
在Linux #1中,我可以平192.168.1.11和192.168.2.10,而不能平192.168.2.11。
我在Linux #2上启用了sysctl -w net.ipv4.ip_forward=1,并关闭了防火墙服务ufw停止。
在Linux#1上,我有以下路由-n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.11 0.0.0.0 UG 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0在Linux#2上,我有以下内容
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.2.11 0.0.0.0 UG 0 0 0 eth2
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2我错过了什么?
发布于 2013-10-15 09:07:24
网络配置似乎没有问题。
我认为您在这里缺少的是Linux #2计算机上的SNAT规则(或伪装为SNAT的接口)。我建议备份您的IPTables并使用以下内容:
-t nat -A POSTROUTING -o eth1 -j SNAT -至192.168.2.11
http://www.netfilter.org/documentation/HOWTO/NAT-HOWTO-6.html#ss6.1
我认为数据包到达.2.11,但由于数据包中指定的源地址,它找不到返回到Linux #1的方法。这可以确保数据包有一个源地址192.168.2.11,因此Linux #1认为它是期望的包。
https://serverfault.com/questions/545937
复制相似问题