1、OSPF的區域
OSPF路由協議作為一種動態路由協議,其生成路由表的過程依賴於網絡中每台路由器保持一致的LSDB(鏈路狀態數據庫)。隨着網絡中路由器的不斷增多,LSDB會越來越龐大,拓撲結構的改變也容易引起網絡的“動盪”。因此,動態路由協議(如OSPF、IS-IS)都提供將整個網絡划分成多個區域的能力,減少LSDB的大小和維護LSDB的開銷,也減少LSA泛洪的影響。在OSPF中,被划開的所有區域必須以骨干區域為中心,也即其他區域必須與骨干區域相連。
2、LSA的含義
LSA(Link-State Advertisement,鏈路狀態通告),是OSPF路由協議的協議報文中攜帶的、用於進行路由計算的信息。根據用途及作用范圍的不同,可以分為11類(即type1~11)。其中,用於區域內路由通告的是type1、type2,用於區域間路由通告的主要有type3、type4、type5、type7。
本文的主要內容為介紹LSA中用於區域內路由通告的LSA1和LSA2,以及路由計算的 步驟。
3、LSA type 1 (Router LSA)
每台路由器會為自己所處的每一個區域產生一份RouterLSA,該LSA包含本區域所有鏈路的狀態信息。
LSA1消息包含的字段:
- LS Age :DoNotAge Flag和age數值(秒)
- Option位
- LS type :1
- Link State ID
- Advertising Router
- Sequence Number
- CheckSum
- Flags
- Number Of Links: OSPF有向圖上的Link
- Point to point
- ID:鄰居路由器的RID;Data:自己接口的IP
- TransNetwork:MA類型鏈路
- ID:DR的接口IP ;Data:自己接口IP
- StubNetwork:末節類型鏈路/網絡
- ID:網絡號 Data:掩碼
- Virtual Link
- ID:vlink對端ABR的RID ;Data:本地Vlink的IP
- Point to point
有向圖的說明
- 每個實節點外出方向的鏈路成本是該接口的成本(OSPF Cost值)。
- 在MA網絡中,所有節點之間通過虛節點(N1)拓撲互聯。虛節點N1到所連節點的距離為0,每個節點到N1的邊的距離是它在至N1接口上的cost值。
- 在末節(stub)網絡中,到其他節點的葉子的cost需要計算鄰居間cost和對方節點到其葉子的cost的和。路由器到自身葉子節點的cost也是葉子所在鏈路的cost(如果葉子是鏈路接口的網段)。
4、LSA type2 (Network LSA)
Network LSA用於描述MA網絡的拓撲關系:TransNet網絡號和該網絡與路由器的關系,在MA網絡的DR路由器產生。
LSA2消息包含的字段:
- LS Age:同LSA1
- Option
- LSType : 2
- Link Stat ID :DR接口IP地址
- Advertising Router
- Sequence Num
- Checksum
- Netmask:和LS ID進行邏輯與運算,得出LSA2的網絡號
- Attacked Router:本網絡所有鄰居路由器列表
與lSA1區別
LSA1由實節點(代表路由器的節點)產生,描述實節點周邊的關系;LSA2由虛節點DR產生,描述虛節點周邊關系。
DR的作用
- DR選舉機制
- MA網絡可以沒有BDR,但不能沒有DR。
- DR選舉開始於OSPF中一個網絡達到2-way狀態之后,網絡中的路由器通過交互hello完成選舉。
- 路由器根據所有鄰居的hello報文,構建接口的數據結構,其中包括以下三個集合。
- DR集合:接口剛開啟時,其內容為0 。
- BDR集合:接口剛開啟時,其內容為0 。
- DRother集合:即有資格成為DR/BDR的路由器,其選舉規則為優先級不為0即可。
- 選舉過程:
- 接口開啟,hello中DR字域全0,wait timer啟動;
- 若收到hello中有dr字域,wait timer停止,接受字域數值;
- 從other中選出BDR,再從這里面選出DR,如果BDR空,則再次從other中選出BDR。
5、OSPF路由計算
OSPF路由計算包含以下步驟。
- 畫出網絡圖Graph
網絡中的每台路由器會根據接收到的LSA1和LSA2畫出網絡圖 。由於LSDB中的鏈路信息不能反映出路由,因此需要SPF(最短路徑優先)算法,根據網絡圖生成路由轉發的最優路徑。 - 對Graph進行SPF計算
每台路由器以自身為Root執行SPF計算。華為設備初次計算過程執行全部節點的Full SPF,在此之后都執行iSPF計算。iSPF只重畫受影響的節點及周邊連接關系,位置不同范圍不同,根節點的邊發生變化則重新計算整個拓撲。 - 添加葉子節點
OSPF路由器在計算葉子節點的路由時一般使用PRC(部分路由計算),即在ISPF計算出的最短路徑樹基礎上計算葉子節點路由。
在計算葉子鏈路網段的cost時,常見的是鏈路上的路由計算。當對端路由器和本路由器均下掛同一網段時,選擇成本更小的本路由器的網段放到OSPF路由中,由於IP路由表中的直連路由更優,所以dis ip routing-table看不到OSPF這條路由.
以下幾種LSA攜帶的信息用於計算不同“葉子”的路由:- lSA2:MA網絡的網段掛在虛節點N上;
- LSA3:掛在ABR節點上(其他區域內拓撲變化不影響本區域SPF);
- LSA7:掛在ASBR節點上。
- LSA5: 掛在ASBR或ABR,依ASBR是否在當前區域而定