天天看點

OSPF概念和心得體會

OSPF,開放式最段路徑優先(Open Shortest Patch First,OSPF )是由 Internet 工程組( IETF )開發的路由選擇協定,使用的是 SPF 算法。作為鍊路狀态路由協定,啟用 OSPF 的路由器發送的是 LSA 而不是具體的路由資訊。宣告 OSPF 的路由器從所有啟動 OSPF 協定的接口上發出 HELLO 封包,如果兩台路由器能夠互相協商它們各自的 HELLO 封包中所指定的某些參數,那麼他們就可以成為鄰居。建立鄰居的路由器有可能建立鄰接關系,建立鄰接關系的路由器之間會發送鍊路狀态通告( LSA )。 OSPF 是靠 HELLO 封包來發現鄰居的,同樣也是靠 HELLO 封包來保持鄰居,鄰居之間交換的 HELLO 封包叫做 keepalive 封包,每隔 30 分鐘發送一次更新。一台 OSPF 路由器使用一個路由器的 ID 号作為 OSPF 的辨別, router Id 一般使用所有回環口中數值最高的 IP 位址作為 ID 号,如果路由器上沒有配置回環口的話就會使用實體接口中最高的 IP 位址作為路由器的 ID 。同樣也可以手工指定 ROUTER ID 。 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

  HELLO 封包不比對的情況下, OSPF 是建立不起來鄰居的,在 CISCO 路由器中,預設的 HELLO 封包的時間是 10S 一次,在 NBMA 的情況下是 30 秒一次,注意跟 EIGRP 不同的是, OSPF 在小于 T1 的鍊路上同樣是 10 秒發送一次更新,如果在無效時間間隔内還沒收到來自鄰居的 HELLO 封包,那麼鄰居将會被宣告無效, CISCO 路由器中,預設的無效時間是 HELLO 時間的 4 倍。

  OSPF定義了以下5種網絡類型:

點到點網絡,廣播網絡,非廣播多路通路網絡( NBMA ),點到多點廣播,虛電路,點到多點非廣播。在點到點的網絡中,有效鄰居總是可以形成鄰接關系。點到點的網絡,網絡上的有效鄰居總是形成鄰接關系的。在這些網絡上的 OSPF 封包的目的位址也總是保留的 D 類位址 224.0.0.5 。廣播型網絡,會選舉出一個 DR 和一個 BDR ,所有的路由器會跟 DR 和 BDR 建立鄰接關系,互相之間并不建立鄰接關系, DR 和 BDR 使用多點傳播位址 224.0.0.5 來發送 HELLO 封包,其他路由器将使用 224.0.0.6 來發送 HELLO 封包。非廣播多路通路( NBMA )同樣會選舉 DR 和 BDR ,不同的是, NBMA 是不支援廣播的,是以是使用單點傳播位址發送更新。點到多點的網絡,可以看作一個點到點的網絡的集合,使用多點傳播位址發送更新。另外,除了以上的 5 種網絡類型外,應該注意的是,所有的網絡也都可以歸納到下面兩種更普通的網絡類型之:傳送網絡和末節網絡。

傳送網絡:和兩台或兩台以上的路由器相連;

末梢網絡:僅僅和一台路由器相連。

指定路由器和備份指定路由器( DR 和 BDR ),在多路通路的網絡上,為了避免網絡上 LSA 泛洪的混亂, OSPF 會在多路通路的網絡上選舉一個 DR 和 BDR ,所有的路由器将會與 DR 和 BDR 建立鄰接關系。 DR 和 BDR 将會收集所有的 LSA 然後将 LSA 發送到網絡中其餘的路由器。而非 DR 和 BDR 的路由器互相是不會發送 LSA 的。如果一個 DR 失效了 BDR 會成為 DR ,然後從新選出一個 BDR ,是以 DR 和 BDR 之間也将互相形成鄰接關系。 DR 的選舉是通過接口上的優先級決定的,預設的情況下為 1 ,為 0 的時候代表不參與選舉。如果一個網絡上隻有一台路由器成為了 DR 而沒有 BDR 路由器的話,其他所有路由器隻和這個 DR 路由器建立鄰接關系。

在一個鄰接關系的建立中, OSPF 将使用以下三種封包類型:

資料描述封包( DD 封包):資料庫描述封包對于鄰接關系的建立過程來說非常重要。正如它的名字所暗示的,該封包裡面攜帶了始發路由器的鍊路狀态資料庫中的每一個 LSA 通告的一個簡要描述。也就是裡面包含了所有 LSA 的頭部資訊。

鍊路狀态請求資訊:如果本地路由器收到 DD 封包中發現有 LSA 通告不在它自己的鍊路狀态資料庫當中,或者鄰居路由器有比已知 LSA 通告更新的拷貝,那麼本地路由器将把這條 LSA 放入它的鍊路狀态請求清單中去,随後路由器會發送一個鍊路狀态請求封包去請求一個這些 LSA 的完成拷貝。

