EIGRP

簡述


  1. IGP 支持100跳

  2. 距離矢量協議(添加了鏈路狀態特性:鄰居關係、拓撲表等)——ADV(高級距離矢量協議 )

  3. 支持VLSM和CIDR

  4. 傳輸層協議。缺省情況下,IPv4封裝,類型號爲88。

  5. 報文類型:HELLO、QUERY、REPLY、UPDATE

特性

  • 高級距離矢量

  • 快速收斂

  • 支持VLSM和不連續子網

  • 增量更新(觸發更新的一種,只把變化的路由表項發送出去,節約帶寬)

  • 支持多種網絡層協議(IPv4/IPv6/IPX/Apple Talk等),應用場合:一臺路由器上的不同接口配置了不同的網絡層協議,需要在該路由器上開啓多個EIGRP進程,分別爲不通過網絡層協議服務

  • 靈活的網絡設計(VLSM/CIDR)

  • 組播/單播,組播地址:224.0.0.10

  • 手動彙總

  • 100%無環

  • WANs和LANs的簡單配置(相對於OSPF來說的)

  • 等價/非等價負載均衡

EIGRP四大底層機制

Neighbor discovery/recovery

  • Uses hello packets between neighbors

  • 不像RIP那樣爲收到的路由條目設置各種計時器,EIGRP通過檢測鄰居狀態來判斷其傳送過來的路由有效性

  • HELLO包間隔5s或60s

  • Hold timer爲hello間隔的3倍,到期後重置鄰居關係

Reliable Transport Protocol(RTP)

  • 與媒體協議中的Real Time Protocol不同,後者是爲了防止報文亂序(對語音、視頻流量至關重要)

  • 因爲EIGRP是用IP封裝的傳輸層協議,不能保證可靠性,因此使用RTP保證可靠性(防丟包、重傳機制)

  • 若重傳報文16次之後,仍未收到ACK,則重置鄰居關係

DUAL finit-state machine

Selects lowest-cost, loop free paths to each destination

理解DUAL算法需要的術語:

  • FD 可行距離

  • AD 通告距離

  • S 後繼

  • FS 可行後繼

  • FC 可行性條件

Protocol-dependent modules(PDMs)

支持多種網絡層協議

EIGRP Tables

鄰居表

HELLO包中的TTL=1

HELLO報文用來建立鄰接關係

IP EIGRP Neighbor Table
Next-Hop RouterInterface

這裏的Interface是指自己的interface,而不是Next-Hop Router的。

拓撲表

Update傳輸路由條目,所有收到的路由條目都放入拓撲表

IP EIGRP Topology Table
Destination 1FD and AD via Each Neighbor


路由表

DUAL對Topology Table計算,得到Routing Table

IP EIGRP Routing Table
DestinationBest Route


EIGRP Packets

HELLO

組播和單播

單播手動配置,用於FR

5s bandwidth>=1.544Mbit/sEthernet

60s bandwidth<1.544Mbit/sFR子接口

Update

默認組播,只有當組播未開啓時,才手動配置單播

增量更新

Query/Reply

是DUAL的重要機制

當丟失了一條EIGRP路由時,才發送Query。

Query組播,Reply單播

ACK

本質上是ACK位爲1的HELLO報文,以單播發送

回覆Update、Query、Reply

初始路由建立

A B

| HELLO =》|

| 《=HELLO|

| 《=UPDATE|

| ACK=》  |

| UPDATE=》|

| 《=ACK  |

其中,UPDATE爲初始更新報文,包含了所有路由條目。

EIGRP Metric

複合度量值

這些參數指的都是路徑上的

Bandwidth 帶寬各網段最小值

Delay 延遲  各網段之和

Reliability 可靠性各網段最小值

Loading 負載各網段最大值

MTU 其實並沒有該參數 各網段最小值

K1、K2、K3、K4、K5默認值爲1,0,1,0,0.

Metric = [K1*BW+(K2*BW)/(256-load)+k3*Delay]

如果K5!=0,則

Metric = Metric*[K5/(Reliability+K4)]

得到IGRP的Metric。

在此基礎上,乘以256,就是EIGRP的Metric。

默認參數下,

Metric = 256*(BW + Delay)。

BW=10^7/Bandwidth,Bandwitdth單位爲Kbps,Delay單位爲10us。在路由器上,Delay的單位是us,需要轉換一下。

因此,

Metric = 256 * (10^7/Bandwidth(Kbps)+Delay(us)/10)。

需要注意的是,這裏的帶寬和延遲指的是:控制層面路由傳遞的入接口帶寬和延遲。

不要忘記環回口的入接口帶寬和延遲。


EIGRP特性

自動彙總

彙總的目的是減小路由表大小。

在主類網絡邊界上,明細路由將自動彙總成一個主類網絡路由。

在做自動彙總時,本地的路由表中將出現一條指向Null0的彙總路由,目的是在邏輯上防環和防止路由黑洞。

