Enhanced IGRP(EIGRP) and Open Shortest Path First(OSPF)

Chapter10 Enhanced IGRP(EIGRP) and Open Shortest Path First(OSPF)

  EIGRP Features and Operation

  EIGRP是1種無分類(classless),增強的距離向量路由協議,和IGRP類似,EIGRP也使用AS,但是和IGRP不同的是,EIGRP在它的路由更新信息中要包含子網掩碼的信息.這樣,在我們設計的網絡的時候,就允許我們使用VLSM和summarization.EIGRP有時候也算是混合型路由協議,因爲它同時具有了距離向量路和鏈路狀態的一些特徵:比如它不像OSPF那樣發送鏈路狀態包而發送傳統的距離向量更新;EIGRP也有鏈路狀態協議的特徵比如它在相鄰router啓動的時候同步路由表,然後只在拓撲結構發生變化的時候發送1些更新.這樣就使得EIGRP能夠很好的在

  1個大型網絡中工作.EIGRP支持的跳數多達255.EIGRP的主要特點如下:
  1.通過PDMs(Protocol-Dependent Module)來支持IP,IPX和AppleTalk
  2.有效的鄰router的發現
  3.通過可靠傳輸協議(Reliable Transport Protocol,RTP)進行通訊
  4.通過擴散更新算法(Diffusing Update Algorithm,DUAL)來選擇最佳路徑

  Protocol-Dependent Module

  EIGRP的1大特點是它可以支持幾種網絡層協議:IP,IPX和AppleTalk等.能像EIGRP那樣支持數種網絡層協議的還有Intermediate System-to-Intermediate System(IS-IS)協議,但是這個協議只支持IP和Connectionless Network Service(CLNS).EIGRP通過PDMs來支持不同的網絡層協議.每個EIGRP的PDM保持1個單獨的路由信息表來裝載某種協議(比如IP)的路由信息.也就是有IP/EIGRP表,IPX/EIGRP的表和AppleTalk/EIGRP表

  Neighbor Discovery

  在運行了EIGRP的router彼此進行交換信息之前,它們首先必須成爲鄰居(neighbor).建立鄰居關係必須滿足以下3個條件:
  1.Hello信息或接受收ACK
  2.AS號匹配
  3.K值

  鏈路狀態協議趨向於使用Hello信息來建立鄰居關係,它不會像距離向量那樣週期性的發送路由更新.爲了保持鄰居關係,運行了EIGRP的router必須持續從鄰居那裏收到Hellos

  如果不在1個AS內,router之間是不會共享路由信息的,也不會建立鄰居關係.這樣做的優點是在大型網絡中可以減少特定某個AS內路由信息的傳播

  當EIGRP發現新鄰居的時候,就開始通告整個路由表給別的router,當所有的router都知道新成員的加入,學習到新的路徑以後,從那開始,路由表中有變動的部分纔會傳播給別的router.當router接收到鄰居的更新以後,把它們保存在本地數據庫表裏

  看下幾個術語:
  1.可行距離(feasible distance):到達一個目的地的最短路由的度
  2.後繼(successor):後繼是一個直接連接的鄰居router,通過它具有到達目的地的最短路由.通過後繼router將包轉發到目的地
  3.通告距離(reported distance):相鄰router所通告的相鄰router自己到達某個目的地的最短路由的度
  4.可行後繼(feasible successor):可行後繼是一個鄰居router,通過它可以到達目的地,不使用這個router是因爲通過它到達目的地的路由的度比其他router高,但它的通告距離小於可行距離,因而被保存在拓撲表中,用做備擇路由

  Reliable Transport Protocol(RTP)

  EIGRP使用一種叫做RTP的私有協議,來管理使用了EIGRP的router之間的通信,如RTP的名字,可靠(reliable)即爲這個協議的關鍵.RTP負責EIGRP數據包到所有鄰居的有保證和按順序的傳輸.它支持多目組播或單點傳送數據包的混合傳輸/出於對效率的考慮.只有某些E IGRP數據包被保證可靠傳輸.RTP確保在相鄰router間正在進行的通信能夠被維持.因此,它爲鄰居維護了一張重傳表.該表指示還沒有被鄰居確認的數據包.未確認的可靠數據包最多可以被重傳1 6次或直到保持時間超時,以它們當中時間更長的那個爲限.EIGRP所使用的多目組播地址是224.0.0.10  Diffusing Update Algorithm(DUAL)

  EIGRP使用DUAL來選擇和保持到遠端的最佳路徑.它能使router判決某鄰居通告的一個路徑是否處於循環狀態,並允許router找到替代路徑而無須等待來自其他router的更新.這樣做有助於加快網絡的匯聚.這個算法顧及以下幾點:
  1.備份的路由線路
  2.支持VLSM
  3.動態路由恢復
  4.沒有發現線路的話發送查詢尋找新路線

  Using EIGRP to Support Large Networks

  EIGRP在大型網絡中能夠工作的很好,包含了很多優點比如:
  1.在1個單獨的router上可以支持多個AS
  2.支持VLSM和summarization
  3.路由發現和保持

  Multiple AS

  只有AS號相同的router才能共享路由信息.把大型網絡分成不同的AS,可以有效的加快匯聚.EIGRP的AD爲90,而外部EIGRP(external EIGRP)的AD爲170

  VLSM Support and Summarization

  之前說過EIGRP支持VLSM,也支持不連續子網.什麼是不連續子網?,如下圖:


  如圖可以看到,2個子網172.16.10.0/24和172.16.20.0/24由10.3.1.0/24來連接,但是routerA和B認爲它們只有網絡172.16.0.0

  EIGRP支持在任何運行EIGRP的router上summary的手動創建,這樣可以減少路由表的體積.EIGRP自動把網絡summarize到等級邊界,如下圖:

?
  Route Discovery and Maintenance
  類似一些鏈路狀態的協議,EIGRP通過Hello信息來發現鄰居;而它又和距離向量類似,使用傳聞路由的機制,即不主動去發現,而是聽從別人的信息.EIGRP使用一系列的表來存儲信息:
  1.鄰居表,記錄了鄰居的一些信息
  2.拓撲表,記錄了網絡中的拓撲狀態
  3.路由表,根據這個來做路由決定

  EIGRP Metrics

  EIGRP使用混合度,包含到4個方面:
  1.帶寬
  2.延遲(delay)
  3.負載(load)
  4.可靠性(reliability)
  5.最大傳輸單元(maximum transmission unix,MTU)

  默認情況下EIGRP使用帶寬和延遲來決定最佳路徑

  Configuration EIGRP

  配置EIGRP,首先在全局配置模式下使用router eigrp [AS號]命令.接下來再使用network命令定義直接相連的網絡.仍然可以像配置IGRP那樣使用passive-interface命令來禁止某個接口接收或發送Hello信息.並且記住EIGRP的AD是90

  來看1個配置實例,如圖:


  Router Network Address Interface Address
  RouterA 192.168.10.0 fa0/0 192.168.10.1
       192.168.20.0 s0/0 192.168.20.1
  RouterB 192.168.20.0 s0/0 192.168.20.2
       192.168.40.0 s0/1 192.168.40.1
       192.168.30.0 fa0/0 192.168.30.1
  RouterC 192.168.40.0 s0/0 192.168.40.2
       192.168.50.0 fa0/0 192.168.50.1
  配置RouterA:
  RouterA(config)#router eigrp 10
  RouterA(config-router)#network 192.168.10.0
  RouterA(config-router)#network 192.168.20.0
  RouterA(config-router)#^Z
  RouterA#
  記住配置EIGRP和配置IGRP十分類似,唯一不同的是EIGRP是無分類路由(classless routing)

  配置RouterB:
  RouterB(config)#router eigrp 10
  RouterB(config-router)#network 192.168.20.0
  RouterB(config-router)#network 192.168.30.0
  RouterB(config-router)#network 192.168.40.0
  RouterB(config-router)#^Z
  RouterB#

  配置RouterC:
  RouterC(config)#router eigrp 10
  RouterC(config-router)#network 192.168.40.0
  RouterC(config-router)#network 192.168.50.0
  RouterC(config-router)#^Z
  RouterC#

  這樣配置看上去好象沒什麼問題,EIGRP的AD比之前配置的RIPv1和IGRP的低,但是有個問題就是:增加了CPU的負擔,而且佔用了額外的帶寬
  還有1點要注意的是自動summarization,router默認會向分級邊界進行summarize.如下圖:


  A的配置如下:
  A(config)#router eigrp 100
  A(config-router)#netw 172.16.0.0
  A(config-router)#netw 10.0.0.0
  A(config-router)#no auto-summary

  B的配置如下:
  B(config)#router eigrp 100
  B(config-router)#netw 172.16.0.0
  B(config-router)#netw 10.0.0.0
  B(config-router)#no auto-summary
  使用no auto-summary命令後,運行了EIGRP的router就不會相互進行通告

  Verifying EIGRP

  在剛纔配置好的情況下使用show ip route命令查看路由信息,如下:
  RouterA#sh ip route
  (略)
  D 192.168.30.0/24 [90/2172416] via 192.168.20.2, 00:04:36, Serial0/0
  (略)
  注意字母D代表DUAL,即代表EIGRP,AD爲90

  show ip route eigrp命令只顯示路由表中的EIGRP選項

  show ip eigrp neighbors:顯示所有的EIGRP鄰居

  show ip eigrp topology:顯示EIGRP拓撲表條目,如下:
  RouterC#sh ip eigrp topology
  (略)
  P 192.168.40.0/24, 1 successors, FD is 21469856
  Via Connected, Serial0
  (略)
  注意前面的P代表passive狀態,這樣的狀態是正常的如果看見的是A即active狀態而不是P,說明router失去了到這個網絡的路徑並且在尋找替代路徑

  Open Shortest Path First(OSPF) Basics

  在1個大型網絡中,假如不是所有的設備都是Cisco的,EIGRP明顯就不行,因爲它是私有的.所以就可以使用OSPF協議或者路由redistribution(路由協議之間的翻譯服務).OSPF使用Dijkstra算法,是1種鏈路狀態協議.OSPF匯聚快速,支持多個耗費相同的路徑.和EIGRP不同的是,OSPF只支持IP路由.OSPF也能夠設計網絡爲層次化的,這樣就把1個大的網絡分割成幾個小的網絡,叫做區域(area).這是OSPF最好的設計方法.把OSPF設計成層次化的好處是:

  1.減少路由成本(overhead)
  2.加速匯聚
  3.把大網絡分割成小的區域

  下面是1個典型的OSPF設計圖,如下:

  注意這個圖,BR爲骨幹router(backbone router,BR),連接到這個骨幹的爲區域0或者骨幹區域(backbone area),OSPF必須要有個區域0所有的router應該儘可能的連接到這個區域.連接其他區域到骨幹區域的爲區域邊界router(area border router,ABR),ABR必須至少有1個接口位於區域0中.OSPF運行在1個AS中,而且能夠連接多個AS,連接多個AS的router爲自治系統邊界router(autonomous system boundary router,ASBR)
  OSPF Terminology

  來看一些OSPF的術語:
  1.link:網絡或分配給網絡的router的接口.當接口被加到OSPF的進程中以後,OSPF把它認爲成是1條連接(link)
  2.Router ID(RID):用來鑑別router的IP地址,Cisco通過使用迴環(loopback)接口的最高的IP地址來鑑別router.如果迴環接口沒有配置IP地址,OSPF將選擇所有物理接口中最高的IP地址
  3.neighbors:2個或多個擁有連接到某個網絡的接口的router
  4.adjacency:允許直接進行路由更新的運行了OSPF的2個router的關係.不像EIGRP,OSPF直接和建立了adjacency關係的鄰居共享路由信息.並不是所有的鄰居都是adjacency關係,這個取決於網絡類型和router的配置
  5.neighborship database:所有運行OSPF的能夠接收Hello信息的router的名單列表.各種信息,包括RID和狀態等,都保持在每個router的neighborship database中
  6.topology database:包含了從鏈路狀態通告(link state advertisement,LSA)包得來的信息.router把它輸入到Dijkstra算法中算出最短路徑
  7.link state advertisement:共享在運行了OSPF的router之間的鏈路狀態和路由信息.router和與它建立了adjacency關係的交換LSA包
  8.designated router(DR):多路訪問網絡中爲避免router間建立完全相鄰關係而引起大量開銷,OSPF在區域中選舉一個DR,每個router都與之建立完全相鄰關係.router用Hello信息選舉一個DR.在廣播型網絡裏Hello信息使用多播地址224.0.0.5週期性廣播,並發現鄰居.在非廣播型多路訪問網絡中,DR負責向其他router逐一發送Hello信息
  9.backup designated router(BDR):多路訪問網絡中DR的備用router,BDR從擁有adjacency關係的router接收路由更新,但是不會轉發LSA更新
  10.OSPF areas:連續的網絡和router的分組.在相同區域的router共享相同的area ID.因爲1個router1次可以成爲1個以上的區域的成員, area ID和接口產生關聯,這就允許了某些接口可以屬於區域1,而其他的屬於區域0.在相同的區域的router擁有相同的拓撲表.當你配置OSPF的時候,記住必須要有個區域0,而且這個一般配置在連接到骨幹的那個router上.區域扮演着層次話網絡的角色
  11.boradcast(multi-access):廣播型(多路訪問)網絡.比如以太網,允許多個設備連接,訪問相同的網絡;而且提供廣播的能力.在這樣的網絡中必須要有1個DR和BDR
  12.nonbroadcast multi-access(NBMA):這類網絡類型有幀中繼(Frame Relay),X.25和異步傳輸模式(Asynchronous Transfer Mode,ATM),這類網絡允許多路訪問,但是不提供廣播能力
  13.point-to-point:點對點網絡.一個物理上的串行電路連接或者是邏輯上的,不需要DR和 BDR,鄰居是自動發現的
  14.point-to-multipoint:點對多點網絡.不需要DR和BDR

  SPF Tree Calculation

  在1個區域內,每個router計算最佳最短的路徑,這個計算是基於拓撲數據庫裏的信息和最短路徑優先(shortest path first,SPF)算法的

  SPF算法是OSPF的基礎.當router啓動後,它就初始化路由協議數據結構,然後等待下層協議關於接口已可用的通知信息.當router確認接口已準備好,就用OSPF Hello信息來獲取鄰居信息,即具有在共同的網絡上接口的router.router向鄰居發送Hello包並接收它們的Hello包.除了幫助學習鄰居外,Hello包也有keep-alive的功能

  在多路訪問網絡中,Hello選出一個DR和一個BDR.DR負責爲整個網絡生成LSA,它可以減少網絡通信量和拓撲數據庫的大小

  當兩個相鄰router的鏈接狀態數據庫同步後,就稱爲鄰接.在多路訪問網絡中,DR決定哪些router應該相鄰接,拓撲數據庫在鄰接router間進行同步.鄰接控制路由協議包的分發,只在鄰接點間交換

  每個router週期性地發送LSA,提供其鄰接點的信息或當其狀態改變時通知其它router.通過對已建立的鄰接關係和鏈接狀態進行比較,失效的router可以很快被檢測出來,網絡拓撲相應地更動.從LSA生成的拓撲數據庫中,每個router計算最短路徑樹,以自己爲根.這個最短路徑樹就生成了路由表

  Cisco使用基於帶寬的度,而其他廠商是用不同的標準來痕量度的.Cisco痕量度的公式爲100,000,000/帶寬(bps).比如100Mbps的快速以太網接口的耗費就爲1,10Mbps的就爲10,64Kbps的耗費爲1563.可以使用ip ospf cost命令來修改耗費,值的範圍是1到65535

  Configuring OSPF

  在CCNA的認證課程裏,我們只討論單域(single area)的OSPF配置.配置OSPF的2個要素:
  1.啓用OSPF
  2.配置OSPF的區域

  Enabling OSPF

  啓用OSPF在全局配置模式下使用router ospf [進程ID]命令,進程ID範圍是1到65535.可以在同1個router上使用不止1個的OSPF進程,但是這並不等於多域(multi-area)的OSPF.第二個進程保持完整的拓撲數據庫的拷貝,而且獨立於第一個進程進行管理通信  Configuring OSPF Areas

  OSPF使用wildmask來進行配置,如下:
  RouterA(config)#router ospf 1
  RouterA(config-router)#network 10.0.0.0 0.255.255.255 area 0
  如上,0.255.255.255爲wildmask,0的部分表示必須精確匹配,255表示爲任意匹配.network 10.0.0.0 0.255.255.255 area 0這個命令的作用是:鑑定OSPF操作的接口,而且也會加進OSPF LSA通告的範圍呢.OSPF使用這個命令查找所有處在10.0.0.0的網絡裏的接口,然後把它們放進區域0

  來看1個配置實例,如圖:

 

  Router Network Address Interface Address
  RouterA 192.168.10.0 fa0/0 192.168.10.1
       192.168.20.0 s0/0 192.168.20.1
  RouterB 192.168.20.0 s0/0 192.168.20.2
       192.168.40.0 s0/1 192.168.40.1
       192.168.30.0 fa0/0 192.168.30.1
  RouterC 192.168.40.0 s0/0 192.168.40.2
       192.168.50.0 fa0/0 192.168.50.1

  由於OSPF的AD爲110,IGRP的爲100,EIGRP的爲90.所以要先去掉之前所配置的協議,RouterA配置如下:
  RouterA(config)#no router eigrp 10
  RouterA(config)#no router igrp 10
  RouterA(config)#no router rip
  RouterA(config)#router ospf 132
  RouterA(config-router)#network 192.168.10.1 0.0.0.0 area 0
  RouterA(config-router)#network 192.168.20.1 0.0.0.0 area 0
  RouterA(config-router)#^Z
  RouterA#

  RouterB的配置如下:
  RouterB(config)#no router eigrp 10
  RouterB(config)#no router igrp 10
  RouterB(config)#no router rip
  RouterB(config)#router ospf 1
  RouterB(config-router)#network 192.168.0.0 0.0.255.255 area 0
  RouterB(config-router)#^Z
  RouterB#
  注意這裏的參數192.168.0.0 0.0.255.255;代表查找192.168.0.0裏的任何接口,並把它們放到區域0裏


  RouterC的配置如下:
  RouterC(config)#no router eigrp 10
  RouterC(config)#no router igrp 10
  RouterC(config)#no router rip
  RouterC(config)#router ospf 64999
  RouterC(config-router)#network 192.168.4.0 0.0.0.255 area 0
  RouterC(config-router)#network 192.168.5.0 0.0.0.255 area 0
  RouterC(config-router)#^Z
  RouterC#
  Verifying OSPF Configuration

  使用show ip route命令來驗證下,如下:
  RouterA#sh ip route
  (略)
  O 192.168.30.0/24 [110/65] via 192.168.20.2, 00:01:07, Serial0/0
  (略)
  注意上面的O代表OSPF,AD爲110,度爲65

  其他的一些驗證命令:

  show ip ospf:顯示每條或所有ODPF進程的相關信息,包括RID,區域信息,SPF信息和LAS計時器信息等,如下:
  RouterA#sh ip ospf
  Routing Process “ospf 132” with ID 192.168.20.1
  (略)
  如上可知道RID爲192.168.20.1.即router的最高的那個IP地址

  show ip ospf database:顯示拓撲數據庫信息,如下:
  RouterA#sh ip ospf database
       OSPF Router with ID (192.168.20.1) (Process ID 132)
Router Link States (Area 0)
  Link ID ADV Router Age Seq# Checksum Link count
192.168.20.1 192.168.20.1 648 0x80000003 0x005E2B 3
  (略)

  show ip ospf interface:
  1.接口IP地址信息
  2.區域的分配信息
  3.進程ID
  4.RID
  5.網絡類型
  6.耗費(cost)
  7.優先級(priority)
  8.DR/BDR
  9.計時器間隔(timer intervals)
  10.鄰接的鄰居信息

  show ip ospf neighbor:顯示鄰居的信息,如果DR和BDR存在的話,它們的信息也會被顯示出來

  show ip protocols:顯示配置了的所有路由協議的相關信息

  OSPF and Loopback Interfaces

  在配置OSPF路由協議的時候配置迴環(loopback)接口是很重要的1件事.Cisco建議你配置OSPF的時候順便配置迴環接口.所謂迴環接口,是邏輯接口而非物理接口,即不是你觸摸的到的router上的真正的接口.作用是作爲診斷OSPF而用.如果router的某一個接口由於故障down 掉而不可用了,此時你怎麼通過telnet來連接並進行管理用呢?所以就引入了迴環接口是概念,迴環接口永遠不會down掉,你就可以通過連上回環接口來進行管理

  Configuring Loopback Interfaces

  配置迴環接口前先使用show ip ospf命令查看RID,接下來對接口進行配置,如下:
  RouterA的配置:
  RouterA(config)#int loopback0
  RouterA(config-if)#ip address 172.16.10.1 255.255.255.0
  RouterA(config-if)#no shut
  RouterA(config-if)#^Z
  RouterA#
  RouterB的配置:
  RouterB(config)#int lo0
  RouterB(config-if)#ip address 172.16.20.1 255.255.255.0
  RouterB(config-if)#no shut
  RouterB(config-if)#^Z
  RouterB#
  RouterC的配置:
  RouterC(config)#int lo0
  RouterC(config-if)#ip address 172.16.30.1 255.255.255.0
  RouterC(config-if)#no shut
  RouterC(config-if)#^Z
  RouterC#
  注意2個迴環接口的IP地址配置機制爲任意配置,但是IP地址必須處於不同的子網內

  Verifying Loopbacks and RIDs

  驗證迴環接口的地址,可以使用show running-config的命令查看,如下:
  RouterC#sh run
  (略)
  !
  interface Loopback0
  ip address 172.16.30.1 255.255.255.0
  !
  (略)

  可以使用show ip ospf database命令,show ip ospf interface命令和show ip ospf命令查看RID信息.記住在你重新啓動router前,新的RID是不會顯示出來的,如下,啓動後的RID信息:
  RouterC#sh ip ospf
  Routing Process “ospf 64999” with ID 172.16.30.1 and Domain ID 0.0.253.231
  (略)
  如上可以看出假如迴環接口IP地址高於物理接口IP地址,將以迴環接口的IP地址作爲新的RID

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