鍊路狀态更新資訊:回應請求資訊,更新 LSA ,在更新封包中傳送的 LSA 必須單獨進行确認。路由器有顯式确認和隐式确認兩種确認方式。

OSPF 使用多個資料庫和複雜的算法,是以它将耗費路由器更多的記憶體和更多的 CPU 處理。 OSPF 協定可以使用區域的概念來縮小這些不利的影響。路由器僅僅需要和它所在區域的其他路由器具有相同的鍊路狀态資料庫,而沒有必要和整個網際網路内的所有路由器共享相同的鍊路狀态資料庫。由于鍊路狀态資料庫隻需要在一個區域内進行維護,大量的 LSA 泛洪也就被限制在一個區域裡面了。主義由于骨幹區域的任務就是彙總每個區域的網絡拓撲陸遊到其他所有區域。正是這個原因,所有的域間通信都必須通過骨幹區域,非骨幹區域不能直接交換資料包,是以所有的區域必須跟骨幹區域連接配接。虛電路的存在就是為了解決臨時的非階層化的設計把沒跟骨幹區域連接配接的區域虛拟的跟骨幹區域連接配接。

  OSPF認為路由器有下面幾種類型:

内部路由器:所有接口都屬于同一個區域的路由器;

區域邊界路由器( ABR ):連接配接一個或者多個區域到骨幹區域的路由器;

骨幹路由器:至少有一個接口和骨幹區域相連的路由器;

自主系統邊界路由器:把 OSPF 外部的路由資訊進入 OSPF 區域的網關路由器,引進重釋出的路由條目。

OSPF 的幾種 LSA :

類型 1 :路由器 LSA ,每台路由器都會産生的 LSA ,列出了通告 LSA 的路由器所有的鍊路或者接口。

類型 2 :網絡 LSA ,每一個多路通路的網絡中 DR 将會産生網絡 LSA 的通告,網絡 LSA 跟路由器 LSA 隻在區域内泛洪。

類型 3 :網絡彙總 LSA ,由 ABR 始發, ABR 發送網絡 LSA 到一個區域,用來通告該區域外部的目的位址。

類型 4 : ASBR 彙總 LSA ,也就是由 ASBR 始發出的, ASBR 彙總 LSA 除了所通告的目的位址是一個 ASBR 路由器而不是一個網絡外,其他的和網絡彙總 LSA 都是一樣的。

類型 5 : AS 外部 LSA ,重釋出到 OSPF 區域的 LSA 。

類型 6 :組成員 LSA 。使用在多點傳播 OSPF 協定中, CISCO 路由器不支援。

類型 7 : NSSA 外部 LSA ,是在非純末節區域内始發與 ASBR 路由器的 LSA 通告。

類型 8 :外部屬性 LSA 。 CISCO 路由器不支援。

類型 9 , 10 , 11 : OpaqueLSA 是一個被提議的 LSA 類别,由标準的 LSA 頭部後面跟随特殊應用的資訊組成。還沒有發出出來。

  OSPF的幾種區域:

末節區域:一個學習到外部路由器資訊的 ASBR 路由器将通過在整個 OSPF 自主系統中泛洪自主系統外部 LSA 來通告那些外部的目的路由資訊。末節網絡是一個不允許 AS 外部 LSA 通告在其内部進行泛洪的區域。也就是說阻止了類型 5 的 LSA 。

完全末節區域:具有末節區域的特性,另外還阻止了類型 3 和類型 4 的 LSA ,在完全末節區域的路由器将使用一條預設路由到達這個區域的外部。

NSSA 區域:具有末節區域的特性,不同的是在 NSSA 内部允許類型 7 的 LSA 泛洪,從 NSSA 區域通過 ABR 看到的路由都會标記為 N2 的路由。

OSPF 是支援驗證的,可以在 OSPF 中配置區域驗證和接口驗證,區域驗證就是在每個接口上開啟了驗證,但是必須在接口上配置驗證的關鍵字,否則就會是空驗證, OSPF 驗證支援 MD5 驗證

  OSPF的部分心得: 1 NSSA 區域的心得體會:

No-summary 參數:在 NSSA 區域中所有的區域間路由都被消除了,另外增加了一條标記為 IA 的預設路由,使用了這個參數以後,這個 NSSA 區域就具有了與完全末節區域一樣的特性,阻止了類型三和類型四的 LSA ,但是同時具有 NSSA 的特性,允許類型 7 的 LSA 在 NSSA 區域内泛洪。

No-redistribution 參數:阻止了類型 7 的 LSA ,跟 no-summary 一樣,通告一條标記為 IA 的類型三的預設路由。

Default-information-originate 參數:使得 ABR 通告一條預設路由到 NSSA 區域,不同的是,使用的是類型七的 LSA 通告這條預設路由。

