云南網(wǎng)站設(shè)計(jì)公司淘寶關(guān)鍵詞搜索工具
OSPF的防環(huán)機(jī)制
- 一、域間防環(huán)
- 二、域內(nèi)防環(huán)
- 有向圖轉(zhuǎn)化
- 1、有向圖的畫法
- 2、示例:
- 三、SPF算法
OSPF將整個(gè)OSPF域劃分為多個(gè)區(qū)域,區(qū)域內(nèi)部通過拓?fù)湫畔⒂?jì)算路由,區(qū)域間傳遞路由信息,實(shí)現(xiàn)全網(wǎng)可達(dá)。OSPF防環(huán)機(jī)制主要是體現(xiàn)在域內(nèi)防環(huán)和域間防環(huán)。
一、域間防環(huán)
-
OSPF的星型拓?fù)鋭澐忠?guī)則實(shí)際上就是一種防環(huán)手段。OSPF要求所有的非0區(qū)域必須與骨干區(qū)域直接相連,區(qū)域間路由需經(jīng)由骨干區(qū)域中轉(zhuǎn)。OSPF要求所有的非0區(qū)域必須與骨干區(qū)域直接相連, 區(qū)域間( Inter- - Area Route )路由需經(jīng)由骨干區(qū)域中轉(zhuǎn)。這個(gè)要求使得區(qū)域間的路由傳遞不能發(fā)生在兩個(gè)非0的區(qū)域之間,這在很大程度上規(guī)避了區(qū)域間路由環(huán)路的發(fā)生,也使得OSPF的區(qū)域架構(gòu)在邏輯上形成了一個(gè)類似星型的拓?fù)?#xff0c;如下圖所示。
-
ABR從非骨干區(qū)域收到的Type-3 LSA不能用于區(qū)域間路由的計(jì)算。當(dāng)一臺(tái) ABR 在非 Area0 的區(qū)域中收到 Type- - 3 LSA 時(shí),雖然它會(huì)將其裝載進(jìn) LSDB ,但是該路由器不會(huì)使用這些 Type- - 3 LSA 進(jìn)行路由計(jì)算,當(dāng)然它更不會(huì)將這些 Type- - 3 LSA 再注入回Area0 中。
-
區(qū)域之間存在水平分割機(jī)制,從某個(gè)區(qū)域?qū)W到的路由信息不會(huì)再通告到這個(gè)區(qū)域,這和距離適量協(xié)議的水平分割相似,區(qū)域水平分割可以概括為:從此區(qū)域出,不進(jìn)此區(qū)域。
二、域內(nèi)防環(huán)
OSPF基于一類二類LSA的洪泛收集區(qū)域內(nèi)的拓?fù)湫畔?#xff0c;將這些拓?fù)湫畔⑥D(zhuǎn)化為有向圖,再用SPF算法將有向圖轉(zhuǎn)化為最短路徑樹,而樹形結(jié)構(gòu)是無環(huán)的,OSPF最后依據(jù)樹形結(jié)構(gòu)將路由加載到路由表中。
有向圖轉(zhuǎn)化
一類LSA描述了某個(gè)設(shè)備的接口信息,二類LSA只是一類LSA對(duì)MA網(wǎng)絡(luò)的補(bǔ)充,通過查看一二類LSA可以畫出單區(qū)域的有向圖。
1、有向圖的畫法
- 一類LSA中有四種接口類型,這里我們不考慮virtual類型
Type | Link ID | Data |
---|---|---|
p-2-p | 鄰居的RID | 該網(wǎng)段上本地接口的IP地址 |
TransNet | DR的接口的IP地址 | 該網(wǎng)段上本地接口的IP地址 |
StubNet | 該Stub網(wǎng)段的IP網(wǎng)絡(luò)地址 | 該網(wǎng)段的網(wǎng)路掩碼 |
Virtual | 虛連接鄰居的RID | 去往該虛連接的本地接口IP |
- Stub網(wǎng)段表示該網(wǎng)段只有數(shù)據(jù)入口,例如一個(gè)Loopback接口就是一個(gè)Stub網(wǎng)段。轉(zhuǎn)化為有向圖時(shí)路由器為一個(gè)圈,stub網(wǎng)段也是一個(gè)圈,然后再畫一條路由器指向stub網(wǎng)段的箭頭,箭頭上添上該接口的開銷值,表示路由器到該網(wǎng)段的需要的開銷值。
描述拓?fù)浣Y(jié)構(gòu)——路由器節(jié)點(diǎn)和Stub網(wǎng)段
- Transit網(wǎng)段即一個(gè)MA網(wǎng)段,從路由器到所連Transit網(wǎng)段的開銷值就是連接到這個(gè)網(wǎng)段的接口所配
置的開銷值。從一個(gè)Transit網(wǎng)段到連接到這個(gè)網(wǎng)段的路由器的開銷為0。下圖的N1也被稱為偽節(jié)點(diǎn)。
描述拓?fù)浣Y(jié)構(gòu)——Transit網(wǎng)段
在描述點(diǎn)到點(diǎn)接口的Router-LSA中:
1、通告一個(gè)到鄰居路由器的點(diǎn)到點(diǎn)鏈接,Link ID設(shè)置為對(duì)端的Router
ID,Data設(shè)置為本地接口的IP地址;
2、 通告一個(gè)到該點(diǎn)到點(diǎn)網(wǎng)段的Stub連接,Link ID設(shè)置為該點(diǎn)到點(diǎn)網(wǎng)段
的網(wǎng)絡(luò)號(hào),Data設(shè)置為該點(diǎn)到點(diǎn)網(wǎng)段的網(wǎng)絡(luò)掩碼;
3、上述兩個(gè)連接的Cost值均為該點(diǎn)到點(diǎn)接口上的Cost值。
- 一類LSA在描述p2p網(wǎng)絡(luò)時(shí),由于點(diǎn)到點(diǎn)鏈路兩端接口的網(wǎng)絡(luò)號(hào)可能不一致,所以需要有兩個(gè)link對(duì)其描述。
- 兩接口處于不同網(wǎng)段的點(diǎn)到點(diǎn)網(wǎng)段的規(guī)則如下:兩臺(tái)路由器經(jīng)由兩條有向線段直接相連,每個(gè)方向一條。兩個(gè)接口的網(wǎng)段被表示成Stub網(wǎng)段。每個(gè)路由器通告一個(gè)Stub連接到該路由器所連的網(wǎng)段
描述拓?fù)浣Y(jié)構(gòu)——點(diǎn)對(duì)點(diǎn)網(wǎng)段
- 兩接口處于同一網(wǎng)段的點(diǎn)到點(diǎn)網(wǎng)段的規(guī)則如下:兩臺(tái)路由器經(jīng)由兩條有向線段直接相連,每個(gè)方向一條。連接兩個(gè)接口的網(wǎng)段被表示成Stub網(wǎng)段。
描述點(diǎn)對(duì)點(diǎn)網(wǎng)段
2、示例:
計(jì)算最短路徑樹——物理拓?fù)?/mark>
由LSDB描述的有向圖
三、SPF算法
SPF算法每一個(gè)路由器都將自己作為根(ROOT)來計(jì)算其到每一個(gè)目的地路由器的距離,每一個(gè)路由器根據(jù)一個(gè)統(tǒng)一的數(shù)據(jù)庫會(huì)計(jì)算出路由域的拓?fù)浣Y(jié)構(gòu)圖,該結(jié)構(gòu)圖類似于一棵樹,在SPF算法中,被稱為最短路徑樹。OSPF計(jì)算階段分為兩個(gè)階段:
第一階段 | 計(jì)算Transit節(jié)點(diǎn),忽略Stub節(jié)點(diǎn),生成一個(gè)最短路徑樹 |
---|---|
第二階段 | 只計(jì)算Stub節(jié)點(diǎn),將Stub網(wǎng)段掛到最短路徑樹上去 |
計(jì)算過程中首先初始化最短路徑樹,RTA將自己做為根節(jié)點(diǎn)添加到最短路徑樹上
- RTA將自己添加到最短路徑樹上之后,檢查自己生成的Router-LSA,對(duì)于該LSA中所描述的每一個(gè)連接,如果不是一個(gè)Stub連接,就把該連接添加到候選列表中,端點(diǎn)ID為Link ID,到根端點(diǎn)的開銷為LSA中描述的Metric值。本例中,添加端點(diǎn)4.4.4.4和2.2.2.2。
- 將候選列表中到根端點(diǎn)開銷最小的端點(diǎn)移到最短路徑樹上
- 當(dāng)有新節(jié)點(diǎn)添加到最短路徑樹上的時(shí)候,則檢查LS ID為新節(jié)點(diǎn)的link-idID的LSA,本例中檢查LS ID為2.2.2.2的LSA。
如果LSA中所描述的連接的Link ID在最短路徑樹上已經(jīng)存在,則忽略該連接。本例中,Link ID為1.1.1.1的連接被忽略,只有10.3.1.1的連接被添加到候選列表中。到根端點(diǎn)的開銷設(shè)置為此連接的Metric值(本例中此連接的Metric值為1)與父端點(diǎn)(本例中此連接的父端點(diǎn)為2.2.2.2)到根端點(diǎn)的開銷(本例中此開銷值為48)之和。
將候選列表中到根端點(diǎn)的開銷最小的端點(diǎn)移動(dòng)到最短路徑樹上,本例中,將10.3.1.1移到最短路徑樹上。
- 檢查LS ID為最新添加節(jié)點(diǎn)的端點(diǎn)ID的LSA,本例中檢查LS ID為10.3.1.1的LSA。
在所描述的連接中,忽略2.2.2.2,將3.3.3.3和4.4.4.4添加到候選列表中。從Transit網(wǎng)段到所連路由器的開銷為0。如果在候選列表中出現(xiàn)兩個(gè)端點(diǎn)ID一樣但是到根端點(diǎn)的開銷不一樣的端點(diǎn),則刪除到根端點(diǎn)的開銷大的端點(diǎn)。
將候選列表中到根端點(diǎn)的開銷最小的端點(diǎn)移動(dòng)到最短路徑樹上,本例中,將3.3.3.3移到最短路徑樹上。
- 檢查LS ID為最新添加節(jié)點(diǎn)的端點(diǎn)ID的LSA,本例中檢查LS ID為3.3.3.3的LSA。
本例中,沒有新端點(diǎn)被添加到候選列表中。
- 將候選列表中到根端點(diǎn)的開銷最小的端點(diǎn)移動(dòng)到最短路徑樹上,本例中,將4.4.4.4移到最短路徑樹上。
- 檢查LS ID為最新添加節(jié)點(diǎn)的端點(diǎn)ID的LSA,本例中檢查LS ID為4.4.4.4的LSA。
本例中,沒有新端點(diǎn)被添加到候選列表中。如果在此時(shí)候選列表為空,則計(jì)算最短路徑樹的第一階段結(jié)束。
- 檢查每個(gè)路由器端點(diǎn)的Router-LSA,計(jì)算Stub網(wǎng)段。
本例中,首先檢查RTA的Router-LSA,共有三個(gè)Stub網(wǎng)段。