CCNA--開放式最短路徑優先(OSPF)

 CCNA--開放式最短路徑優先(OSPF) 


 
 
一.概訴:
OSPF(Open Shortest Path First開放式最短路徑優先)是一個內部網關協議(Interior Gateway Protocol,簡稱IGP),用於在單一自治系統(autonomous system,AS)內決策路由。與RIP相對,OSPF是鏈路狀態路由協議,而RIP是距離矢量路由協議。
二. OSPF的hello協議
  1. Hello協議的目的:
  
1.用於發現鄰居
  2.在成爲鄰居以前,必須對Hello包裏的一些參數協商成功
  3.Hello包在鄰居之間扮演着keepalive的角色
  4.容許鄰居之間的雙向通訊
  5.它在NBMA(Nonbroadcast Multi-access)網絡上選舉DR和BDR
  2. Hello Packet包含如下信息:
  1.源路由器的RID
  2.源路由器的Area ID
  3.源路由器接口的掩碼
  4.源路由器接口的認證類型和認證信息
  5.源路由器接口的Hello包發送的時間間隔
  6.源路由器接口的無效時間間隔
  7.優先級
  8.DR/BDR
  9.五個標記位(flag bit)
  10.源路由器的全部鄰居的RID
  三. OSPF的網絡類型
  OSPF定義的5種網絡類型:
  1.點到點網絡
  2.廣播型網絡
  3.非廣播型(NBMA)網絡
  4.點到多點網絡
  5.虛連接(virtual link)
  1.1. 點到點網絡, 好比T1線路,是鏈接單獨的一對路由器的網絡,點到點網絡上的有效鄰居老是能夠造成鄰接關係的,在這種網絡上,OSPF包的目標地址使用的是 224.0.0.5,這個組播地址稱爲 AllSPFRouters.
  2.1. 廣播型網絡,好比以太網, Token RingFDDI,這樣的網絡上會選舉一個DR和BDR,DR/BDR的發送的OSPF包的目標地址爲224.0.0.5,運載這些OSPF包的幀的目標MAC地址爲0100.5E00.0005;而除了DR/BDR之外的OSPF包的目標地址爲 224.0.0.6,這個地址叫 AllDRouters.
  3.1. NBMA網絡, 好比 X.25,Frame Relay,和 ATM,不具有廣播的能力,所以鄰居要人工來指定,在這樣的網絡上要選舉DR和BDR,OSPF包採用unicast的方式
  4.1.點到多點網絡 是NBMA網絡的一個特殊配置,能夠當作是點到點鏈路的集合. 在這樣的網絡上不選舉DR和BDR.
  5.1.虛連接: OSPF包是以unicast的方式發送
   全部的網絡也能夠概括成2種網絡類型:
  1.傳輸網絡(Transit Network)
  2.末梢網絡(Stub Network )
   四.OSPF的DR及BDR
  在DR和BDR出現以前,每一臺路由器和他的鄰居之間成爲徹底網狀的OSPF鄰接關係,這樣5臺路由器之間將須要造成10個鄰接關係,同時將產生25條LSA.並且在多址網絡中,還存在本身發出的LSA 從鄰居的鄰居發回來,致使網絡上產生不少LSA的拷貝,因此基於這種考慮,產生了DR和BDR.
  DR將完成以下工做
  1. 描述這個多址網絡和該網絡上剩下的其餘相關路由器.
  2. 管理這個多址網絡上的flooding過程.
  3. 同時爲了冗餘性,還會選取一個BDR,做爲雙備份之用.
   DR BDR選取規則: DR BDR選取是以 接口狀態機的方式觸發的.
  1. 路由器的每一個多路訪問(multi-access)接口都有個路由器優先級(Router Priority),8位長的一個整數,範圍是0到255,Cisco路由器默認的優先級是1優先級爲0的話將不能選舉爲DR/BDR.優先級能夠經過命令ip ospf priority進行修改.
  2. Hello包裏包含了優先級的字段,還包括了可能成爲DR/BDR的相關接口的IP地址.
  3. 當接口在多路訪問網絡上初次啓動的時候,它把DR/BDR地址設置爲0.0.0.0,同時設置等待計時器(wait timer)的值等於路由器無效間隔(Router Dead Interval).
   DR BDR選取過程:
  1. 在和鄰居創建雙向(2-Way)通訊以後,檢查鄰居的Hello包中 Priority,DR和BDR字段,列出全部能夠參與DR/BDR選舉的鄰居.全部的路由器聲明它們本身就是DR/BDR(Hello包中DR字段的值就是它們本身的接口地址;BDR字段的值就是它們本身的接口地址)
  2. 從這個有參與選舉DR/BDR權的列表中,建立一組沒有聲明本身就是DR的路由器的子集(聲明本身是DR的路由器將不會被選舉爲BDR)
  3. 若是在這個子集裏,無論有沒有宣稱本身就是BDR,只要在Hello包中BDR字段就等於本身接口的地址,優先級最高的就被選舉爲BDR;若是優先級都同樣,RID最高的選舉爲BDR
  4. 若是在Hello包中DR字段就等於本身接口的地址,優先級最高的就被選舉爲DR;若是優先級都同樣,RID最高的選舉爲DR;若是選出的DR不能工做,那麼新選舉的BDR就成爲DR,再從新選舉一個BDR。
  5. 要注意的是,當網絡中已經選舉了DR/BDR後,又出現了1臺新的優先級更高的路由器,DR/BDR是不會從新選舉的
  6. DR/BDR選舉完成後,DRother只和DR/BDR造成鄰接關係.全部的路由器將組播Hello包到AllSPFRouters地址224.0.0.5以便它們能跟蹤其餘鄰居的信息,即DR將泛洪update packet到224.0.0.5;DRother只組播update packet到AllDRouter地址224.0.0.6, 只有DR/BDR監聽這個地址.
   簡潔的說:DR的篩選過程
  1.優先級爲0的不參與選舉
  2.優先級高的路由器爲DR
  3.優先級相同時,以router ID 大爲DR。
  router ID 以迴環接口中最大ip爲準。
  若無迴環接口,以真實接口最大ip爲準。
  4.缺省條件下,優先級爲1
   五.OSPF鄰居關係
  鄰接關係創建的4個階段:
   1.鄰居發現階段
   2.雙向通訊階段:Hello報文都列出了對方的RID,則BC完成.
   3.數據庫同步階段:
   4.徹底鄰接階段: full adjacency
  鄰居關係的創建和維持都是靠Hello包完成的,在通常的網絡類型中,Hello包是每通過1個HelloInterval發送一次,有1個例外:在NBMA網絡中,路由器每通過一個PollInterval週期發送Hello包給狀態爲down的鄰居(其餘類型的網絡是不會把Hello包發送給狀態爲down的路由器的).Cisco路由器上PollInterval默認60s Hello Packet以組播的方式發送給224.0.0.5,在NBMA類型,點到多點和虛鏈路類型網絡,以單播發送給鄰居路由器。鄰居能夠經過手工配置或者Inverse-ARP發現.
   OSPF路由器在徹底鄰接以前,所通過的幾個狀態:
  1. Down:此狀態尚未與其餘路由器交換信息。首先從其ospf接口向外發送hello分組,還並不知道DR(若爲廣播網絡)和任何其餘路由器。發送hello分組是,使用組播地址224.0.0.5。
  2. Attempt: 只適於NBMA網絡,在NBMA網絡中鄰居是手動指定的,在該狀態下,路由器將使用HelloInterval取代PollInterval來發 送Hello包.
  3. Init: 代表在DeadInterval裏收到了Hello包,可是2-Way通訊仍然沒有創建起來.
  4. two-way: 雙向會話創建,而 RID 彼此出如今對方的鄰居列表中。(若爲廣播網絡:例如:以太網。在這個時候應該選舉DR,BDR。)
  5. ExStart: 信息交換初始狀態,在這個狀態下,本地路由器和鄰居將創建Master/Slave關係,並肯定DD Sequence Number,路由器ID大的的成爲Master.
  6. Exchange: 信息交換狀態:本地路由器和鄰居交換一個或多個DBD分組(也叫DDP) 。DBD包含有關LSDB中LSA條目的摘要信息)。
  7. Loading: 信息加載狀態:收到DBD後,使用LSACK分組確認已收到DBD.將收到的信息同LSDB中的信息進行比較。若是DBD中有更新的鏈路狀態條目,則想對方發送一個LSR,用於請求新的LSA 。
  8. Full: 徹底鄰接狀態,這種鄰接出如今Router LSA和Network LSA中.
   六.OSPF泛洪
  Flooding採用2種報文
   LSU Type 4---鏈路狀態更新報文
   LSA Type 5---鏈路狀態確認報文
   (補充下 )
   {
   Hello Type 1 ---Hello協議報文
   DD(Data Description) Type 2----鏈路數據描述報文
   LSR Type 3----鏈路狀態請求報文
   }
  在 P-P網絡,路由器是以組播方式將更新報文發送到組播地址 224.0.0.5.
  在 P-MP和虛鏈路網絡,路由器以單播方式將更新報文發送至鄰接鄰居的接口地址.
  在 廣播型網絡,DRother路由器只能和DR&BDR造成鄰接關係,因此更新報文將發送到224.0.0.6,相應的DR以224.0.0.5泛洪LSA而且BDR只接收LSA,不會確認和泛洪這些更新,除非DR失效 在NBMA型網絡,LSA以單播方式發送到DR BDR,而且DR以單播方式發送這些更新.
  LSA經過序列號,校驗和,和老化時間保證LSDB中的LSA是最新的,
   Seq: 序列號(Seq)的範圍是0x80000001到0x7fffffff.
   Checksum: 校驗和(Checksum)計算除了Age字段之外的全部字段,每5分鐘校驗1次.
   Age: 範圍是0到3600秒,16位長.當路由器發出1個LSA後,就把Age設置爲0,當這個LSA通過1臺路由器之後,Age就會增長1個LSA保存在LSDB中的時候,老化時間也會增長.
  當收到相同的LSA的多個實例的時候,將經過下面的方法來肯定哪一個LSA是最新的:
  1. 比較LSA實例的序列號,越大的越新.
  2. 若是序列號相同,就比較校驗和,越大越新.
  3. 若是校驗和也相同,就比較老化時間,若是隻有1個LSA擁有MaxAge(3600秒)的老化時間,它就是最新的.
  4. 若是LSA老化時間相差15分鐘以上,(叫作MaxAgeDiff),老化時間越小的越新.
  5. 若是上述都沒法區分,則認爲這2個LSA是相同的.
   六.OSPF區域
  區域長度32位,能夠用10進制,也能夠相似於IP地址的點分十進制分3種通訊量
   1. Intra-Area Traffic:域內間通訊量
  2. Inter-Area Traffic:域間通訊量
  3. External Traffic:外部通訊量

  路由器類型
   1. Internal Router:內部路由器
   2. ABR(Area Border Router):區域邊界路由器
   3. Backbone Router(BR):骨幹路由器
   4. ASBR(Autonomous System Boundary Router):自治系統邊界路由器.
  虛鏈路(Virtual Link)
  如下2中狀況須要使用到虛鏈路:
  1. 經過一個非骨幹區域鏈接到一個骨幹區域.
  2. 經過一個非骨幹區域鏈接一個分段的骨幹區域兩邊的部分區域.
  虛連接是一個邏輯的隧道(Tunnel),配置虛連接的一些規則:
  1. 虛連接必須配置在2個ABR之間.
  2. 虛連接所通過的區域叫 Transit Area,它必須擁有完整的路由信息.
  3. Transit Area不能是Stub Area.
  4. 儘量的避免使用虛連接,它增長了網絡的複雜程度和加大了排錯的難度.
  OSPF區域—OSPF的精華
  Link-state 路由在設計時要求須要一個層次性的網絡結構.
  OSPF網絡分爲如下2個級別的層次:
  骨幹區域 (backbone or area 0)
  非骨幹區域 (nonbackbone areas)
  在一個OSPF區域中只能有一個骨幹區域,能夠有多個非骨幹區域,骨幹區域的區域號爲0。
  各非骨幹區域間是不能夠交換信息的,他們只有與骨幹區域相連,經過骨幹區域相互交換信息。
  非骨幹區域和骨幹區域之間相連的路由叫邊界路由(ABRs-Area Border Routers),只有ABRs記載了各區域的全部路由表。各非骨幹區域內的非ABRs只記載了本區域內的路由表,若要與外部區域中的路由相連,只能經過本區域的ABRs,由ABRs連到骨幹區域的BR,再由骨幹區域的BR連到要到達的區域。
  骨幹區域和非骨幹區域的劃分,大大下降了區域內工做路由的負擔。
   七.LSA類型
   1.類型1:Router LSA:每一個路由器都將產生Router LSA,這種LSA只在本區域內傳播,描述了路由器全部的鏈路和接口,狀態和開銷.
   2.類型2:Network LSA:在每一個多路訪問網絡中,DR都會產生這種Network LSA,它只在產生這條Network LSA的區域泛洪描述了全部和它相連的路由器(包括DR自己).
   3.類型3:Network Summary LSA :由ABR路由器始發,用於通告該區域外部的目的地址.當其餘的路由器收到來自ABR的Network Summary LSA之後,它不會運行SPF算法,它只簡單的加上到達那個ABR的開銷和Network Summary LSA中包含的開銷,經過ABR,到達目標地址的路由和開銷一塊兒被加進路由表裏,這種依賴中間路由器來肯定到達目標地址的徹底路由(full route)其實是距離矢量路由協議的行爲
   4.類型4:ASBR Summary LSA:由ABR發出,ASBR彙總LSA除了所通告的目的地是一個ASBR而不是一個網絡外,其餘同NetworkSummary LSA.
   5.類型5:AS External LSA:發自ASBR路由器,用來通告到達OSPF自主系統外部的目的地,或者OSPF自主系統那個外部的缺省路由的LSA.這種LSA將在全AS內泛洪
   6.類型6:Group Membership LSA
   7.類型7:NSSA External LSA:來自非徹底Stub區域(not-so-stubby area)內ASBR路由器始發的LSA通告它只在NSSA區域內泛洪,這是與LSA-Type5的區別.
   8.類型8:External Attributes LSA
   9.類型9:Opaque LSA(link-local scope,)
   10.類型10:Opaque LSA(area-local scope)
   11.類型11:Opaque LSA(AS scope)
   八.OSPF末梢區域
  因爲並非每一個路由器都須要外部網絡的信息,爲了減小LSA泛洪量和路由表條目,就建立了末節區域,位於Stub邊界的ABR將宣告一條默認路由到全部的Stub區域內的內部路由器.
   Stub區域限制:
  
