為什麼推薦下一跳使用IP地址,而不是接口,一分鐘瞭解一下

概述

我們在配置靜態路由時,下一跳通常有兩種選擇,一種是配置一個接口,另一種是配置一個IP地址,如下圖所示:

為什麼推薦下一跳使用IP地址,而不是接口,一分鐘瞭解一下

下一跳的兩種方式

這兩種方式配置以後,看起來網絡都是通的,好像沒有什麼區別。但實際情況不是這樣哦,老司機都推薦下一跳使用IP地址,有沒有想過為什麼呢?我們今天就使用一個例子來闡述老司機的選擇。

舉例:下一跳配置接口

拓撲

為什麼推薦下一跳使用IP地址,而不是接口,一分鐘瞭解一下

拓撲

  • 按照拓撲搭建好測試環境
  • 在R1上訪問25.1.1.0/32網段,然後查看ARP表項

R1的配置

1. R1的接口配置

為什麼推薦下一跳使用IP地址,而不是接口,一分鐘瞭解一下

R1的F0/0接口配置

2. R1上配置一條24網段的靜態路由,這條靜態路由的下一跳使用接口

為什麼推薦下一跳使用IP地址,而不是接口,一分鐘瞭解一下

下一跳使用接口

3. 查看路由表

為什麼推薦下一跳使用IP地址,而不是接口,一分鐘瞭解一下

查看路由表

R2的配置

R2在兩個接口上配置IP,其它的就不需要了

為什麼推薦下一跳使用IP地址,而不是接口,一分鐘瞭解一下

R2配置

R5的配置

R5的配置可以不關注,它配置接口IP + 靜態路由:

為什麼推薦下一跳使用IP地址,而不是接口,一分鐘瞭解一下

R5的接口配置

為什麼推薦下一跳使用IP地址,而不是接口,一分鐘瞭解一下

靜態路由

測試過程

在R1上分別ping 20.1.1.5,20.1.1.6,20.1.1.200,查看ARP表項:

為什麼推薦下一跳使用IP地址,而不是接口,一分鐘瞭解一下

查看ARP表項

結論

如果配置下一跳為接口,則路由器會認為這是一個LAN接口,訪問和這條route在同一個網段的所有主機地址,都會發送一個ARP去請求

例如此例子中,訪問任何在25.1.1.0/24網段中的主機,R1都會發送一個ARP Request,去請求對應的MAC地址。

不知道你有沒有關注到MAC地址,為什麼這些MAC地址是R2呢?並且所有在同一個網段的IP,對應的MAC地址都是一樣的?

為什麼推薦下一跳使用IP地址,而不是接口,一分鐘瞭解一下

MAC地址

這就涉及到ARP代理的功能的了,R2知道25.1.1.0/24如何轉發,所以用它自己的MAC地址回覆了。關於ARP代理的內容,如果還有疑問,參加我之前的文章:

舉例:下一跳配置IP

R1配置

組網和配置和上面的相同,只是R1上的下一跳配置為IP地址,如下圖所示:

為什麼推薦下一跳使用IP地址,而不是接口,一分鐘瞭解一下

下一跳地址為IP

查看路由表

為什麼推薦下一跳使用IP地址,而不是接口,一分鐘瞭解一下

路由表

測試

在R1上分別ping 20.1.1.5,20.1.1.6,20.1.1.200:

為什麼推薦下一跳使用IP地址,而不是接口,一分鐘瞭解一下

ping三個地址

查看ARP表項:

為什麼推薦下一跳使用IP地址,而不是接口,一分鐘瞭解一下

ARP 表項

有沒有覺得很奇怪,只有一條靜態路由對應的ARP表項,其它的都沒有,這樣是正確的嗎?

這樣是正確的,因為配置的下一跳是IP,所以R1訪問所有在這個網段的主機,都會使用下一跳(12.1.1.2)對應的MAC去封裝

。也就是說,R1只需要發送一次ARP Request就可以了,只要這個ARP表項沒有老化,後續所有訪問25.1.1.0/24網段的主機都使用這個表項。

總結

各位小夥伴看完上面的對比,應該理解老司機為啥要推薦下一跳使用IP地址了吧?

是的,就是你想的那樣,因為下一跳使用接口時,會有如下的問題:

  • 路由器訪問每一個在同一個網段的主機時,都會發送ARP Request去獲取MAC,增加網絡中的無效流量。
  • 如果掩碼很小,則路由器需要維護的ARP表項會非常大,耗費大量的設備的CPU和內存。
  • 極端情況,如果默認路由的下一跳使用接口,則路由器訪問任何地址都需要發送ARP請求並且創建ARP表項,這耗費的資源就非常大了。

下一跳配置IP地址就沒有問題了,對於一個網段的所有主機,路由器只需要生成一條ARP表項就可以了,這樣就節省很多的資源

如果各位小夥伴還對上面的內容有疑問的話,歡迎留言討論!也非常歡迎各位關注我的頭條號,一起討論網絡問題。

最後給大家推薦一下我最近開通的專欄,專門介紹如何使用思科模擬器的。我們平常學習網絡知識,除了土豪,是不可能使用真實設備的,而模擬器能夠滿足99%的場景,因此是我們必須要掌握如何使用模擬器。專欄只要9.9,買不了吃虧,買不了上當:)


分享到:


相關文章: