EIGRP實驗-路由更新

 

先上拓撲圖:算法

 

咱們關注R1R2之間的路由更新過程;配置好IPEIGRPide

 

等到收斂完畢以後(速度很是快,1秒左右)查看路由表:工具

 

複習,因而可知EIGRP是自動開啓了自動彙總的,如R2中將R1的【10.1.1.0/24,10.1.2.0/24,10.1.3.0/24,10.1.4.0/24】四條路由彙總成爲【10.0.0.0/8】;可是在有明細路由條目172.16.1.4/30的狀況下(使用了VLSM技術),會自動生成一條指向null0接口的主類路由條目,spa

D       172.16.0.0/16 is a summary, 00:04:06, Null0」,這樣作的目的是防止環路。code

 

R2S1/0接口SHUTDOWNblog

接着咱們打開wireshark抓包工具,抓取R1S1/1接口的數據包:接口

 

經過觀察發送時間數據包類型,咱們能夠發現,收斂完畢以後,各自間隔5秒鐘時間(速率大於T1,間隔不是精確的5秒,大體差很少)路由器會向224.0.0.10這個組播地址發送hello包;路由

而後咱們將R2S1/0(和R1相連的)接口shutdown掉,抓包:get

 

shutdown以後R1就收不到R2發送的Hello包了,直到15秒(3倍的hello報文發送間隔)以後,R1向組播地址發送了一個Goodbye Message報文,報文內容以下:it

 

 

R2S1/0接口SHUTDOWN

首先咱們猜想,S1/0shutdown以後,路由器R2確定會向它的鄰居R1發送路由更新報文,告訴鄰居「【172.16.1.4/30】這條路由失效了,把它從你的路由表(及拓撲表)裏面刪除吧!」;而後R1收到消息以後要告訴R2收到了,而且將相關條目從拓撲表和路由表中刪除!下面咱們來抓包分析:

 

首先第一個數據包是R2發送給R1的「Query 報文」,具體內容以下:

 

R2以單播的方式發送給本身的鄰居R1OpcodeQuery3)標識這是一個查詢報文;'Prefix Length'標識了掩碼長度爲30位;"Destination172.16.1.4】標識這條路由已經不可達"可是這邊奇怪的是,爲何是查詢報文,而不是更新報文??

第二個數據包是R1收到R2發送的查詢報文以後,回發的一個ACK報文:

 

還記得咱們以前說過的吧?opcode5的而且ACK不爲0的報文是ACK報文,而不是Hello報文;Acknowledge22表示是對R2發送給R1的序列號爲22Sequence22】的數據包確認;確認的同時R1由向R2發送了序列號爲21Reply報文」;緊接着R2又給R1發送了一個ACK報文,值得注意的是,每一個報文的序列號和ACK號,尤爲是R2將回復的ACK報文的序列號置爲0了,表示收斂完畢了,重置了序列號!!

 

 

R2S1/1接口開啓:

當開啓了R2S1/1接口以後,咱們能夠看出來R2當即以單播的方式向它的鄰居發送了update報文,宣告了【172.16.1.4/30,報文中還包括該條路由的延遲、帶寬等信息,用於計算度量值;隨後R1又向R2發送了ACK消息;各報文具體內容以下:

寫到這裏尚未提到的主動被動狀態以及DUAL擴散更新算法,這些將在後面慢慢道來!

相關文章
相關標籤/搜索