EIGRP:增強型內部閘道器路由選擇協議詳解
EIGRP:Ciso增強型內部閘道器路由選擇協議
EIGRP簡介:
- Cisco私有;
- 無類別距離向量協議;
- 跨層封裝協議,
- 封裝於網路層--協議號88;
- 組播更新:224.0.0.10 支援非等開銷負載均衡
- 增量更新(部分更新)----僅觸發、無週期 ---hello機制必須存在,觸發更新量小(路由非拓撲),可靠性極高
EIGRP的4大元件:
保活機制--hello
PDM---支援多種網路層協議
RTP協議---可靠協議,借鑑TCP的4種可靠傳輸機制--確認、重傳、排序、流控(更新資料不得超過佔用鏈路總頻寬的百分之50)
DUAL--擴散更新、彌散更新演算法
EIGRP的資料包型別:
Hello包 : 用於鄰居的發現,建立,保活 使用組播224.0.0.10每5秒傳送一次。
hello time 5s或60s hold time 為hello time的3倍
介面頻寬小於或等於2.048M時hello time 為60s 大於為5s;
更新包: 攜帶路由條目; 目標網路號+度量
查詢包 :(Query)
應答包:以單播方式可靠地應答查詢資料包。
確認包(ACK): 確認更新包、查詢包、應答包.以單播方式傳送。用來確認UPDATE、QUERY以及REPLY資料包。ACK分組是上面3種資料包可靠傳輸的保障。
EIGRP的工作過程:
- 當啟動配置完成後,進行hello的收發;當接收到鄰居的hello包後,建立鄰居關係,生成鄰居表;
- 當鄰居關係建立後,鄰居間使用更新包共享本地的路由表資訊,共享過程中需滿足水平分割規則;
- 各個鄰居間的路由共享完成後,裝置上生成拓撲表;
- 本地到達的最佳及備份路徑裝載於拓撲表中;
- 預設將最佳路徑加載於本地的路由表中,完成收斂;
注: 收斂完成後,僅hello包週期保活即可;沒有周期更新;
結構突變:
- 新增網段---直連新增網段裝置,直接使用更新包共享路由到鄰居即可。
- 斷開網段---直連斷開網段的裝置向所有的鄰居傳送查詢包,該查詢包將逐一通過鄰居擴散到全網;若依然存在可達路徑,那麼由直連可達路徑的裝置返還應答包到全網,讓所有路由器更新;若查詢包擴散到網路末梢,依然沒有可達路徑,由末梢裝置返回應答包到全網,更新所有裝置;
- 無法溝通----無法接收到鄰居的hello包,hold time到時時,斷開鄰居關係,刪除鄰居表;
刪除通過該鄰居學習到的所有路由資訊;
切記:更新包、查詢包、應答包均基於RTP工作;在接收到這些資料包時,本地必須進行確認,若未收到鄰居的ACK,將進行重傳,預設最大重傳16次;若16次重傳依然沒有確認,將直接斷開鄰居;是否能夠重建鄰居關係,依賴hello包;
配置:
r1(config)#router eigrp ? 啟動時需要配置AS號;
<1-65535> Autonomous system number 全網一致的程序號
r1(config)#router eigrp 90
r1(config-router)#no auto-summary //DV協議建議關閉自動彙總
宣告:1、啟用 2、路由
r1(config-router)#network 1.0.0.0
r1(config-router)#network 124.1.1.1 0.0.0.0
即可主類宣告,也可以使用反掩碼精確匹配
啟動配置完成後,所有裝置間收發hello包,建立鄰居關係,生成鄰居表:
r2#show ip eigrp neighbors
IP-EIGRP neighbors for process 90
- H Address Interface Hold Uptime SRTT RTO Q Seq
- (sec) (ms) Cnt Num
- 2 124.1.1.4 Fa0/0 11 00:00:54 36 216 0 8
- 1 23.1.1.2 Se1/1 14 00:01:08 34 204 0 11
- 0 124.1.1.1 Fa0/0 14 00:01:19 233 1398 0 8
下一跳 出介面
SRTT平均往返時間:5min內發出更新、查詢、應答後收到ACK的平均間隔時間
RTO 重傳超時時間:基於重傳到第幾次,和SRTT自動計算所得
Q CNT :標記還有多少條路由正常重傳中;
當鄰居關係建立後,鄰居間使用更新包共享路由條目;生成拓撲表:
r3#show ip eigrp topology //本地到達目標的最佳和備份路徑;
r3#show ip eigrp topology all-links //檢視本地到達路由的所有學習路徑;
r3(config)#interface s1/1
r3(config-if)#bandwidth 800
修改介面的參考頻寬;參考頻寬不影響介面的實際傳輸頻寬;將影響協議對介面的判定
【1】關於拓撲表中的字母
P 1.1.1.0/24, 1 successors, FD is 2300416
via 23.1.1.1 (2300416/156160), Serial1/0
via 34.1.1.2 (3842560/156160), Serial1/1
前端字母P標識該條目已經收斂完成,且最佳路徑一被加載於路由表中
A 2.2.2.0/24, 1 successors, FD is Inaccessible, Q
1 replies, active never, query-origin: Local origin
Remaining replies:
via 23.1.1.2, r, Serial1/1
前端字母A標識該條目正在收斂中;後端Q部分的字母,標識具體卡在哪個階段
Q 本地已經發出查詢,但是沒有收到ACK
Qr 標識已經收到ACK,當未收到應答
QR標識已經收到應答,還未回覆ACK
U 標識已經回覆ACK --若收到的應答中為新的的路徑,那麼A轉P,最佳路徑載入路由表
若收到的應答中為沒有可達路徑,刪除條目
在特殊情況下,EIGRP協議將可能卡在活動狀態;
- 網路深度過深
- 錯誤的配置或策略導致
預設存在活動計時器,計時3min;活動計時器到時時將刪除條目,同時斷開鄰居關係;
可能導致錯誤的鄰居斷開,使得網路不穩定;
解決方案:
- 針對網路深度過深--建議增大計時器
r2(config)#router eigrp 90
r2(config-router)#timers active-time ?
<1-65535> EIGRP active-state time limit in minutes
disabled disable EIGRP time limit for active state
- 在IOS12以上版本中,新增卡在活動狀態計時器
當活動計時器行進到一半時,本地發出卡在活動狀態查詢,若能收到回覆,那麼在活動計時器到時時,僅刪除條目不斷開鄰居關係;
【2】關於拓撲表中的數字
P 1.1.1.0/24, 1 successors, FD is 2300416
via 23.1.1.1 (2300416/156160), Serial1/0
via 34.1.1.2 (3842560/156160), Serial1/1
FD AD
FD:可行距離--本地到達目標的度量值
AD:通告距離--本路徑中的鄰居(下一跳)到達目標的度量值
FC:可行條件---成為備份路徑的條件---備份路徑的AD必須小於且不等於最佳路徑的FD
非等開銷負載均衡:當到達同一目標地址時,若存在兩條度量相似的路徑時,可以讓裝置將流量按比例延這些路徑同時傳輸;在EIGRP協議中,只能通過最佳和備份路徑實現;
r3#show ip protocols
EIGRP maximum metric variance 1 預設差異值為1,標識僅支援等開銷負載均衡
差異值=備份路徑的FD/最佳路徑的FD=向上取整
若修改差異值為2,那麼兩倍關係內的備份路徑將進入路由表和最佳路徑一起傳輸資料;
r3(config)#router eigrp 90
r3(config-router)#variance 2 修改差異值
正常更新包收斂後,協議會將拓撲中最佳路徑加載於路由表內:
字母D - EIGRP, EX - EIGRP external
D 標識正常通過EIGRP協議學習產生的路由;
D EX 標識通過其他協議或其他程序學習後,通過重發布技術匯入EIGRP內的路由
管理距離:
字母D標記為內部路由---管理距離為90
字母D EX標識為外部路由--管理距離為170
度量:複合度量--多種引數共同構建
Formula with default K values (K1 = 1, K2 = 0, K3 = 1, K4 = 0, K5 = 0):預設k值
r1(config)#router eigrp 90
r1(config-router)#metric weights 0 1 1 1 1 1 修改K值
K值為權重值:全網所有裝置必須一致;該引數將影響帶入運算的具體資料;
K5為0:
Metric = [K1 * BW + ((K2 * BW) / (256 – load)) + K3 * delay]
K5大於0:
Metric = [K1 * BW + ((K2 * BW) / (256 – load)) + K3 * delay] * [K5 / (reliability + K4)]
使用預設的k值時,度量=頻寬+延時
頻寬=(10^7/整段路徑最小頻寬)*256
延時=(控制層面所有入口延時的總和/10)*256
256為放大因子:
- 讓EIGRP協議相容IGRP協議
- 放大引數便於比較
切記:K值的修改不是用於直接干涉選路;而是所有度量值,擴大eigrp的工作半徑;
Eigrp工作半徑為--100跳 度量不得超過2147483647;還可以拉入其他的引數來參與運算;
真正直接影響選路的關鍵位---頻寬、延時、負載、可靠性
備註:EIGRP鄰居間hello包必須用三個引數完成一致,才可以建立鄰居關係;
- K值 2、AS號 3、認證欄位
- EIGRP擴充套件配置
- 狀態機
鄰居關係重新整理;EIGRP為增量更新協議,若需要修改之前的更新資料時,將重新整理鄰居關係;先讓鄰居刪除原有資訊,然後再接收新的路由;
- 認證
先配置祕鑰庫
r2(config)#key chain a
r2(config-keychain)#key 1
r2(config-keychain-key)#key-string cisco123
再直連鄰居的介面上呼叫
r2(config)#interface s1/1
r2(config-if)#ip authentication key-chain eigrp 90 a
r2(config-if)#ip authentication mode eigrp 90 md5
注:eigrp進行支援MD5認證,故在沒有修改模式時認證不生效
- 彙總--在更新源路由上所有更新發出的介面上配置
r3(config)#interface s1/1
r3(config-if)#ip summary-address eigrp 90 3.3.0.0 255.255.248.0
彙總後,eigrp將自動生成空介面防環路由
- 被動介面---只接收不傳送路由協議資訊;僅用於連線使用者的介面,不得用於連線鄰居的介面
r3(config)#interface s1/1
r3(config-if)#ip summary-address eigrp 90 3.3.0.0 255.255.248.0
- 加快收斂 若hello time 為5s時不建議加快收斂;若為60s可以進行修改;
r3(config)#interface s1/1
r3(config-if)#ip hello-interval eigrp 90 5
r3(config-if)#ip hold-time eigrp 90 15
鄰居間建議一致
- 預設路由
【1】在邊界路由器上先配置一條靜態預設指向ISP;然後再在邊界路由上所有連線內網的介面上進行手工彙總--彙總地址為0.0.0.0/0
r1(config)#interface fastEthernet 0/0
r1(config-if)#ip summary-address eigrp 90 0.0.0.0 0.0.0.0
【2】在邊界路由器上先配置一條靜態預設指向ISP;然後使用重發布技術,將這條靜態預設路由共享到EIGRP域內
r1(config)#router eigrp 90
r1(config-router)#redistribute static
- 干涉選路 ---偏移列表;在控制層面流量的進或出的介面上,抓取路由資訊,然後增大其中的度量值,最終影響選路;
r1(config)#access-list 1 permit 4.4.4.0 抓取網路號
r1(config)#router eigrp 90
r1(config-router)#offset-list 1 in 21 fastEthernet 0/0
ACL編號 方向 增加的數值 對應的介面