다른 서브넷에서 멀티홈 Ubuntu에 연결할 수 없습니다.

다른 서브넷에서 멀티홈 Ubuntu에 연결할 수 없습니다.

멀티홈 Ubuntu 12.04 서버가 있습니다. 두 개의 서로 다른 IP 범위에 연결된 두 개의 네트워크 인터페이스가 있습니다.

2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    inet 190.113.X.X/29 brd 190.113.98.183 scope global eth1
(...)

3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    inet 10.100.100.21/24 brd 10.100.100.255 scope global eth0
(...)

네트워크와 관련되지 않은 다른 서브넷에서 eth0 링크의 서버에 액세스하려고 할 때마다 10.100.100.X응답이 없습니다. 서버에서 실행 중이지만 iptables(eth1에 공용 IP가 있는 경우) eth0 링크에서 개인 네트워크의 모든 트래픽을 허용합니다.

tcpdump서버의 인터페이스에서 다음을 수행하면 다음과 같은 결과가 나타납니다(내 PC는 10.100.102.22).

18:30:23.813889 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.100.102.22 tell 10.100.100.21, length 28
18:30:24.810691 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.100.102.22 tell 10.100.100.21, length 28
18:30:25.810718 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.100.102.22 tell 10.100.100.21, length 28

서버에서 내 PC로 ping을 보낼 수 있습니다.

PING 10.100.102.22 (10.100.102.22) 56(84) bytes of data.
64 bytes from 10.100.102.22: icmp_req=1 ttl=63 time=0.273 ms
64 bytes from 10.100.102.22: icmp_req=2 ttl=63 time=0.324 ms

라우팅 테이블은 다음과 같습니다. 표 1:

default via 10.100.100.1 dev eth0 
10.0.0.0/8 dev eth0  scope link  src 10.100.100.21

표 2:

default via 190.113.X.X dev eth1 
190.113.X.X/29 dev eth1  scope link  src 190.113.X.X

기본:

default via 10.100.100.1 dev eth0  metric 100 
10.100.100.0/24 dev eth0  proto kernel  scope link  src 10.100.100.21 
190.113.X.X/29 dev eth1  proto kernel  scope link  src 190.113.X.X 

답변1

클라이언트는 10.100.100.0/24 네트워크에 대한 경로도 알아야 합니다.

따라서 클라이언트에 경로를 추가해야 합니다.

ip r a 10.100.100.0/24 via 10.100.100.1 dev eth0

또는 클라이언트가 사용 중인 기본 게이트웨이에 경로를 추가해야 합니다.

다음과 같이 생각할 수 있습니다. 클라이언트는 10.100.100.21에 도달하는 방법을 알아야 합니다. 그렇지 않은 경우 기본 게이트웨이를 시도하고, 게이트웨이가 이를 알지 못하면 운이 없는 것입니다.

관련 정보