天天看點

Eigrp的水準分割 以及 no auto-summary 指令的含義

EIGRP協定采用Dual(彌散更新算法)來計算到達目标網絡的最佳路徑,EIGRP是一個距離矢量協定,也就是說EIGRP路由器的路由表完全是從其他的路由器學來的,但是EIGRP協定并不是一味的相信鄰居發來的路由條目,而是會通過算法來進行計算,最終放進路由表中使用,既然EIGRP協定是距離矢量協定,那麼EIGRP同樣會受到水準分割的影響。

實驗拓撲如下圖

Eigrp的水準分割 以及 no auto-summary 指令的含義

實驗配置如下

Router#config

Router(config)#hostname r0

r0(config)#int lo 0

r0(config-if)#ip add 1.1.1.1 255.255.255.0

r0(config-if)#no shut

r0(config-if)#exit

r0(config)#int f0/0

r0(config-if)#ip add 12.1.1.2 255.255.255.0

r0(config)#int f0/1

r0(config-if)#ip add 23.1.1.2 255.255.255.0

Router(config)#hostname r1

r1(config)#int f0/1

r1(config-if)#ip add 12.1.1.1 255.255.255.0   

r1(config-if)#no shut

r1(config-if)#exit

r1(config)#int f0/0

r1(config-if)#ip add 172.16.1.1 255.255.255.0

r1(config)#

Router(config)#hostname r2

r2(config)#int f0/0

r2(config-if)#ip add 23.1.1.1 255.255.255.0

r2(config-if)#no shut

r2(config)#int f0/1

r2(config-if)#ip add 172.16.2.1 255.255.255.0

r2(config-if)#exit

配置 PC 位址 測試直連通信

Eigrp的水準分割 以及 no auto-summary 指令的含義

直連通信成功,現在我們在三台路由器之間跑 EIGRP 協定

Eigrp的水準分割 以及 no auto-summary 指令的含義
Eigrp的水準分割 以及 no auto-summary 指令的含義
Eigrp的水準分割 以及 no auto-summary 指令的含義

分别宣告三台路由器的直連路由

現在我們測試一下 此時 PC0能否和PC1進行通信?

Eigrp的水準分割 以及 no auto-summary 指令的含義

我們發現PC0并不能和PC1進行通信,得到的回複資訊是目标不可達,來自R1 那麼這也就是說路由器R1上并沒有去往 172.16.2.0 這個網段的路由,我們不是剛剛宣告EIGRP了嗎?為什麼沒有條目呢?那我們先看一下 R1的路由表先

Eigrp的水準分割 以及 no auto-summary 指令的含義

通過檢視 R1的路由表,我們發現R1上并沒有去往172.16.2.0網段的路由條目,是以當他接收到目标位址為172.16.2.0的資料包之後,則進行丢棄處理

那麼我們再看一下 R0 的路由表是什麼樣子的

Eigrp的水準分割 以及 no auto-summary 指令的含義

路由器R0的路由表也沒有去往 172.16.1.0 和 172.16.2.0 的路由表

反而有一條去往 172.16.0.0 的路由,有兩個下一跳位址 進行等價負載均衡

我們再檢視一下路由器R2的路由表

Eigrp的水準分割 以及 no auto-summary 指令的含義

我們發現R2上也沒有去往  172.16.1.0  的路由表

那麼這是怎麼回事?

預設情況下 EIGRP協定開啟了自動彙總,自動彙總會把路由條目自動的彙總成主類

通過觀察路由器的路由表

我們發現,當時我們宣告的路由是 12.1.1.1 但是在路由表裡就變成了 12.0.0.0 掩碼是8位

也就是說在開啟自動彙總的情況下 A類位址自動被彙總成8位掩碼 B類位址被彙總成 16位掩碼 C類位址被彙總成了 24位掩碼

那麼為什麼在自動彙總開啟的情況下路由條目被彙總成了主類,PC0就無法和PC1進行通信呢?

首先我們要了解水準分割的概念,說的通俗點 水準分割就是 我在一個接口學習到的路由條目,就不會再從這個接口把它發出去。

那好,我們看下路由器R1,會自動的把路由條目 172.16.1.0彙總成 172.16.0.0/16

              路由器R2  會自動的把路由條目 172.16.2.0彙總成 172.16.0.0/16

經過EIGRP路由器之間互相交換自己的路由表這個過程,路由器R1要把自己直連的172.16.0.0宣告出去,經過R0傳遞給R2 那麼R2會接受到 172.16.0.0,此時R2也要把自己的172.16.0.0宣告出去,此時R2路由器就出現了水準分割。 也就是在R2的 f0/0 接口上學習到了一個 172.16.0.0 又要宣告出去一個172.16.0.0 ,是以就出現了水準分割,導緻 R1 R2的路由表出現問題,導緻 PC0和PC1無法進行正常通信。

解決方法

在EIGRP協定下使用指令 no auto-summary

既然R1 R2的路由表不完整,是因為自動彙總導緻水準分割,那麼我們就關閉自動彙總,在EIGRP的程序下使用指令

Eigrp的水準分割 以及 no auto-summary 指令的含義

分别在三台路由器的 EIGRP 程序下敲入 no auto-summary

此時我們再繼續觀察三台路由器的路由表

Eigrp的水準分割 以及 no auto-summary 指令的含義

此時 R1的路由表發生了很大變化,我們看到R1學到了 172.16.2.0 這個網段,下一跳為 12.1.1.2

再繼續觀察R0路由表

Eigrp的水準分割 以及 no auto-summary 指令的含義

R0 也分别學到了 172.16.1.0 和 172.16.2.0

Eigrp的水準分割 以及 no auto-summary 指令的含義

R2的路由表變得正常  此時我們讓PC0和PC1通信一次

Eigrp的水準分割 以及 no auto-summary 指令的含義

可見通信成功

總結: 關閉自動彙總之後 eigrp 不會把路由條目彙總成主類,那麼我們宣告的 172.16.1.0 /24 這個無類的路由條目就會出現在路由表中,我們還可以在路由表中看到 12.1.1.0/24 等等這些無類的路由條目

那麼 no auto-summary 指令的意思 我們就解釋完了

繼續閱讀