對於路由器而言,我們可以根據不同的情況來采用不同的出口方式,尤其是在一些高端路由組成的網絡環境中,更是需要設置好方面,這樣才能保障一個網絡的穩定運行,在配置靜態路由時,可以使用下一跳地址,也可以使用出站接口。
使用下一跳IP地址和使用出站接口會影響路由器的處理方式。
一、使用出站接口時,那麼路由將被作為直連網絡輸入路由表在串口上使用出站接口和使用下一跳IP沒有什麼區別,僅僅少了一次尋找出站接口的遞歸查詢,若在以太口上使用出站接口,則可能導致廣播網絡上出現過多的流量,而且還有可能耗盡路由器的內存。
二、使用下一跳IP地址,在串口和以太口上使用下一跳IP地址時,路由器的處理方式相同,通過查詢相應的路由條目找到下一跳地址,然後根據下一跳 IP地址遞歸查詢到出站接口,若是在串口上,無需查詢下一跳IP的相應的二層地址,因為在串口上就一個鄰居,直接發送即可,單播以及組播二層地址為 0x0f,廣播二層地址為0x8f,若是在以太口上,則發送ARP查詢,來獲得下一跳IP的MAC地址,然後發送數據包。
三、假設路由A上有一個網段1:192.168.1.0/24,路由B上有一個網段2:192.168.2.0/24。
路由A上的路由:ip route 192.168.2.0 255.255.255.0 e0/0若網段1上的主機想要訪問網段2上的主機192.168.2.1,因為路由A認為自己和192.168.2.0網段直連,所以路由器會發ARP報 文去查詢192.168.2.1的ARP地址,路由B收到ARP查後,查詢自己的路由表發現自己可以到達該網段,於是路由B會發送一個包含自己E0/0的 MAC地址的ARP給路由A,於是路由A就得到了192.168.2.1的MAC地址。
四、實際上是路由B欺騙了路由A,這就是proxy-arp,默認開啟,並緩存該條目,若網段1上的主機要訪問192.168.2.2,則會重復以 上步驟並緩存該主機的MAC地址,而192.168.2.1和192.168.2.2的MAC地址都是路由B的 E0/0的MAC地址,若網段2上有大量的主機,則路由A上可能會存在大量的ARP緩存條目,會耗盡路由器的內存。
而使用下一跳時,只會存在一條和下一跳IP對應的ARP緩存,另外在IPv6中,靜態路由的出站接口不能是以太口,因為IPv6不存在proxy-arp,取而代之的是NDP。