OSPF(Open Shortest Path First)開放式最短路徑優先協議02

 OSPF鄰居:

OSPF路由器需要鄰居路由器在幾種狀態間轉換,然後會到達FULL
失效狀態(down):一個會話的初始狀態,除了在NBMA網絡中,其他類型的網絡不會發送hello包給那些失效的鄰居路由器。如果鄰居狀態轉到了失效狀態,路由器將會清空鏈路狀態重傳列表,數據庫摘要列表和鏈路狀態請求列表
嘗試狀態(Attempt):僅適用於NBMA網絡,如果具有DR選舉資格的路由器連接其他路由器的接口變爲active的時候(本地接口),這臺路由器會把鄰居路由器的狀態轉換到Attempt狀態,使用hello間隔代替Pollinterval向鄰居發送hello包.因爲他無法動態的去發現鄰居
初始狀態(init):表明在最近的deadinterval中收到了來自鄰居路由器的hello包,雙向通信依然沒有建立,路由器會在hello包的鄰居字段中包含,在此狀態或者更高狀態下,所有學習到的所有鄰居RID,如果是第一個hello包,爲空(接收到的hello中有RID)
雙向通信狀態(2-way):表示本地路由器從來自鄰居的hello包的鄰居字段中看到了自己的RID。意味着雙向通信建立成功,在MA網絡中,路由器只有在此狀態或者更高的狀態中才有資格參與DR/BDR選舉,如果在init狀態下從鄰居收到數據庫描述報文,也可使本地路由器直接進入2-way狀態
信息交換初始狀態(ExStart):本地路由器和他的鄰居將在這一狀態下建立主/從關係,確定數據庫描述數據包的序列號,爲後面的DBD交換做準備。具有最大RID的路由器爲主路由器
信息交換狀態(Exchange):本地路由器將向他的鄰居路由器發送數據庫描述包,此狀態下,也會發送鏈路狀態請求數據包給鄰居,用來請求LSA
信息加載狀態(Loading):本地路由器向他鄰居路由器發送鏈路狀態請求,用來請求最新LSA,雖然在Exchange狀態發現了新的LSA,但是本地路由器還沒有收到這些LSA
完全鄰接狀態(full):路由器建立起完全的鄰接關係
 
鄰居建立過程:

互相發送HELLO包來協商一些參數。

OSPF會週期性的從啓用OSPF的接口上發送HELLO包,OSPF啓動之初,就進入了INIT狀態。直到從鄰居的HELLO包中看到了自己的RID,纔會將鄰居的狀態轉爲2-WAY

發送第一個DBD報文,來協商主從關係(是空的DBD報文,僅僅用來協商主從關係)

R1:

R2:

協商過主從關係以後,狀態就從Exstart轉到Exchange,並且開始交互剩下的DBD報文:

DBD報文間用序列號進行確認,主發送的序列號遞增,從序列號跟隨主序列號,來進行確認。這算一種隱性的確認方法。

從鄰居收來的DBD報文中會攜帶LSA頭部信息,如果有本地沒有的,或更新的LSA,將他放入我自己的鏈路狀態請求列表,然後去發送LSR來請求這條LSA的完整信息。直到自己的鏈路狀態請求列表爲空。

有可能在交互DBD的中間,Exchange狀態的時候,就開始發送了LSR,來請求LSA的信息。LSR只包含被請求LSA的頭部信息。

在Exchange狀態下,如果LSU和LSR的交互完成了,則直接轉到FULL狀態,如果還有,則轉到Loading狀態。

接收到LSR的路由器,會返回一個LSU,包含被請求的LSA的詳細信息。

MA網絡和其他網絡的區別,1.需要選舉DR/BDR,建立完整的FULL狀態最少40S,wait time:在開始選舉DR和BDR之間,路由器等待鄰居路由器的Hello數據包通告DR和BDR的時長。

並不是先啓動OSPF進程的路由器就是DR,而是有一個時間間隔讓路由器來等待其他路由器,在這個時間間隔內,路由器相互監聽Hello包中的DR和DBR字段中的信息,並且服從優先級原則,可以這樣認爲——選舉是公平的。(要充分考慮是否真實情況40S內一個MA網絡的OSPF能跑完)

R1先啓動OSPF,40S以後,R2啓用OSPF。看DR/BDR的選舉

(config-router)#do show ip os int f0/0

FastEthernet0/0 is up, line protocol is up 

  Internet Address 12.0.0.1/24, Area 0 

  Process ID 1, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 1

  Transmit Delay is 1 sec, State DR, Priority 1 

  Designated Router (ID) 1.1.1.1, Interface address 12.0.0.1

  Backup Designated router (ID) 2.2.2.2, Interface address 12.0.0.2

 

