OSPF協議詳解


CCNP OSPF協議詳解
2010-02-24 20:30:22
標簽: CCNP  職場  OSPF  休閑
OSPF(Open Shortest Path Fitst,ospf)開放最短路徑優先協議,是由Internet工程任務組開發的路由選擇協議,公用協議,任何廠家的設備。
鏈路狀態路由協議(也可以說OSPF)工作原理:
每台路由器通過使用Hello報文與它的鄰居之間建立鄰接關系
每台路由器向每個鄰居發送鏈路狀態通告(LSA),有時叫鏈路狀態報文(LSP). 每個鄰居在收到LSP之后要依次向它的鄰居轉發這些LSP(泛洪)
每台路由器要在數據庫中保存一份它所收到的LSA的備份,所有路由器的數據庫應該相同
依照拓撲數據庫每台路由器使用Dijkstra 算法(SPF算法)計算出到每個網絡的最短路徑,並將結果輸出到路由選擇表中
OSPF的簡化原理:發Hello報文——建立鄰接關系——形成鏈路狀態數據庫——SPF算法——形成路由表。
幾個概念:
OSPF的特征:
1.快速適應網絡變化
2.在網絡發生變化時,發送觸發更新
3.以較低的頻率(每30分鍾)發送定期更新,這被稱為鏈路狀態刷新
4.支持不連續子網和CIDR
5.支持手動路由匯總
6.收斂時間短
7.采用Cost作為度量值
8.使用區域概念,這可有效的減少協議對路由器的CPU和內存的占用.
9.有路由驗證功能,支持等價負載均衡
運行OSPF的路由器需要一個能夠唯一標示自己的 Router ID
OSPF 的網絡類型:
廣播型網絡比如以太網,Token Ring和FDDI,這樣的網絡上會選舉一個DR和BDR,DR/BDR的發送的OSPF包的目標地址為224.0.0.5,運載這些OSPF包的幀的目標MAC地址為0100.5E00.0005;而除了DR/BDR以外的OSPF包的目標地址為224.0.0.6,這個地址叫AllDRouters
NBMA網絡比如X.25,Frame Relay,和ATM,不具備廣播的能力,在這樣的網絡上要選舉DR和BDR,因此鄰居要人工來指定
點到多點網絡, 是NBMA網絡的一個特殊配置,可以看成是點到點鏈路的集合. 在這樣的網絡上不選舉DR和BDR
點到點網絡, 比如T1線路,是連接單獨的一對路由器的網絡,點到點網絡上的有效鄰居總是可以形成鄰接關系的,在這種網絡上,OSPF包的目標地址使用的是224.0.0.5,這個組播地址稱為AllSPFRouters
虛鏈接它被認為是沒有編號的點到點網絡的一種特殊配置.OSPF報文以單播方式發送
OSPFDR(指定路由)與BDR(備份路由):
通過組播發送Hello報文
具有最高OSPF優先級的路由器會被選為DR(255最高)
如果OSPF優先級相同具有最高路由器ID,路由器會被選為DR
DRBDR的選舉過程?
1. 在和鄰居建立雙向通信之后,檢查鄰居的Hello包中Priority,DR和BDR字段,列出所有可以參與DR/BDR選舉的鄰居.所有的路由器聲明它們自己就是DR/BDR(Hello包中DR字段的值就是它們自己的接口地址;BDR字段的值就是它們自己的接口地址)
2. 從這個有參與選舉DR/BDR權的列表中,創建一組沒有聲明自己就是DR的路由器的子集(聲明自己是DR的路由器將不會被選舉為BDR)
3. 如果在這個子集里,不管有沒有宣稱自己就是BDR,只要在Hello包中BDR字段就等於自己接口的地址,優先級最高的就被選舉為BDR;如果優先級都一樣,RID最高的選舉為BDR
4. 如果在Hello包中DR字段就等於自己接口的地址,優先級最高的就被選舉為DR;如果優先級都一樣,RID最高的選舉為DR;如果沒有路由器宣稱自己就是DR,那么新選舉的BDR就成為DR
5. 要注意的是,當網絡中已經選舉了DR/BDR后,又出現了1台新的優先級更高的路由器,DR/BDR是不會重新選舉的
6. DR/BDR選舉完成后,其他Rother只和DR/BDR形成鄰接關系.所有的路由器將組播Hello包到224.0.0.5,以便它們能跟蹤其他鄰居的信息.其他Rother只組播update packet到224.0.0.6,只有DR/BDR監聽這個地址 .一旦出問題,反過來,DR將使用224.0.0.5泛洪更新到其他路由器
OSPF路由器在完全鄰接之前,所經過的幾個狀態:
1.Down: 初始化狀態
2.Attempt: 只適於NBMA網絡,在NBMA網絡中鄰居是手動指定的,在該狀態下,路由器將使用HelloInterval取代PollInterval來發送Hello包
3.Init: 表明在DeadInterval里收到了Hello包,但是2-Way通信仍然沒有建立起來
4.two-way: 雙向會話建立
5.ExStart: 信息交換初始狀態,在這個狀態下,本地路由器和鄰居將建立Master/Slave關系,並確定DD Sequence Number,接口等級高的的成為Master
6.Exchange: 信息交換狀態,本地路由器向鄰居發送數據庫描述包,並且會發送LSR用於 請求新的LSA
7.Loading: 信息加載狀態,本地路由器向鄰居發送LSR用於請求新的LSA
8.Full: 完全鄰接狀態,這種鄰接出現在Router LSA和Network LSA中
在OSPF協議的環境下,區域(Area)是一組邏輯上的OSPF路由器和鏈路,區域是通過一個32位的區域ID(Area ID)來識別的
OSPF的區域:
在一個區域內的路由器將不需要了解它們所在區域外部的拓撲細節。在這種環境下:
路由器僅僅需要和它所在區域的其他路由器具有相同的鏈路狀態數據庫
鏈路狀態數據庫的減小也就意味着處理較少的LSA通告 
大量的LSA泛洪被限制在一個區域里面
對於和區域相關的通信量定義了下面3種通信量的類型:
域內通信量(Intra-Area Traffic)
域間通信量(Inter-Area Traffic)
外部通信量(External Traffic) 
OSPF的路由器類型
內部路由器(Internal Router)
區域邊界路由器(Area Border Routers,ABR)
骨干路由器(Back bone Router)
自主系統邊界路由器(Autonomous System Boundary Router,ASBR)
分段區域(Partitioned Area)是指一個區域由於鏈路的失效而使這個區域的一個部分和其他部分隔離開來的情形。
虛鏈路(Virtual Link)是指一條通過一個非骨干區域連接到骨干區域的鏈路。
配置虛鏈路的時候,有幾條相關的規則
虛鏈路必須配置在兩台ABR路由器之間
配置了虛鏈路所經過的區域必須擁有全部的路由選擇信息,這樣的區域又被稱為傳送區域(Transit Area)  傳送區域不能是一個末梢區 
配置一個基本的OSPF的過程含有以下3個必要的步驟:
步驟1:確定和每一個路由器接口相連的區域;
步驟2:使用router ospf process-id命令來啟動一個OSPF進程;
步驟3:使用network area命令來指定運行OSPF協議的接口和它們所在的區域。

