路由環路,在現實的網絡設備工作過程中,是故障現象之一。
TTL,Time To Live,即數據包“生存期”,是IP協議包中的一個參數,每經過一臺轉發設備,TTL參數值自減一,直到值為0,該數據包被轉發設備判斷是“生存期”滿,從而被丟棄。
當發生路由環路的時候,IP數據包周而復始的在環路上的設備之間傳輸,耗費設備的資源和鏈路帶寬,直到TTL參數值耗盡,設備丟棄數據包。從這個角度看,TTL參數顯得尤為重要。
本文通過實驗,講述靜態路由環路的產生過程,以及數據包TTL參數在環路上的變化。
工具/原料
若干臺路由器、pc終端
方法/步驟
實驗拓撲如下圖:
其中F10(防火牆)、F12(防火牆)、R2(路由器)在本案例中僅僅模擬普通的終端電腦
R1、R3、R4、R5則是路由轉發設備
使用SecureCRT軟件登錄到各個設備的console接口,根據拓撲圖配置
1)、配置各個設備的相應接口的IP參數
2)、配置相關設備的靜態路由
F10默認路由指向R3的G0/1
F12默認路由指向R5的G0/1
R2默認路由指向R5的G0/0
R3默認路由指向R4的G0/4
R5默認路由指向R4的S0/2
上面配置比較簡單,不再細述。
R4默認路由指向R1的G0/0
R4上分別配置到172.16.1.0/24、172.16.2.0/24、172.16.3.0/24的靜態路由,下一跳分別指向R5的S1/1、R5的S1/1、R3的G0/0。
由於172.16.1.0/24、172.16.2.0/24、172.16.3.0/24三個網段可以路由聚合,所以在R1上一般添加聚合後的靜態路由172.16.0.0/16,下一跳指向R4的G0/6。
在R1上分別配置到192.168.34.0/24、192.168.45.0/24的靜態路由,下一跳都是R4的G0/6
R4和R1的路由表如下圖所示:
連通性測試成功:
從F12 ping F10
從F12 ping R1的G0/0口
接下來,假設R4的G0/4接口意外shutdown,則R4會自動刪除到172.16.3.0/24網段的靜態路由,然後在F12上ping測試到F10的連通性,結果如下圖。
接下來,在R1上開啟ip包轉發的調試功能,在F12上發送一個ping數據包到F10,然後看看R1輸出的調試信息,如下圖:
總結:由於R4上已經沒有到172.16.3.0/24網段的路由了,所以R4收到這個ping數據包後,通過全0的默認路由轉發給R1,R1收到數據包後,通過查找路由表,又重新將數據包發送給R4,如此反覆,直到TTL=0的時候,數據包被丟棄。TTL的初始值一般是56(不固定),也就是說,這個數據包在R4和R1之間被反覆發送了56次,當類似的數據包特別多的時候,環路的危害性大大增加,設備負荷增加,耗費大量硬件資源,下一篇介紹如何避免靜態路由環路。