1、DR和BDR的選舉
雙方同時進入2-Way狀態開始選舉,選舉時間=死亡時間(40S)
(1) 首先檢查DR和BDR字段是否爲空,如果都爲空(0.0.0.0)表明沒有DR也沒有BDR。
(2) 先選舉出BDR(DR、BDR都爲空)
① 先比較優先級,越高越優,默認是1(0不參與選舉)。如果已經選舉爲DR,後手動修改優先級爲0,則該路由器從DR變成DBOther。
② 如果優先級相同,比較RouterID,越大越優
③ BDR選舉出後,會自動升級爲DR,重新再選舉BDR
④ 如果DR字段爲空,BDR不爲空,BDR會自動升級爲DR,重新再選舉BDR
⑤ 如果BDR爲空,DR不爲空,重新再選舉BDR
(3) 默認DR、BDR是不搶佔的(超過40S選舉時候後進來的Router不會改變DR和BDR)
2、如果兩個設備之間是2-Way說明什麼?
(1) 這兩個設備可能都不是DR或者BDR
(2) 這連個設備都是DROther
(3) 這兩個設備可能有問題
3、鄰接的建立
(1) R1和R2都爲DOWN狀態
(2) R1收到Neighbor字段爲空的Hello報文(R1變爲Init狀態)
(3) R1發送Neighbor字段爲R2的RouterID的Hello報文
(4) R2收到Neighbor字段爲R2的RouterID的Hello報文(R2變爲2Way狀態)
(5) R2發送Neighbor字段爲R1的RouterID的Hello報文
(6) R1收到Neighbor字段爲R1的RouterID的Hello報文(R1變爲2Way狀態)
(7) R1和R2建立鄰居成功(進入Exstart狀態)
(8) R1和R2相互發送I位爲1,M位爲1,MS位爲1的空DBD報文。
(9) R1和R2收到對方的空DBD報文後,選舉主從。(RouterID大的爲主,假設R2爲主)(進入ExChange狀態)
(10) R1向R2發送DBD摘要信息(MS=0),確認號爲剛收到的空DBD報文的確認號
(11) R2向R1發送DBD摘要信息(MS=1),確認號爲上一個確認號+1
(12) R1向R2發送空DBD報文,表示確認收到,確認號爲剛收到的DBD報文的確認號(M=0,表示後面沒有DBD報文了)(進入Loading狀態)
(13) 交換LSR、LSU、LSA、LSACK信息
(14) 鄰接建立(進入FULL狀態)
4、OSPF有兩種確認機制:
(1) 隱示確認(主從序列號)
(2) 顯式確認(lsr lsu lsack )
5、DBD報文的作用:
(1) 選舉主從
① 第一個DBD報文爲空,只用來選舉主從
② 主從的選舉規則:
1) 比較RouterID,大的爲主
③ 隱示確認:通過主序列號進行確認:如果主設備收到一條DBD的回覆報文,裏邊的序列號是自己之前發送的,就認爲之前的DBD對端已經收到(主從序列號)
(2) 交互LSA摘要信息
6、ospf在不同的網絡中
HELLO(s) | DEAD(s) | DBD | LSR | LSU | LSACK | DR,BDR選舉 | |
NBMA | 30(單播) | 120 | 單播 | 單播 | 單播 | 單播 | 需要 |
點到多 | 30(組播) | 120 | 組播 | 單播 | 單播 | 單播 | 不需要 |
廣播 | 10(組播) | 40 | 單播 | 單播 | 單播、組播 | 單播、組播 | 需要 |
點到點 | 10(組播) | 40 | 組播 | 組播 | 組播 | 組播 | 不需要 |
鄰居或鄰接是否可以建立 | 如果修改HELLO時間 | 是否有路由 | ||
廣播、P2P | 可以建立 | 不需要 | 沒有(LSA有關係) | |
廣播、NBMA | 不可以 | 修改也無法建立 | 沒有 | 鄰居無法建立的原因是與HELLO的目的地址有關(廣播類型組播和NBMA是單播) |
廣播、P2M | 不可以 | 修改後鄰居可以建立 | 沒有路由 | |
P2P、P2M | 不可以 | 修改後鄰居可以建立 | 有 | |
NBMA、P2P |
7、接口狀態機:
(1) 廣播、NBMA:down、waiting、loopback
(2) P2P、P2M:down、P2P