2OSPF OVER NBMA 體會:

OSPF OVER NBMA 實驗:

TOP :

R2 為 HUB 路由器, R1 , R3 為 SPORK 路由器, R2 的 S0 口與 S1 , S3 的 S0 之間都有一條 PVC

部分互聯 PVC 支援廣播:

方法一:

将 OSPF 啟用後,在 S0 口上面用 ip ospf network 指令來讓 OSPF 認為這個接口是一個點到多點的接口,在 R1,R2,R3 上面都這樣配置,不用注意什麼,這個是最簡單的 OSPF OVER NBMA 的方法

方法二

在接口上配置 OSPF 認為的網絡類型是廣播,這樣就要選 DR/BDR ,是以在 R2(HUB) 上面配置 OSPF 優先級為 10 ,然後在 R1,R3 上面配置優先級為 0 ,這樣 R1,R3 就不會參與 DR/BDR 的選舉,注意,選了 DR 後 DR 會預設認為網絡是全互連的,也就是說在 R1 上到 R3 回環口的路由的下一跳是 R3 的 S0 口,而 R1 并沒有到 R3 的 PVC ,是以在 R1 和 R3 的 S0 口上必須要做一個 MAP ,位址是 R1,R3 對方 S0 口的位址,但是 DLCI 号還是到 R2 的 DLCI 号,這樣 R1 和 R3 下面所連接配接的網絡就可以互相通路了。

方法三

在接口上配置 OSPF 認為的網絡類型是 NBMA ,這樣的話也要選 DR ,是以關于配置還是跟方法二的一樣,隻是 NBMA 是不支援廣播的,是以在網絡中必須要指定鄰居來用單點傳播發送更新,是以在 OSPF 程序中需要用 neighbor 指令來指定鄰居也就是單點傳播位址,注意在 OSPF 中隻需要在一邊指定就可以了,也就是說,在這個題目裡面,在 R2(HUB) 上面配置 neighbor 就可以了,目的位址指 R1,R3 的 S0 口的位址。

方法四:

在 R2 上面做兩個點到點的子接口,然後在 R1 和 R3 上面讓 OSPF 認為網絡類型是點到點的,這樣也就可以正常學習到路由了。

部分互連 PVC 不支援廣播:

方法一:

在接口上配置 OSPF 認為的網絡類型為 NBMA ,然後做的方法就跟支援廣播的方法二是一樣的。

方法二:

在接口上配置 OSPF 認為的網絡類型是點到多點非廣播,這樣的話就需要在 R2 上面做兩個子接口,然後在 R2 上面指 neighbor 對方位址為 R1,R3 的 SO 口位址,但是不需要在接口上配置優先級,因為點到多點的情況下是不選 DR 和 BDR 的。

全互連 PVC 支援廣播:

TOP :全互聯: R1 , R2 , R3 都是用 S0 口全互聯的 PVC 。

方法一:

跟部分互連方法一一樣,隻是配置上面 PVC 做全互聯的。

方法二:

跟部分互連方法二基本一樣,隻是配置上面不需要 DLCI 号到 R2 ,目的位址為 R3S0 口的 PVC 了,隻需要做全互聯的 PVC 就可以了,自然因為全互連,可以選 DR 和 BDR ,是以就不用在接口上設定優先級。

方法三:

跟部分互聯配置方法基本一樣,需要注意的也就是 PVC 做成全互聯,這裡也不用配優先級别,因為全互連可以選出 BDR 出來。注意指定鄰居的時候這裡就需要互相指定而不能隻在 R2 上面指定了,因為是全互聯的網絡,

方法四

在每個路由器上做兩個點到點的子接口,互相連接配接對方,然後啟用 OSPF , OSPF 會認為這個網絡是一個點到點的網絡類型,這樣就從邏輯上把網絡成了三段,并且路由器互相都可以轉發資料。

全互聯 PVC 不支援廣播:

方法一:

讓 OSPF 認為網絡類型是 NBMA 的網絡,然後指定鄰居。

方法二:

讓 OSPF 認為網絡是點到多點非廣播的網絡,同樣指定單點傳播位址也就是指定鄰居。方法一和方法二都不用注意什麼,也不用設定優先級,因為網絡是全互聯的,互相都有可能形成鄰接關系

方法三:

在每個路由器上面配置兩個點到點的子接口,跟上面 PVC 支援廣播的配置基本一樣,不同的是這裡需要指定單點傳播位址,因為 PVC 是不支援廣播的。

關于 OSPF 的配制指令參考 CISCO 文檔 OSPF 部分 :

網頁位址 :[url]http://www.cisco.com/univercd/cc/td/doc/product/software/ios122/122cgcr/fipr_c/ipcprt2/1cfospf.htm[/url]

轉載于:https://blog.51cto.com/gluttony/44852