路由協議Enhanced Interior Gateway Routing Protocol(EIGRP)簡單介紹
EIGRP 簡介
Enhanced Interior Gateway Routing Protocol (縮寫為EIGRP),又譯增強型內部網關路由協議,一種內部網關協議(IGP),在內部網關路由協議(IGRP)的基礎上,由思科公司發展而成,於2013年Cisco將此標準公開,不再是私有的路由協議,EIGRP 屬於 Hybrid Routing Protocol (混合型),包含了 Distance-Vector 與 Link-State 的特性。就像 Link-State 一樣,EIGRP 會把相鄰的 Router 成為 Neighbor,定時檢查他們的狀態,而 EIGRP 源用了 Distance-Vector 的概念去計算 Network 的 distance(距離)。
已知目前路由可分為兩大類:
- Routing by rumor (也稱為distance-vector距離向量) 使用這類的協議如,Interior Gateway Routing Protocol (IGRP), Routing Information Protocol (RIP), and Border Gateway Protocol (BGP), 每個路由器只知道其鄰居告訴它的內容。
- Routing by propaganda (也稱為 link-state鏈路狀態) 使用這類的協議如,Open Shortest Path First (OSPF), Intermediate System-to-Intermediate System (IS-IS), 網絡中一個區域內的所有路由器都對該區域的拓撲結構有共同的理解。
EIGRP路由協定主要有以下這些特性:
EIGRP路由協定所採用的演算法為Diffusing Update Algorithm,簡稱為DUAL,這演算法類似距離向量協議。
- 路由器只使用從直接連接的鄰居收到的信息來做出路由決策。由於安全或流量工程原因,接收到的信息可以進一步過濾。
- 路由器只通告它用於直接連接的鄰居的路由。發送給鄰居的信息也可以在發送前被過濾。
然而,一些顯著差異使得EIGRP比傳統的距離向量協議更好:
- EIGRP會將從所有鄰居收到的所有路由存儲在其拓撲表中,而不僅僅是迄今收到的最佳路由。(與RIP相比,RIP只存儲最佳路由並丟棄所有其他路由。)了解多條路由後,EIGRP可以在當前路由消失後快速切換到備用路由。
- EIGRP扮演著積極的角色,當目的地變得無法到達並且沒有替代路由時,它會查詢其鄰居。 運行傳統距離矢量協議的路由器被動地等待鄰居找到更好的路由並報告它們。 由於收斂過程是主動的,而不是被動的(只是等待路由超時),因此EIGRP的收斂性與最好的鏈路狀態協議相當。
- EIGRP在鄰居之間使用hello協議,以便及早發現鄰居故障並加快收斂速度。正常的距離矢量協議依靠路由更新超時來檢測這種情況。
- EIGRP使用可靠的傳輸協議來發送和接收路由更新,這消除了定期全面更新的需要。
這些特性使得EIGRP成為現代化的路由協議,收斂和鏈路使用性能可與其他現代協議相媲美,如OSPF或IS-IS。
Initial IP EIGRP Configuration
SERVER0的IP為200.200.10.100/24,Gateway為200.200.10.251,PC3的IP為192.168.1.10/24,Gateway為192.168.1.100。
初始EIGRP配置的指令極其簡單,先用 router eigrp
Router(config)#router eigrp 100
Router(config-router)#network 200.200.10.0
Router(config-router)#network 172.16.20.0
預設情況下,Router 之間是利用 Multicast (組播)溝通的。如果網絡連線不支緩 Multicast 或因為某些原因 Multicast 未能順利傳送的話,Router 就無法成為 Neighbor。遇到這些情況,我們使用 Neighbor 指令利用 Unicast (單播)去傳送 EIGRP 封包。例如 Router2 與 Router5之間使用 Unicast,設定如下:
Router(config)#router eigrp 100
Router(config-router)#neighbor 172.16.20.1 Ethernet0/0
確認一下有沒有成功建立 Neighbor,可以用 show ip eigrp neighbors 指令。
Router#sh ip eigrp neighbors
IP-EIGRP neighbors for process 100
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 172.16.20.1 Gig0/0 14 00:09:31 40 1000 0 5
1 172.17.20.2 Gig0/1 12 00:07:57 40 1000 0 5
Router#
確認eigrp topology,可以看到目前所有路徑都已經出現。
Router#sh ip eigrp topology
IP-EIGRP Topology Table for AS 100/ID(172.17.20.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - Reply status
P 172.16.0.0/16, 1 successors, FD is 2816
via Connected, GigabitEthernet0/0
P 172.17.0.0/16, 1 successors, FD is 2816
via Connected, GigabitEthernet0/1
P 192.168.1.0/24, 1 successors, FD is 5376
via 172.17.20.2 (5376/5120), GigabitEthernet0/1
P 200.200.10.0/24, 1 successors, FD is 5376
via 172.16.20.1 (5376/5120), GigabitEthernet0/0
Router#
確認目前的ip router
Router#sh ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route
Gateway of last resort is not set
172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
C 172.16.0.0/16 is directly connected, GigabitEthernet0/0
L 172.16.20.2/32 is directly connected, GigabitEthernet0/0
172.17.0.0/16 is variably subnetted, 2 subnets, 2 masks
C 172.17.0.0/16 is directly connected, GigabitEthernet0/1
L 172.17.20.1/32 is directly connected, GigabitEthernet0/1
D 192.168.1.0/24 [90/5376] via 172.17.20.2, 00:11:46, GigabitEthernet0/1
D 200.200.10.0/24 [90/5376] via 172.16.20.1, 00:13:20, GigabitEthernet0/0
Router#
Metric值
每種 Routing Protocol 都有自己一套計算 Metric 的方法,EIGRP 又怎樣計算呢?EIGRP 的 Metric 有一條看起來頗複雜的公式:
Metric = [K1 * BW * 256 + (K2 * BW) / (256-load) + K3 * delay *256] *
[K5 / (reliability + K4)]
where BW = 10^7 Kbit / interface bandwidth (Kbit)
delay = interface delay (usec) / 10
真的有夠複雜!但因為預設 K1=1, K2=0, K3=1, K4=0, K5=0,這些叫做 K Value,而我們通常會使用預設值,很少會更改 K Value,所以公式會被簡化成:
Metric = (BW * 256 + delay * 256)
= (BW + delay) * 256
where BW = 10^7 Kbit / interface bandwidth (Kbit)
delay = interface delay (usec) / 10
先到 Router6,用 show ip eigrp topology 查看 EIGRP Topology Table。FD 所顯示的數值就是 Metric,可見在Router6要到達 2172.17.0.0/16這個 Network,Metric 是 2816,怎樣計算呢?
Router#sh ip eigrp topology
IP-EIGRP Topology Table for AS 100/ID(192.168.1.100)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - Reply status
P 172.16.0.0/16, 1 successors, FD is 3072
via 172.17.20.1 (3072/2816), GigabitEthernet0/1
P 172.17.0.0/16, 1 successors, FD is 2816
via Connected, GigabitEthernet0/1
P 192.168.1.0/24, 1 successors, FD is 5120
via Connected, GigabitEthernet0/0
P 200.200.10.0/24, 1 successors, FD is 5632
via 172.17.20.1 (5632/5376), GigabitEthernet0/1
Router#
引用剛剛說過的公式:Metric=(BW + delay) * 256。所以要先查看Router6 g0/1 這個 Interface 的 bandwidth 和 delay。
Router#sh interfaces g0/1
GigabitEthernet0/1 is up, line protocol is up (connected)
Hardware is CN Gigabit Ethernet, address is 0060.7005.7c02 (bia 0060.7005.7c02)
Internet address is 172.17.20.2/16
MTU 1500 bytes, BW 1000000 Kbit, DLY 10 usec,
- BW=10^7 / interface bandwidth = 10^7 /1000000 =10
- Delay = interface delay / 10 = 10 / 10 = 1
- Metric = (10+1) * 256 = 2816
NOTE: delay值會是累加的,而BW(bandwidth)抓路徑上最小值。
以上就是EIGRP的簡單介紹,當然EIGRP不只如此,還有一些比較深的內容,下集待續。
參考資料來源:https://www.jannet.hk/zh-Hant/post/enhanced-interior-gateway-routing-protocol-eigrp/
參考書:CIEIGRP Network Design Solutions