Linux
簡單的路由在 debian jessie 下不起作用
我正在嘗試使用 3 個虛擬 debian jessie 機器設置簡單的 enogh 系統:第一個連接到第二個,第二個連接到第三個。我希望第一個能夠 ping 第三個。
為此,我設置了靜態 IP 地址(通過 /etc/network/interfaces),如下所示:
#FIRST: eth0 inet static address 172.28.11.2 netmask 255.255.255.0 #SECOND: eth0 inet static address 172.28.11.1 netmask 255.255.255.0 eth1 inet static address 172.28.18.2 netmask 255.255.255.0 #THIRD: eth0 inet static address 172.28.18.1 netmask 255.255.255.0
我還在所有這些機器中啟用了 ipv4_forward 選項:
net.ipv4.ip_forward=1 # /etc/sysctl.conf, all machines
並檢查它是否有效(通過呼叫 cat /proc/…../ip_forward 並確保有
1
輸出)首先可以ping第二個(檢查,工作)。第二個可以ping第三個(檢查,工作)。
現在我正在嘗試設置簡單的路由表:我在第一個節點上添加此路由:
route add -net 172.28.18.0 netmask 255.255.255.0 dev eth0 gw 172.28.11.1
之後我可以 ping 172.28.11.2(其他網路遮罩中的第二個節點),但仍然無法到達 172.28.11.1(第三個節點)。
如果我執行 traceroute,我會看到路由中有一個躍
172.28.11.1
點(因此它嘗試連接那裡)但沒有運氣。我錯過了什麼?
PS 我的配置:windows 10 作為主機,vmware player 作為虛擬化,debian 8 作為所有來賓
由於您沒有提到您在第三個系統上添加了一條路由,我猜問題是第三個系統不知道如何將返回數據包路由到 172.28.11.0/24。所以你需要在那裡添加一條路線。
請注意,該
route
命令在 linux 中已被棄用很長時間了。你應該熟悉這個ip
命令,它非常強大,你可以用它做各種有趣的路由技巧。因此,您可以在第三個系統上添加所需的路由:
ip route add 172.28.11.0/24 via 172.28.18.2