OSPF-2

Area

  1. 一個區域內的路由器不會知道自己區域外路由的具體情況,使用區域可以減少數據庫大小,減少對路由器內存和CPU消耗,同時減少LSA的發佈;
  2. 區域ID使用32-bit,可以同時使用十進制或者帶點的十進制,例如271等同於0.0.1.15;
  3. 根據區域可以定義3種類型的區域:
  • Intra-area traffic:在一個區域內部傳播的包;
  • Inter-area traffic:在不同區域傳播的包;
  • External traffic:在OSPF域和其他自治系統傳播的包  

       4.   使用區域0作爲backbone。所有inter-area流量都必須通過backbone;非backbone區域不能直接交換包;

        5..  所有路由器可以分類爲:Internal Router, Backbone Router,Area Border Router (ABR), Automomous System Boundary Router (ASBR).  所有前三種路由器,都可以屬於最後一種

Virtual Link

OSPF將虛擬鏈路看做是一種網絡類型;這個連接是沒有地址的,屬於backbone,介於兩個ABRs之間的;virtual link是點對點的;virtual link的cost等於到鄰居的cost;

     ★Virtual Links 用於2個目的:

  1. 通過一個非backbone區域連接一個區域到backbone區域;
  2. 通過一個非backbone區域連接兩個被分割的backbone區域;

       ★形成virtual links的要求:

  1. Virtual Link必須在兩個ABR直接配置;
  2. Virtual Link 經過的區域叫做transit area,此區域必須有完全的路由信息;
  3. transit area 不能是stub area;

The Link State Database:

  1. LSA有age,默認是MaxAge 1小時,1小時到了過後,他們將被刪除;Link State refresh機制會每隔30分鐘 (LSRefreshTime)發送一個新的sequence number增加了的age爲0的LSA;當鄰居收到這個新的LSA,將用新的替換舊的;所以 Link state refresh相當於是LSA的keepalive;
  2. Link state refresh機制,每個LSA單獨擁有LSRefreshtime的好處是,所有LSAs不會同時過期,也就不會同時產生大量的LSA包流量,但缺點是帶寬利用率低,因爲有時候一個更新包可能就只包含一條LSA;
  3. LSA group pacing,這個機制是單獨更新和統一更新的折中方法;每個LSA擁有一個單獨的refres timer,當其過期時候,會再加上一個延遲,等待其他LSA過期;默認是 240秒,可以通過命令timer lsa-group-pacing 更改,範圍是10到1800秒;
  4.  所有收到的有效LSA存儲在link state database內,使用命令show ip ospf database查看;
  5. LSA type
  6. 每個路由器都產生Router LSA;列舉出路由器的所有連接或者接口、狀態和出口cost;只在區域內部傳播;show ip ospf database router 可單獨查看;
  7. Network LSA: 每個多路訪問網絡DR產生此LSA;此LSA列舉了所有相連的路由器,包括DR自己;只在本區域傳播;使用命令show ip ospf database network單獨查看;
  8. Network Summary LSA:ABR產生此LSA;告知一個區域外部路由;相當於ABR告訴區域內部路由器,ABR可以到達哪些地方;ABR也使用此LSA將與其相連的區域內部路由發佈到backbone內;區域外的同時在OSPF自治區域內默認路由也由此LSA發佈;當ABR發佈此LSA時,將包含ABR到此目的地的cost;如果有多條路徑ABR 只發布一條帶有最小cost的LSA到內部區域或者到backbone;★當路由器收到ABR發來的network summary LSA,它不會進行SPF計算,相反,僅僅簡單地將其到ABR的cost加上ABR發佈的cost,然後直接加入到其路由表中,由此可見OSPF在一個區域內是鏈路狀態路由協議,在inter-area是距離矢量算法;使用命令show ip ospf database summary單獨查看;
  9. ASBR Summary LSA:ABR產生此LSA;ASBR summary跟Newtork Summary LSA 完全一樣除了發佈的目的地是ASBR地址而不是網絡;目的地址是個主機地址,掩碼是全0;
  10. Autonomous System External LSAs: 又叫External LSA;由ASBR產生,用於宣告OSPF自治系統外部路由或者自治系統外部默認路由;此LSA沒有跟任何區域綁定,將傳播到整個自治系統;使用命令show ip ospf database external單獨查看;
  11. Group Membership LSA:用於Mulitcast OSPF (MOSPF);
  12. NSSA External LSAs:ASBR在NSSA區域產生的LSA;此LSA幾乎跟External LSA一樣;不同的是External LSA在整個OSPF自治域內傳播,NSSA只在NSSA區域內產生和傳播。使用命令show ip ospf database nssa-external單獨查看;

