1. 程式人生 > >HCNA——RIP的路由匯總

HCNA——RIP的路由匯總

network 數據包 查看 lsm 抓包 應該 class 匹配 查詢

HCNA——RIP的路由匯總

RIP V1的路由匯總

  • 路由聚合的原理是,同一個自然網段內的不同子網的路由在向外(其它網段)發送時聚合成一個網段的路由發送。

  • RIP-1的協議報文中沒有攜帶掩碼信息,故RIP-1發布的就是自然掩碼的路由。因此也不支持VLSM。

  • 在有類網絡的邊界自動匯總,並且不能關閉匯總。

PS:VLSM 可變長子網掩碼

RIP-2路由聚合

  • RIP-2支持路由聚合,因為RIP-2報文攜帶掩碼位,所以支持子網劃分。在RIP-2中進行路由聚合可提高大型網絡的可擴展性和效率,縮減路由表。

路由聚合有兩種方式。基於RIP進程的有類聚合:

  • 聚合後的路由使用自然掩碼的路由形式發布。比如,對於10.1.1.0/24(metric=2)和10.1.2.0/24(metric=3)- 這兩條路由,會聚合成自然網段路由10.0.0.0/8(metric=2)。RIP–2聚合是按類聚合的,聚合得到最優的metric值。

  • 基於接口的聚合:用戶可以指定聚合地址。比如,對於10.1.1.0/24(metric=2)和10.1.2.0/24(metric=3)這兩條路由,可以在指定接口上配置聚合路由10.1.0.0/16(metric=2)來代替原始路由。

RIP V2的路由匯總

  • 默認時在有類網絡的邊界自動匯總,但可以關閉匯總。

  • undo summary關閉匯總。

  • 如果接口啟用水平分割、毒性發轉,則不進行匯總,除非使用 “summary always”命令。

實驗開始

拓撲圖

技術分享圖片

首先配置好拓撲給出的配置接口

華為路由器環回接口配置命令,以此類推進行配置

[R1]interface LoopBack 0
[R1-LoopBack0]ip address 172.16.0.1 24

下面進行配置RIP

R1

[R1]rip 1
[R1-rip-1]version 1
[R1-rip-1]network 172.16.0.0

R2

[R2]rip 1
[R2-rip-1]version 1
[R2-rip-1]net 172.16.0.0 
[R2-rip-1]net 192.168.23.0

R3

[R3]rip
[R3-rip-1]version 1
[R3-rip-1]network 192.168.23.0
[R3-rip-1]network 10.0.0.0

下面我們在R2 g0/0/0口抓包看看

技術分享圖片

PS:一個RIP數據包最多支持25條路由表更新 配置了RIP v2和認證的話最多只能24條

技術分享圖片

分析數據包發現並沒有攜帶掩碼信息 下面我們來查看R2的路由表

技術分享圖片

首先會學習到10.0.0.0網絡 路由表 是R3發送給R2的 而且在發送中也是不帶掩碼的

有沒有發現R2收到的是10.0.0.0網絡的掩碼是8位呢?可是我的環回口配置的是24位啊 這就是RIP V1的特性了 在有類網絡的邊界自動匯總,並且不能關閉匯總。

技術分享圖片

但並不是說 左邊為C類 右邊為A類才叫做網絡邊界 即使兩邊是A類 比如左邊是20.0.0.0/8 右邊 10.0.0.0/8 這時候這路由器也是邊界路由器

下面我們再返回到R2上面查看路由表

技術分享圖片

172.16.0.0的網絡有16位 24位 而且沒有172.16.4.0的網絡 那到底是為什麽呢?

技術分享圖片

PS:因為配置RIP V1 如果發現R1 g0/0/1 發出去的數據包是在同一個主網絡的子網 那麽與g0/0/1口的掩碼相匹配的就會被發送出去 因此 最底下那條就不會被發送

下面通過抓取R1 g0/0/1 數據包看看