DR/BDR的選舉規則,先選舉BDR,然後這個BDR成爲DR,再選出一個BDR。(因爲所有路由器在開始的時候並沒有聲明自己是DR/BDR,優先級又一樣,故RID大的成爲BDR,然後這個BDR成爲DR,再重新找一個RID次大的,成爲BDR)

如果是串口,默認是點到點的網絡類型,是不需要選舉DR/BDR的。鄰居建立的方式差不多,只是不需要等待40S那麼長時間。

DR/BDR指的是一個接口的概念,虛鏈路也是指的接口。

 

注:所謂的隱式確認和顯式確認,隱式確認指的是DBD的確認和LSR的確認,這兩個確認是和Retransmit計時器有關的。顯式確認只有LSAck。

OSPF接口:
OSPF協議通過路由器的接口來了解鏈路信息,分清接口和鏈路的概念。
觀察接口結構
R1#show ip ospf interface serial 1/0
Serial1/0 is up, line protocol is up 
  Internet Address 12.0.0.1/24, Area 0 
  Process ID 1, Router ID 1.1.1.1, Network Type POINT_TO_POINT, Cost: 64
  Transmit Delay is 1 sec, State POINT_TO_POINT,
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    oob-resync timeout 40
    Hello due in 00:00:08
  Index 1/1, flood queue length 0
  Next 0x0(0)/0x0(0)
  Last flood scan length is 1, maximum is 1
  Last flood scan time is 0 msec, maximum is 0 msec
  Neighbor Count is 1, Adjacent neighbor count is 1 
    Adjacent with neighbor 2.2.2.2
  Suppress hello for 0 neighbor(s)
Internet Address:此接口所配置的ip/mask
Area 0:指定的區域ID,始發這個接口的OSPF數據包使用這個區域ID
Process ID:進程ID,CISCO私有,依靠這個CISCO來在同一設備中使用多個OSPF進程,僅僅本地有效
Router ID:路由器ID,選舉規則見LS協議最後一節
Network Type:和接口相連的網絡類型:廣播,點到點,點到多點,NBMA,虛鏈路等。
Cost:發出數據包的出站代價,即數據層面的出接口,控制層面的入接口。
OSPF帶寬計算規則:10的8次方/接口帶寬,這樣會有一個問題凡是大於100M的,cost都爲1.無法衡量出不同鏈路的帶寬
使用auto-cost reference-bandwitch修改分母
InfTransDelay=Transmit Delay :LSA從接口發送經歷的時間,LSA發出後會引發此參數不斷變大 cisco中默認是1S 
ip ospf transmit-delay來更改
因爲網絡類型關係,沒有DR/BDR的顯示
Wait 40:在serial 口中沒有意義,表示的是在開始選取DR/BDR之前,路由器等待鄰居路由器的HELLO數據包通告DR/BDR的時長。
Retransmit:在沒有得到確認的情況下,重傳OSPF數據包等待的時間長度,ip ospf retransmit-interval更改
neighbor:只有建立鄰接關係的路由器纔會在此有顯示。
如果開啓認證,此命令最後輸出也會有顯示。如果沒有使用或使用了null認證,則不會顯示。
 
每臺路由器都會維護一個鄰居數據結構表:
R1#show ip ospf neighbor 2.2.2.2
 Neighbor 2.2.2.2, interface address 12.0.0.2
    In the area 0 via interface FastEthernet0/0 
    Neighbor priority is 1, State is FULL, 6 state changes
    DR is 12.0.0.2 BDR is 12.0.0.1
    Options is 0x52
    LLS Options is 0x1 (LR)
    Dead timer due in 00:00:36
    Neighbor is up for 00:00:59
    Index 1/1, retransmission queue length 0, number of retransmission 1
    First 0x0(0)/0x0(0) Next 0x0(0)/0x0(0)
    Last retransmission scan length is 1, maximum is 1
    Last retransmission scan time is 0 msec, maximum is 0 msec
Neighbor :鄰居路由器的RID
interface address:鄰居路由器的IP地址
areaID:收到的hello包中的areaID需要和接收hello包接口的areaID一致,保證互爲鄰居路由器
 interface :本地通過哪個接口連接到這個鄰居
state:從本地看鄰居的狀態,此輸出來看是full
DR/BDR:DR/BDR的IP地址,包含在hello包中的DR/BDR字段
Dead timer:收到hello會刷新此計時器
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章