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

實驗配置如下
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 協定
分别宣告三台路由器的直連路由
現在我們測試一下 此時 PC0能否和PC1進行通信?
我們發現PC0并不能和PC1進行通信,得到的回複資訊是目标不可達,來自R1 那麼這也就是說路由器R1上并沒有去往 172.16.2.0 這個網段的路由,我們不是剛剛宣告EIGRP了嗎?為什麼沒有條目呢?那我們先看一下 R1的路由表先
通過檢視 R1的路由表,我們發現R1上并沒有去往172.16.2.0網段的路由條目,是以當他接收到目标位址為172.16.2.0的資料包之後,則進行丢棄處理
那麼我們再看一下 R0 的路由表是什麼樣子的
路由器R0的路由表也沒有去往 172.16.1.0 和 172.16.2.0 的路由表
反而有一條去往 172.16.0.0 的路由,有兩個下一跳位址 進行等價負載均衡
我們再檢視一下路由器R2的路由表
我們發現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
此時我們再繼續觀察三台路由器的路由表
此時 R1的路由表發生了很大變化,我們看到R1學到了 172.16.2.0 這個網段,下一跳為 12.1.1.2
再繼續觀察R0路由表
R0 也分别學到了 172.16.1.0 和 172.16.2.0
R2的路由表變得正常 此時我們讓PC0和PC1通信一次
可見通信成功
總結: 關閉自動彙總之後 eigrp 不會把路由條目彙總成主類,那麼我們宣告的 172.16.1.0 /24 這個無類的路由條目就會出現在路由表中,我們還可以在路由表中看到 12.1.1.0/24 等等這些無類的路由條目
那麼 no auto-summary 指令的意思 我們就解釋完了