因為rip的收斂時間長 尤其是使用過程中 鏈路down掉 重收斂的時間比較長 所以在中到大型的園區網中很少用到rip協議 只有在很小的局域網中用到rip 因為收斂時間可能會稍微短一些
所以在中大型的園區網內會用到EIGRP 路由選擇協議 收斂速度最快
EIGRP ----enhanced internat gateway routeing protocol 增強型的內部網關路由協議 思科私有協議 13年前只運行 在思科設備上 前身為IGRP (僅為有類協議 當前都不支持 ) 13年之后其他設備也可以支持 當前已經變為公有協議
核心算法 dval 既不是距離矢量又不是鏈路狀態 eigrp 使用平衡混合性協議 有些行為是距離矢量 有些行為 時鏈路狀態
歸類:1.范圍來分 ---igp 內部協議 金融網 銀行網 運行商內網等等 都屬於大型的內網
默認為100跳 可以修改到256跳
2.核心算法分類 a 距離矢量協議 例如 rip
b 鏈路狀態協議 稍微高級一些 不發送路由表中的路由信息
· 可以傳遞lsa ( 鏈路狀態信息 接口 網段等等鏈路通告) 泛洪的形式
lsa放在lsdb的鏈路狀態數據庫中
spf 最短路徑算法 提取最優路徑信息 加入路由表
鏈路狀態協議都有三張表 eigrp與ospf都有
a 鄰居表 建立鄰居用hello報文 lsa
b 鏈路狀態數據庫(拓撲表) 包含鄰居傳過來的路由信息 放置lsa信息 鏈路如何連接的信息
c 路由表 根據b拓撲表進行擴散更新計算 去往目的地有哪些路徑 並且提取最優路徑計算 生成路由表
EIGRP
不發送拓撲信息 仍舊發送路由條目信息 一個高級的距離矢量協議
b拓撲表可以用來做優化用來路由備份(只有在eigrp中才有) 一 旦最優的路由條目down掉 可以在拓撲表中以最短的時間計算出兩外一條路由 ms級別
3.無類協議
a與ripv2的相同點
需要關閉自動匯總的功能 no auto-summary
精確匯總 手工匯總
b與ripv2的不同點
eigrp支持
路由聚合-----高級的
路由匯總
路由聚合與路由匯總的區別
路由匯總:172.16.0.0/24 與172.16.1.0/24 匯總成一條172.16.0.0/23 同樣是子網
此為主b類網段 掩碼長度為16位 匯總后的掩碼長度大於或者等於16 都稱為路由匯總
路由聚合:192.168.0.0/24與192.168.1.0/24 聚合成一條192.168.0.0/23
此為主c類網段 掩碼長度為24為 聚合后的結果為23 小余24 所以稱為路由聚合
192.168.0.0/23又叫做超網 super net
支持路由聚合就支持 就支持 CIDR 無類域間路由 通過匯總或聚合的方式減少internet骨干路由條 目的數量 ripv2是特例 並不支持路由聚合 即不會存在超網路由
EIGRP 特性
a 高級的距離矢量協議 advanced distance vector
b rapid covergence 快速的收斂
c 無類路由 沒有環路
d 配置簡單 類似與rip
rip封裝:layer2 報頭|ip|udp|rip|fcs| 格式
ripv2 組播地址224.0.0.9
eigrp封裝:layer2 報頭|ip|eigrp|fcs| 格式 少了udp信息 只封裝了兩次 叫做
躍層封裝
ip中有一個protocol字段 描述上層協議字段 值用來描述直接用ip報文封裝的程序的屬性 協議號字段 88
組播地址 224.0.0.10
時間
5s 帶寬大於1.544m/bs
60s 帶寬小於1.544m/bs
holdtime 保活時間-是hello報文發送周期的3倍
e 增量更新 incremental updates
路由更新報文
rip周期性發送路由更新報文
eigrp發送更新報文有兩種情況: 增量更新
a 建立鄰接關系 發送初始的路由更新報文 包含能發送的一切路由 即初始收斂
b 當拓撲變更 鏈路崩潰 路由器down等影響到路由條目時候 會發生路由重新收斂 才會再次發送路 由條目的更新報文
f load balancing across equal-and unequal-cost pathways 支持等價負載均衡和非等價負載均衡
ecmp 等價多路徑 多條不相同的路徑 管理距離和度量值一樣
uecmp unequal cost multiple pathways 到某網段的多條不同路徑 管理距離或者度量值不一樣 均可以被加入到 路由表中 只是度量值較低的路由使用頻率會更高
默認情況下 只支持ecmp 如果想支持uecmp 需要設置一個variance 的值 值為1 僅支持ecmp 值為1-128中 的任何一個值可以支持uecmp
g flexible network design 靈活的網絡設計
h multicast and unicast instead of broadcast addrss 組播 單播替代廣播
i support for VLSM and discontiguous subnets 支持VLSM和不連續子網 所有無類的路由選擇協議均支持
j manual summarization at any point in the internetwork 手動匯總 需要關閉自動匯總
k support for multiple network layer protocols 支持不同網絡協議棧 tcp/ip appletalk ipx/spx等等 可以同時運行多 個eigrp的進程 互相不影響 MPLS VPN 需要用到此種技術
EIGRP 細節
1.表
a 鄰居表 ip eigrp neighbor table 建立鄰居之后發送routing table中的路由條目(最優的)到topologytable
內容
next-hop router | interface
b 拓撲表 topology table 比路由表多fd可行距離和ad通告距離兩項內容 每條路由條目都攜帶這兩個參數 相同目的地的多條路由有好有壞(由dual算法來計算) 有最優的和可備份的 其他的比較次的路由會被 協議給隱藏 將最優的路由條目放到routing table中 同時維護一個備份的路由
內容 destination1|
c 路由表 僅僅是最優路由條目 routing table
內容 destination1|
2.建立鄰居 (排錯注意事項) 滿足的條件
a 相同的AS號 表明自己路由器屬於哪個AS組 association
b 相同的k值 衡量路徑的優劣 k1-k5 默認值為 1 0 1 0 0 分別對應bandwidth 帶寬 dely延遲
reliability可靠性 load負載 mtu最大傳輸單位
即默認情況下 計算路徑好壞只計算帶寬和可靠性
也可以修改其他的k值
c 相同的認證
3.分組報文類型
hello問候 update與rip報文一樣
query查詢 reply應答 ack確認
dual算法:涉及到查詢和應答報文
本地計算 和擴散更新計算
本地計算是路由切換時使用 最優路由切換到備份路由繼續使用時就是本地計算
擴散更新計算 :當一台路由器丟失了一條去往某網段的路由 同時並沒有備份路由 此時需要進行此計算 詢問鄰居
步驟:
a 給鄰居發送查詢報文query 詢問去往某網段怎么走 組播
b 單播 鄰居查詢自己的路由表 如果有就單播給源路由器 告知有路由條目並發送此條目 如果沒 有同樣告 知沒有此路由 即無論有沒有路由條目都必須用發送reply應答報文
如果鄰居一直沒發送reply報文 則會dual計算失敗 會等待180s 如果還沒有 則down掉與此鄰居的 鄰接關系
4.eigrp的重置鄰居關系的三種方式:
a 三倍的hello時間未收到hello
b query報文發送后 180s內沒有收到應答
c 給對方發送了16份可靠傳輸報文重傳 都沒有收到ack應答
根據eigrp報文的格式 由於是ip格式封裝 並無可靠性可言 所以eigrp內部提供與tcp類似的可靠性的確認重 傳機制 需要ack報文的確認報文應答
確認重傳機制 支持最大的重傳次數為16次
上面五中報文中 hello報文 不需要確認重傳機制 因為周期性發送
更新報文 需要確認重傳機制 不周期性發送
查詢報文 需要確認重傳機制
應答報文 需要確認重傳機制
5.
ack與hello的區別
報文中都有一個ack位 如果置0 就是hello報文;如果置為1就是ack報文
ack只能單播 而hello可以單播也可以組播
6.EIGRP metrics 度量值計算 包括k1-k5的5個方面 取值為0-255
帶寬 延遲 負載 (默認1) 可靠性(默認255) 最大傳輸帶單元
其中可靠性指的是報文發送成功率 丟包率 來評測
負載 鏈路帶寬利用率 流量越多 負載越大 流量約少負載越小 選擇負載越小的越好 路徑越優
負載和可靠性的值默認值 負載為1 可靠性為255 不會根據鏈路的狀態而動態 改變 需要通過管理 命令來修改
MTU一般不會出現在度量值的計算當中
計算公式:k1-k5默認值為 10110
默認:
metric=bw+delay
delay=總延遲 10的-5次方為單位來表示 即10微s 為單位
bw=10的7次方/BW 單位為kb/s
metric=k1*bw+((k2*bw)/(256-load))+k3*delay
if k5 !=0
則Metric=metric*[k5/(reliablity+k4)]; 最后再*256 一般不用mtu計算度量值
實例:k1-k5如何取值
a-------b------c 為完整的路徑
負載為ab ac兩鏈路的最大值為完整路徑的負載
帶寬為ab ac兩鏈路中最小的的為完整路徑的帶寬
延遲為ab ac兩鏈路累加到一起 為完整路徑的延遲
mtu為ab ac兩鏈路的最小值
可靠性為ab ac的最小值
默認情況下只用帶寬和延遲來計算度量值
接口的選擇:統一的計算標准 基於控制層面路由流向所有入接口 提取所有入接口的所有帶寬和延遲 帶寬取 最小 延遲取和
EIGRP Path Calculation router c
a 上圖中路由器c中有三張表分別是鄰居表 拓撲表 最終路由表
b 假設目的網段為d c-a-d 和c-b-d 兩條路由
拓撲表中fd表示可行性度量值
fd最小的為最優路由 2000代表路由器 c通過a到達d 即cad的度量值 ad代表通告度量值 1000代表路由器a到達目的網段的度量值 ad的度量值
同理 fd=2500為cbd的度量值
ad=1500 為bd的度量值
c 判斷拓撲表中的路由能否成為備份路由的條件 FC 表示可行性條件專門用來選取備份路由
此路由中的ad值需要小余最優路由的fd的值 才能成為備份路由
在圖中顯示即bd的度量值小余cad的度量值 才能保證報文傳遞時距離目的地越來越近 否則如果bd大於cad表 示距 離目的地越來越遠 有可能成為環路
d 圖中successor表示最優路由的下一跳路由器 又叫后繼站
feasible successor表示次優路徑並且能夠成為備份路由的下一跳路由器
EIGRP Configuration 配置命令
a autonomous-system 進程號或者叫名字 12.4ios版本 取值范圍1-65535 必須是阿拉伯數字
15.xios版本 支持命名式的進程號 需要指定as號 兩台鄰居路由器as 號需要一致
b 關閉自動匯總 no auto-summary
c 支持兩種宣告
1.主類宣告 與rip v2類似 主類網絡號
2.精確宣告 利用通配符掩碼方式 直接指定路由器的某個接口的ip地址 宣告進eigrp進程
實例
1.需求
r1-3為路由器 運行eigrp路由選擇協議 r4 r5模擬pc機 r4獲取r5dhcp服務器分配的ip地址
r1地址 s1/0 12.1.1.1 255.255.255.0
s1/1 13.1.1.1 255.255.255.0
r2地址 f0/0 24.1.1.2 255.255.255.0
s1/1 12.1.1.2 255.255.255.0
r3地址 s1/0 13.1.1.3 255.255.255.0
f0/1 35.1.1.3 255.255.255.0
r5地址 f0/0 35.1.1.5 255.255.255.0
2.命令
a dhcp server設置
r2#int fa 0/0
#ip helper-address 35.1.1.5 中繼
r5#service dhcp
#ip dhcp pool 24
#network 24.1.1.0 255.255.255.0
#default-router 24.1.1.2
#dns-server 24.1.1.2
#ip dhcp excluded-address 24.1.1.1 24.1.1.3
#ip default-gateway 35.1.1.3
b eigrp 設置
r2#router eigrp 90 90 為eigrp進程號 id號 一般用管理距離值
#no auto-summary 取消自動匯總
#eigrp router-id 2.2.2.2 路由器id 距離矢量協議中用不到 但是在鏈路狀態協議中是重要的
建立鄰居時會用到
#network 24.1.1.2 0.0.0.0 宣告接口 更精確
#network 12.1.1.2 0.0.0.0
r1#router eigrp ccie
#address-family
ipv4
unicast autonomous-system
90
地址簇 同一個進程支持多個協議 既可以支持v4又可以支持v6 也可以同時支多個不同的 網絡
#eigrp router-id 1.1.1.1 定義路由器id
#network 12.1.1.1 0.0.0.0 宣告接口
#network 13.1.1.1 0.0.0.0
#topology base 關閉自動匯總
#no auto-summary
#show run | section router eigrp 驗證命令
同時在ipv6上運行eigrp協議
#address-family ipv6 unicast autonomous-system 90
r3#router eigrp ccie
#
address-family ipv4 unicast autonomous-system 90
#eigrp router-id 3.3.3.3
#network 13.1.1.3 0.0.0.0
#network 35.1.1.3 0.0.0.0
#topology base
#no auto-summary
實例2 手工匯總
1.r4地址 192168.1.4 255.255.255.0
r6地址 192.168.0.6 255.255.255.0
r2地址 192.168.1.2 255.255.255.0 連接r4 作為r4的網關
192.168.0.2 255.255.255.0 連接r6 作為r6的網關
取消r5的dhcp服務器功能
2.在r2的ser1/1接口 作手工匯總
#router eigrp 90
#network 192.168.0.2 0.0.0.0宣告接口
#network 192.168.1.2 0.0.0.0 之后在r1上驗證路由表
接口級別匯總 控制層面的路由流向的出接口
r2#int ser1/1
#ip summary-address eigrp 90 192.168.0.0 255.255.254.0 手工匯總的命令
192.168.0.0/23 會出現在r1的路由表中 取代之前出現的兩條路由 192.168.0.2和192.168.1.2
3.認證 與ripv2類似 eigrp但是只支持密文認證
r2#conf t
#key chain r2
#key 1
#key-string 密鑰值
#int ser1/1
#ip authentication key-chain eigrp 90 r2
#ip authentication mod eeigrp 90 md5
其中r1為15.x版本的ios所以 認證命令需要在eigrp進程中進行設置 新版本的eigrp
r1#router eigrp ccie
#address-family ipv4 unicast autonomous-system 90
#af-interface serial 1/0 進入接口 在接口下進行認證
#authentication key-chain r1
#authentication mode md5
實例3 修改路由度量值 dual重新計算最優路徑
選路 要求修改度量值 使用r2-r1-r3-r5路徑
1.准備工作
配置r2和r3新加入接口的ip地址
r2 s1/0 23.1.1.2 255.255.255.0
#router eigrp 90 進程號
#network 23.1.1.2 0.0.0.0 宣告接口
#
r3 s1/1 23.1.1.3 255.255.255.0
#router eigrp ccie 進入進程
#address-family ipv4 unicast autonomous-system 90
#network 23.1.1.3 0.0.0.0
r2#show ip route eigrp 顯示 35.1.1.0
【90/2172416】 中括號中的數值為度量值
2.計算路徑的度量值
上面的的2172416 計算的方法
路徑為r2-r3-r5 需要提取帶寬和延遲值
需要用到控制層面路由流向的入接口 r3的fa0/1 和 r2的serial1/0
r3#show interface fa0/1 顯示接口的具體信息可以看到
BW 100000kb/s DLY 100 usec 一個是帶寬 一個是延遲
根據上面的值計算
r2#BW 1544kb/s DLY 20000 usec
計算得帶寬得(10的7次方)/1544=6476 總帶寬
延遲得(20000+100)/10=2010
(6476+2010)*256=2172416
r2-r1-r3-r5的度量值就是在上面的度量值基礎之上 多計算了r1的serial1/1接口的延遲
所以為(6476+2010+2000)*256=2684416
3.使用r1的路徑 而不用直接走r3到r5
修改度量值方式與rip一樣 使用偏移列表
a r2#access-list 10 permit 35.1.1.0
#router eigrp 90
#offset-list 10 in 600000 serial 1/0
#end
#clear ip route *
驗證#show ip route eigrp
顯示路由經過r1 度量值為2684416為最優路由條目
b 聲明被動接口
r2#router eigrp 90
#passive-interface fastethernet 0/0
#passive-interface fastethernet 0/1
驗證:show ip protocol 可以查看哪些接口是被動接口 也可看到v值 非等價負載開關
c 非等價負載均衡
條件一:(最優路徑的fd)*v值》=(次優路徑的fd) 但是由於度量值不同 所以負載不一樣 一個大一個小
條件二:次優路徑的ad必須要小余最優路徑的fd
同時滿足以上兩個條件 此次優路徑就可以加入路由表 與最優路由一起負載均衡
設置v值命令
r2#router eigrp 90
#variance 2 設為2
排錯命令
a
show run | section router eigrp 查看eigrp全局的配置命令
b
show ip route eigrp 查看是否有目標路由條目 看是否有過濾
c 1.查看是否有鄰居
show ip eigrp neighbors 查看as號是否一致
2.查看宣告接口 是否有報文在排隊
show ip eigrp interfaces
3.查看k值 router eigrp 90
metric weights 0 1 0 1 0 0 其中第一個0代表 tos值 只能為0 其余一次為k1-k5
4.查看秘鑰是否啟用 並且一致
