網絡技術:配置 EIGRP 協議


EIGRP 協議

EIGRP(Enhanced Interior Gateway Routing Protocol,增強內部網關路由選擇協議)是思科的專用協議,只能配置、運行在思科路由器上。增強的 IGRP(EIGRP)是一個無類、增強的距離矢量協議,協議中使用了自治系統的概念,處於自治系統中的路由器使用相同的路由選擇協議並共享相同的路由選擇信息。EIGRP 是支持無類路由的協議,因此在它的路由更新中包含了子網掩碼。
EIGRP 同時擁有距離矢量和鏈路狀態兩種協議的特性,因此它有時也被稱為混合型路由選擇協議。EIGRP 不會像 OSPF 那樣發送鏈路狀態數據包,它所發送的是傳統的距離矢量更新。同時 EIGPR 也擁有鏈路狀態的特性,它會在啟動時同步相鄰路由器上的路由表,並在每次拓撲結構發生改變時發送特定的更新數據。EIGRP 擁有的功能如下:

  1. 通過協議相關模塊支持 IPv4 和 IPv6;
  2. 是無類的路由協議,支持 VLSM/CIDR;
  3. 支持匯總和不連續網絡;
  4. 高效的鄰居發現;
  5. 基於可靠傳輸協議(RTP)的通信;
  6. 基於彌散更新算法(DUAL)的最佳路徑選擇。

協議相關模塊

EIGRP 可以為多種網絡層協議提供路由支持,例如 IPv4、IPX、AppleTalk 和 IPv6。EIGRP 通過使用 PDM(Protocol-Dependent Module,協議相關模塊)來實現對不同網絡層協議的支持,每個 EIGRP PDM 將會為指定的協議維護多個相互獨立的表,保存着特定協議的路由選擇信息。

鄰居發現

在配置 EIGRP 協議的路由器彼此進行路由交換之前,它們需要先成為鄰居。要建立鄰居關系必須滿足 3 個條件:

  1. 接收到 Hello 包;
  2. 實現 AS 號的匹配;
  3. 相同的度量(K值)。

EIGRP 路由器必須持續地從鄰居接收 Hello 消息,通過交換 Hello 數據包建立並保持鄰居關系。分處於不同 AS 中的 EIGRP 路由器不會自動共享路由選擇信息,並且,也不會成為鄰居,這樣可以減少路由信息量。

三張表

當 EIGRP 建立起鄰居關系時,將根據鄰居關系建立起拓撲表,拓撲表中保存了
AS 的完整拓撲信息。然后 EIGRP 才需要通報它整個的路由表信息,兩個鄰居會將自己完整的路由表通告給對方。獲取鄰居的路由之后,將只對路由表變化的部分進行傳播。當 EIGRP 路由器接收到鄰居的更新時,會將數據保存在一個本地的拓撲表中。這張表包含了從所有已知的鄰居處所了解到的所有路由,通過最短路徑算法選出最佳路由后,將最佳路由放入路由選擇表中。

表名 功能
鄰居表 記錄已建立好鄰居關系的路由器的相關信息
拓撲表 保存來自每個鄰居的有關互聯網絡中各個路由描述的路由通告
路由表 保存當前正在使用的用於路由判斷的路由

可靠傳輸協議

EIGRP 使用專用的 RTP(Reliable Transport protocol,可靠傳輸協議)來管理路由器間的消息傳輸,RTP 實現了數據更新的快速投遞以及對接收數據的跟蹤。
當 EIGRP 發送組播數據時,會維護一個應答鄰居的列表。如果 EIGRP 沒有收到某個鄰居發出的應答,那么它將嘗試切換到單播來重發同樣的數據。如果在嘗試發送了 16 次單播數據后仍然沒有得到應答,則宣告此鄰居消失。
EIGRP 使用更新數據包傳遞路由信息,而接收方使用確認數據包確認收到的更新、查詢或應答數據包。通過為每個數據包指定一個序列號,路由器可以從接收到的數據中鑒別出過時的、重復的或者是錯序的信息。
EIGRP 只在啟動時同步整個路由選擇數據庫,之后只在有變化時傳送變動的部分,從而維持路由選擇數據庫的連貫性。

彌散更新算法(DUAL)

EIGRP 使用彌散更新算法(DUAL)確定最佳路由,算法可以實現隨時的路由備份准備、支持 VLSM 和動態的路由恢復,如果沒有發現可行的繼任者路由則查詢替換路由。
EIGRP 路由器維持拓撲表,通過拓撲表計算出自己到達遠程網絡的開銷,如果最佳的路徑不可用了,只需測試拓撲表中的內容選擇出新的最佳的可替代路由。當本地的拓撲表中也沒有可替代的路由時,EIGRP 路由器會很快向鄰居求助,就是 DUAL的“彌散”特性。EIGRP 向鄰居發送查詢數據包查詢路由信息,鄰居使用應答數據包機械能響應。

支持 AS 號

