OSPF動態路由協議筆記之(五) : 域間路由和虛連接配置
隨着網絡規模不斷擴大,結構也日趨復雜,路由器完成路由計算所消耗的內存、CPU資源也越來越多。
另外,網絡發生故障的可能性也隨之增加,如果區域內某處發生故障,整個區域內的路由器都要重新計算路由,這將大大增加路由器的負擔,降低網絡運行的穩定性。面對單區域過大可能帶來的問題,OSPF協議又將如何應對呢?
本節筆記,主要介紹OSPF路由區域間傳遞過程(涉及第三類LSA:Network-Summary-LSA),理解區域間防環機制,以及掌握虛連接的配置過程。
第三類LSA:Network-Summary-LSA
命令:display ospf lsdb summary

Network-Summary-LSA(三類LSA)中主要包括以下內容:
l Ls id:目的網段地址。
l Adv rtr:ABR的Router ID。
l Net mask:目的網段的網絡掩碼。
l Metric:ABR到達目的網段的開銷值。
區域間路由計算過程
OSPF采用划分區域的方式,將一個大網絡划分為多個相互連接的小網絡。每個區域內的設備只需同步所在區域內的鏈路狀態數據庫,一定程度上降低內存及CPU的消耗。
(1)區域划分
區域內部路由器維護本區域內的鏈路狀態信息並計算區域內的最優路徑。

划分區域后,根據路由器所連接區域的情況,可划分兩種路由器角色:
① 區域內部路由器(Internal Router):該類設備的所有接口都屬於同一個OSPF區域。
② 區域邊界路由器(Area Border Router):該類設備接口分別連接兩個及兩個以上的不同區域。
那么不同區域間是如何進行通信的呢?
(2)區域間路由傳遞
區域邊界路由器(ABR)作為區域間通信的橋梁,同時維護所連接多個區域的鏈路狀態數據庫。ABR將一個區域內的鏈路狀態信息轉化成路由信息,然后發布到鄰居區域。

鏈路狀態信息轉換成路由信息其實就是將一類和二類LSA轉化成三類LSA的過程。注意,區域間的路由信息在ABR上是雙向傳遞的。
如上圖所示,以Area 1中RTD上的192.168.1.0/24的網絡為例:
Step 1: 其對應的一類LSA在Area 1中同步;
Step 2: 作為Area 1和Area 0之間ABR的RTB負責將192.168.1.0/24的一類LSA轉換成三類LSA並將此三類LSA發送到Area 0。
Step 3: 作為Area 0和Area 2之間ABR的RTC,又重新生成一份三類LSA發送到Area 2中,至此全OSPF區域內都收到192.168.1.0/24的路由信息。
Step 4: 同理,RTE上192.168.2.0/24的路由信息同步過程相同。
區域內路由器接收描述其他區域網絡信息的三類LSA后,OSPF路由器又是如何基於三類LSA來計算出區域間路由的呢?
(3)區域間路由計算
ABR產生的三類LSA將用於計算區域間路由。
① 根據三類LSA中的Adv rtr字段,判斷出ABR。
② 根據Ls id、Net mask、Metric字段,獲得ABR到達目的網絡號/掩碼、開銷。
若多個ABR產生了指向相同目的網段的三類LSA,則根節點將根據本路由器到達目的網段的累計開銷進行比較,最終生成最小開銷路由。
若根節點到達目的網段的累計開銷值相同,則產生等價負載的路由。

如上圖所示,Area 0中RTA計算區域間路由過程中:
Step 1:192.168.1.0/24和192.168.2.0/24的三類LSA中,Adv rtr分別是RTB(2.2.2.2)和RTC(3.3.3.3)。
Step 2:RTB產生的三類LSA中,網絡號/掩碼是192.168.1.0/24,開銷為1,RTC產生的三類LSA中,網絡號/掩碼是192.168.2.0/24,開銷為1。
Step 3:RTA到達192.168.1.0/24下一跳是RTB,開銷是2;RTA到達192.168.2.0/24下一跳是RTC,開銷是2。
區域間路由防環機制
網絡中組網方式復雜多樣,可能會出現區域間路由環路的現象,以下舉出一個例子說明這種現象是如何產生的。
(1)域間路由環路的產生