技術分享圖片

發現RIP V1在發送路由更新的時候不帶掩碼 那麽對方收到以後怎麽知道這些路由表的掩碼呢?

技術分享圖片
PS:R2會以接收路由表的接口的掩碼來套在發送過來的路由

那為什麽會有一條172.16.0.0/16的路由呢 不應該相匹配的掩碼是24位嗎?

PS:這裏應該存在了BUG 但變成16位的原因可能是R2認為該網絡是一個邊界 因為R2的右邊又是另外一個網絡 所以會變成16位 這裏就暫且不細究了 因為我也不懂 可以去百度查查看

從以上實驗發現RIP V1是不支持VLSM的 並且我們不想讓路由在網絡邊界進行匯總 那麽就要支持VLSM 我們下面就來開啟RIP V2

R1

[R1]rip 1
[R1-rip-1]version 2

R2

[R2]rip 1
[R2-rip-1]version 2

R3

[R3]rip 1
[R3-rip-1]version 2

重新在R2 g0/0/0 抓取數據包看看

技術分享圖片

除了攜帶網絡地址 還會攜帶掩碼 下一跳 如果下一跳是0.0.0.0的話 那麽意味著下一跳就是Src源地址 (172.16.12.2)

下面在R3查看一下RIP信息

技術分享圖片

現在已經是RIP V2了 默認路由匯總Summary:Enabled 是打開的 意味著默認情況下也是在網絡的邊界進行路由匯總 下面我們在R2查看路由匯總情況

技術分享圖片

現在為什麽10.3.3.0是24位而不是前面匯總後的八位呢?

PS:如果接口啟用水平分割、毒性發轉,則不進行匯總。默認情況下呢 RIP所有接口都是啟用了水平分割 所以我們現在看到的路由表是沒有匯總的 如果想在水平分割打開的情況下 進行匯總 除非使用 “summary always”命令

[R3]rip 1
[R3-rip-1]summary always 

再次查看R2路由表

技術分享圖片

現在則進行了路由匯總

下面再把R1 R2的路由匯總打開 summary always 命令

[R1]rip 1
[R1-rip-1]summary always
[R2]rip 1
[R2-rip-1]summary always

技術分享圖片

技術分享圖片
技術分享圖片

現在看到的3臺路由器都是進行了路由匯總 下面我們把3臺路由器的匯總關閉掉

[R1-rip-1]undo summary

[R2-rip-1]undo summary

[R3-rip-1]undo summary

技術分享圖片

回到了原來的連續路由 實際上路由表為連續路由的話不好 為什麽呢?

PS:因為路由表太大 太多的話 我們路由器轉發數據包的時候查詢的條目會很多 因此效率比較低 我們可以來做基於接口的聚合 也稱手工的路由匯總

下面我們想在路由匯總關閉的情況下 R2向R3發送路由更新的時候 不要匯總成16位 那麽我們怎麽來算它的掩碼位數呢?

技術分享圖片

172.16 是16位 加上後面全部一樣的 也就是4位 總共就是20位 掩碼就為 255.255.240.0

下面我們就可以來進行手工的路由匯總 在接口視圖下進行配置(R2 g0/0/1)

[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]rip summary-address 172.16.0.0 ?
  IP_ADDR<X.X.X.X>  IP address mask
[R2-GigabitEthernet0/0/1]rip summary-address 172.16.0.0 255.255.240.0

再到R3上面查看路由表

技術分享圖片

在R3就會看到一條路由表 而不像剛才有五條明細的路由表 這就是手工的路由匯總

下面在R2 g0/0/1 接口來進行抓包 看看數據包情況

技術分享圖片

抓包清楚的看到R2發送到R3現在只發送一條路由表 並且掩碼為我們手工配置的20位

實驗總結

  • 掌握RIP v1的路由匯總
  • 掌握RIP v2的路由匯總

HCNA——RIP的路由匯總