配置OSPF具體命令:
Router(config)#router ospf process-id
Router(config-router)#network address mask area area-id
好了我們今天所討論的就是,OSPF網絡類型三種。通過實驗來驗證前面的理論拓撲如下,
基本配置,根據拓撲配置IP地址。




在路由器啟動期間,路由器上所有的接口都是管理關閉(administratively shutdown)的,如果OSPF不能發現一個有效的IP地址作為它的路由器ID,那么OSPF將不會啟動。
解決方法-使用一個loopback接口(環回接口)
Loopback接口是一個僅在軟件上有意義的、虛擬的接口並且它總是有效(up)的,我們來給路由器設置上loopback接口,




給路由器配置OSPF協議




起了路由器協議之后查看網絡是不是相通?
我們來進行查看Router1的網絡類型
進入Router1、Router2的接口下進行更改,
router(config)#ip ospf network broadcast 廣播
router(config)#ip ospf network non-broadcast 非廣播
router(config)#ip ospf network point-to-point 點對點
router(config)#ip ospf network point-to-multipoint 點對多點
我們要把它改成廣播型網絡

更改后再進行查看
前面我們說了,在廣播型網絡中是選擇DR與BDR的,而且是通過優先級選擇的,在優先級相同的時候看路由ID。我們的路由二的路由ID比Router1的高,所以應該是Router2為DR
那么我想把Router1變成DR有沒有辦法?可以改變優先級實現
在路由器選擇好DR和BDR之后,在進入一個更高的路由器的時候是不重新選擇DR與BDR的,所以我們可以先保存,之后在重啟或者是重新打開(模擬器存在BUG)
看看是不是見效了,使得Router2變成的是BDR


完成了第一個實驗我們再來進行把Router2和Router3之間變成NBMA網絡
我們之前把Router2的串行接口變成的廣播
在Router3上進行更改
變成NBMA之前還得給路由器指定鄰接鄰居,因為在NBMA網絡中是不具備廣播能力,在這樣的網絡上選舉DR與BDR的時候鄰居需人工指定。

再來Router3上進行查看是不是達到我們要的?
變為了NBMA網絡了,
ping一下看是不是已經學到相連的鄰居


接下來我們進行第三個實驗,把Router3和Router4變成點對多點之后還可以正常通訊,在這樣的網絡中是不選舉DR和BDR的
在Router3的串行線S1/1上是點對點網絡
還和剛才的命令一樣,在Router3和Router4上進行更改

更改之后查看結果


檢查網絡的相關性,看看是不是相通
網絡很正常,你做了嗎?

 

====================================================================

 

OSPF(Open Shortest Path First開放式最短路徑優先)是一個內部網關協議(Interior Gateway Protocol,簡稱IGP),用於在單一自治系統(autonomous system,AS)內決策路由。是對鏈路狀態路由協議的一種實現,隸屬內部網關協議(IGP),故運作於自治系統內部。著名的迪克斯加算法(Dijkstra)被用來計算最短路徑樹。OSPF分為OSPFv2和OSPFv3兩個版本,其中OSPFv2用在IPv4網絡,OSPFv3用在IPv6網絡。OSPFv2是由RFC 2328定義的,OSPFv3是由RFC 5340定義的。與RIP相比,OSPF是鏈路狀態協議,而RIP是距離矢量協議。
不同廠商管理距離不同,思科OSPF的協議管理距離(AD)是110,華為OSPF的協議管理距離是10。。。。 [1]  
 
中文名
開放最短路徑優先
外文名
OSPF(Open Shortest Path First)
類    型
路由器選擇協議

目錄

  1. 1 OSPF起源
  2. 2 術語與協議
  3. OSPF術語
  4. 協議
  5. 3 網絡類型
  6. 4 DR、BDR
  1. 5 無法形成鄰接關系的常見原因
  2. 6 泛洪與區域
  3. OSPF泛洪
  4. OSPF區域
  5. 7 兩種類型
  1. OSPF LSA類型
  2. OSPF路由類型
  3. 8 OSPF度量值
  4. 9 特殊區域
  5. 10 數據包類型和格式
  1. 11 OSPF基本配置命令

OSPF起源

編輯
IETF為了滿足建造越來越大基於IP網絡的需要,形成了一個工作組,專門用於開發開放式的鏈路狀態路由協議,以便用在大型、異構的I P網絡中。新的路由協議已經取得一些成功的一系列私人的、和生產商相關的、最短路徑優先(SPF )路由協議為基礎, 在市場上廣泛使用。包括OSPF在內,所有的S P F路由協議基於一個數學算法—Dijkstra算法。這個算法能使路由選擇基於鏈路狀態,而不是距離向量。 OSPF由IETF在20世紀80年代末期開發,OSPF是SPF類路由協議中的開放式版本。最初的OSPF規范體如今RFC1131中。這個第1版( OSPF版本1 )很快被進行了重大改進的版本所代替,這個新版本體如今RFC1247文檔中。RFC 1247OSPF稱為OSPF版本2是為了明確指出其在穩定性和功能性方面的實質性改進。這個OSPF版本有許多更新文檔,每一個更新都是對開放標准的精 心改進。接下來的一些規范出如今RFC 1583、2178和2328中。OSPF版本2的最新版體如今RFC 2328中。最新版只會和由RFC 2138、1583和1247所規范的版本進行互操作。
鏈路是路由器接口的另一種說法,因此OSPF也稱為 接口狀態路由協議。OSPF通過路由器之間通告網絡接口的狀態來建立鏈路狀態數據庫,生成最短路徑樹,每個OSPF路由器使用這些最短路徑構造路由表。
OSPF路由協議是一種典型的鏈路狀態(Link-state)的路由協議,一般用於同一個路由域內。在這里,路由域是指一個自治系統( Autonomous System),即AS,它是指一組通過統一的路由政策或路由協議互相交換路由信息的網絡。在這個AS中,所有的OSPF路由器都維護一個相同的描述這個AS結構的數據庫,該數據庫中存放的是路由域中相應鏈路的狀態信息,OSPF路由器正是通過這個數據庫計算出其OSPF路由表的。
作為一種鏈路狀態的路由協議,OSPF將鏈路狀態組播數據LSA(Link State Advertisement)傳送給在某一區域內的所有路由器,這一點與距離矢量路由協議不同。運行距離矢量路由協議的路由器是將部分或全部的路由表傳遞給與其相鄰的路由器。