在大型網絡的設計中,復雜的拓撲和冗長的路由表意味着需要用巨大的開銷才能應付。緩解大型網絡而產生的壓力呢只能是將這個大網絡分割為多個獨立的 EIGRP AS。
EIGRP 使用自治系統號來區別可共享路由信息的路由器集合,每個 AS 由一系列相鄰的路由器所組成,路由信息通過再發布可以在不同的 AS 中進行共享。
通常 EIGRP 路由的管理距離(AD)是 90,另一種被稱為外部 EIGRP 路由類型的路由的 AD 是 170,這它們所描述的網絡位於 EIGRP 自治系統外部。

EIGRP 的度量

與許多其他的只使用單一要素來比較並選擇最佳可用路徑的協議不同,EIGRP 使用了一個由帶寬、延遲、可靠性和負載 4 個要素組成的合成度量
默認情況下,EIGRP 只使用帶寬和線路的延遲來判定到達遠程網絡的最佳路徑,所使用的計算公式為:

度量 = (10 000 000 / 最慢鏈路帶寬) + (延遲總和 / 10)) × 256

IPv4 網絡配置 EIGRP

實驗拓撲

設備 接口 IP 地址 子網掩碼 默認網關
R1 G0/0 172.16.1.1 255.255.255.0 不適用
S0/0/0 172.16.3.1 255.255.255.252 不適用
S0/0/1 192.168.10.5 255.255.255.252 不適用
R2 G0/0 172.16.2.1 255.255.255.0 不適用
S0/0/0 172.16.3.2 255.255.255.252 不適用
S0/0/1 192.168.10.9 255.255.255.252 不適用
R3 G0/0 192.168.1.1 255.255.255.0 不適用
S0/0/0 192.168.10.6 255.255.255.252 不適用
S0/0/1 192.168.10.10 255.255.255.252 不適用
PC1 NIC 172.16.1.10 255.255.255.0 172.16.1.1
PC2 NIC 172.16.2.10 255.255.255.0 172.16.2.1
PC3 NIC 192.168.1.10 255.255.255.0 192.168.1.1

配置 EIGRP

使用 AS 編號 1 在每個路由器上啟用 EIGRP 路由進程,EIGRP 可用於 AS 編號的數字范圍是 1 – 65,535。

R1(config)# router eigrp 1

R2(config)# router eigrp 1

R3(config)# router eigrp 1

在每台路由器上,配置 EIGRP 以通告特定的直連子網。

R1(config-router)# network 172.16.1.0 0.0.0.255
R1(config-router)# network 172.16.3.0 0.0.0.3
R1(config-router)# network 192.168.10.4 0.0.0.3

R2(config-router)# network 172.16.2.0 0.0.0.255
R2(config-router)# network 172.16.3.0 0.0.0.3
R2(config-router)# network 192.168.10.8 0.0.0.3

R3(config-router)# network 192.168.1.0 0.0.0.255
R3(config-router)# network 192.168.10.4 0.0.0.3
R3(config-router)# network 192.168.10.8 0.0.0.3

配置被動接口,將局域網接口配置為不通告 EIGRP 更新。

R1(config-router)# passive-interface g0/0

R2(config-router)# passive-interface g0/0

R3(config-router)# passive-interface g0/0

禁用每台路由器上的自動匯總。

R1(config-router)# no auto-summary

R2(config-router)# no auto-summary

R3(config-router)# no auto-summary

驗證 EIGRP 路由

show ip eigrp neighbors 命令顯示 EIGRP 發現的鄰居,所有三台路由器應該各列有兩個鄰居。

R1# show ip eigrp neighbors

R2# show ip eigrp neighbors

R3# show ip eigrp neighbors




show ip protocols 命令顯示有關路由器上配置的所有活動 IPv4 路由協議進程的參數,和當前狀態等其他信息。

R1# show ip protocols

R2# show ip protocols

R3# show ip protocols




檢驗端到端的連通性,PC1、PC2 和 PC3 應該能彼此 ping 通。



IPv6 網絡配置 EIGRP

實驗拓撲

設備 接口 IPv6 地址 默認網關
R1 G0/0 2001:DB8:CAFE:1::1/64 不適用
S0/0/0 2001:DB8:CAFE:A001::1/64 不適用
S0/0/1 2001:DB8:CAFE:A003::1/64 不適用
R2 G0/0 2001:DB8:CAFE:2::1/64 不適用
S0/0/0 2001:DB8:CAFE:A001::2/64 不適用
S0/0/1 2001:DB8:CAFE:A002::1/64 不適用
R3 G0/0 2001:DB8:CAFE:3::1/64 不適用
S0/0/0 2001:DB8:CAFE:A003::2/64 不適用
S0/0/1 2001:DB8:CAFE:A002::2/64 不適用
PC1 NIC 2001:DB8:CAFE:1::3/64 2001:DB8:CAFE:1::1
PC2 NIC 2001:DB8:CAFE:2::3/64 2001:DB8:CAFE:2::1
PC3 NIC 2001:DB8:CAFE:3::3/64 2001:DB8:CAFE:3::1

