無法從不同子網路存取多宿主 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在伺服器的介面上執行一個操作,我會得到這個(我的電腦是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

我可以從伺服器 ping 到我的 PC:

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,如果你不知道,它將嘗試預設網關,如果網關不知道,你就不走運了。

相關內容