術語與協議

編輯

OSPF術語

Router-ID
假設這個世界上的人名字是沒有重復的,每個人的名字都不相同,當有一天, 遇上個陌生人告訴你,有任何麻煩可以找他,他一定能夠幫你解決;等到你有麻煩的時候,你想找那個人幫忙,可是如果你連那個人的名字都不知道,那么也就不可 能找到那個人幫忙了。OSPF就類似於上述情況,網絡中每台OSPF路由器都 相當於一個人,OSPF路由器之間相互通告鏈路狀態,就等於是告訴別人可以幫別人的忙,如此一來,如果路由器之間分不清誰是誰,沒有辦法確定各自的身份, 那么通告的鏈路狀態就是毫無意義的,所以必須給每一個OSPF路由器定義一個身份,就相當於人的名字,這就是Router-ID,並且Router-ID 在網絡中絕對不可以有重名,否則路由器收到的鏈路狀態,就無法確定發起者的身份,也就無法通過鏈路狀態信息確定網絡位置,OSPF路由器發出的鏈路狀態都 會寫上自己的Router-ID,可以理解為該鏈路狀態的簽名,不同路由器產生的鏈路狀態,簽名絕不會相同。
每一台OSPF路由器只有一個Router-ID,Router-ID使用IP地址的形式來表示,確定Router-ID的方法為:
★1 .手工指定Router-ID。
★2 .路由器上活動Loopback接口中IP地址最大的,也就是數字最大的,如C類地址優先於B類地址,一個非活動的接口的IP地址是不能被選為Router-ID的。
★3 .如果沒有活動的Loopback接口,則選擇活動物理接口IP地址最大的。
注:如果一台路由器收到一條鏈路狀態,無法到達該Router-ID的位置,就無法到達鏈路狀態中的目標網絡。
Router-ID只在OSPF啟動時計算,或者重置OSPF進程后計算。
COST
OSPF使用接口的帶寬來計算Metric,例如一個10 Mbit/s的接口,計算Cost的方法為:
將10 Mbit換算成bit,為10 000 000 bit,然后用10000 0000除以該帶寬,結果為 10000 0000/10 000 000 bit = 10,所以一個10 Mbit/s的接口,OSPF認為該接口的Metric值為10,需要注意的是,計算中,帶寬的單位取bit/s,而不是Kbit/s,例如一個100 Mbit/s的接口,Cost 值為 10000 0000 /100 000 000=1,因為Cost值必須為整數,所以即使是一個1000 Mbit/s(1GBbit/s)的接口,Cost值和100Mbit/s一樣,為1。如果路由器要經過兩個接口才能到達目標網絡,那么很顯然,兩個接口 的Cost值要累加起來,才算是到達目標網絡的Metric值,所以OSPF路由器計算到達目標網絡的Metric值,必須將沿途中所有接口的Cost值 累加起來,在累加時,同EIGRP一樣,只計算出接口,不計算進接口。
OSPF會自動計算接口上的Cost值,但也可以通過手工指定該接口的Cost值,手工指定的優先於自動計算的值。
OSPF計算的Cost,同樣是和接口帶寬成反比,帶寬越高,Cost值越小。到達目標相同Cost值的路徑,可以執行負載均衡,最多6條鏈路同時執行負載均衡。
鏈路(Link)
就是路由器上的接口,在這里,應該指運行在OSPF進程下的接口。
鏈路狀態(Link-State)
鏈路狀態(LSA)就是OSPF接口上的描述信息,例如接口上的IP地址,子網掩碼, 網絡類型,Cost值等等,OSPF路由器之間交換的並不是路由表,而是鏈路狀態(LSA),OSPF通過獲得網絡中所有的鏈路狀態信息,從而計算出到達 每個目標精確的網絡路徑。OSPF路由器會將自己所有的鏈路狀態毫不保留地全部發給鄰居,鄰居將收到的鏈路狀態全部放入鏈路狀態數據庫(Link- State Database),鄰居再發給自己的所有鄰居,並且在傳遞過程中,絕對不會有任何更改。通過這樣的過程,最終,網絡中所有的OSPF路由器都擁有網絡中 所有的鏈路狀態,並且所有路由器的鏈路狀態應該能描繪出相同的網絡拓朴。比如如今要計算一條地鐵線路圖,如上海地鐵二號線某段的圖,如果不直接將該圖給別 人看,圖好比是路由表,如今只是報給別人各個站的信息,該信息好比是鏈路狀態,通過告訴別人各個站左邊一站是什么,右邊一站是什么,別人也能通過該信息 (鏈路狀態),畫出完整的線路圖(路由表),如得到如下各站信息(鏈路狀態):
★南京東路-站 (左邊一站是人民廣場,右邊一站是陸家嘴)
★南京西路-站 (左邊一站是靜安寺,右邊一站是人民廣場)
★靜安寺-站 (右邊一站是南京西路)
★人民廣場-站 (左邊一站是南京西路,右邊一站是南京東路)
★陸家嘴-站 (左邊一站是南京東路)
還原線路圖(路由表)如下:
根據分析以下兩站信息(兩條鏈路狀態):
★南京西路-站 (左邊一站是靜安寺,右邊一站是人民廣場)
★靜安寺-站 (右邊一站是南京西路)
計算 因為靜安寺右邊是南京西路,而南京西路左邊是靜安寺,所以靜安寺和南京西路是相鄰的,為 靜安寺 — 南京西路,並且由於南京西路右邊是人民廣場,所以通過這兩條信息,得出線路為 靜安寺 — 南京西路 — 人民廣場,繼續往下
再根據如下兩站信息(鏈路狀態):
★人民廣場-站 (左邊一站是南京西路,右邊一站是南京東路)
★南京東路-站 (左邊一站是人民廣場,右邊一站是陸家嘴)
計算 因為之前南京西路右邊是人民廣場,人民廣場左邊是南京西路,所以南京西路和人民廣場是相鄰的兩站,並且人民廣場右邊是南京東路,得出線路為 南京西路 — 人民廣場 — 南京東路,並且因為南京東路右邊是陸家嘴,所以 這部分線路得知為南京西路 — 人民廣場 — 南京東路 — 陸家嘴,繼續往下
再根據如下一站信息(鏈路狀態):
★陸家嘴-站 (左邊一站是南京東路)
計算 因為南京東路右邊是陸家嘴,而陸家嘴左邊是南京東路,所以兩站相鄰,得出為 南京東路 — 陸家嘴,
通過以上各部分的線路:
靜安寺 — 南京西路 — 人民廣場
南京西路 — 人民廣場 — 南京東路 — 陸家嘴
南京東路 — 陸家嘴
所以很輕松的就畫出該段地鐵線路圖為:
靜安寺 — 南京西路 — 人民廣場 —南京東路 — 陸家嘴
從以上計算過程可以知道,因為得到各站的信息,就能畫出整條線路圖,而 OSPF也同樣根據路由器各接口的信息(鏈路狀態),計算出網絡拓朴圖,OSPF之間交換鏈路狀態,就像上面交換各站信息,而不像RIP和EIGRP直接 交換路由表,交換路由表,就等於直接給人看線路圖,可見OSPF的智能算法,比距離矢量協議對網絡有更精確的認知。
OSPF區域
因為OSPF路由器之間會將所有的鏈路狀態(LSA)相互交換,毫不保 留,當網絡規模達到一定程度時,LSA將形成一個龐大的數據庫,勢必會給OSPF計算帶來巨大的壓力;為了能夠降低OSPF計算的復雜程度,緩存計算壓 力,OSPF采用分區域計算,將網絡中所有OSPF路由器划分成不同的區域,每個區域負責各自區域精確的LSA傳遞與路由計算,然后再將一個區域的LSA 簡化和匯總之后轉發到另外一個區域,這樣一來,在區域內部,擁有網絡精確的LSA,而在不同區域,則傳遞簡化的LSA。區域的划分為了能夠盡量設計成無環 網絡,所以采用了Hub-Spoke的拓朴架構,也就是采用核心與分支的拓朴,如下圖:
區域的命名可以采用整數數字,如1、2、3、4,也可以采用IP地址的形 式,0.0.0.1、0.0.0.2,因為采用了Hub-Spoke的架構,所以必須定義出一個核心,然后其它部分都與核心相連,OSPF的區域0就是所 有區域的核心,稱為BackBone 區域(骨干區域),而其它區域稱為Normal 區域(常規區域),在理論上,所有的常規區域應該直接和骨干區域相連,常規區域只能和骨干區域交換LSA,常規區域與常規區域之間即使直連也無法互換 LSA,如上圖中Area 1、Area 2、Area 3、Area 4只能和Area 0互換LSA,然后再由Area 0轉發,Area 0就像是一個中轉站,兩個常規區域需要交換LSA,只能先交給Area 0,再由Area 0轉發,而常規區域之間無法互相轉發。
OSPF區域是基於路由器的接口划分的,而不是基於整台路由器划分的,一台路由器可以屬於單個區域,也可以屬於多個區域,如下圖:
如果一台OSPF路由器屬於單個區域,即該路由器所有接口都屬於同一個區 域,那么這台路由器稱為Internal Router(IR),如上圖中的R2,R3和R4;如果一台OSPF路由器屬於多個區域,即該路由器的接口不都屬於一個區域,那么這台路由器稱為 Area Border Router (ABR),如上圖中的R1,ABR可以將一個區域的LSA匯總后轉發至另一個區域;如果一台OSPF路由器將外部路由協議重分布進OSPF,那么這台路 由器稱為Autonomous System Boundary Router (ASBR),如上圖中,R5將EIGRP重分布進OSPF,那么R5就是ASBR,但是如果只是將OSPF重分布進其它路由協議,則不能稱為ASBR。
可以配置任何OSPF路由器成為ABR或ASBR。
由於OSPF有着多種區域,所以OSPF的路由在路由表中也以多種形式存在,共分以下幾種:
如果是同區域的路由,叫做Intra-Area Route,在路由表中使用O來表示;
如果是不同區域的路由,叫做Inter-Area Route或Summary Route,在路由表中使用O IA來表示;
如果並非OSPF的路由,或者是不同OSPF進程的路由,只是被重分布到OSPF的,叫做External Route,在路由表中使用O E2或OE 1來表示。
當存在多種路由可以到達同一目的地時,OSPF將根據先后順序來選擇要使用的路由,所有路由的先后順序為:
Intra-Area — Inter-Area — External E1 — External E2,即 O — O IA — O E1 — O E2。
注:
★一台路由器可以運行多個OSPF進程,不同進程的OSPF,可視為沒有任何關系,如需要獲得相互的路由信息,需要重分布。
★每個OSPF進程可以有多個區域,而路由器的鏈路狀態數據庫是分進程和分區域存放的。
鄰居(Neighbor)
OSPF只有鄰接狀態才會交換LSA,路由器會將鏈路狀態數據庫中所有的 內容毫不保留地發給所有鄰居,要想在OSPF路由器之間交換LSA,必須先形成OSPF鄰居,OSPF鄰居靠發送Hello包來建立和維護,Hello包 會在啟動了OSPF的接口上周期性發送,在不同的網絡中,發送Hello包的間隔也會不同,當超過4倍的Hello時間,也就是Dead時間過后還沒有收 到鄰居的Hello包,鄰居關系將被斷開。
兩台OSPF路由器必須滿足4個條件,才能形成OSPF鄰居,4個必備條件如下:
  