Stub Areas

  1. ASBR學到的外部路由默認會傳播到整個OSPF自治域內,有時候,很大一部分OSPF路由表都是外部路由佔據,但有些區域只跟Area 0 相連,沒有必要接收所有的外部路由。
  2. Stub Area就是不允許External LSA傳播的區域;因爲Type 5類型LSA不允許傳播,那麼傳播Type 4的LSA也就沒有必要了,所以Type 4 和 5 都被阻止進入Stub Area;
  3. 在Stub Area邊緣的ABR會發送一個Type 3的默認路由(目標0.0.0.0)進入Stub area;
  4. 所有路由不能在inter-area或者inter-area找到的,都將匹配默認路由;
  5. 因爲默認路由是Type3 LSA,它將不會被傳播到區域之外;
  6. Stub Area的一些限制:
  • 因爲任何種類的區域內,所有路由器必須有相同的數據庫;爲了確保滿足這個要求,所有stub area內的路由器將hello包的E-bit設定爲0,任何E-bit爲1的都與其他路由器形成鄰接;
  • 虛擬鏈路不能通過stub area;
  • 在stub area內不能有ASBR;因爲ASBR發送Type 5消息,而Type 5消息是不能夠在Stub area內出現的;
  • 一個Stub area允許有多個ABR,因爲有默認路由存在,內部路由器不能識別到ASBR的最佳路徑;

Totally Stubby Area

  1. Cisco 私有,在stub area基礎上,繼續block Type3message;
  2. 使用默認路由到達本區域以外所有區域;
  3. ABR將阻止Type 3  4  5,唯一的例外是發佈默認路由的Type 3 LSA;

Not-so-stubby areas(NSSA)

  1. NSSA 允許外部路由在區域內傳播,同時對其餘的自治系統保留stub area屬性;
  2. NSSA內的ASBR將產生Type 7的LSA來傳播外部路由;這些Type 7 LSA將在NSSA內傳播,但會在ABR被阻止;
  3. Type 7 LSA有一個P-bit;NSSA ASBR有選項可以修改此P-bit;如果設定爲1,那麼Type 7將被轉換爲Type 5然後傳播到其他區域;如果設定爲0,則Type 7將不會傳播到NSSA以外的區域;

路由表

  1. 一條路由的cost是到目的地所有出口接口cost之和;
  2. LSA使用16-bit記錄cost,範圍是 1到65535;

Destination Type

  1. 每一個路由條目,可以分類爲networ或者router
  2. Network條目是網絡地址,數據包可以根據此類條目被路由;這些目的地址被錄入路由表中;
  3. Router條目用來路由至ABR或者ASBR;如果路由器需要發送包到inter-area地方它必須知道怎樣找到ABR;如果一個包要發送到external目的地,路由器必須知道怎樣到達ASBR;路由器在另外一個地方保存這個信息;使用命令 show ip ospf border-routers 查看;

     

    每個條目最後的數目是SPF算法反覆安裝此條目的次數。

 Path Types

     每條到一個網絡的路由將歸屬於4種路徑類型的其中一種:

  1. Intra-area paths。到達與路由器相連區域目的地的路由;
  2. Inter-area paths。到達OSPF自治區域以內其他區域的路由;此路徑類型將經過至少一個ABR;
  3. Type 1 external paths。達到OSPF自治區域以外的路由;ASBR負責給外部路由賦予一個OSPF的cost;Type 1 的cost是路由本身cost和到達ASBR的cost之和;
  4. Type 2 external paths。達到OSPF自治區域以外的路由;cost只算路由本身cost,不加到達ASBR的cost;OSPF默認使用E2 path;

    ★OSPF使用最長掩碼匹配,如果遇到相同掩碼,使用以下順序挑選路由:

  1. Intra-area paths;
  2. Inter-area paths;
  3. E1 external paths;
  4. E2 external paths;

     ★OSPF支持等cost負載均衡;如果多條相同cost,相同path type的路由存在,那麼OSPF將會利用負載均衡同時使用;默認最多同時使用4條,使用命令maximum-paths可以改到最大6條;

