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的路由彙總