OpenStack에서 호스팅되는 가상 Ubuntu 16.04 시스템의 두 인터페이스 간에 패킷을 라우팅하려고 합니다. 인터넷에서 찾은 정보를 토대로 저는 다음과 같이 했습니다.
# Enable ip forwarding:
sysctl -w net.ipv4.ip_forward=1
echo 'net.ipv4.ip_forward = 1' >> net.ipv4.ip_forward = 1
sysctl -p /etc/sysctl.conf
# Update IP tables:
iptables -A FORWARD -i ens3 -o ens4 -j ACCEPT
iptables -A FORWARD -i ens4 -o ens3 -j ACCEPT
이제 Linux 라우터 인터페이스와 라우팅 테이블은 다음과 같습니다.
ens3: 192.168.217.6/24
ens4: 10.0.0.13/24
ip route
default via 10.0.0.1 dev ens4
10.0.0.0/26 dev ens4 proto kernel scope link src 10.0.0.13
169.254.169.254 via 10.0.0.1 dev ens4
192.168.217.0/24 dev ens3 proto kernel scope link src 192.168.217.6
LAN 10.0.0.0/24에 머신이 있고 LAN 192.168.217.0/24에 머신이 있습니다. 둘 다 내 Linux 라우터를 기본 게이트웨이로 사용하지만 서로 ping할 수 없습니다. 그러나 LAN 10.0.0.0/24의 컴퓨터는 인터넷에 액세스할 수 있습니다.
traceroute 1.1.1.1
10.0.0.1
...
1.1.1.1
ip route
default via 10.0.0.13 dev eth0
10.0.0.0/24 dev eth0 10.0.0.14
Traceoute가 내 호스트의 기본 게이트웨이인 10.0.0.13을 사용하지 않기 때문에 이것은 이상합니다.
내가 뭘 잘못했나요? 감사해요.