① RTB將Area 1中192.168.1.0/24網絡的一類、二類LSA轉換成三類LSA,發布到區域0中。
② RTC重新生成有關192.168.1.0/24網絡的三類LSA並發布到Area 2中。
③ 同理,RTE也將有關192.168.1.0/24網絡的三類LSA發布到Area 3中。
④ RTD又將192.168.1.0/24網絡的三類LSA發布到Area 1中,從而形成了路由環路。
OSPF協議為了避免上述情況,定義了骨干區域與非骨干區域的規則。每個非骨干區域都必須與骨干區域相連。
(2)避免路由環路
為防止區域間的環路OSPF定義了骨干區域和非骨干區域和三類LSA的傳遞規則。

① OSPF划分了骨干區域和非骨干區域,所有非骨干區域均直接和骨干區域相連且骨干區域只有一個,非骨干區域之間的通信都要通過骨干區域中轉,骨干區域ID固定為0。
② OSPF規定從骨干區域傳來的三類LSA不再傳回骨干區域。
③ 對於前文提到的ABR,OSPF要求ABR設備至少有一個接口屬於骨干區域。
Q:若只有一個區域時,區域號配置為非0會有什么問題?
A:沒問題。
如果OSPF協議是單區域時,可以不需要骨干區域。此時路由傳遞基於OSPF LSA的域內傳遞規則,區域號可以配置為任意數字(可選范圍內0.0.0.0~255.255.255.255);
如果OSPF協議是多區域時,必須配置骨干區域,並且非骨干區域要與骨干區域相連(基於OSPF防環機制);如果是多區域但是非骨干區域沒有與骨干區域相連可以通過v-link或者GRE隧道來解決。
虛連接v-link的作用以及配置
新建網絡按照區域間的防環規則進行部署,可以避免區域間環路問題。但是部分網絡可能因早期規划問題,區域間的連接關系違背了骨干區域和非骨干區域的規則。
如下圖所示:由於某種原因,路由器RTC和RTE所在的Area 2並非與骨干區域相連,違背了OSPF區域的連接規則,導致了OSPF協議在Area 2中無法正常工作。那么如何在不更改網絡拓撲結構的情況下解決問題呢?
可以使用虛連接v-link的方式,將Area 0和Area 2在邏輯上相連起來。

骨干區域必須是連續的,但是並不要求物理上連續,可以使用虛連接使骨干區域邏輯上連續。
虛連接可以在任意兩個區域邊界路由器上建立,但是要求這兩個區域邊界路由器都有端口連接到一個相同的非骨干區域。
(1)配置舉例
按照以上給出的例子進行拓撲規划,如下圖所示。每個路由器的Router ID,相連的網段以及所在的區域都已標明。

Step 1:基本配置,此處省略。OSPF域內配置舉例在“OSPF動態路由協議筆記之(三) : 域內基本配置和抓包分析”中已經進行過介紹。
鏈接:https://www.cnblogs.com/zylSec/p/15701829.html
Step 2:查看現象。使用命令查看ospf路由表。
命令: display ospf routing

查看RTD的ospf路由表,可以看出並沒有學習到來自Area 2的10.1.35.0/24網段的路由,原因是非骨干區域Area 2沒有和骨干區域Area 0直接相連。
Step 3:使用v-link命令,在兩個區域之間建立虛連接。
命令:vlink-peer x.x.x.x
需要進入兩邊界(ABR)路由器都有一個端口連接的非骨干區域Area 1中進行配置。
RTB與對端路由器RTC的建立虛連接,配置如下。

同理,RTC也需要對應作配置,配置如下。

(2)配置驗證
如圖所示,在RTB和RTC之間建立了一條虛連接,以使Area 2穿越Area1連接到骨干區域。此時再次查看RTD的ospf路由表。

發現可以正常學習到了Area 2網段的路由。實驗成功。
下一節筆記,將會繼續介紹OSPF外部路由的計算過程(涉及到第四類LSA:ASBR-Summary-LSA和第五類LSA:AS-External-LSA),外部路由的類型以及次優外部路由的產生。
Q:一條Network-Summary-LSA可以描述多條路由信息嗎?
A:一條Network Summary LSA只能描述一條路由信息。
Q:OSPF如何避免區域間的路由環路?
A:OSPF划分了骨干區域和非骨干區域,所有非骨干區域均直接和骨干區域相連,且骨干區域只有一個;非骨干區域之間的通信都要通過骨干區域中轉;並規定從骨干區域傳來的三類LSA不再傳回骨干區域。