OSPF包格式

   ★IP包頭89封裝OSPF包,IP包設定TTL 1確保OSPF包只在直連的鄰居間傳遞,TOS設定爲高優先級110 (Internetwork Control Precedence);

   ★OSPF packet header 對所有OSPF包都相同;OSPF Packet Data使用各自不同的數據結構;

   1. The Packet Header

     所有OSPF包都以這個24 octer的頭開始

 

  • Version:OSPF版本,目前爲2;
  • Type:1--Hello;2--Database Description;3--Link State Request;4--Link State Update;5--Link State Acknowledgement;
  • Packet length:OSPF包長度,包括包頭;
  • Router ID:產生此包的路由器ID;
  • Area ID:產生此包的區域ID;如果是在virtual link上面的包,Area ID爲0.0.0.0,因爲virtual link被認爲是backbone的一部分;
  • Checksum:包括包頭的標準checksum;
  • AuType:0--Null ,Au部分不會檢查,可以是任意數據;1--Au 部分最多包含64 bits的口令;2--Au部分包含Key ID, Authentication Data Length 和 Cryptographic Sequence Number;

2.  OSPF hello packet

 

  • Network Mask:  發送接口的子網掩碼;如果此掩碼跟接受接口的掩碼不匹配,包將丟棄;
  • Hello INterval:發送、接受路由器必須有相同,否則不能建立鄰居關係;
  • Options:增加兼容性,路由器可以因爲此值不兼容而拒絕建立鄰居關係;
  • Router Priority:用於DR、BDR選舉,爲0則不能成爲DR或者BDR;
  • Router Dead Interval:未收到Hello包之前等待時間;雙方必須有相同的interval才能建立鄰居關係;
  • Designated Router:網絡上DR接口的地址(是Router ID);如果沒有DR(還沒選舉或者網絡類型不用DR)則填寫爲 0.0.0.0;
  • Backup DR: 參考上面;
  • Neighbor:所有有效鄰居列表;

3. Database Description Packet

DD packet在鄰接關係建立過後使用。

 

  • Interface MTU:以octet爲單位,表明源接口允許的最大IP包的大小;在virtual link上設定爲0x0000;
  • Options:允許路由器選擇不發送部分LSAs給不支持特定功能的鄰居;
  • I-bit:第一個DD packet設爲1,其他後續的設爲0;
  • M-bit:More bit,1表明還不是最後一個包;最後一個包設爲0;
  • MS-bit:Master/Slave bit,1意味着發送者是master,slave爲0;
  • DD sequence number:Master設定,並在後續包中增加;
  • LSA Headers:源路由器Link state database的部分或者所有LSA 頭;

 4. Link State Request Packet

當路由器收到DD包過後,有可能有在其database裏面沒有的條目,於是將這些條目放入Request包中;路由器發送一個或多個Link State Request包請求LSA;注意,包是通過Type, ID 和 發佈路由器來唯一確定LSA的,而不是通過具體實例(sequence number, checksum 和 age);所以請求的是最新的是LSA,不論是否是真正想要的那個;

 

5.Link State Update Packet

包含一個或多個LSA,用於傳播LSA和響應LSA Update;只發送給直連的鄰居(只有1跳);

 

  • Number of LSAs:包含的LSA數量;
  • LSAs:完全的LSA;每個包可以有多個LSA,直到達到鏈路允許的最大包大小;

6.  Link State Acknowledgement Packet

用於保證LSA可靠傳播;每一個收到的LSA都必須明確的確認;一個ACK包可以包含多個LSA headers;

 

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