與RIP不同的是,EIGRP只會彙總本地產生的路由,不會彙總鄰居傳遞過來的EIGRP路由。

需要注意的是,指向Null0的彙總路由只會存在於本地,不會被傳遞出去。它的管理距離是5。

手工彙總

EIGRP同時支持彙總和聚合。

手工彙總配置位置:

儘可能接近源的路由發送的出接口上。

手工彙總可以彙總本地產生的路由和鄰居傳遞過來的EIGRP路由。

無論是內部EIGRP還是外部EIGRP的路由彙總後,都以內部EIGRP路由的形式發送。(仿真過程:redistribute connectted)

ip summary-address eigrp 90 192.168.8.0 255.255.252.0後面可以跟管理距離或leak-map(泄露列表)。

leak-map用來放走那些不希望手工彙總的明細路由。(通過ACL抓取路由)

如:

(config-if)#ip summary-address eigrp 90 192.168.8.0 255.255.252.0 leak-map TEST

(config)#access-list 10 permit 192.168.8.0 0.0.1.0

將匹配出192.168.8.0和192.168.9.0

(config)#router-map TEST permit 10

(config-route-map)#match ip address 10

leak-map:該工具用來放行手工彙總路由條目內的某些明細路由條目

route-map:在該例子中用來調用ACL抓取控制層面需要被放行的明細路由條目

ACL:用來抓取路由條目

負載均衡

支持等價和非等價負載均衡,默認情況下是等價負載均衡

默認情況下,最大支持4條負載均衡,可以用命令改爲16條。

要支持非等價負載均衡,可以:

(config-router)#variance 倍數

倍數範圍1~128

DUAL包括本地計算和擴散計算

所謂本地計算,是指在拓撲表中尋找備份路由。選擇條件是FC條件:AD(FS)<FD(S)<FD(FS)。


默認情況下,3.3.3.0/24的路由下一跳地址爲100.1.1.3。

即便設置了viriance,R2也不能成爲非等價負載均衡,原因是AD(R2)不小於FD(SW1),不滿足FC。

可以通過修改R2的f0/1接口的bandwidth或delay使其滿足FC。

WAN配置

EIGRP支持多種WAN鏈路:

P2P

NUMA

默認情況下,EIGRP最多使用50%帶寬。(未設置管理帶寬,則使用實際帶寬的50%;設置了管理帶寬,則使用管理帶寬的50%)

(config-if)#ip bandwidth-percent eigrp 進程號 百分比

DUAL算法

算法流程:

  • 跟蹤鄰居通告的所有路由,執行本地計算

  1. 選擇無環最優路由(後繼站),並記錄所有可能的備份路由(可行後繼站)。備份路由選擇條件是FC條件:AD(FS)<FD(S)<FD(FS)。

  2. 若最優路由down了,則立即使用備份路由

  • 若沒有可用的可行後繼站,則啓動擴散更新計算:

  1. 把要計算的路由條目狀態從Passive改爲Active

  2. 發送關於丟失路由條目的更新,並設置其FD爲無窮大,表示該路由條目已經不可達

  3. 向鄰居發送Query報文

  • 當路由器收到鄰居的Query報文,有多重情況:

  1. 若該路由器的路由表中,查詢者不是被查詢路由的後繼站,則將本地路由表中的後繼站路由以Reply報文的形式發送給鄰居。

  2. 若該路由器的路由表中,查詢者是被查詢路由的後繼站,則判定本地拓撲表內是否擁有該路由的備份路由:

    1. 若有,置Active,發Query;

    2. 若沒有,刪除該路由,發送Reply告知查詢者該路由不可達。

    3. 如果有,則優先更新本地路由表,將最優路由切換爲可行後繼站路由,並將其以Reply返回;

    4. 如果沒有,則判斷自己是否擁有除查詢者之外的其他鄰居:

  3. 若該路由器的路由表內無被查詢路由,則直接Reply鄰居表示該路由不可達。

EIGRP Stub

然而,DUAL算法也有缺點,有的時候需要限制Query報文的發送。

手工彙總

Stub特性

(config-router)#eigrp stub

後面可以加很多參數:connected leak-map receive-only redistributed static summary

receive-only表示只收不發,默認情況下爲connected和summary,意思是隻將直連路由和彙總路由發出去。

建議把最邊緣的路由器作爲stub路由器

summary參數是指這能發送由本地路由器彙總的路由,不能發送其他路由器彙總的路由。

static參數是指只能發送重分發至eigrp的static路由。(ip route + redistribue static)

redistributed參數是指只發送重分發至eigrp的所有類型的路由。

leak-map

Stuck in Active

如果有一個鄰居在180s之內沒能發送Reply,則重置鄰接關係,並進入SIA狀態。

改進後的方案,添加了SIA-Query和SIA-Reply報文。當180s倒計時到一半時,發送SIA-Query,若鄰居返回SIA-Reply表明還在幹活,將重置180s。

