EIGRP

 EIGRP Features
  EIGRP是Cisco的私有路由協議,它綜合了距離矢量和鏈路狀態2者的優點,它的特點包括:
  1.快速收斂:EIGRP使用Diffusing Update算法(DUAL)來實現快速收斂.路由器使用EIGRP來存儲所有到達目的地的備份路由,以便進行快速切換.如果沒有合適的或備份路由在本地路由表中的話.路由器向它的鄰居進行查詢來選擇一條備份路由
  2.減少帶寬佔用:EIGRP不作週期性的更新,它只在路由的路徑和度發生變化以後做部分更新.當路徑信息改變以後,DUAL只發送那條路由信息改變了的更新,而不是發送整個路由表.和更新傳輸到一個區域內的所有路由器上的鏈路狀態路由協議相比,DUAL只發送更新給需要該更新信息的路由器
  3.支持多種網絡層協議:EIGRP通過使用protocol-dependent modules(PDMs),可以支持ApplleTalk,IP和Novell Netware等協議
  4.無縫連接數據鏈路層協議和拓撲結構:EIGRP不要求對OSI參考模型的層2協議做特別是配置.不像OSPF,OSPF對不同的層2協議要做不同配置,比如以太網和幀中繼總之,EIGRP能夠有效的工作在LAN和WAN中,而且EIGRP保證網絡不會產生環路(loop-free);而且配置起來很簡單;支持VLSM;它使用多播和單播,不使用廣播,這樣做節約了帶寬;它使用和IGRP一樣的度的算法,但是是32位長的;它可以做非等價的路徑的負載平衡
  
  EIGRP Databases
  運行了EIGRP的路由器維持3張表:neighbor table,topology table和routing table.其中neighbor table保存了和路由器建立了鄰居關係的,直接相連的路由器;topology table包含路由器學習到的到達目的地的所有路由條目,其過程如下:
  1.neighbor table中的每個鄰居都轉發1份IP路由表的拷貝給它們的鄰居
  2.然後每個鄰居把從它們自己的鄰居處得來的路由表存儲在自己的EIGRP拓撲數據庫中
  3.EIGRP檢查拓撲數據庫,然後選擇出一條到達目的地的最佳路由
  4.EIGRP從拓撲數據庫中選擇到達目的地的最佳的successor routes,然後把它們放到路由表裏.路由器爲每種協議(比如IP,IPX)各自保持1張單獨是路由表
  
  Feasible Distance vs. Advertised Distance
  爲了決定到達目的地的最佳路由(successor)和備份路由(feasible successor),EIGRP使用下面2個參數:
  1.advertised distance:EIGRP鄰居到達目標網絡的度
  2.feasible distance:到達鄰居路由器的度加上advertised distance(即鄰居到達目標網絡的度)
  路由器比較所有的FD,然後選擇FD值最低的放進IP路由表
  
  來看一個例子,如下圖:
  

 EIGRP路由協議綜述(1)(圖一)

  如圖顯示的是C的EIGRP拓撲數據庫,裏面包含了鄰居A和B的信息.A和B都知道如何到達網絡10.1.1.0/24.從圖中我們看見A到達目標網絡的advertised distance是1000;B是1500.FD分別是2000和2500.C經過比較,將FD值低的,這裏就是A的條目,作爲到達網絡10.1.1.0/24的最佳路徑
  
  EIGRP Metric Calculation
  EIGRP選擇一條主路由(最佳路由)和一條備份路由放在topology table(EIGRP到目的地支持最多6條鏈路).它支持幾種路由類型:內部,外部(非EIGRP)和彙總路由.EIGRP使用混合度
  EIGRP度的5個標準如下:
  1.帶寬:10的7次方除以源和目標之間最低的帶寬乘以256
  2.延遲(delay):接口的累積延遲乘以256,單位是微秒
  以上是默認的2個,下面是可選的3個標準:
  3.可靠性(reliability):根據keepalive而定的源和目的之間最不可靠的可靠度的值
  4.負載(loading):根據包速率和接口配置帶寬而定的源和目的之間最不差的負載的值
  5.最大傳輸單元(MTU):路徑中最小的MTU.MTU包含在EIGRP的路由更新裏,但是一般不參與EIGRP度的運算
  
  EIGRP使用DUAL來決定到達目的地的最佳路由(successor).當最佳路由出問題的時候,EIGRP不使用holddown timer而立即使用備份路由(feasible successor),這樣就使得EIGRP可以進行快速收斂
  
  看看EIGRP計算度的公式,K是常量,公式如下:
  metric=[K1*bandwidth+(K2*bandwidth)/(256?load)+K3*delay]*[K5/(reliability+K4)]
  默認:K1=1,K2=0,K3=1,K4=0,K5=0
  這樣就得到默認的度的簡化計算公式,如下:
  metric=bandwidth+delay
  注意,不推薦修改K值.K值通過EIGRP的hello包運載.如果兩個路由器的K值不匹配的話它們是不會形成鄰居關係的
  
  EIGRP Metrics Backward Compatible to IGRP
  EIGRP的度和IGRP的度能夠很好的進行兼容.IGRP的度是以24位的格式,而EIGRP是32位的格式.它們之間的關係是EIGRP的度是256倍於IGRP的度.也就是說假如IGRP的度爲1000的話,換算成EIGRP的度爲256000
  
  來看一個EIGRP度的計算的例子,如下圖:
  
 EIGRP路由協議綜述(1)(圖二)

  注意圖上各個路由器之間的鏈路帶寬,先看看A經過B,C到達D之間的度的計算,AB之間,BC之間爲T1線路,CD之間帶寬爲64kbps,計算如下:
  帶寬=10,000,000/64*256=40,000,000
  累積延遲=(2000+2000+2000)*256=1,536,000
  所以度=帶寬+累積延遲=41,536,000
  
  EIGRP Packets
  EIGRP的5種包的類型,如下:
  1.hello包:路由器使用hello包來發現鄰居,採用多播的方式
  2.update包:採用單播或多播的方式發送.更新發生在路由器啓動,拓撲或度發生變化,和路由狀態的遷移(主動到被動)
  3.query包:當路由器開始進行路由計算和沒有FD的時候,它就發送給鄰居一個可靠的查詢包來詢問是否有到達目的地的FD.查詢包通常以多播的方式發送
  4.reply包:以單播的方式發回給發出查詢包的路由起,作爲應答
  5.acknowledge(ACK)包:ACK包是採用單播的hello包,包含非0的確認數字.update包,query包和reply包均是可靠發送,所以它們都需要確認;而hello包和ACK包就不需要確認
  
  EIGRP Hello Packets
  當你在路由器的接口配置了EIGRP以後,路由器會週期性的以組多播的方式向外發送hello包.多播地址是224.0.0.10.當和它在1個AS裏的其他運行了EIGRP的路由器接收到hello包以後,就會和它形成鄰居關係.不在1個AS裏,而且度的計算方式不一樣(即K值不同),是不會形成鄰居關係的
  
  EIGRP Timers
  hello包在不同的介質上發送間隔是不一樣的,如下:
  1.在以下介質中是以每5秒進行發送:廣播型介質,比如以太網,令牌環(Token Ring)和分佈式光纖接口(FDDI);在點到點類型的串行鏈路中比如PPP和HDLC,還有幀中繼和ATM;帶寬大於T1線路的多點線路,比如交換式多兆位數據服務(SMDS),幀中繼,ATM和ISDN PRI
  2.在以下類型中間隔時間是60秒:帶寬小於T1線路的多點線路,比如ISDN BRI,幀中繼,SMDS,ATM和X.25當配置EIGRP的時候,EIGRP進程動態發現和它直接相連的運行了EIGRP的路由器.每個路由器在它自己的neighbor table中都保持的有鄰居的信息,包括到達鄰居路由器的地址和接口.還保持的有hold time.hold time是3倍於hello time
  
  EIGRP在低速鏈路上發送hello包的頻率較低,因爲hello包會佔用額外的帶寬.不過可以在接口配置模式對默認時間進行修改,使用ip hello-interval eigrp {AS-number} {seconds}命令;修改hold time的時間的命令也是在接口配置模式,使用ip hold-time eigrp {AS-number} {seconds}命令.當你修改了hello包的時間間隔以後,hold time是不會自動修改的(之前hold time=hello time*3)所以要人工進行修改
  
  EIGRP Adjacency Establishment Conditions
  即使兩個路由器的hello time和hold time相互之間不匹配,它們仍然有可能成爲鄰居.hello包包含了hold time的信息和保持跟蹤每個EIGRP鄰居路由器的hold time如果EIGRP路由器在hold time超出之前沒有收到EIGRP包,路由器就會察覺拓撲的變化.路由器刪除鄰居路由器的相關信息,包括從鄰居那裏認可的topology table條目.假如FD可用的話,EIGRP進程將進行重新收斂
  
  EIGRP不會基於次要地址(secondary address)建立鄰居關係,因爲EIGRP使用接口的主地址
  
  show ip eigrp neighbors Command
  使用show ip eigrp neighbors命令查看EIGRP鄰居關係,如下圖:
  
 EIGRP路由協議綜述(1)(圖三)

  看下各個輸出的含義,如下:
  1.neighbor address:鄰居路由器的地址,如上圖可以看出p2r2有2個鄰居
  2.queue(Q Cnt):等待發送的排隊排列的包.如果這個值持續高於0的話,說明發生了擁塞問題
  3.Smooth Round Trip Timer(SRTT):從鄰居處發送和接收包的平均回程時間.單位是毫秒.這個通常用來決定
  
  RTO(Retransmit Time Out)
  4.RTO:單位是毫秒.路由器在重新傳輸包之前等待ACK的時間
  5.hold time:定義了等待沒有從鄰居那裏接收到任何包的最大時間.當接受到新的包以後,hold timer復位
  6.Interface:本地到鄰居的接口
  
  EIGRP Reliability
  Reliable Transport Protocol(RTP)用來保證EIGRP包發送給鄰居的可靠的傳輸.RTP支持單播和多播的混合方式.出於效率問題的考慮,只有一些特定的EIGRP包需要可靠的傳輸.比如在擁有多播能力的多路訪問網絡中,比如以太網,就不需要單獨的發送可靠的hello包給所有鄰居.EIGRP發送1個單獨的hello包的多播,其中包含接收者不需要對這些包進行確認其他類型包,比如update包就需要確認.所有運載路由信息的包(update,reply和query)就需要可靠傳輸因爲它們不是週期性的發送.每個包分配的有序列號然後要求確認.這些序列號和確認就使得這些包可以可靠的傳輸ACK包和hello包,是不需要可靠性的
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章