天天看點

動态路由協定OSPF介紹OSPF知識點彙總

文章目錄

  • OSPF知識點彙總
    • OSPF特性以及相關術語
      • RID生成方式以及DR/BDR選舉規則
    • OSPF四種網絡類型
    • OSPF六種LSA類型介紹
    • OSPF特殊區域
    • OSPF五種封包分析
      • OSPF封包結構
    • OSPF工作原理
      • OSPF八種狀态機
      • OSPF原理詳細過程

OSPF知識點彙總

主要内容包括:OSPF相關術語、OSPF網絡類型、常見LSA介紹、OSPF特殊區域、OSPF封包介紹和封包結構、OSPF狀态機以及狀态機遷移、OSPF工作原理。

OSPF特性以及相關術語

OSPF(Open Shorts Path Frist,開放式最短路徑優先):是一種内部動态路由協定,用于解決RIP不能是用于大型網絡,存在環路的問題;

OSPF的特性:

  • 使用SPF算法、支援彙總和認證、支援CIDR和VLSM、是無類路由協定;
  • 協定号89、管理距離(華為10,思科110)、觸發更新、增量更新、周期更新群組播更新,絕對無環路;

OSPF常見術語:

  • IR(Internal Routers,區域内路由器):裝置所有接口都在同一個區内;
  • ABR(Area Border Routers,邊界區域路由器):裝置的接口屬于兩個或兩個以上的區域,其中必有骨幹區域。ABR用于連接配接普通區域和骨幹區域,與骨幹區域的連接配接,可以是實體上的連接配接,也可以是邏輯上的連接配接(虛鍊路);
  • ASBR(AS Boundary Routers,自制系統邊界路由器):裝置接口至少一個接收了其他AS系統的路由資訊。ASBR通常是在AS系統邊界,但也可以在區域間,隻要引進了外部路由(直連路由、靜态路由、RIP路由、BGP路由等)就是ASBR;

    注:ABR和ASBR與實體位址無關,隻要能實作相關功能就是ABR或ASBR;

  • BR(Backbone Routers,骨幹路由器):裝置接口至少有一個連接配接骨幹區域。ABR和骨幹區域内的路由器均是BR;
  • 第一類外部路由(Type1 External):經過ASBR引進的内部路由,計算方式為:開銷=本裝置到達ASBR的開銷+ASBR到達目的路由的開銷(OSPF區域内部的路由器到ASBR的開銷+ASBR達到其他AS系統目的路由的開銷);
  • 第二類外部路由(Type2 External):經過ASBR引進的内部路由,計算方式為:開銷=ASBR到達目的路由的開銷(隻計算其他AS區域内路由的開銷,不計算OSPF區域内到達ASBR的開銷);

RID生成方式以及DR/BDR選舉規則

RID(Router ID,路由ID):用于唯一辨別OSPF内的路由器;

RID的生成方式(生成方式按照優先級依次往下):

  • 手動配置;
  • 如果沒有手動配置,就使用路由器環回口的最大IP位址;
  • 如果沒有配置環回口,就使用路由器實體接口的最大IP位址;

DR/BDR(Designated Router/Back-up Designated Router,指定路由器/指定備份路由器):在廣播網絡和NBMA網絡環境中的角色,用于減少封包在環境中的傳輸,收集網絡環境中的拓撲情況,發送給非DR/BDR,進行路由條目同步;

DR/BDR的選舉:

  • 比較路由器的接口優先級,優先級最高的為DR,次之為BDR,預設優先級為1;
  • 如果優先級相同,就比較RID,最大的為DR,次之為BDR;
注:在廣播網絡和NBMA網絡中,每個網段都會選舉出DR/BDR;優先級為0表示不參與選舉;DR與BDR為鄰接關系,DR/BDR與Dother為鄰接關系,Dother與Dother為鄰居關系;
           

OSPF四種網絡類型

OSPF協定定義了四種網絡環境:廣播網絡、NBMA(非廣播網絡)、P2P(點到點網絡)和P2MP(點到多點網絡);

  • 廣播網絡:選舉DR/BDR,接口優先級預設為1,hello時間10s,自動發現鄰居;多點傳播發送hello、LSU和LSAck封包,單點傳播發送DD和LSR封包;
  • NBMA:選舉DR/BDR,接口優先級預設為1,hello時間30s,手動設定鄰居;單點傳播發送Hello、DD、LSR、LSU和LSAck封包;
  • P2P:不選舉DR/BDR,接口優先級預設為1,hello時間10s,自動發現鄰居;多點傳播發送Hello、DD、LSR、LSU和LSAck封包;
  • P2MP:不選舉DR/BDR,幾口優先級預設為1,hello時間30s,自動發現鄰居,多點傳播發送Hello封包,單點傳播發送DD、LSR、LSU和LSAck封包;
注:預設下,Dead Time(Hello死亡時間)是Hello時間的四倍;在鄰接關系建立過程中兩端的Hello時間不一緻會造成鄰居關系建立不成功;
           

OSPF六種LSA類型介紹

**LSA(Link State Advertisement,鍊路狀态通告)**用于交換和儲存整個網絡的鍊路狀态資訊,進而掌握整個網絡的拓撲結構,獨立計算路由。

LSA常見的類型有6類:1類、2類、3類、5類、4類和7類;

  • Type1 LSA(Router LSA,路由LSA):
    • 描述對應裝置的實體接口所連接配接的鍊路或接口(宣告裝置存在),指明本裝置接口資訊(IP、子網路遮罩、MTU等資訊);向鄰居發送本裝置的鍊路狀态資訊;
    • 傳播範圍:本地OSPf區域,不穿透ABR;
    • 發送者:所有路由器;
      動态路由協定OSPF介紹OSPF知識點彙總
  • Type2 LSA(Network LSA,網絡LSA):
    • 描述DR/BDR所在的網絡拓撲結構;
    • 傳播範圍:本地OSPf區域,不穿透ABR;
    • 發送者:DR/BDR路由器;
      動态路由協定OSPF介紹OSPF知識點彙總
  • Type3 LSA(Network Summary LSA,網絡彙聚LSA):
    • 描述所連接配接區域的整個區域拓撲結構,用于告知同AS内其他OSPf區域,本區域的拓撲結構和鍊路資訊;
    • 傳播範圍:所有OSPF區域(Totally stub和Totally NSSA區域除外);
    • 發送者:ABR;
      動态路由協定OSPF介紹OSPF知識點彙總
  • Type5 LSA(AS External LSA,自治系統外部LSA):
    • 描述AS外部路由進入OSPF區域的路由(即向所有OSPF區域描述到達非OSPF區域内裝置的狀态資訊);
    • 傳播範圍:所有OSPF區域(NSSA/Totally NSSA特殊區域除外);
    • 發送者:ASBR;
      動态路由協定OSPF介紹OSPF知識點彙總
  • Type4 LSA(ASBR Summary LSA,ASBR聚合LSA):
    • 描述其他OSPF區域到達該ASBR的路徑,由于第五類LSA在OSPF區域傳播時不會修改下一跳,是以需要第四類LSA指明到達ASBR的路徑;
    • 傳播範圍:所有OSPF區域(NSSA/Totally NSSA特殊區域除外);
    • 發送者:ABR;
      動态路由協定OSPF介紹OSPF知識點彙總
      注:ASBR所在的區域内路由器都知道通往ASBR所在的外部路由器,是以該區域不會存在去往本ASBR的第四類LSA,會存在去往其他區域ASBR的第四類LSA;
  • Type7 LSA(NSSA External LSA,NSSA外部LSA):
    • NSSA/Totally NSSA特殊區域記憶體在的路由,内容與第5類LSA基本相同;
    • 傳播範圍:NSSA區域;
    • 發送者:ASBR;

OSPF特殊區域

OSPF為了使某些性能較低的路由器也能夠劃入OSPF并減小這些路由的負擔,劃分了四種特殊區域:stub、Totally stub、NSSA和Totally NSSA區域;

  • 末節區域(Stub Area):為某些性能較低并處于AS邊界的路由器設定的優化政策;
    • 前提條件:
      • 位于AS邊界并且隻有一個ABR;
      • 沒有ASBR;
      • 無虛鍊路穿越的非骨幹區域;
      • 特殊區域内的路由器都需要配置(區域内路由器均知道);
    • 存在的LSA:将Type4 LSA和Type5 LSA過濾,并由ABR生成一條Type3 LSA預設路由并通告給本區域内的所有路由器,使得本區域能夠通過預設路由通路其他其餘的路由器;
  • 完全末節區域(Totally Stub Area):stub區域的優化版,過濾的更加徹底,有效的減少路由數量;
    • 前提條件:
      • 位于AS邊界并且隻有一個ABR;
      • 沒有ASBR;
      • 無虛鍊路穿越的非骨幹區域;
      • 特殊區域内的路由器都需要配置(區域内路由器均知道);
    • 存在的LSA:将Type3、Type4 LSA和Type5 LSA過濾,并由ABR生成一條Type3 LSA預設路由并通告給本區域内的所有路由器,使得本區域能夠通過預設路由通路其他其餘的路由器;
動态路由協定OSPF介紹OSPF知識點彙總
  • NSSA區域:上述兩種區域的更新版,降低了特殊區域所需的前提條件;
    • 前提條件:
      • 可以位于非AS邊界區域,允許多個ABR和多個ASBR;
      • 無虛鍊路穿越的非骨幹區域;
      • 特殊區域内的路由器都需要配置(區域内路由器均知道);
    • 存在的LSA:将Type4 LSA和外部Type5 LSA過濾并在ASBR上将本區域的Type5 LSA轉化為Type7 LSA,然後在ABR上将本區域Type7 LSA轉化為Type 5 LSA發送給其他區域,并由ABR生成一條Type7 LSA預設路由并通告給本區域内的所有路由器,使得本區域能夠通過預設路由通路其他區域的AS路由;
  • 完全NSSA區域(Totally NSSA Area):NSSA區域的優化版
    • 前提條件:
      • 可以位于非AS邊界區域,允許多個ABR和多個ASBR;
      • 無虛鍊路穿越的非骨幹區域;
      • 特殊區域内的路由器都需要配置(區域内路由器均知道);
    • 存在的LSA:将Type3 LSA、Type4 LSA和外部Type5 LSA過濾并在ASBR上将本區域的Type5 LSA轉化為Type7 LSA,然後在ABR上将本區域Type7 LSA轉化為Type 5 LSA發送給其他區域,并由ABR生成一條Type7 LSA預設路由和一條Type3 LSA預設路由并通告給本區域内的所有路由器,使得本區域能夠通過預設路由通路其他區域的AS路由和其他區域的路由器;
動态路由協定OSPF介紹OSPF知識點彙總
注:OSPF骨幹區域也是一種特殊區域,OSPF骨幹區域是Area ID為0,不同區域之間的封包交換都必須經過骨幹區域,并且其他非骨幹區域必須直接或間接與骨幹區域相連,是以OSPF網絡必須要有骨幹區域。
           

OSPF五種封包分析

OSPF五種封包包括:Hello封包、DD封包、LSR封包、LSU封包和LSAck封包;

五種封包的作用如下:

  • Hello封包:建立和維護路由器之間的鄰接關系,用于向鄰居證明自己的存在;
  • DD封包(Database Description,資料庫描述):包含有LSDB(鍊路狀态資料庫)資訊的LSA摘要,用于比對LSDB(鍊路狀态資料庫)是否存在缺少的LSA;
  • LSR封包(Link State Request,鍊路狀态請求):向鄰居請求本裝置缺少的LSA資訊;
  • LSU封包(Link State Update,鍊路狀态更新):按照LSR發送對方缺少的LSA詳細資訊;
  • LSAck封包(Link State Acknowledge,鍊路狀态應答):表明收到了本裝置所缺少的LSA詳細資訊;

OSPF封包結構

OSPF的五種封包(hello、DD、LSR、LSU和LSAck)采用的都是相同的OSPF報頭;

注:OSPF封包解析在沒有特殊說明的情況下,預設為廣播網絡環境=

OSPF報頭格式:

動态路由協定OSPF介紹OSPF知識點彙總
封包字段 說明
Version 版本字段,指定目前OSPF協定使用的版本号,OSPFv2版本值為2;
Packet Type 封包類型字段,辨別封包類型,數值為1-5,分别對應五種封包;
Packet Length 包長度字段,辨別整個封包的位元組長度(OSPF報頭和各封包内容);
Router ID 路由器ID字段,指定發送者的源路由器ID;
Area ID 區域ID字段,指定發送封包的路由器接口所在的OPSF區域ID
Checksum 校驗和字段,對整個封包(不包含驗證字段)的校驗和,用于對端路由器确定封包的完整性和正确性;
Auth Type 驗證類型字段,0為不認證、1為簡單認證、2為MD5認證
Authentication 驗證字段,不認證時沒有該字段無資料;簡單認證時此字段為驗證密碼;MD5認證時此字段為MD5摘要資訊;

Hello封包結構:

動态路由協定OSPF介紹OSPF知識點彙總
封包字段 說明
Network Mask 子網路遮罩字段,指定發送封包的路由器接口的子網路遮罩
Hello Interval Hello發送時間間隔字段,指定路由器發送封包的時間間隔,預設為10s;
Options 可選項字段,置“0”代表沒有相應特性,置“1”代表具有相應特性,特性包括:E 是否允許泛洪AS-external-LSA;MC 是否允許轉發IP多點傳播封包;N 是否允許處理Type7 LSA;DC 是否允許處理按需鍊路;
Rtr Pri 優先級值字段,指定本路由器的DR優先級值,預設為1;
Router DeadInterval Hello死亡時間間隔字段,指定本地路由器失效時間,預設為40s;如果在該時間内沒有收到Hello封包,就表明鄰居失效;
Designated Router DR路由器IP位址字段,指明本路由器的DR接口的IP位址;
Backup Designated Router BDR路由器IP位址字段,指明本路由器的BDR接口的IP位址;
Neighbor 鄰居路由ID字段,指明鄰居路由器的RID,可以有多個鄰居;

DD封包結構:

動态路由協定OSPF介紹OSPF知識點彙總
封包字段 說明
Interface MTU 接口MTU字段,指明發送封包的接口在不分段的情況下,可發送的最大值
Options 可選項字段,置“0”代表沒有相應特性,置“1”代表具有相應特性,特性包括:E 是否允許泛洪AS-external-LSA;MC 是否允許轉發IP多點傳播封包;N 是否允許處理Type7 LSA;DC 是否允許處理按需鍊路;
I 指定連續發送多個DD封包所處的位置,置“1”代表第一個封包,置“0”代表其他封包;
M 指定連續發送多個DD封包所處的位置,置“0”代表最後一個封包,置“1”代表其他封包;
M/S 主從關系字段,本端為Master裝置就置為“1”,為Salve就置為“0”;
DD Sequence Number 序列号字段,指定發送封包使用的序列号,保證封包的正确性和可靠性;
LSA Header 摘要字段,指定封包中包含的LSA頭部,可以同時包含多個LSA摘要;

注:MTU值不一緻會導緻狀态機一直停留在Exstart狀态

LSR博文結構:

動态路由協定OSPF介紹OSPF知識點彙總
封包字段 說明
LSA Type LSA類型字段,指明請求的LSA類型,取值為1-5,對應相應類型;
Link State ID 指定OSPF所描述的部分區域,該字段根據LSA類型不同而不同,Type1 LSA時,該字段為産生該LSA的路由器ID;Type2 LSA時,該字段為DR;Type3 LSA時,該字段為目的網絡位址;Type4 LSA時,該字段為ASBR的RID;Type5 LSA和Type7 LSA時,該字段為目的IP位址;
Advertising Router 通告路由類型,指定發送LSR封包的路由器ID;

LSU 封包結構:

動态路由協定OSPF介紹OSPF知識點彙總
封包字段 說明
Number of LSA 指定封包中LSA的數量
LSAs 包含完整詳細的LSA資訊,同一個封包可以有多條詳細LSA

LSAck封包結構:

動态路由協定OSPF介紹OSPF知識點彙總
封包字段 說明
LSA Age LSA時間字段,指明LSA産生後經過的時間,機關為秒。LSA在本地LSDB會随時間老化,當泛洪擴散時,路由器會将LSA的老化增加一個Trans-delay時間;
Options 可選項字段,置“0”代表具有相應特性,置“1”代表具有相應特性,特性包括:E 是否允許泛洪AS-external-LSA;MC 是否允許轉發IP多點傳播封包;N 是否允許處理Type7 LSA;DC 是否允許處理按需鍊路;
LSA Type LSA類型字段,指明應答的LSA類型,取值為1-5,對應相應類型;
Link State ID 指定OSPF所描述的部分區域,該字段根據LSA類型不同而不同,Type1 LSA時,該字段為産生該LSA的路由器ID;Type2 LSA時,該字段為DR;Type3 LSA時,該字段為目的網絡位址;Type4 LSA時,該字段為ASBR的RID;Type5 LSA和Type7 LSA時,該字段為目的IP位址;
Advertising Router 通告路由字段,指定發送LSAck封包的RID;
LSA Sequence Number LSA序列号字段,指定發送封包使用的序列号,保證封包的正确性和可靠性;
LSA Checksum 校驗和字段,對LSAck封包進行校驗,確定接收方收到該封包是可靠的,安全的;
Length 長度字段,辨別LSAck的位元組大小;

OSPF工作原理

介紹各個狀态機的作用以及遷移過程。

OSPF八種狀态機

  • Down:所有OSPF裝置的初始狀态,發送包含有自己RID等資訊的Hello請求封包;
  • Attempt:在NBMA網絡中,鄰居失效時間逾時後,仍沒收到hello應答封包,然後不斷輪詢發送hello封包;
  • Init:收到不包含有自己DR的hello封包就跳轉到Init;
  • 2-way:收到包含有自己DR的hello封包就跳轉到2-way;
  • Exstart:進行DR/BDR選舉,建立鄰居關系。發送空的DD封包,用于選舉Master/Salve裝置,并确定序列号;
  • Exchange:發送帶有LSA摘要的DD封包并接收鄰居發送的DD封包,用于比較本裝置LSDB(鍊路狀态資料庫)裡所缺失的LSA;
  • Loading:向其他裝置發送LSR封包請求缺少的LSA,其他裝置按照LSR封包回複LSU封包;
  • Full:兩端裝置的LSDB同步完成後,互相發送LSAck封包;
注:狀态機的切換不一定要依次切換,隻要符合某個狀态機的工作情況就會切換到該狀态;
           

OSPF原理詳細過程

動态路由協定OSPF介紹OSPF知識點彙總

在初始階段,兩端裝置都處于Down狀态,假定在廣播網絡且R1首先發送隻包含有自己DR的Hello請求封包,R2收到對端發送hello封包時,發現該封包不包含有自己的RID,就從Down切換到Init狀态,然後發送包含有自己和鄰居RID的hello應答封包;

R1收到對端發送hello應答封包後,發現該封包中包含有自己的RID,就會從Down切換到2-way狀态,然後将對端的RID加入到本地的鄰居表裡,再次發送包含有自己和R2路由器ID的hello應答封包,當R2收到包含有自己RID的hello封包,就會從Init切換到2-way狀态;

R1和R2都進入2-way狀态後,根據先前互動的Hello封包資訊,共同進入Exstart狀态。在Exstart狀态下,R1和R2會選舉出DR/BDR(比較優先級和RID),DR/BDR選舉完成後,就會發送不含有LSA摘要的DD封包,用于選舉出主裝置和從裝置(RID大的為主裝置),并以主裝置DD封包的序列号為基礎(R1為主裝置),主從确定後,從裝置R2以主裝置的序列号向主裝置R1發送LSA Header字段為空,M/S為0(表明自己為從裝置)的DD封包并切換至Exchange狀态,主裝置R1收到R1發送的空DD封包,也從Exstart切換至Exchange狀态;

主裝置R1開始不斷的向從裝置R2發送LSA Header不為空的DD封包(LSDB包含有很多的LSA,是以會拆分發送),從裝置R2依次收到R1發送的DD封包後,都會按照主裝置DD封包的序列号進行響應,當R1發送送完所有的不為空的DD封包就會從Exchange切換到Loading狀态,當R2發送完LSA Header為空的DD響應封包後,也會從Exchange切換到Loading;

主裝置發送完LSA摘要後,從裝置R2根據這些LSA摘要資訊檢視本地LSDB發現有部分主裝置的LSA沒有包含,就會向R1發送LSR封包請求自己缺少的LSA,主裝置R1收到LSR就會按照要求發送LSU封包(包含有LSR請求的LSA詳細資訊),R2收到LSU封包後,會将LSU封包包含的LSA詳細資訊添加進本地LSDB,然後回複LSAck封包,表明自己收到了LSU封包,如果從裝置R2發現自己的部分LSA資訊主裝置R1沒有,R2就會變為主裝置向R1發送LSA Header不為空的DD封包,R1再發送LSA Header為空的DD應答封包(全部發送完畢),R1就會向R2發送LSR封包,R2收到LSR封包後發送相應的LSU封包,R1回複LSAck封包,至此R1和R2的LSDB同步完成,就切換進Full狀态;

注:兩端路由的MTU值不同就會一直處于Exstart狀态;由于雙發都有可能沒有對方的LSA,故在DD封包互動的過程中主從關系不是固定的;
           

上述過程,如下圖:

注:“進行DR/BDR選舉”、“互動空的DD封包,确定主從裝置關系”和"互相進行LSDB同步直至LSA重傳清單為空(建立鄰接關系)"均為雙向互動的過程

繼續閱讀