OSPF了(一)---OSPF的狀態機,工作原理及網絡類型

OSPF

  開放式最短路徑優先協議 共有協議
  鏈路狀態協議特點:
    1、 自己的lsa—鏈路狀態通告(拓撲或路由)
    2、 Lsa洪範
  無類別鏈路狀態(ls)igp路由協議,組播更新,地址224.0.0.5/6(90%用5,6是他的dr和bdr用的);跨層封裝到三層,協議號89;支持等開銷負載均衡,默認4條最大6條;iOS版本12.4以上16條;
  基於拓撲工作,故更新量大-----需要結構化部署–區域劃分、地址規劃(選路佳)
  觸發更新(可靠性高、單詞更新小)、每30min週期更新
  優點:選路佳
  缺點:更新量大,故30min週期更新,且不支持大型網絡
  鏈路狀態協議的距離矢量規則:區域之間傳遞的是路由,不是拓撲

OSPF的數據包

Hello包 鄰居和鄰接的發現、建立、保活;
DBD–數據庫描述包 攜帶數據庫目錄
LSR–鏈路狀態請求 查詢目錄中本地未知的lsa信息
LSU–鏈路狀態更新 應答查詢包,攜帶各種LSA
LSack–鏈路狀態確認 確認dbd和lsu

Ospf數據包的頭部標準
在這裏插入圖片描述
Type就是五種包
認證類型:1、空2、明文 3、密文

Ospf的狀態機

OSPF建立時,存在各個階段;(過程)
1、down 本地一旦發出hello包進入下一狀態
2、Init初始化 本地接收到的hello包存在本地的RID進入下一狀態
3、2way雙向通信 鄰居關係建立標誌;
條件匹配:點到點網絡直接進入下一狀態;MA網絡將進行DR/BDR選舉(40S),非DR/BDR間不得進入下一狀態;
4、exstart 預啓動 使用類似hello的DBD進行主從關係選舉,RID大爲主,主優先進入下
一狀態
5、Exchange 準交換 使用真實的DBD包進行數據庫目錄共享,需要ACK;
6、Loading 加載 使用LSR/LSU/LSack來獲取未知的LSA信息;
7、Full轉發 鄰接關係建立的標誌

OSPF工作過程

  啓動配置完成後,本地使用hello包建立鄰居關係,生成鄰居表;
  再與鄰居進行條件匹配,匹配失敗者間保持爲鄰居關係,僅hello包週期保活即可;
  匹配成功者間建立鄰接關係,這種關係間,將先使用dbd共享數據庫目錄,再使用DBD/LSR/LSU/LSack來獲取未知的LSA信息,當收集其網絡中所有LSA後,生成LSDB–數據庫表;之後使用最短路徑算法,計算本地到達所有未知網段的最佳路由,然後將其加載路由表中,收斂完成後,hello包週期保活;每30min週期再使用dbd進行比對,若不一致將使用LSR/LSU/LSack來同步;

  結構突變—1、新增網段 發送新的DBD 未知設備會使用LSR獲取(正常收斂)
        2、斷開網段 發送新的DBD 未知設備會使用LSR獲取
       3、無法溝通 計時器到時間,斷開鄰居關係,刪除數據庫;之後嘗試重新建鄰

  名詞:
   LSA–鏈路狀態通告 —存在多種類別,攜帶不同環境下產生的拓撲或路由信息;該信息依賴LSU數據包傳遞;
   LSDB–鏈路狀態數據庫 —各種的LSA的集合—數據庫表
   OSPF的收斂行爲稱爲------LSA洪泛 LSDB同步

配置:

r1(config)#router ospf 1
   啓動OSPF協議,啓動時需要配置進程號,進行號僅具有本地意義
r1(config-router)#router-id 1.1.1.1
   全網唯一,手工—若不配,則取環回最大數值或物理接口最大數值
    宣告:1、激活 2、路由或拓撲 3、區域劃分
r1(config-router)#network 12.1.1.1 0.0.0.0 area 0
r1(config-router)#network 1.1.1.1 0.0.0.0 area 0
       宣告時必須攜帶反掩碼

  區域劃分規則:
   1、星型結構
   2、必須存在ABR-邊界路由器

【1】當啓動配置完成後,鄰居間使用hello包建立鄰居關係,生成鄰居表
Hello包–用於鄰居的發現、關係、保活
hello time爲10s或30s dead time 爲hello time 的4倍;

在這裏插入圖片描述
Hello包中和鄰居必須完全一致的參數:
   hello time和dead time
   區域ID
   認證字段
   末梢區域標記
r2#show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
1.1.1.1           0   FULL/  -        00:00:39    12.1.1.1        Serial1/0
3.3.3.3           0   FULL/  -        00:00:38    23.1.1.2        Serial1/1
                  優先級 狀態機