Area-id(區域號碼)
即路由器之間必須配置在相同的OSPF區域,否則無法形成鄰居。
Hello and Dead Interval(Hello時間與Dead時間)
即路由器之間的Hello時間和Dead時間必須一致,否則無法形成鄰居。
Authentication(認證)
路由器之間必須配置相同的認證密碼,如果密碼不同,則無法形成鄰居。
Stub Area Flag(末節標簽)
路由器之間的末節標簽必須一致,即處在相同的末節區域內,否則無法形成鄰居。
注:
★OSPF只能使用接口的Primary地址建立鄰居,不能使用Secondary建立鄰居。
★路由器雙方接口要么都為手工配置地址(Numbered),要么都為借用地址(Unnumbered),否則無法建立鄰居。
鄰接(Adjacency)
兩台OSPF路由器能夠形成鄰居,但並不一定能相互交換LSA,只要能交換LSA,關系則稱為鄰接(Adjacency)。鄰居之間只交換Hello包,而鄰接(Adjacency)之間不僅交換Hello包,還要交換LSA。
DR/BDR
當多台OSPF路由器連到同一個多路訪問網段時,如果每兩台路由器之間都 相互交換LSA,那么該網段將充滿着眾多LSA條目,為了能夠盡量減少LSA的傳播數量,通過在多路訪問網段中選擇出一個核心路由器,稱為 DR(Designated Router),網段中所有的OSPF路由器都和DR互換LSA,這樣一來,DR就會擁有所有的LSA,並且將所有的LSA轉發給每一台路由器;DR就像 是該網段的LSA中轉站,所有的路由器都與該中轉站互換LSA,如果DR失效后,那么就會造成LSA的丟失與不完整,所以在多路訪問網絡中除了選舉出DR 之外,還會選舉出一台路由器作為DR的備份,稱為BDR(Backup Designated Router),BDR在DR不可用時,代替DR的工作,而既不是DR,也不是BDR的路由器稱為Drother,事實上,Dother除了和DR互換 LSA之外,同時還會和BDR互換LSA。
其實不難看出,DR與BDR並沒有任何本質與功能的區別,只有在多路訪問 的網絡環境,才需要DR和BDR,DR與BDR的選舉是在一個二層網段內選舉的,即在多個路由器互連的接口范圍內,與OSPF區域沒有任何關系,一個區域 可能有多個多路訪問網段,那么就會存在多個DR和BDR,但一個多路訪問網段,只能有一個DR和BDR;選舉DR和BDR的規則為:
★比較接口優先級
選舉優先級最高的成為DR,優先級數字越大,表示優先級越高,被選為DR的幾率就越大,次優先級的為BDR,優先級范圍是0-255,默認為1,優先級為0表示沒有資格選舉DR和BDR。
★Route-Id大小
如果在優先級都相同的情況下,Route-Id 最大的成為DR,其次是BDR,數字越大,被選為DR的幾率就越大。
因為所有路由器都能與DR和BDR互換LSA,所以所有路由器都與DR和BDR是鄰接(Adjacency)關系,而Drother與Drother之間無法互換LSA,所以Drother與Drother之間只是鄰居關系。
在一個多路訪問網絡中,選舉DR和BDR是有時間限制的,該時間為 Wait時間,默認為4倍的Hello時間,即與Dead時間相同,如果OSPF路由器在超過Wait時間后也沒有其它路由器與自己競爭DR與BDR的選 舉,那么就選自己為DR;當一個多路訪問網絡中選舉出DR與BDR之后,在DR與BDR沒有失效的情況下,不會進行重新選舉,也就是在選舉出DR與BDR 之后,即使有更高優先級的路由器加入網絡,也不會影響DR與BDR的角色,在越出選舉時間(Wait時間)后,只有DR與BDR失效后,才會重新選舉。 DR失效后,會同時重新選舉DR與BDR,而在BDR失效后,只會重新選舉BDR。
DR和BDR與Drother的數據包處理會有所不同,
所有OSPF路由器,包括DR與BDR,都能夠接收和傳遞目標地址為224.0.0.5的數據包。
只有DR和BDR才能接收和傳遞目標地址為224.0.0.6的數據包。
由此可見,Drother路由器將數據包發向目標地址224.0.0.6,只能被DR和BDR接收,其它Drother不能接收;而DR和BDR將數據包發向目標地址224.0.0.5,可以被所有路由器接收。