由於之前的博客都沒有配置過 IPv6 地址,因此這里給出配置的命令。

R1(config)#int g0/0
R1(config-if)#ipv6 enable
R1(config-if)#ipv6 address 2001:DB8:CAFE:1::1/64
R1(config-if)#no shutdown
R1(config-if)#int s0/0/0
R1(config-if)#ipv6 enable
R1(config-if)#ipv6 address 2001:DB8:CAFE:A001::1/64
R1(config-if)#no shutdown
R1(config-if)#int s0/0/1
R1(config-if)#ipv6 enable
R1(config-if)#ipv6 address 2001:DB8:CAFE:A003::1/64
R1(config-if)#no shutdown

R2(config)#int g0/0
R2(config-if)#ipv6 enable
R2(config-if)#ipv6 address 2001:DB8:CAFE:2::1/64
R2(config-if)#no shutdown
R2(config-if)#int s0/0/0
R2(config-if)#ipv6 enable
R2(config-if)#ipv6 address 2001:DB8:CAFE:A001::2/64
R2(config-if)#no shutdown
R2(config-if)#int s0/0/1
R2(config-if)#ipv6 enable
R2(config-if)#ipv6 address 2001:DB8:CAFE:A002::1/64
R2(config-if)#no shutdown

R3(config)#int g0/0
R3(config-if)#ipv6 enable
R3(config-if)#ipv6 address 2001:DB8:CAFE:3::1/64
R3(config-if)#no shutdown
R3(config-if)#int s0/0/0
R3(config-if)#ipv6 enable
R3(config-if)#ipv6 address 2001:DB8:CAFE:A003::2/64
R3(config-if)#no shutdown 
R3(config-if)#int s0/0/1
R3(config-if)#ipv6 enable
R3(config-if)#ipv6 address 2001:DB8:CAFE:A002::2/64
R3(config-if)#no shutdown 

配置 IPv6 的 EIGRP 路由

在每台路由器上啟用 IPv6 路由。

R1(config)# ipv6 unicast-routing

R2(config)# ipv6 unicast-routing

R3(config)# ipv6 unicast-routing

在所有路由器上啟用 EIGRP 進程,並使用 1 作為自治系統編號。

R1(config)# ipv6 router eigrp 1
R1(config-rtr)# no shutdown

R2(config)# ipv6 router eigrp 1
R2(config-rtr)# no shutdown

R3(config)# ipv6 router eigrp 1
R3(config-rtr)# no shutdown

為每台路由器分配路由器 ID,路由器 ID 用於唯一地標識路由器。IPv4 網絡中路由器將會用它某個接口上的 IPv4 地址作為路由器 ID,但是 IPv6 地址的格式不是 32 位二進制,因此需要另外指定。

R1(config-rtr)# eigrp router-id 1.1.1.1

R2(config-rtr)# eigrp router-id 2.2.2.2

R3(config-rtr)# eigrp router-id 3.3.3.3

使用 AS 1 在每個接口上配置 IPv6 的 EIGRP,和 IPv4 使用 network 通告不同,IPv6 是直接在接口上啟用。

R1(config)# int g0/0
R1(config-if)# ipv6 eigrp 1
R1(config)# int s0/0/0
R1(config-if)# ipv6 eigrp 1
R1(config)# int s0/0/1
R1(config-if)# ipv6 eigrp 1

R2(config)# int g0/0
R2(config-if)# ipv6 eigrp 1
R2(config)# int s0/0/0
R2(config-if)# ipv6 eigrp 1
R2(config)# int s0/0/1
R2(config-if)# ipv6 eigrp 1

R3(config)# int g0/0
R3(config-if)# ipv6 eigrp 1
R3(config)# int s0/0/0
R3(config-if)# ipv6 eigrp 1
R3(config)# int s0/0/1
R3(config-if)# ipv6 eigrp 1

驗證 IPv6 的 EIGRP 路由

使用 show ipv6 eigrp neighbors 命令驗證該路由器是否已與相鄰路由器建立鄰接關系。相鄰路由器的本地鏈路地址在鄰接關系表中顯示。

R1#show ipv6 eigrp neighbors

R2#show ipv6 eigrp neighbors

R3#show ipv6 eigrp neighbors




使用 show ipv6 route 命令在所有路由器上顯示 IPv6 路由表。

R1#show ipv6 route

R2#show ipv6 route

R3#show ipv6 route




使用 show ipv6 protocols 命令驗證已配置參數。



驗證端到端連接,PC1、PC2 和 PC3 應該能彼此 ping 通。

參考資料

《思科網絡技術學院教程(第6版):擴展網絡》,[加] Bob Vachon,[美] Allan Johnson 著,思科系統公司 譯,人民郵電出版社
《CCNA 學習指南(第 7 版)》,[美] Todd Lammle 著,袁國忠 徐宏 譯,人民郵電出版社


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM