
我對我的配置感到非常困惑。
在我的伺服器中,我有 2 個介面:
eth0: 192.168.1.22 gw 192.168.1.1
eth2: 10.2.1.6 gw 10.2.1.1
我寫了一個靜態路由:
ip r a 8.8.8.8 via 192.168.1.1
worked great!!
then I deleted it and
ip r a 8.8.8.8 dev eth0
From 192.168.1.22 icmp_seq=1 Destination Host Unreachable
為什麼?
答案1
在第二種形式(ip r a 8.8.8.8 dev eth0
)中,您沒有指定網關,那麼封包應該轉送到哪個路由器?由於不知道任何網關,您的伺服器簡單地回覆「目標主機無法存取」。
指定介面很有用,原因有二:
- 如果遠端主機透過同一網關路由,則其本身可存取二
dev
不同的接口,您可以為同一網關建立兩條不同的路由。然後,您可以透過metric
或使用在兩條路線之間確定優先級ECMP 路由實現某種負載平衡; - 對於點對點介面(例如 VPN 或 tun 介面),其中所有流量均由指定介面「捕獲」(網關不重要)
答案2
ip r a 8.8.8.8 dev eth0
意思是「8.8.8.8直接連接到eth0介面」。 Linux 核心嘗試使用 arp 請求解析 MAC 位址 8.8.8.8,但未收到回應並報告「Destination Host Unreachable」錯誤