協議

一、Hello協議的目的:
用於發現鄰居
在成為鄰居之前,必須對Hello包里的一些參數進行協商
Hello包在鄰居之間扮演着keepalive的角色
允許鄰居之間的雙向通信
用於在NBMA(Nonbroadcast Multi-access)、廣播網絡(以太網)中選舉DR和BDR
二、Hello Packet包含以下信息:
源路由器的RID
源路由器的Area ID
源路由器接口的掩碼
源路由器接口的認證類型和認證信息
源路由器接口的Hello包發送的時間間隔
源路由器接口的無效時間間隔
優先級
DR/BDR接口IP地址
五個標記位(flag bit)
源路由器的所有鄰居的RID

網絡類型

編輯
OSPF定義的5種網絡類型:
  1. 點到點網絡(point-to-point),由cisco提出的網絡類型,自動發現鄰居,不選舉DR/BDR,hello時間10s。
1.1點到點網絡,比如T1線路,是連接單獨的一對路由器的網絡,點到點網絡上的有效鄰居總是可以形成鄰接關系的,在這種網絡上,OSPF包的目標地址使用的是 224.0.0.5,這個組播地址稱為 AllSPFRouters.
2.廣播型網絡(broadcast),由cisco提出的網絡類型,自動發現鄰居,選舉DR/BDR,hello時間10s。
2.1廣播型網絡,比如以太網, Token RingFDDI,這樣的網絡上會選舉一個DR和BDR,DR/BDR的發送的OSPF包的目標地址為224.0.0.5,運載這些OSPF包的幀的目標MAC地址為0100.5E00.0005;而除了DR/BDR以外發送的OSPF包的目標地址為 224.0.0.6,這個地址叫 AllDRouters.
3.非廣播型(NBMA)網絡 (non-broadcast),由RFC提出的網絡類型,手工配置鄰居,選舉DR/BDR,hello時間30s。
3.1. NBMA網絡,比如 X.25,Frame Relay,和 ATM,不具備廣播的能力,因此鄰居要人工來指定,在這樣的網絡上要選舉DR和BDR,OSPF包采用unicast的方式
4.點到多點網絡 (point-to-multipoint),由RFC提出,自動發現鄰居,不選舉DR/BDR,hello時間30s。
4.1點到多點網絡 是NBMA網絡的一個特殊配置,可以看成是點到點鏈路的集合. 在這樣的網絡上不選舉DR和BDR.
5.點到多點非廣播,由cisco提出的網絡類型,手動配置鄰居,不選舉DR/BDR,hello時間30s。
6.虛鏈接: OSPF包是以unicast的方式發送
所有的網絡也可以歸納成2種網絡類型:
  1. 傳輸網絡(Transit Network)
  2. 末梢網絡(Stub Network )
OSPF模式
OSPF模式
NBMA 推薦拓撲
子網接口
Hello時間
鏈接關系
RFC/Cisco
Broadcast
Full or partial mesh
Same
10 sec
Automatic, DR/BDR elected
Cisco
Nonbroadcast (NBMA)
Full or partial mesh
Same
30 sec
Manual configuration, DR/BDR elected
RFC
Point-to-multipoint
Partial-mesh
or star
Same
30 Sec
Automatic,
no DR/BDR
RFC
Point-to-multipoint nonbroadcast
partial-mesh
or star
Same
30 sec
Manual configuration, no/DR/BDR
Cisco
Point-to-point
Partial-mesh or star, using subinterface
Different for Each Subinterface
10 sec
Automatic,
no DR/BDR
Cisco

DR、BDR

編輯
在DR和BDR出現之前,每一台路由器和他的所有鄰居成為完全網狀的OSPF鄰接關系,這樣5台路由器之間將需要形成10個鄰接關系,同時將產生20條LSA.而且在多址網絡中,還存在自己發出的LSA 從鄰居的鄰居發回來,導致網絡上產生很多LSA的拷貝,所以基於這種考慮,產生了DR和BDR.
DR將完成如下工作
  1. 描述這個多址網絡和該網絡上剩下的其他相關路由器.
  2. 管理這個多址網絡上的flooding過程.
  3. 同時為了冗余性,還會選取一個BDR,作為雙備份之用.
