我有一个简单的配置,包含两个 CentOS VM。第一个 (VM1) 通过 eth0 访问 INTERNET,并通过 eth1 上的 VM2 建立内部网络。
ping from VM1 to www.google.com -> works
ping from VM1 to VM2(172.16.73.34) -> works
ping from VM2 to VM1(712.16.73.33) -> works
ping from VM2 to eth0 on VM1 (192.167.0.101) -> works
ping from VM2 to www.google.com -> 'UNKOWN HOST'
我希望能够从 VM2 访问互联网。
VM1 configurations:
default gateway: 192.168.0.1
eth0:
inet addr: 192.168.0.101
mask: 255.255.255.0
eth1:
inet addr: 172.16.73.33
mask: 255.255.255.224
resolv.conf:
nameserver: 213.154.124.1
nameserver: 193.231.252.1
-
VM2 configurations:
default gateway: 172.16.73.33
eth1:
inet addr: 172.16.73.34
mask: 255.255.255.224
resolv.conf:
nameserver: 213.154.124.1
nameserver: 193.231.252.1
我按照一些教程向 IPTABLES 添加了一些规则:
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -F INPUT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -F OUTPUT
/sbin/iptables -P FORWARD DROP
/sbin/iptables -F FORWARD
/sbin/iptables -t nat -F
/sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE
/sbin/iptables-save > /etc/sysconfig/iptables
/sbin/service iptables restart
另外,在/etc/sysctl.conf
文件中,我有net.ipv4.ip_forwarding = 1.
为了能够从 VM2 ping 到 www.google.com,我缺少什么?
答案1
您正在伪装错误的界面。应该如下。
/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE