我已将 Ubuntu 12.04 配置为网关机器,它有两个接口
eth0 with ip 192.168.122.39(Static) and
eth1 connected to modem with ip address 192.168.2.3(through DHCP).
路由器盒中已启用 ip-forwarding。
客户端机器配置为:
ip address 192.168.122.5 and gateway 192.168.122.39
客户端机器可以 ping 通路由器盒 (192.168.122.39)。但是当 ping 8.8.8.8 时,回复没有到达客户端机器,但在网关的 tcpdump 输出中,我可以看到 8.8.8.8 的回应请求,但从来没有回应。这是因为 122.5 没有将请求转发到 2.0 网络吗?您能帮我解决这个问题吗?
编辑:遵循的步骤
该机器作为 XEN HVM 运行。
路由器机器:两个接口 eth0:192.168.122.39(静态ip) 路由器上的eth1:192.168.2.3
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
ptables -A FORWARD -i eth0 -o eth1 -j 接受
在客户端计算机上
ping 8.8.8.8
在网关 tcpdump 结果上
tcpdump -v -i eth0
192.168.122.1 是虚拟网桥
tcpdump:在 eth0 上监听,链接类型 EN10MB(以太网),捕获大小 65535 字节
14:17:26.352383 IP(tos 0x0、ttl 64、id 0、偏移量 0、标志 [DF]、proto ICMP(1)、长度 84)192.168.122.1 > google-public-dns-a.google.com:ICMP 回显请求,id 1541,seq 8395,长度 64
14:17:26.938156 IP(tos 0x0、ttl 64、id 0、偏移量 0、标志 [DF]、proto ICMP(1)、长度 84)192.168.122.1 > google-public-dns-a.google.com:ICMP 回显请求,id 1513,seq 10735,长度 64
来自客户端机器的 tracepath 8.8.8.8.:
跟踪路径 8.8.8.8
1: 192.168.122.39 0.046毫秒pmtu 1500
1:192.168.122.5 0.259毫秒
1:192.168.122.5 0.188毫秒
2:无回复
3:无回复
答案1
您的调制解调器不知道如何访问 192.168.122.0/24 网络。您必须在路由器上执行 NAT,或者您必须告诉调制解调器 192.168.122.0/24 应通过 192.168.2.3 进行路由。
对于 NAT,请尝试以下规则:
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -A FORWARD -i eth0 -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
重新启动防火墙以清除旧规则。