DR BDR選取規則:DR BDR選取是以 接口狀態機的方式觸發的.
  1. 路由器的 每個多路訪問(multi-access)接口都有個路由器優先級(Router Priority),8位長的一個整數,范圍是0到255,Cisco路由器默認的優先級是1優先級為0的話將不能選舉為DR/BDR.優先級可以通過命 令ip ospf priority進行修改.
  2. Hello包里包含了優先級的字段,還包括了可能成為DR/BDR的相關接口的IP地址.
  3. 當接口在多路訪問網絡上初次啟動的時候,它把DR/BDR地址設置為0.0.0.0,同時設置等待計時器(wait timer)的值等於路由器無效間隔(Router Dead Interval).
DR BDR選取過程:
  1. 路由器X在和鄰居建立雙向(2-Way)通信之后,檢查鄰居的Hello包中 Priority,DR和BDR字段,列出所有可以參與DR/BDR選舉的鄰居(priority不為0).
  2. 如 果有一台或多台這樣的路由器宣告自己為BDR(也就是說,在其Hello包中將自己列為BDR,而不是DR),選擇其中擁有最高路由器優先級的成為 BDR;如果相同,選擇擁有最大路由器標識的。如果沒有路由器宣告自己為BDR,選擇列表中路由器擁有最高優先級的成為BDR,(同樣排除宣告自己為DR 的路由器),如果相同,再根據路由器標識。
  3. 按如下計算網絡上的DR。如果有一台或多台路由器宣告自己為DR(也就是說,在其Hello包中將自己列為DR),選擇其中擁有最高路由器優先級的成為DR;如果相同,選擇擁有最大路由器標識的。如果沒有路由器宣告自己為DR,將新選舉出的BDR設定為DR。
  4. 如果路由器X新近成為DR或BDR,或者不再成為DR或BDR,重復步驟2和3,然后結束選舉。這樣做是為了確保路由器不會同時宣告自己為DR和BDR。
  5. 要注意的是,當網絡中已經選舉了DR/BDR后,又出現了1台新的優先級更高的路由器,DR/BDR是不會重新選舉的。
  6. DR/BDR 選舉完成后,DRother只和DR/BDR形成鄰接關系.所有的路由器將組播Hello包到AllSPFRouters地址224.0.0.5以便它們 能跟蹤其他鄰居的信息,即DR將泛洪update packet到224.0.0.5;DRother只組播update packet到AllDRouter地址224.0.0.6, 只有DR/BDR監聽這個地址.
簡潔的說:DR的篩選過程
  1. 優先級為0的不參與選舉;
  2. 優先級高的路由器為DR;
  3. 優先級相同時,以router ID 大為DR;
router-ID選舉規則
首先會在該路由器上的所有 環回接口里選一個IP地址最大的,如果沒有環回接口就選活動的物理接口IP地址最大的。
(只有在IPV4 的環境下可以自動選舉route-ID 如果是純IPV6環境必須手工指定)
鄰居關系
鄰接關系建立的4個階段:
  1. 鄰居發現階段。
  2. 雙向通信階段:Hello報文都列出了對方的RID,則BC完成。
  3. 數據庫同步階段:主從協商;DD交換;LSA請求;LSA傳播;LSA應答。
  4. 完全鄰接階段: full adjacency。
鄰居關系的建立和維持都是靠Hello包完成的,在一般的網絡類型中,Hello包周期性的以HelloInterval秒發送,有1個例外:在NBMA網絡中,路由器每 經過一個PollInterval周期發送Hello包給狀態為down的鄰居(其他類型的網絡是不會把Hello包發送給狀態為down的路由器 的).Cisco路由器上PollInterval默認120s Hello Packet以組播的方式發送給224.0.0.5,在NBMA類型,點到多點和虛鏈路類型網絡,以單播發送給鄰居路由器。鄰居可以通過手工配置或者Inverse-ARP發現。
OSPF路由器在完全鄰接之前,所經過的幾個狀態:
  1. Down:此狀態還沒有與其他路由器交換信息。首先從其ospf接口向外發送hello分組,還並不知道DR(若為廣播網絡)和任何其他路由器。發送hello分組使用組播地址224.0.0.5。
  2. Attempt: 只適於NBMA網絡,在NBMA網絡中鄰居是手動指定的,在該狀態下,路由器將使用HelloInterval取代PollInterval來發送Hello包。
  3. Init: 表明在DeadInterval里收到了Hello包,但是2-Way通信仍然沒有建立起來。
  4. two-way: 雙向會話建立,而RID彼此出現在對方的鄰居列表中。(若為廣播網絡:例如:以太網。在這個時候應該選舉DR,BDR。)
  5. ExStart: 信息交換初始狀態,在這個狀態下,本地路由器和鄰居將建立Master/Slave關系,並確定DD Sequence Number,路由器ID大的的成為Master。
  6. Exchange: 信息交換狀態,本地路由器和鄰居交換一個或多個DBD分組(也叫DDP),DBD包含有關LSDB中LSA條目的摘要信息。
  7. Loading: 信息加載狀態:收到DBD后,將收到的信息同LSDB中的信息進行比較。如果DBD中有更新的鏈路狀態條目,則向對方發送一個LSR,用於請求新的LSA。
  8. Full: 完全鄰接狀態,鄰接間的鏈路狀態數據庫同步完成,通過鄰居鏈路狀態請求列表為空且鄰居狀態為Loading判斷。

無法形成鄰接關系的常見原因

編輯
  1. Hello間隔和Dead間隔必須相同才能建立鄰接關系。
  2. 區域號碼不一致。
  3. 特殊區域(如stub和nssa等)區域類型不匹配。
  4. 認證類型和密碼不一致。
  5. 路由器ID相同。
  6. Hello包被ACLdeny。
  7. 鏈路上的MTU不匹配。
  8. 接口下OSPF網絡類型不匹配。

泛洪與區域

編輯

OSPF泛洪