若連續發送7次SIA-Query後,仍未收到Reply,則不再發SIA-Query,待180s到時後,重置鄰接關係。

Graceful Shutdown

當路由器不再運行EIGRP或者將某網段從network通告中刪除時,將發送goodbye報文,告知鄰居此網段已經不可達。

重置鄰居關係的方式

  1. Hold timer到期

  2. 報文重傳16次之後仍未收到ACK

  3. Active timer超時

其中,對於方式2,可以通過設置ACL實現重傳16次這樣的效果。如圖:


在R1的f0/1上,設置擴展ACL,deny入站方向的EIGRP報文,命令爲:

R1(config)#access-list 100 deny eigrp host 12.1.1.2 host 224.0.0.10

R1(config)#int fa 0/1

R1(config t)#ip access-group 100 in

當R2收到R1的HELLO報文後,R2會向R1發送UPDATE報文,重傳16次之後,鄰接關係因重傳計時器超時而重置。

再當R2收到R1的HELLO報文後,重複上述動作。

建立鄰接關係的條件

  • 相同的AS號

  • 不同的Router ID

  • 相同的K值

  • 認證

小特性

修改K值

(config-rouetr)#metric weights 0 K1 K2 K3 K4 K5

修改計時器

(config-if)#ip hello-time eigrp 90 時間

(config-if)#ip hold-time eigrp 90 時間

(config-router)#timers active-time 時間

認證

EIGRP只支持MD5密文認證

鑰匙鏈認證

基於鏈路的

在R1和R2上分別執行:

(config)#key chain KEY_CHAIN_NAME

(config-keychain)#key 1

(config-keychain-key)#key-string Cisco

只有密鑰id一致且key-string一致,才能認證成功。

(config-if)#ip authentication key-chain eigrp 90 KEY_CHAIN_NAME

(config-if)#ip authentication mode eigrp 90 md5

默認情況下,只會發送密鑰id最小的密鑰,密鑰接收後只要在鑰匙鏈中找到一把匹配成功的密鑰即可單向認證成功。

如:

R1: key-chain: 10:CISCO 20:H3C 30:ARUBA

R2: key-chain: 10:TEST 20:CISCO

R2可以認證成功R1,反之不行。

高級屬性:可以用send-lifetime和accpet-lifetime限制鑰匙鏈中鑰匙的發送和接收時間。

使用這個方法,可以實現定期自動更換密鑰。


EIGRP高級特性


注入缺省路由

方式一:路由重分發

(config)#ip route 0.0.0.0 0.0.0.0 INTERFACE ADDRESS

(config)#router eigrp 90

(config-router)#redistribute static

sh ip route會出現一條外部EIGRP路由,管理距離爲170。凡是重分發至EIGRP域的都是外部EIGRP,標記爲D*EX。

方式二:network 0.0.0.0

(config)#ip route 0.0.0.0 0.0.0.0 INTERFACE

只能關聯出站接口,不能關聯下一跳地址。

然後,(config-router)#network 0.0.0.0

此時,路由表會出現一條標記爲D*的內部EIGRP路由。

方式三:ip default-network

需要三步:

(config)#ip default-network 外網主類網段

添加該主類網段路由

(config)#ip route 外網主類網絡 掩碼 INTERFACE

在EIGRP進程中,通告該主類網段

(config-router)#network 該主類網段

一般情況下,缺省路由是像0.0.0.0一樣的,但是,只有在這種方式中,路由表中會顯示缺省路由爲該外網主類網段路由。

方式四:路由聚合

路由聚合:將幾個連續的主類路由聚合起來,形成超網路由。

在AS邊界路由器連接內網的接口上,通過使用路由聚合實現缺省路由的下放。

(config-if)#ip summary-address eigrp 90 0.0.0.0 0.0.0.0

偏移列表


只能增加度量值,不能減小

(config)#access-list 10 permit 3.3.3.0

(config-router)#offset-list 10 out 600 fastEthernet 0/0


被動接口

(config-router)#passive-interface fa stEthernet 0/1

rip的被動接口不能發組播、廣播,但可以發單播,可以接收任何rip報文

但是EIGRP的被動接口不能發送和接收任何形式的EIGRP報文。

單播

在FR這樣一個NBMA環境中,若未開啓僞廣播特性,則必須使用單播特性。

(config-router)# neighbor 鄰居接口地址 本地接口

鏈路兩端必須都使用單播特性,才能建立

關閉水平分割

與RIP不同的是,不僅需要關閉物理水平分割,也要關閉邏輯水平分割。

適用於FR環境。


由於水平分割,R2和R3的路由不能互相傳遞,因此必須關閉R1的多點子接口的水平分割。命令:

(config-if)#no ip split-horizon 物理水平分割

(config-if)#no ip split-horizon eigrp 90  邏輯水平分割

http://blog.csdn.net/bingosummer/article/details/21372439(原地址)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章