【2】鄰居關係建立後,進行條件匹配,匹配失敗保持爲鄰居關係,僅hello包保活
匹配成功成爲鄰接關係,將使用DBD/LSR/LSU/LSACK來獲取未知的LSA信息,生成數據庫表:

  DBD:攜帶MTU值;強制鄰居間MTU值必須一致,否則卡在exstart或exchange狀態;
  DBD包中的描述字段:I 爲1標示該包爲本地發出的第一個DBD包
     M爲0標示該包爲本地發出的最後一個DBD包
     MS爲1標示本地爲主;
在這裏插入圖片描述
  隱性確認:從使用主的序列號來對主進行確認;

r1#show ip ospf database 查看數據庫簡表
OSPF存在各種類別的LSA,簡表內僅記錄分類的基礎信息;
【3】OSPF協議在生成好數據庫表後,將基於最短路徑規則將最佳路徑加載到本地的路由表中

 O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
  

O標示本地區域內的路由–本地基於拓撲計算所得
O IA 標示其他區域的路由通過ABR導入 --域間路由
O E1/2 標示通過其他協議或進程計算所得,之後ASBR重發布導入 域外路由
ON1/2 標示通過其他協議或進程計算所得,之後ASBR重發布導入,同時本地爲NSSA或完
全NSSA區域 -----域外路由

管理距離爲110;度量爲cost=開銷值=參考帶寬/接口實際帶寬
Ospf選路,就是選擇cost值之和最小路徑;默認參考帶寬爲100M;若接口帶寬大於參考帶寬,將可能導致選路不佳,可以修改參考帶寬

r1(config)#router ospf 1 
r1(config-router)#default auto-cost reference-bandwidth ?
  <1-4294967>  The reference bandwidth in terms of Mbits per second  單位爲m
r1(config-router)#default auto-cost reference-bandwidth 1000 
注:所有設備均需修改;

【4】OSPF建立鄰接關係的條件 不能做水平分割,ospf的水平分割指區域間的路由從此區域出不從此區域出。
  網絡類型:點到點網絡類型 ----必然成爲鄰接關係
  MA----進行DR/BDR選舉,所有非DR/BDR僅與DR/BDR建立鄰接關係;非DR/BDR間正常保持爲鄰居關係(僅hello包保活);
  選擇規則:1、比較接口優先級,默認爲1,大優;
       2、若優先級相同,比較RID,數值大優;
干涉選舉:
1、DR優選級最大,BDR次大;DR選擇爲非搶佔,故修改優先級後,正常需要重啓OSPF進程

r1(config)#interface fastEthernet 0/0
r1(config-if)#ip ospf priority 3
r1#clear ip ospf process 
Reset ALL OSPF processes? [no]: yes   (一起重啓)

2、DR優選級最大,BDR次大;其他設備優先級修改爲0,標示不參選;
切記:不能將所有參選接口優先級修改爲0;

【5】OSPF接口網絡類型
設備接口網絡類型: 環回 點到點 BMA NBMA
所謂的OSPF接口網絡類型,是指OSPF協議在設備不同網絡類型下的不同工作方式;

設備接口網絡類型           OSPF 接口網絡類型(工作方式)
環回接口        LOOPBACK        LOOPBACK       無hello包,發送32位主機路由
串口(HDLC/PPP)點到點          POINT_TO_POINT  hello time 10s(dead4倍);不選DR;
以太網接口       BMA           BROADCAST(廣播) hello time 10s;選DR;

MGRE           NBMA           

注:在tunnel接口上,OSPF默認的工作方式爲點到點;這種工作方式在MGRE環境下,將無法正常建立鄰居關係—因爲點到點工作方式只能和一個鄰居建鄰;
可以將接口工作方式修改爲BROADCAST;切記BROADCAST和POINT_TO_POINT工作方式均爲10s的hello time,故能夠建立鄰居關係,但由於一個選DR,另一個不選,不能正常收斂路由;

r2(config)#interface tunnel 0
r2(config-if)#ip ospf network broadcast 

注:若BROADCAST的工作環境爲星型或部分網狀結構都可能出現DR位置錯誤問題;
必須修改DR的位置到最合適的地方;

星型
部分網狀
全連網狀

建議:
1、在星型結構中可以定義爲broadcast 類型,但注意DR位置;或修改爲點到多點工作方式;
2、在部分網狀結構中直接定義爲點到多點
3、在全連網狀建議broadcast ;
r1(config)#interface tunnel 0
r1(config-if)#ip ospf network point-to-multipoint

點到多點工作方式:hello time 爲30s;不選DR;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章