Flooding采用2種報文
LSU Type 4---鏈路狀態更新報文
LSA Type 5---鏈路狀態確認報文
(補充下 )
{
Hello Type 1 ---Hello協議報文
DD(Data Description) Type 2----鏈路數據描述報文
LSR Type 3----鏈路狀態請求報文
}
P-P網絡,路由器是以組播方式將更新報文發送到組播地址 224.0.0.5.
P-MP和虛鏈路網絡,路由器以單播方式將更新報文發送至鄰接鄰居的接口地址.
廣播型網絡,DRother路由器只能和 DR&BDR形成鄰接關系,所以更新報文將發送到224.0.0.6,相應的DR以224.0.0.5泛洪LSA並且BDR只接收LSA,不會確 認和泛洪這些更新,除非DR失效 在NBMA型網絡,LSA以單播方式發送到DR和BDR,並且DR以單播方式發送這些更新.
LSA通過LS類型、LS標識和宣告路由器來識別,並通過序列號、校驗和、老化時間判斷LSA新舊。
Seq: 序列號(Seq)的范圍是0x80000001到0x7fffffff.
Checksum: 校驗和(Checksum)計算除了Age字段以外的所有字段,每5分鍾校驗1次.
Age: 范圍是0到3600秒,16位長.當路由器發出1個LSA后,就把Age設置為0,當這個LSA經過1台路由器以后,Age就會增加,1個LSA保存在LSDB中的時候,老化時間也會增加.
當收到相同的LSA的多個實例(LS類型、LS標識、宣告路由器相同)的時候,將通過下面的方法來確定哪個LSA是最新的:
  1. 比較LSA實例的序列號,越大的越新.
  2. 如果序列號相同,就比較校驗和,越大越新.
  3. 如果校驗和也相同,就比較老化時間,如果只有1個LSA擁有MaxAge(3600秒)的老化時間,它就是最新的.
  4. 如果LSA老化時間相差15分鍾以上,(叫做MaxAgeDiff),老化時間越小的越新.
  5. 如果上述都無法區分,則認為這2個LSA是相同的.

OSPF區域

區域長度32位,可以用10進制,也可以類似於IP地址的點分十進制,分3種通信量
  1. Intra-Area Traffic:域內通信量
  2. Inter-Area Traffic:域間通信量
  3. External Traffic:外部通信量
路由器類型
  1. Internal Router:域內路由器
  2. ABR(Area Border Router):區域邊界路由器
  3. Backbone Router(BR):骨干路由器
  4. ASBR(Autonomous System Boundary Router):自治系統邊界路由器.
虛鏈路(Virtual Link)
以下2中情況需要使用到虛鏈路:
  1. 通過一個非骨干區域連接到一個骨干區域.
  2. 通過一個非骨干區域連接一個分段的骨干區域兩邊的部分區域.
虛鏈接是一個邏輯的隧道(Tunnel),配置虛鏈接的一些規則:
  1. 虛鏈接必須配置在2個ABR之間.
  2. 虛鏈接所經過的區域叫 Transit Area,它必須擁有完整的路由信息.
  3. Transit Area不能是Stub Area.
  4. 盡可能的避免使用虛鏈接,它增加了網絡的復雜程度和加大了排錯的難度.
OSPF區域—OSPF的精華
Link-state 路由在設計時要求需要一個層次性的網絡結構.
OSPF網絡分為以下2個級別的層次:
骨干區域 (backbone or area 0)
非骨干區域 (nonbackbone areas)
在一個OSPF區域中只能有一個骨干區域,可以有多個非骨干區域,骨干區域的區域號為0。
為了避免回環的產生,各非骨干區域間是不可以交換LSA信息的,他們只有與骨干區域相連,通過骨干區域相互交換信息。
非骨干區域和骨干區域之間相連的路由叫邊界路由(ABRs-Area Border Routers),只有ABRs記載了接入各區域的所有路由信息。各非骨干區域內的非ABRs只記載了本區域內的路由表,若要與外部區域中的路由相連,只 能通過本區域的ABRs,由ABRs連到骨干區域的BR,再由骨干區域的BR連到要到達的區域。

兩種類型

編輯

OSPF LSA類型

1.類型1:Router LSA:每個路由器都將產生Router LSA,這種LSA只在本區域內傳播,描述了路由器所有的鏈路和接口,狀態和開銷.
2.類型2:Network LSA:在每個多路訪問網絡中,DR都會產生這種Network LSA,它只在產生這條Network LSA的區域泛洪描述了所有和它相連的路由器(包括DR本身)。
3.類型3:Network Summary LSA:由 ABR路由器始發,用於通告該區域外部的目的地址.當其他的路由器收到來自ABR的Network Summary LSA以后,它不會運行SPF算法,它只簡單的加上到達那個ABR的開銷和Network Summary LSA中包含的開銷,通過ABR,到達目標地址的路由和開銷一起被加進路由表里,這種依賴中間路由器來確定到達目標地址的完全路由(full route)實際上是距離矢量路由協議的行為。
4.類型4:ASBR Summary LSA:由ABR發出,ASBR匯總LSA除了所通告的目的地是一個ASBR而不是一個網絡外,其他同Network Summary LSA.
5.類型5:AS External LSA:發自ASBR路由器,用來通告到達OSPF自治系統外部的目的地,或者OSPF自治系統那個外部的缺省路由的LSA.這種LSA將在全AS內泛洪(4個特殊區域除外)
6.類型6:Group Membership LSA
7.類型7:NSSA External LSA:來自非完全Stub區域(not-so-stubby area)內ASBR路由器始發的LSA通告它只在NSSA區域內泛洪,這是與LSA-Type5的區別.
8.類型8:External Attributes LSA
9.類型9:Opaque LSA(link-local scope,)
10.類型10:Opaque LSA(area-local scope)
11.類型11:Opaque LSA(AS scope)

OSPF路由類型

  1. 所有路由器都計算前往其所有在區域中每個目的地的最佳路徑,並將他們加入到路由表中。這些是1類LSA和2類LSA,在路由表中用路由指示符O(OSPF)表示。
  2. 所有路由器都計算前往互聯網絡中其他區域的最佳路徑。在這些路徑是區域間路由(3類和4類LSA),在路由表中用路由指示燈IA(區域間)表示。
  3. 除 末節區域內的路由器外,所有路由器都計算前往外部自治系統中目標網絡的最佳路徑(5類)。這些路由是1類外部路由(E1)還是2類外部路由(E2)取決於 配置。在路由表中,1類外部路由用O E1表示,2類外部路由用O E2表示。類似的還有ON1/ON2,與OE1/OE2相同,不過是來自NSSA區域的路由。

OSPF度量值

編輯
在Cisco路由器中,使用公式100Mbit/帶寬(單位為Mbit)來計算的,但是,在帶寬等於100Mbits的鏈路上,成本為1.在大於100Mbits的鏈路上這個值就不是很好
RouterA(config-if)#ip ospf cost interface-cost
成本越低,鏈路越好
RouterA(config-router)#atuo-cost reference-bandwidth ref-bw
其中cost:1~65535 ref-bw:1~4294967

特殊區域

編輯
  1. 特殊區域是指人為定義的一些區域,它們在邏輯中一般位於OSPF區域的邊緣只與骨干區域相連。
  2. 常見的特殊區域有以下幾類:
(1)Stub區域
由於並不是每個路由器都需要外部網絡的信息,為了減少LSA泛洪量和路由 表條目,就創建了末梢區域,位於Stub邊界的ABR將宣告一條默認路由到所有的Stub區域內的內部路由器,不接受自治系統外部信息,同時也拒絕4類 LSA,Stub區域不能包含ASBR(除非ABR也是ASBR).
(2)Totally Stub區域
Cisco專用區域,不接受自治系統外部路由和自治系統內其他區域匯總路由。
(3)NSSA區域
不接受自治系統外部信息,但NSSA可以包含ASBR。
(4)Totally NSSA區域
Cisco專用區域,不接受自治系統外部路由和自治系統內其他區域匯總路由
區域限制
  1. 所有位於stub area的 路由器必須保持LSDB信息同步,並且它們會在它的Hello包中設置一個值為0的E位(E-bit),因此這些路由器是不會接收E位為1的Hello 包,也就是說在stub area里沒有配置成stub router的路由器將不能和其他配置成stub router的路由器建立鄰接關系.
  2. 不能在stub area中配置虛鏈接(virtual link),並且虛鏈接不能穿越stub area.
  3. stub area里的路由器不可以是ASBR.
  4. stub area可以有多個ABR,但是由於默認路由的緣故,內部路由器無法判定哪個ABR才是到達ASBR的最佳選擇.
  5. NSSA 允許外部路由被宣告OSPF域中來,同時保留Stub Area的特征,因此NSSA里可以有ASBR,ASBR將使用type7-LSA來宣告外部路由,但經過ABR,Type7被轉換為Type5.7類 LSA通過OSPF報頭的一個P-bit作Tag,如果NSSA里的ABR收到P位設置為1的NSSA External LSA,它將把LSA類型7轉換為LSA類型5.並把它洪泛到其他區域中;如果收到的是P位設置為0的NSSAExternal LSA,它將不會轉換成類型5的LSA,並且這個類型7的LSA里的目標地址也不會被宣告到NSSA的外部NSSA在IOS11.2后支持.
  6. totally stub area完全的stub區域,連類型3的LSA也不接收。

數據包類型和格式

編輯
類型號 包 作用 可靠性
1 HELLO 1、用於發現鄰居2、建立鄰接關系3、維持鄰接關系4、確保雙向通信5、選舉DR和BDR
2 Database Description 數據庫的描述 DBD 可靠
3 Link-state Request 鏈路狀態請求包 LSR 可靠
4 Link-state Update 鏈路狀態更新包 LSU 可靠
5 Link-state Acknowledgment 鏈路狀態確認包 LSACK
Hello包的格式如下:
數據庫描述包的格式如下:
鏈路狀態請求包格式如下:
鏈路狀態更新包的格式如下:
鏈路狀態確認包的格式如下:
AS 自治系統(autonomous system):一組相互管理下的網絡,它們共享同一個路由選擇方法,自治系統由地區再划分並必須由IANA分配一個單獨的16位數字。地區通常連接到其他地區,使用路由器創建一個自治系統。

OSPF基本配置命令

編輯
配置LOOPBACK接口地址
ROUTER(config)#interface loopback 0
ROUTER(config)#ip address IP地址 掩碼
  • ospf區域的配置
router ospf 100 /* 區域號在銳捷低端設備(交換機S3550,路由器R2621)里是不需要指定區域號的*/
network 192.168.1.0 0.0.0.255 area 0
router-id 192.168.2.1 手動設置router-id
area 1 default-cost 50 手動設置開銷
#clean ip ospf process
  • 配置ospf明文認證
interface s0
ip ospf authentication
ip ospf authentication-key <;密碼>
  • 配置ospf密文認證
interface s0
ip ospf authentication
ip ospf message-digest-key 1 md5 7 <;密碼>
  • debug ip ospf adj 開啟ospf調試
show ip protocols
show ip ospf interface s0
  • 手動配置接口花銷,帶寬,優先級
inter s0
ip ospf cost 200
bandwidth 100
ip ospf priority 0
  • 虛鏈路的配置
router ospf 100
area <area-id> virtual-link <router-id>
show ip ospf virtual-links
Show ip ospf border-routers
Show ip ospf process-id
Show ip ospf database
show ip ospf database nssa-external
  • OSPF路由歸納
Router ospf 1\\對ASBR外部的路由進行路由歸納
Summary-address 200.9.0.0 255.255.0.0
Router ospf 1\\執行AREA1到AREA0的路由歸納
Area 1 range 192.168.16.0 255.255.252.0
  • 配置末節區域
IR area <area-id> stub
ABR area <area-id> stub
  • 配置完全末節區域
IR area <area-id> stub
ABR area <area-id> stub no-summary
  • 配置NSSA
ASBR router ospf 100
area 1 nssa
ABR router ospf 100
area 1 nssa default-information-orrginate
OSPF協議主要優點
1、OSPF是真正的LOOP- FREE(無路由自環)路由協議。源自其算法本身的優點。(鏈路狀態及最短路徑樹算法)
2、OSPF收斂速度快:能夠在最短的時間內將路由變化傳遞到整個自治系統。
3、提出區域(area)划分的概念,將自治系統划分為不同區域后,通過區域之間的對路由信息的摘要,大大減少了需傳遞的路由信息數量。也使得路由信息不會隨網絡規模的擴大而急劇膨脹。
4、將協議自身的開銷控制到最小。見下:
1)用於發現和維護鄰居關系的是定期發送的是不含路由信息的hello報文,非常短小。包含路由信息的報文時是觸發更新的機制。(有路由變化時才會發送)。但為了增強協議的健壯性,每1800秒全部重發一次。
2)在廣播網絡中,使用組播地址(而非廣播)發送報文,減少對其它不運行ospf 的網絡設備的干擾。
3)在各類可以多址訪問的網絡中(廣播,NBMA),通過選舉DR,使同網段的路由器之間的路由交換(同步)次數由 O(N*N)次減少為 O (N)次。
4)提出NSSA區域的概念,使得NSSA區域內不再傳播引入的ASE路由。
5)在ABR(區域邊界路由器)上支持路由聚合,進一步減少區域間的路由信息傳遞。
6)在點到點接口類型中,通過配置按需撥號屬性(OSPF over On Demand Circuits),使得ospf不再定時發送hello報文及定期更新路由信息。只在網絡拓撲真正變化時才發送更新信息。
5、通過嚴格划分路由的級別(共分四極),提供更可信的路由選擇。
6、良好的安全性,ospf支持基於接口的明文及md5 驗證。

7、OSPF適應各種規模的網絡,最多可達數千台。


免責聲明!

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



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