두 개의 CentOS VM을 사용한 간단한 구성이 있습니다. 첫 번째 VM1(VM1)은 eth0을 통해 인터넷에 액세스하고 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에서 www.google.com을 ping하려면 무엇이 빠졌나요?
답변1
당신은 잘못된 인터페이스를 속이고 있습니다. 다음과 같아야합니다.
/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE