国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 網絡通信 > 正文

OSPF路由協議綜述及其配置(1)

2019-11-04 12:08:36
字體:
來源:轉載
供稿:網友

  鏈路狀態路由協議(link-state routing PRotocol)的一些特征:
  1.對網絡發生的變化能夠快速響應
  2.當網絡發生變化的時候發送觸發式更新(triggered update)
  3.發送周期性更新(鏈路狀態刷新),間隔時間為30分鐘
  
  鏈路狀態路由協議只在網絡拓撲發生變化以后產生路由更新.當鏈路狀態發生變化以后,檢測到變化的設備創建LSA(link state advertisement),通過使用組播地址傳送給所有的鄰居設備,然后每個設備拷貝一份LSA,更新它自己的鏈路狀態數據庫(link state database,LSDB),接著再轉發LSA給其他的鄰居設備.這種LSA的洪泛(flooding)保證了所有的路由設備在更新自己的路由表之前更新它自己的LSDB
  
  LSDB通過使用Dijkstra算法(shortest path first,SPF)來計算到達目標網絡的最佳路徑,建立一條SPF樹(tree),然后最佳路徑從SPF樹里選出來,被放進路由表里OSPF和IS-IS協議被歸類到鏈路狀態路由協議中.鏈路狀態路由協議在一個特定的區域(area)里從鄰居處收集網絡信息,一旦路由信息都被收集齊以后,每個路由器開始通過使用Dijkstra算法(SPF)獨立計算到達目標網絡的最佳路徑
  
  運行了鏈路狀態路由協議的路由器跟蹤以下信息:
  1.它們各自的鄰居
  2.在同一個區域中的所有路由器
  3.到達目標網絡的最佳路徑
  
  Link-State Data StrUCtures
  為了能夠做出更好的路由決策,OSPF路由器必須維持的有以下內容:
  1.neighbor table:也叫adjacency database.存儲了鄰居路由器的信息.假如一個OSPF路由器和它的鄰居路由器失去聯系,在幾秒中的時間內,它會標記所有到達那條路由均為無效并且重新計算到達目標網絡的路徑
  2.topology table:一般叫做LSDB.OSPF路由器通過LSA學習到其他的路由器和網絡狀況,LSA存儲在LSDB中
  3.routing table:也就是我們所說的路由表了,也叫forwarding database,包含了到達目標網絡的最佳路徑的信息
  
  鏈路狀態路由協議和距離向量路由協議的一個區別就是:距離向量路由協議是routing by rumors,也就是說,距離向量路由協議依靠鄰居發給它的信息來做路由決策,而且路由器不需要保持完整的網絡信息;而運行了鏈路狀態路由協議的路由器保持的有完整的網絡信息的快照,而且每個路由器自己做出路由決策
  
  Defining an OSPF Area
  OSPF的網絡設計要求是雙層層次化(2-layer hierarchy),包括如下2層:
  1.transit area(backbone或area 0)
  2.regular areas(nonbackbone areas)
  transit area負責的主要功能是ip包快速和有效的傳輸.transit area互聯OSPF其他區域類型.一般的,這個區域里不會出現端用戶(end user)
  regular areas負責的主要功能就是連接用戶和資源.這種區域一般是根據功能和地理位置來劃分.一般的,一個regular area不答應其他區域的流量通過它到達另外一個區域,必須穿越transit area比如area 0.regular areas還可以有很多子類型,比如stub area,locally area和not-so-stubby area
  
  在鏈路狀態路由協議中,所有的路由器都保持的有LSDB,OSPF路由器越多,LSDB就越大.這可能對了解完整的網絡信息有幫助,但是隨著網絡的增長,可擴展性的問題就會越來越大.采用的折中方案就是引入區域的概念.在某一個區域里的路由器只保持的有該區域中所有路由器或鏈路的具體信息和其他區域的一般信息.當某個路由器或某條鏈路出故障以后,信息只會在那個區域以內在鄰居之間傳遞.那個區域以外的路由器不會收到該信息.OSPF要求層次化的網絡設計,意味著所有的區域要和area 0直接相連.如下圖:
  
 

  注重area 1和area 2或3之間的連接是不答應的,它們都必須通過backbone area 0進行連接.Cisco建議每個區域中路由器的數量為50到100個構建area 0的路由器稱為骨干路由器(backbone router,BR),如上圖,A和B就是BR;區域邊界路由器(area border router,ABR)連接area 0和nonbackbone areas.如圖,C,D和E就是ABR.ABR通常具有以下特征:
  1.分隔LSA洪泛的區域
  2.是區域地址匯總的主要因素
  3.一般做為默認路由的源頭
  4.為每個區域保持LSDB
  理想的設計是使每個ABR只連接2個區域,backbone和其他區域,3個區域為上限
  
  Defining OSPF Adjacencies
  運行OSPF的路由器通過交換hello包和別的路由器建立鄰接(adjacency)關系,過程如下:
  1.路由器和別的路由器交換hello包,目標地址采用多播地址
  2.hello包交換完畢,鄰接關系形成
  3.接下來通過交換LSA和對接收方的確認進行同步LSDB.對于OSPF路由器而言,進入完全鄰接狀態
  4.假如需要的話,路由器轉發新的LSA給其他的鄰居,來保證整個區域內LSDB的完全同步
  
  對于點到點的WAN串行連接,兩個OSPF路由器通常使用HDLC或PPP來形成完全鄰接狀態
  對于LAN連接,選舉一個路由器做為designated router(DR)再選舉一個做為backup designated router(BDR),所有其他的和DR以及BDR相連的路由器形成完全鄰接狀態而且只傳輸LSA給DR和BDR.DR從鄰居處轉發更新到另外一個鄰居那里.DR的主要功能就是在一個LAN內的所有路由器擁有相同的數據庫,而且把完整的數據庫信息發送給新加入的路由器.路由器之間還會和LAN內的其他路由器(非DR/BDR,即DROTHERs)維持一種部分鄰居關系(two-way adjacency)
  
  OSPF的鄰接一旦形成以后,會交換LSA來同步LSDB,LSA將進行可靠的洪泛
  
  OSPF Calculation
  鏈路狀態陸游協議使用Dijkstra算法來查找到達目標網絡中的最佳路徑.所有的路由器擁有相同的LSDB后,把自己放進SPF tree中的root里,然后根據每條鏈路的耗費(cost),選出耗費最低的做為最佳路徑,最后把最佳路徑放進forwarding database(路由表)里
  
  下圖就是一個SPF計算的例子:
  
 

  1.LSA遵循split horizon原則,H對E宣告它的存在,E把H的宣告和它自己的宣告再傳給C和G;C和G再和之前類似,繼續傳播開來……
  2.X有4個鄰居:A,B,C和D,假設這里都是以太網,每條網鏈路的耗費為10,經過計算,路由器可以算出最佳路徑.上圖的右半部分實線所標即為最佳路徑
  
  LS Data Structures: LSA Options
  關于LSA的操作流程圖如下:
  
 

  如圖可以看出當路由器收到一個LSA以后,先會查看它自己的LSDB看有沒有相應的條目,假如沒有就加進自己的LSDB中去,并反饋LSA確認包(LSAck),接著再繼續洪泛LSA,最后運行SPF算法算出新的路由表
  假如當它收到LSA的時候,自己的LSDB有該條目而且版本號一樣,就忽略這個LSA;假如有相應條目,但是收到的LSA的版本號更新,就加進自己的LSDB中,發回LSAck,洪泛LSA,最后用SPF計算最佳路徑;假如版本號沒有自己LSDB中那條新,就反饋LSU信息給發送源
  
  Types of OSPF Packets
  OSPF包的5種類型如下:
  1.hello:用來建立鄰居關系的包
  2.database description(DBD):用來檢驗路由器之間數據庫的同步
  3.link state request(LSR):鏈路狀態請求包
  4.link state update(LSU):特定鏈路之間的請求記錄
  5.link state acknowledgement(LSAck):確認包
  
  OSPF Packet Header Format
  5種OSPF包都是直接被封裝在IP包里的而不使用TCP或UDP.由于沒有使用可靠的TCP協議,但是OSPF包又要求可靠的傳輸,所以就有了LSAck包.如下圖所示就是OSPF包在IP包里的形式:
  
 

  協議號為89(EIGRP協議號為8,一些字段如下:
  1.Version Number:當前為OSPF版本2
  2.Type:定義OSPF包的類型
  3.Packet Length:包的長度,單位字節
  4.Router ID(RID):產生OSPF包的源路由器
  5.Area ID:定義OSPF包是從哪個area產生出來的
  6.Checksum(校驗和):錯誤校驗
  7.Authentication Type:驗證方法,可以是明文(cleartext)密碼或者是Message Digest 5(md5)加密格式
  8.Data:對于hello包來說,該字段是已知鄰居的列表;對于DBD包來說,該字段包含的是LSDB的匯總信息,包括RID等等;對于LSR包來說,該字段包含的是需要的LSU類型和需要的LSU類型的RID;對于LSU包來說,包含的是完全的LSA條目,多個LSA條目可以裝在一個包里;對于LSAck來說,字段為空
  
  OSPF Neighbor Adjacency Establishment
  Hello協議用來建立和保持OSPF鄰居關系,采用多播地址224.0.0.5,hello包包含的信息如下:
  1.Router ID(RID):路由器的32位長的一個唯一標識符,選舉規則是,假如loopback接口不存在的話,就選物理接口中IP地址等級最高的那個;否則就選取loopback接口
  2.hello/dead intervals:定義了發送hello包頻率(默認在一個多路訪問網絡中間隔為10秒);dead間隔是4倍于hello包間隔.鄰居路由器之間的這些計時器必須設置成一樣
  3.neighbors:鄰居列表
  4.area ID:為了能夠通信,OSPF路由器的接口必須屬于同一網段中的同一區域(area),即共享子網以及子網掩碼信息
  5.router priority:優先級,選舉DR和BDR的時候使用.8位長的一串數字
  6.DR/BDR IP address:DR/BDR的IP地址信息
  7.authentication passWord:假如啟用了驗證,鄰居路由器之間必須交換相同的密碼信息.此項可選
  8.stub area flag:stub area是通過使用默認路由代替路由更新的一種技術(有點像EIGRP中的stub功能)
  
  Establishing Bidirectional Communication
  看看雙向通信的建立過程,如下圖:
  
 

  1.剛開始A還沒和別的路由器交換信息,還處于down的狀態,接下來通過使用多播地址224.0.0.5開始發送hello包
  2.B接收到hello包,把A加進自己的neighbor table中,并進入init狀態,然后以單播的形式發送hello包對A做出應答
  3.A收到以后把所有從hello包里找到的RID加進自己的neighbor table中,進入two-way狀態
  4.假如鏈路是廣播型網絡比如以太網,接下來選舉DR和BDR,這一過程發生在交換信息之前
  5.周期發送hello包保證信息交換
  
  Discovering the Network Routes & Adding the Link-State Entries
  當選舉了DR和BDR,進入exstart狀態,接下來就可以對鏈路狀態信息進行發現并創建自己的LSDB,如下圖:
  
 

  1.在exstart狀態里,鄰接關系形成,路由器和DR/BDR形成主仆關系(RID等級最高的為主,其他的為輔)
  2.主仆交換DBD包(DDP),路由器進入exchange狀態
  DBD包含了出現在LSDB中的LSA條目頭部信息,條目信息可以為一條鏈路(link)或者一個網絡.每個LSA條目頭部信息包括鏈路狀態類型,宣告路由器的地址,鏈路耗費和序列號(版本號)
  3.路由器收到DBD以后,將使用LSAck做出確認;還將和自己本身就有的DBD進行比較,過程如下圖:
  
 

  假如DBD信息中有更新更全的鏈路狀態條目,路由器就發送LSR給其他路由器,該狀態為loading狀態;收到LSR以后,路由器做出響應,以LSU作為應答,其中包含了LSR所需要的完整信息;收到LSU以后,再次做出確認,發送LSAck
  4.路由器添加新的條目到LSDB中,進入full狀態,接下來就可以對數據進行路由了
  
  Maintaining Routing Information
  當鏈路狀態發生變化以后,路由器將洪泛LSA來對其他路由器做出通知,如下圖:
  
 

  1.路由器意識到鏈路產生變化以后,對多播地址224.0.0.6和所有的DR/BDR發送LSU,其中LSU包含了更新了的LSA條目
  2.DR對LSU做出確認,接著對多播地址224.0.0.5繼續洪泛,每個收到LSU的路由器對DR做出確認(反饋LSAck),
  3.假如路由器連接了其他網絡,將通過轉發LSU給DR(在點到點網絡是轉發給鄰居路由器)來對其他網絡進行洪泛
  4.其他路由器通過LSU來更新自己的LSDB,然后使用SPF算法重新計算最佳路徑
  鏈路狀態條目的最大生存周期是60分鐘,60分鐘只有,它將從LSDB中被移除
  
  OSPF Link-State Sequence Numbers
  LSDB中的每個LSA記錄都有個序列號,序列號是32位長,以0x80000001開頭,0x7FFFFFFF結尾.OSPF路由器默認每30分鐘洪泛一次LSA來保證LSDB的同步,每洪泛1次,序列號就加1.假如序列號達到最大并回到初始值的時候,已經存在的LSA的生存周期將設置為最大(1小時)并刷新LSDB(造成網絡波動)
  假如收到2條LSA,將比較序列號,序列號越高表示LSA版本越新
  
  可以使用show ip ospf database命令查看生存周期和序列號,如下:
  RTC# show ip ospf database
  OSPF Router with ID (203.250.15.67) (Process ID 10)
  Router Link States (Area 1)
  Link ID ADV Router Age Seq# Checksum Link count
  203.250.15.67 203.250.15.67 48 0x80000008 0xB112 2
  203.250.16.130 203.250.16.130 212 0x80000006 0x3F44 2
  (略)
  
  Debug IP OSPF Packet
  使用debug ip ospf packet命令對OSPF包進行排錯和驗證,如下:
  Router# debug ip ospf packet
  OSPF: rcv. v:2 t:1 l:48 rid:200.0.0.117 aid:0.0.0.0 chk:6AB2 aut:0 auk:
  (略)
  一些輸出的含義如下:
  v:OSPF版本
  t:OSPF包類型,如上是1,幾種數字所代表的意義是:1為hello,2為DBD,3為LSR,4為LSU,5為LSAck
  l:定義包長度,單位字節
  rid/aid:RID/area ID
  chk:校驗和
  aut:驗證類型,0代表不進行驗證,1代表明文密碼,2代表MD5加密
  auk:OSPF驗證key
  keyed:MD5 key ID
  seq:序列號
  
  Configuring Basic Single-Area OSPF
  OSPF的單域的配置命令:在全局配置模式下輸入router ospf [process-id]啟動OSPF進程,接下來在路由配置模
  
  式下輸入network [address] [inverse-mask] area [area-id]
  process-id只是在本路由器有效,所以可以設置成和其他路由器的process-id一樣的號碼
  address和inverse-mask為網絡(或接口)地址和wildcard mask
  
  來看一個配置實例,如下圖:
  
 

  如圖A是采用的網絡地址,而B是采用的接口地址
  
  Verifying OSPF Operation
  一些驗證性的命令如下:
  1.show ip protocols:顯示基于IP的路由協議信息
  2.show ip route ospf:顯示OSPF已知路由條目信息
  3.show ip interface:顯示RID,area ID和鄰居信息
  4.show ip ospf:顯示RID,計時器和LSA等信息
  5.show ip ospf neighbor (detail):顯示鄰居信息包括RID,優先級,鄰接狀態(比如exstart,full等)和dead timer.detail為具體參數.如下
  RouterB#show ip ospf neighbor
  Neighbor ID Pri State Dead Time Address Interface
  10.64.1.1 1 FULL/BDR 00:00:31 10.64.1.1 Ethernet0
  10.2.1.1 1 FULL/- 00:00:38 10.2.1.1 Serial0
  (略)
  6.show ip ospf neighbor [type number] [neighbor-id] (detail):顯示接口的鄰居信息的命令.type為接口類型,number為接口號,neighbor-id為鄰居ID
  
  Manipulating OSPF Router ID
  關于RID的分配,如下:
  1.可以選擇物理接口地址等級最高的做為RID(假如沒有設置回環接口的話),接口不是必須參與OSPF進程,但是它的狀態必須是up.否則將接收到如下錯誤提示:
  Router(config)#router ospf 1
  2wid: %OSPF-4-NORTRID: OSPF process 1 cannot start.
  2.假如回環接口存在的話,可以選舉等級最高的設置為RID(因為回環接口永遠不會down掉)
  3.可以使用router-id命令進行設置
  一旦RID設置了,將不會改變,即使設置為RID的接口down掉了,RID也不會改變,除非路由器重新啟動,或者OSPF進程重啟
  
  假如你想設置回環接口為RID,如下:
  1.Router(config)#interface loopback [number]
  創建回環接口
  2.Router(config-if)#ip address [address] [mask]
  分配IP地址(分配的地址等級高于物理接口的IP地址).mask參數一般為255.255.255.255
  
  設置下次OSPF啟動以后所采用的RID,如下:
  1.Router(config)#router ospf [process-id]
  2.Router(config-router)#router-id [ip-address]
  創建新的RID.注重假如本次設置的新RID只會在下次OSPF進程中啟用.可以重啟路由器或者使用clear ip ospf process命令重啟OSPF進程(這將暫時性的造成網絡不穩定)
  
  要查看RID的信息可以使用show ip ospf命令
  
  Adjacency Behavior for a Point-to-Point Link & Broadcast Network
  在點到點鏈路中一般采用PPP或者HDLC的封裝格式,OSPF自動檢測接口類型,并且不需要進行DR/BDR的選舉.鄰居通過對多播地址224.0.0.5進行多播hello包來動態發現鄰居.默認hello包的發送間隔是10秒,dead間隔是40秒在多路訪問(multiaccess)廣播型網絡中(比如以太網和Token Ring),需要進行DR/BDR的選舉,所有的非DR/BDR(即DROTHER)路由器和DR/BDR形成完全鄰接關系,即DROTHER通過DR/BDR交換信息,如下圖:
  
 

  到達DR的包使用多播地址224.0.0.6;經DR轉發給DROTHRT的包使用多播地址224.0.0.5
  
  Electing the DR/BDR
  當選舉DR/BDR的時候要比較hello包中的優先級(priority),優先級最高的為DR,次高的為BDR.默認優先級都為1.在優先級相同的情況下就比較RID,RID等級最高的為DR,次高的為BDR.當你把優先級設置為0以后,OSPF路由器就不能成為DR/BDR,只能成為DROTHER
  
  當網絡中新加入一個優先級更高的的路由器,不會影響現有的 DR/BDR,除非DR出故障,BDR隨即升級為DR,并重新選舉BDR;假如是BDR出故障了就重新選舉BDR
  
  BDR對DR是否出故障的判定是根據使用wait timer,假如BDR在wait timer超時前確認DR仍然在轉發LSA的話,它就認為DR出故障
  
  設置優先級的命令如下:
  Router(config-if)#ip ospf priority [number]
  number的范圍是0到255.注重僅當現有DR狀態down掉以后,新設置的接口優先級才會生效
  
  Adjacency Behavior for an NBMA Network
  NBMA網絡比如幀中繼,ATM和X.25,沒有廣播的能力.但是經驗通過在每條PVC上復制hell包為廣播和多播來實現廣播和多播的能力(將占用額外的帶寬)
  
  默認在NBMA網絡中,hello包的發送時間間隔和dead時間間隔分別是30秒和120秒
  
  OSPF認為NBMA網絡的運做類似其他的BMA比如以太網
  
  NBMA網絡中鄰居不是自動發現,DR/BDR需要一張鄰居列表
  
  OSPF Commands for NBMA Frame Relay
  
  幀中繼網絡的幾種拓撲結構如下:
  



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南阳市| 彰化市| 周口市| 长寿区| 大渡口区| 文山县| 盐山县| 濮阳市| 伊春市| 樟树市| 富民县| 新竹县| 齐河县| 信丰县| 侯马市| 遂溪县| 靖西县| 楚雄市| 蕲春县| 卓尼县| 武乡县| 丹江口市| 称多县| 新巴尔虎右旗| 泸定县| 尤溪县| 页游| 太保市| 甘泉县| 富裕县| 葫芦岛市| 彩票| 教育| 辽阳市| 庆云县| 清徐县| 佛山市| 田东县| 隆安县| 东光县| 梁河县|