두 개의 Ubuntu 12.04 인스턴스를 실행 중인데 둘 다 서로 액세스할 수 없습니다.
기계 1:
eth0 - 10.0.0.20
eth1 - 10.0.0.30
netstat -nr:
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
기계 2:
eth0 - 10.0.0.100
eth1 - 10.0.0.40
netstat -nr:
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
두 시스템 모두 인터넷을 통해서만 서로 액세스할 수 있으며 VPC(즉, LAN)를 통해서는 액세스할 수 없습니다. 방화벽을 비활성화해도 도움이 되지 않습니다. 머신 1은 10.0.0.100으로만 ping할 수 있습니다. 머신 2는 10.0.0.30에만 ping을 보낼 수 있습니다. LAN을 통해 TCP/UDP 프로토콜의 컴퓨터에 연결할 수 없습니다. ACL이 없으며 머신의 데몬이 모든 IP, 모든 인터페이스를 수신하고 있습니다. 무엇이 문제일까요?
편집 1:
라우팅 테이블에 문제가 있었던 것 같습니다. 머신 2에서 NIC 1개를 삭제하고 몇 가지 임의 작업을 수행한 후 머신 1의 문제를 해결했습니다. 이로 인해 DHCP는 다음 규칙을 얻었습니다.
~$ ip rule
0: from all lookup local
32765: from 10.0.0.30 lookup 2
32766: from all lookup main
32767: from all lookup default
~$
Machine 2에서는 이것을 재현할 수 없지만 다음을 사용하여 규칙과 라우팅 테이블을 수동으로 추가할 수 있습니다.
ip route add default via 10.0.0.1 dev eth0
ip route add default via 10.0.0.1 dev eth1 table 2
ip rule add from 10.0.0.167 lookup 2 prio 1000
수동으로 수행하는 것을 어떻게 피할 수 있습니까?
답변1
경로를 좀 더 구체적으로 추가해 보세요. 라우팅에서는 특이성, 메트릭, 추가 순서에 따라 첫 번째로 일치하는 경로를 선호합니다.
예를 들어 머신 1에서 다음 경로를 추가합니다.
ip route add 10.0.0.40/32 dev eth1 src 10.0.0.30
그리고 머신 2에서는:
ip route add 10.0.0.30/32 dev eth1 src 10.0.0.40
두 시스템 모두에서 eth1에 대한 보다 일반적인 경로를 삭제할 수 있습니다.
ip route del 10.0.0.0/24 dev eth1
/24에 있으므로 서로 다른 서브넷에 가져오도록 노력해야 합니다. 예를 들어 두 eth1이 모두 10.0.1.0/24에 있으면 이 문제가 전혀 발생하지 않습니다.