a) 全部位於stub area的路由器必須保持LSDB信息同步, 而且它們會在它的Hello包中設置一個值爲0的E位(E-bit),所以這些路由器是不會接收E位爲1的Hello包,也就是說在stub area裏沒有配置成stub router的路由器將不能和其餘配置成stub router的路由器創建鄰接關係.
  b) 不能在stub area中配置虛連接(virtual link),而且虛連接不能穿越stub area.
  c) stub area裏的路由器不能夠是ASBR.
  d) stub area能夠有多個ABR,可是因爲默認路由的緣故,內部路由器沒法斷定哪一個ABR纔是到達ASBR的最佳選擇.
  e)NSSA容許外部路由被宣告OSPF域中來,同時保留Stub Area的特徵,所以NSSA裏能夠有ASBR,ASBR將使用type7-LSA來宣告外部路由,但通過ABR,Type7被轉換爲Type5.7類LSA經過OSPF報頭的一個P-bit做Tag,若是NSSA裏的ABR收到P位設置爲1的NSSA External LSA,它將把LSA類型7轉換爲LSA類型5.並把它洪泛到其餘區域中;若是收到的是P位設置爲0的NSSAExternal LSA,它將不會轉換成類型5的LSA,而且這個類型7的LSA裏的目標地址也不會被宣告到NSSA的外部NSSA在IOS11.2後支持.
  f)totally stub area徹底的stub區域,連類型3的LSA也不接收。
  OSPF的包類型:
  類型號 包 做用 可靠性
  1 HELLO 一、用於發現鄰居二、創建鄰接關係三、維持鄰接關係四、確保雙向通訊 五、選舉DR和BDR
  2 Database Description 數據庫的描述 DBD 可靠
  3 Link-state Request 鏈路狀態請求包 LSR 可靠
  4 Link-state Update 鏈路狀態更新包 LSU 可靠
  5 Link-state Acknowledment 鏈路狀態確認包 LSACK
  AS 自治系統(autonomous system):一組相互管理下的網絡,它們共享同一個路由選擇方法,自治系統由地區再劃分並必須由IANA分配一個單獨的16位數字。地區一般鏈接到其餘地區,使用路由器建立一個自治系統。
 
 
文章源於:TCP IP路由技術第一卷
相關文章
相關標籤/搜索