1.OSPF概念
- OSPF(Open Shortest Path First開放式最短路徑優先)是一個内部網關協定(Interior Gateway Protocol,簡稱IGP),用于在單一自治系統(autonomous system,AS)内決策路由。
2.OSPF與RIP的差別
- OSPF是鍊路狀态路由協定,而RIP是距離向量路由協定
- 作為一種鍊路狀态的路由協定,OSPF将鍊路狀态廣播資料包LSA(Link State Advertisement)傳送給在某一區域内的所有路由器,這一點與距離矢量路由協定不同。運作距離矢量路由協定的路由器是将部分或全部的路由表傳遞給與其相鄰的路由器。
3.鍊路是什麼?
- 鍊路是路由器接口的另一種說法
4.為什麼說OSPF是一種鍊路狀态協定?
- OSPF通過路由器之間通告網絡接口的狀态來建立鍊路狀态資料庫,生成最短路徑樹,每個OSPF路由器使用這些最短路徑構造路由表。
- OSPF路由協定是一種典型的鍊路狀态(Link-state)的路由協定,一般用于同一個路由域(AS)。
5.什麼叫自治域(AS)
- AS全稱是(Autonomous System),它是指一組通過統一的路由政策或路由協定互相交換路由資訊的網絡。在AS中,所有的OSPF路由器都維護一個相同的描述這個AS結構的資料庫,該資料庫中存放的是路由域中相應鍊路的狀态資訊,OSPF路由器正是通過這個資料庫計算出其OSPF路由表的。
6.1-way和2-way是什麼意思?
- 1-way是指收到了鄰居發來的hello封包,但是在鄰居的hello封包中,并沒有提到自己(證明鄰居還沒有收到自己發過去的hello封包)
- 2-way是指相鄰的兩台路由器分别收到了對方發過來的hello封包,2-way是鄰接(adjacency)關系正式開始建立
7.簡要描述OSPF鄰居關系建立分為幾個階段?分别是什麼?
- 鄰接關系建立的4個階段:
- 鄰居發現階段
- 雙向通信階段:Hello封包都列出了對方的RID,則BC完成.
- 資料庫同步階段:
- 完全鄰接階段: full adjacency
8.OSPF鄰居關系建立的機制是什麼?
- 鄰居關系的建立和維持都是靠Hello包完成的,在一般的網絡類型中,Hello包是每經過1個HelloInterval發送一次,
- 有1個例外:在NBMA網絡中,路由器每經過一個PollInterval周期發送Hello包給狀态為down的鄰居(其他類型的網絡是不會把Hello包發送給狀态為down的路由器的).
- Cisco路由器上PollInterval預設60s Hello Packet以多點傳播的方式發送給224.0.0.5,
- 在NBMA類型,點到多點和虛鍊路類型網絡,以單點傳播發送給鄰居路由器。鄰居可以通過手工配置或者Inverse-ARP發現.
9.畫圖說明一下OSPF鄰居關系的狀态機
-
+----+
|Down|
+----+
|\
| \Start
| \ +-------+
Hello | +---->|Attempt|
Received | +-------+
| |
+----+<-+ |HelloReceived
|Init|<---------------+
+----+<--------+
| |
|2-Way |1-Way
|Received |Received
| |
+-------+ | +-----+
|ExStart|<--------+------->|2-Way|
+-------+ +-----+
Neighbor state changes (Hello Protocol)
-
+-------+
|ExStart|
+-------+
|
NegotiationDone|
+->+--------+
|Exchange|
+--+--------+
|
Exchange|
Done |
+----+ | +-------+
|Full|<---------+----->|Loading|
+----+<-+ +-------+
| LoadingDone |
+------------------+
Neighbor state changes (Database Exchange)
說明
- Down: 初始化狀态.
- Attempt: 隻适于NBMA網絡,在NBMA網絡中鄰居是手動指定的,在該狀态下,路由器将使用HelloInterval取代PollInterval來發 送Hello包.
- Init: 表明在DeadInterval裡收到了Hello包,但是2-Way通信仍然沒有建立起來.
- two-way: 雙向會話建立.
- ExStart: 資訊交換初始狀态,在這個狀态下,本地路由器和鄰居将建立Master/Slave關系,并确定DD Sequence Number,接口等級高的的成為Master.
- Exchange: 資訊交換狀态,本地路由器向鄰居發送資料庫描述包,并且會發送LSR用于請求新的LSA.
- Loading: 資訊加載狀态,本地路由器向鄰居發送LSR用于請求新的LSA .
- Full: 完全鄰接狀态,這種鄰接出現在Router LSA和Network LSA中.
10.說說OSPF協定中的幾種路由器類型
- Internal Router:内部路由器
- ABR(Area Border Router):區域邊界路由器,OSPF中存在Area的概念,一個AS中可能存在着很多的Area,那些連接配接了兩個或兩個以上Area的路由器,就叫做區域邊界路由器
- Backbone Router(BR):骨幹路由器
- ASBR(Autonomous System Boundary Router):自治系統邊界路由器.
- DR:待補充
- BDR:待補充
11.簡述一下OSPF的幾種LSA封包及其用途
OSPF協定因為定義了多種類型的路由器類型,是以定義多種LSA通告類型也是必要的。彙總來講,OSPF總共有7種類型的LSA
- LSA Type 1:
- 概念:路由器LSA,(RLA ,router link advertisement,路由器鍊路通知)
- 誰産生的:AS域内的所有路由器
- 洪泛範圍:AS域中所有路由器(除發出者自己)
- 洪泛内容:區域中所有路由器的鍊路資訊、每個鍊路狀态、開銷、
- LSA Type 2:
- 概念:也稱為網絡LSA,(NLA,network link advertisement,網絡鍊路通知)
- 誰産生的:指定路由器(DR)或者BDR産生的。
- 洪泛範圍:隻在産生這條Network LSA的區域内泛洪
- 洪泛内容:描述了所有和它相連的路由器(包括DR本身).
- LSA Type 3 & LSA Type 4:
- 概念:稱為彙總LSA(SLA,summary link advertisements)
- 誰産生的:由區域邊界路由器(ABR)産生。
- 洪泛範圍:這些ABR向區域中所有路由器發送第三種與第四種LSA。這些LSA向主幹區域通知區域内路由,向非主幹區域通知區域内路由和區域間路由。
- 洪泛内容:用于通告AS域外部的目的位址.當其他的路由器收到來自ABR的Network Summary LSA以後,它不會運作SPF算法,它隻簡單的加上到達那個ABR的開銷和Network Summary LSA中包含的開銷,通過ABR,到達目标位址的路由和開銷一起被加進路由表裡,這種依賴中間路由器來确定到達目标位址的完全路由(full route)實際上是距離矢量路由協定的行為
- LSA Type 3和Type 4的差別:他們的唯一差别在于第三種LSA将區域外的網絡通知和到區域内,而第四種将ASBR資訊通知到區域内
- LSA Type 5:
- 概念:AS外部LSA(AS external link advertisements)
- 誰産生的:是邊界路由器(ASBR)發出的
- 洪泛範圍:整個AS域
- 洪泛内容:用來通告到達OSPF自主系統外部的目的地,或者OSPF自主系統那個外部的預設路由的LSA.
- LSA Type 7:
- 概念:External LSA
- 誰産生的:第七種LSA隻由補全殘根系統(NSSA)中的ASBR産生。
- 洪泛範圍:隻在NSSA區域内泛洪
- 其它說明:第七種LSA跨區域傳遞到ABR。第七種LSA到達ABR之後,BR将第七種LSA變成第五種LSA,傳遞到主幹。第七種LSA通知OSPF自治系統外部的區域外的網絡路由。
12.講講OSPF中用到的幾種封包類型
- 所有的OSPF封包共用相同的封包頭
-
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version # | Type | Packet length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Router ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Area ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | AuType |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Authentication |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Authentication |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- Hello
- 何時發送:Hello封包在每個使能了OSPF能力的接口上發送,根據路由器上設定的Hello Interval間隔時間進行發送.Hello封包中有路由器的優先級,hello封包發送的間隔時間,RouterDeadInterval(表示一旦多長時間沒有收到鄰居的hello封包,就會認為鄰居關系丢失了)
- 主要功能:
- 發現鄰居
- 維持鄰接關系
- 選舉DR和BDR
- Database description
- DD封包的發送與鄰居之間的鄰接狀态有很大的關系
- ExStart狀态時:路由器發送空的DD封包,并将I(initialize),M(more),MS(master)标志位置上
- Exchange狀态時:此時DD包中就包含了實實在在的LSA内容(這裡注意一下其中的DD sequence num主要是起啥作用的)
- 在Exchange狀态的時候,DD封包的發送和接收其實還涉及到誰是Master誰是Slave
- Link state request
-
- 何時發送:在鄰居關系處于Exchange或Loading的時候
- 主要内容:
- 主要功能:
-
- Link state update:OSPF中鍊路狀态資料庫的更新是可靠的,主要就是靠link state update和link state ack封包來實作的
- Link state ack:
13. OSPF協定中經常使用的多點傳播位址和一些常量
- AllSPFRouters:224.0.0.5,隻要是運作了OSPF路由協定的路由器都需要處理發送到這個多點傳播位址的封包,在廣播和多點傳播網絡中,ospf的hello封包以及在LSA洪泛過程中的封包都會發送到這個位址
- AllDRouters:224.0.0.6,一個ospf域中的指定路由器和備份指定路由器都需要支援這個多點傳播位址
- OSPF IP協定号:89
- 所有的OSPF封包在IP頭中使用的type of service都是0000
- 除了虛鍊路,所有OSPF封包都有一跳,隻在有鄰接關系的節點之間發送