




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
OSPF協(xié)議原理及配置鏈路狀態(tài)路由選擇協(xié)議也稱為最短路徑優(yōu)先協(xié)議或分布式數(shù)據(jù)庫(kù)協(xié)議基于Dijkstra的著名算法而設(shè)計(jì)鏈路狀態(tài)協(xié)議的例子:OpenShortestPathFirst(OSPF)forIPTheISO'sIntermediateSystem-to-IntermediateSystem(IS-IS)forCLNSandIPDEC'sDNAPhaseVNovell'sNetWareLinkServicesProtocol(NLSP)基本功能每臺(tái)路由器與它的鄰居之間建立聯(lián)系,這種聯(lián)系叫做鄰接關(guān)系每臺(tái)路由器向每個(gè)鄰居發(fā)送被稱為鏈路狀態(tài)通告(LSA)的數(shù)據(jù)單元每臺(tái)路由器在數(shù)據(jù)庫(kù)中保存一份它所收到的LSA的備份,如果所有路由器工作正常,它們的數(shù)據(jù)庫(kù)應(yīng)該相同整個(gè)網(wǎng)絡(luò)拓?fù)鋽?shù)據(jù)庫(kù)(也叫鏈路狀態(tài)庫(kù))由Dijkstra算法使用,通過對(duì)網(wǎng)絡(luò)圖進(jìn)行計(jì)算得出到每臺(tái)路由器的最短路徑鄰居鄰居發(fā)現(xiàn)是建立鏈路狀態(tài)環(huán)境并運(yùn)行的第一步,這一步使用Hello協(xié)議Hello數(shù)據(jù)包包含路由器ID和發(fā)送數(shù)據(jù)包的網(wǎng)絡(luò)地址,路由器ID可以將發(fā)送該包的路由器與其他路由器惟一區(qū)分開來當(dāng)兩臺(tái)路由器已經(jīng)互相發(fā)現(xiàn)并將對(duì)方視為鄰居時(shí),要進(jìn)行數(shù)據(jù)庫(kù)同步過程,直到數(shù)據(jù)庫(kù)相同為止除建立鄰接關(guān)系之外,Hello數(shù)據(jù)包還作為監(jiān)視鄰接關(guān)系的握手信號(hào)。典型的Hello數(shù)據(jù)包交換間隔為10s,典型的死亡周期是數(shù)據(jù)包交換間隔的4倍。
鏈路狀態(tài)泛洪建立鄰接關(guān)系之后,路由器開始發(fā)送LSA鄰居路由器保存接收到的LSA,并依次向自己每個(gè)鄰居轉(zhuǎn)發(fā)(除了發(fā)送該LSA的鄰居)泛洪擴(kuò)散過程是鏈路狀態(tài)協(xié)議中最復(fù)雜的一部分兩個(gè)過程對(duì)泛洪擴(kuò)散極為重要的:排序和老化序號(hào)
數(shù)據(jù)包中的TTL值可以終止過期的數(shù)據(jù)包(位于IP首部的一個(gè)字段)但是不能有效地控制LSA在網(wǎng)絡(luò)中漫游序號(hào)(續(xù))當(dāng)拓?fù)浒l(fā)生變化時(shí),通告該變化的LSA在整個(gè)網(wǎng)絡(luò)上擴(kuò)散序號(hào)(續(xù))當(dāng)路由器發(fā)送LSA時(shí),每個(gè)拷貝中的序號(hào)都是一樣的這個(gè)序列號(hào)和LSA的其他部分一起被保存在路由器的拓?fù)鋽?shù)據(jù)庫(kù)中當(dāng)路由器收到數(shù)據(jù)庫(kù)中已存在的LSA并且序號(hào)相同時(shí),將丟棄這些信息如果信息相同但是序號(hào)更大,那么接收的信息和新序號(hào)被保存到數(shù)據(jù)庫(kù)中,并且泛洪擴(kuò)散該LSA序號(hào)(續(xù))設(shè)網(wǎng)絡(luò)172.22.4.0發(fā)生故障之后立即恢復(fù)正常:路由器A可能會(huì)發(fā)出序號(hào)為166的通告網(wǎng)絡(luò)故障的LSA,接著再發(fā)送序號(hào)為167通告網(wǎng)絡(luò)正常的LSA路由器C先后接收到沿路徑A-B-C擴(kuò)散過來的LSA,分別是關(guān)于網(wǎng)絡(luò)發(fā)生故障和故障恢復(fù)的通告,接著C又收到沿路徑A-D-E-F-C擴(kuò)散過來的關(guān)于網(wǎng)絡(luò)故障的LSA如果使用序號(hào),路由器C的數(shù)據(jù)庫(kù)可以顯示來自路由器A的LSA的序列號(hào)為167,而后面到達(dá)的LSA序列號(hào)為166,因此該LSA被認(rèn)為是過時(shí)的信息而被丟棄線性序號(hào)空間一種解決辦法是使用一個(gè)非常大的線性序號(hào)空間,以至于根本不可能到達(dá)其上限例如,如果使用32位序號(hào)字段,那么從0開始將有232=4,294,967,296個(gè)可用序列號(hào),即使路由器每10s產(chǎn)生一個(gè)新的狀態(tài)數(shù)據(jù)包,也需要花1361年才能用盡所有序列號(hào)線性序號(hào)空間(續(xù))如果一個(gè)鏈路狀態(tài)路由選擇進(jìn)程用完了所有序列號(hào),那么在重新使用最低序列號(hào)之前必須停止,并等待它所發(fā)出的LSA在所有數(shù)據(jù)庫(kù)中都不再被使用
如果一個(gè)路由器故障重啟,其鄰居仍然在數(shù)據(jù)庫(kù)中保留了該路由器最近的序號(hào),那么越小的序列號(hào)也就是越舊的序列號(hào),因而都會(huì)被忽略丟棄路由選擇進(jìn)程必須一直等到網(wǎng)絡(luò)上所有陳舊的LSA都消失為止ExplainWhy?一個(gè)更好的解決方案如果一臺(tái)重新啟動(dòng)的路由器向鄰居發(fā)送LSA的序號(hào)比鄰居保存的序列號(hào)還要老,那么鄰居會(huì)發(fā)回自己保存的LSA和序號(hào).該路由器從中知道啟動(dòng)前自己最近曾經(jīng)使用過的序號(hào),并作出相應(yīng)的調(diào)整需要注意的是,最近使用過的序號(hào)不能接近上限,否則重新啟動(dòng)的路由器將不得不再次重新啟動(dòng)循環(huán)序號(hào)空間另一種方法是使用循環(huán)序號(hào)對(duì)于32位序號(hào),當(dāng)序號(hào)到達(dá)232–1(0xFFFFFFFF)時(shí)再返回0循環(huán)序號(hào)會(huì)形成一個(gè)奇怪的邏輯:
如果x是一個(gè)位于
1(含)與
4,294,967,295(含)的數(shù),那么有:0<x<0循環(huán)序號(hào)空間(續(xù))引入兩條規(guī)則來確定一個(gè)序號(hào)比另一個(gè)序號(hào)更大或更小給定一個(gè)序號(hào)空間n
和兩個(gè)序號(hào)a
與b,在滿足下列兩個(gè)條件之一時(shí)認(rèn)為a比b更大:
a
>
b,
且
(a-
b)
<=
n/2
a
<
b,
且
(b
-
a)
>
n/2
6-Bit循環(huán)序號(hào)空間
n
=
26
=
64,so
n/2
=
32.
6-Bit循環(huán)序號(hào)空間(續(xù))給定兩個(gè)序號(hào)48和18,由規(guī)則1得:48比18更新
48
>
18
且
(48
-
18)
=
30
且
30
<
32.
給定兩個(gè)序號(hào)3和48,由規(guī)則2得:3比48更新
3
<
48
且
(48
-
3)
=
45
且
45
>
32.
給定兩個(gè)序號(hào)3和18,由規(guī)則1得:18比3更新
18
>
3
且
(18
-
3)
=
15
且
15
<
32.
6-Bit循環(huán)序號(hào)空間(續(xù))假設(shè)一臺(tái)工作不正常的路由器突然發(fā)送了3個(gè)相同的且序列號(hào)為44(101100)的LSA。它的一個(gè)鄰居也發(fā)生了故障—丟掉了幾位數(shù)據(jù),假設(shè)丟失的數(shù)據(jù)位是第2個(gè)LSA和第3個(gè)LSA序號(hào)中的1位,然后該鄰居路由器向外泛洪擴(kuò)散了這3個(gè)LSA,結(jié)果造成了三個(gè)相同的LSA的序號(hào)各不相同:44(101100)40(101000)8(001000)
應(yīng)用循環(huán)規(guī)則可得:44比40更新,40比8更新,而8又比44更新!
這個(gè)結(jié)論將使3個(gè)LSA都持續(xù)擴(kuò)散下去,數(shù)據(jù)庫(kù)也不斷地被最新的LSA更新,直到數(shù)據(jù)庫(kù)緩沖被塞滿,CPU超載為止,最終使得整個(gè)網(wǎng)絡(luò)崩潰棒棒糖形的序號(hào)空間由RadiaPerlman博士提出棒棒糖地址空間使用了有符號(hào)數(shù),范圍是-k<0<k。從-k到-1的負(fù)數(shù)計(jì)數(shù)形成了一根直棒,而從0到k的正數(shù)則形成了環(huán)形空間給定兩個(gè)數(shù)a
和b
以及序號(hào)空間n,b比a更新當(dāng)且僅當(dāng):a<0且a<b,或a>0,a<b,且(b-a)<n/2,或a>0,b>0,a>b,且(a-b)>n/2棒棒糖形的序號(hào)空間(續(xù))注:-N(-231或0x80000000)和N-1(231-1或0x7FFFFFFF)未被使用棒棒糖形的序號(hào)空間(續(xù))假設(shè)路由器發(fā)生重啟,重啟前最后一個(gè)被發(fā)送的LSA序號(hào)是0x00005de3路由器重啟后,當(dāng)它與鄰居同步數(shù)據(jù)庫(kù)時(shí),發(fā)送的序號(hào)是0x80000001(-N+1)鄰居檢查自己的數(shù)據(jù)庫(kù)后發(fā)現(xiàn)該路由器重啟前的LSA序號(hào)為0x00005de3,鄰居將把這個(gè)保存的LSA發(fā)送給重啟的路由器重啟路由器記錄下這個(gè)序號(hào)為正數(shù)的ISA棒棒糖形的序號(hào)空間(續(xù))原始OSPFv1(RFC1131)使用了棒棒糖形序號(hào)空間OSPFv2(由RFC1247定義)采納了線性空間和棒棒糖形空間的最佳特性:開始時(shí)像棒棒糖形序號(hào)數(shù)一樣使用了從0x80000001開始的有符號(hào)數(shù)空間當(dāng)序號(hào)變?yōu)檎龜?shù)時(shí),序號(hào)空間持續(xù)保持線性增長(zhǎng)直至到達(dá)最大數(shù)0x7FFFFFFF為止在到達(dá)最大值時(shí)需要重啟,在重啟之前,0SPF進(jìn)程必須從所有鏈路狀態(tài)數(shù)據(jù)庫(kù)中刪除LSA老化
老化過程為泛洪擴(kuò)散過程增加了另一層可靠性協(xié)議為網(wǎng)絡(luò)定義了一個(gè)最大年齡差距(MaxAgeDiff)值路由器可能接收到一個(gè)LSA的多個(gè)副本,其中序號(hào)相同,但年齡不同:如果年齡差距小于MaxAgeDiff,那么認(rèn)為是由于網(wǎng)絡(luò)的正常時(shí)延造成了年齡的差異,因此數(shù)據(jù)庫(kù)原有的LSA繼續(xù)保存,新收到的LSA不被擴(kuò)散而丟棄如果年齡差距超過MaxAgeDiff,那么認(rèn)為網(wǎng)絡(luò)發(fā)生了異常,因?yàn)樾掳l(fā)送的LSA的序號(hào)沒有增加。此時(shí)新的LSA被保存下來,并將被擴(kuò)散出去用于OSPF的典型MaxAgeDiff值為15minMaxAge
和LSRefreshTime保存在數(shù)據(jù)庫(kù)中的LSA的年齡會(huì)不斷增加。如果鏈路狀態(tài)記錄的年齡增加到最大年齡值(MaxAge),那么一個(gè)帶有MaxAge值的LSA將被泛洪擴(kuò)散到所有鄰居,鄰居隨即從數(shù)據(jù)庫(kù)中刪除相關(guān)記錄鏈路狀態(tài)刷新定時(shí)器(LSRefreshTime)用于定期確認(rèn)LSA并且在LSA到達(dá)最大年齡之前將其年齡定時(shí)器復(fù)位。也就是說,一旦刷新定時(shí)器超時(shí),路由器將向所有鄰居泛洪擴(kuò)散新的LSA,收到的鄰居把有關(guān)LSA的年齡設(shè)置為新接收到的年齡OSPF定義MaxAge為1小時(shí),LsRefreshTime為30min鏈路狀態(tài)數(shù)據(jù)庫(kù)
建立鏈路狀態(tài)數(shù)據(jù)庫(kù)是鏈路狀態(tài)路由選擇協(xié)議的另一個(gè)主要任務(wù)鏈路狀態(tài)數(shù)據(jù)庫(kù)把LSA作為一連串記錄予以保存
對(duì)于路由器鏈路信息,使用三元組(路由器ID,鄰居ID,代價(jià))來通告路由器的鄰接鄰居,其中的代價(jià)是指連接該鄰居的鏈路的費(fèi)用對(duì)于末梢網(wǎng)絡(luò)信息,使用三元組(路由器ID,網(wǎng)絡(luò)ID,代價(jià))來通告路由器直接連接的末梢網(wǎng)絡(luò)(即沒有鄰居的網(wǎng)絡(luò))鏈路狀態(tài)數(shù)據(jù)庫(kù)(續(xù))鏈路代價(jià)是按照接口的出站方向計(jì)算的;在同一條鏈路上的所有接口的代價(jià)沒有必要完全相同拓?fù)浠蜴溌窢顟B(tài)數(shù)據(jù)庫(kù)的例子路由器ID鄰居費(fèi)用RARB2RARD4RARE4RBRA2RBRC1RBRE10RCRB5RCRF2RDRA4RDRE3RDRG5RERA5RERB2RERD3RERF2RERG1RERH8RFRC2RFRE2RFRH4RGRD5RGRE1RHRE8RHRF6SPF算法
Dijkstra算法的原始描述(來自其論文)構(gòu)造一棵樹,使每個(gè)節(jié)點(diǎn)之間的總長(zhǎng)最小前提條件:分枝被分成3個(gè)集合:I:被明確分配給構(gòu)造中的樹的分枝II:從中選擇下一個(gè)分枝被添加到集合IIII:剩余的分杖(拋棄的或不考慮)節(jié)點(diǎn)被分成2個(gè)集合:A.被集合I中的分枝連接的節(jié)點(diǎn)B.剩余的節(jié)點(diǎn)(集合II中有且僅有一個(gè)分枝將指向其中的每一個(gè)節(jié)點(diǎn))SPF算法(續(xù))
先選擇任意一個(gè)節(jié)點(diǎn)作為集合A中僅有的成員,并將所有以該節(jié)點(diǎn)為端點(diǎn)的分枝放入集合II中。開始時(shí)集合I是空的,然后重復(fù)執(zhí)行下面兩步:步驟⒈集合II中最短的分枝被移出并加入集合I。結(jié)果是一個(gè)節(jié)點(diǎn)從集合B傳送到集合A;步驟⒉考慮從該節(jié)點(diǎn)(剛才被傳送到集合A中的那個(gè)節(jié)點(diǎn))通向集合B中節(jié)點(diǎn)的每一個(gè)分枝,如果構(gòu)建中的分枝長(zhǎng)于集合II中相應(yīng)的分枝,那么這個(gè)分枝被丟棄;否則用它替代集合II中相應(yīng)的分枝,并且丟棄后者。接著我們回到第1步并重復(fù)此過程,直到集合II和集合B為空。集合I中的分枝形成所要求的樹。SPF算法(續(xù))
路由器采用的Dijkstra算法:步驟I:路由器初始化樹數(shù)據(jù)庫(kù),將自己作為樹的根。這表明路由器作為它自己的鄰居,代價(jià)為0步驟2:在鏈路狀態(tài)數(shù)據(jù)庫(kù)中,所有描述通向根路由器鄰居鏈路的三元組被添加到候選對(duì)象數(shù)據(jù)庫(kù)中步驟3:計(jì)算從根到每條鏈路的代價(jià),候選對(duì)象數(shù)據(jù)庫(kù)中代價(jià)最小的鏈路被移到樹數(shù)據(jù)庫(kù)中。如果兩個(gè)或以上的鏈路離根的最短代價(jià)相同,選擇其中一條步驟4:檢查添加到樹數(shù)據(jù)庫(kù)中的鄰居ID。除了鄰居ID已在樹數(shù)據(jù)庫(kù)中的三元組之外,鏈路狀態(tài)數(shù)據(jù)庫(kù)中描述路由器鄰居的三元組被添加到候選對(duì)象數(shù)據(jù)庫(kù)中步驟5:如果候選對(duì)象數(shù)據(jù)庫(kù)中還有剩余的表項(xiàng),則回到第3步;如果候選數(shù)據(jù)庫(kù)為空,那么終止算法。在算法終止時(shí),在樹數(shù)據(jù)庫(kù)中,每個(gè)單一的鄰居ID表項(xiàng)將表示1臺(tái)路由器,到此最短路徑樹構(gòu)造完畢。運(yùn)行SPF算法候選庫(kù)到達(dá)根的費(fèi)用樹庫(kù)說明
RA,RA,0路由器A把自己加入樹庫(kù),作為根RA,RB,2RA,RD,4RA,RE,4244RA,RA,0把RA的鏈路到達(dá)的所有的鄰居加入候選列表RA,RD,4RA,RE,4RB,RC,1RB,RE,1044312RA,RA,0RA,RB,2(RA,RB,2)是候選列表中費(fèi)用最低的鏈路,因此將其加入樹庫(kù)。
將RB的所有未在樹庫(kù)的鄰居加入候選列表。從(RA,RE,4)到達(dá)RE的鏈路費(fèi)用比(RB,RE,10)更低,因此將后者從候選列表中刪除運(yùn)行SPF算法(續(xù))RA,RD,4RA,RE,4RC,RF,2445RA,RA,0RA,RB,2RB,RC,1(RB,RC,1)是候選列表中費(fèi)用最低的鏈路,因此將其加入樹庫(kù)。將RC的所有未在樹庫(kù)的鄰居加入候選列表。RA,RE,4RC,RF,2RD,RE,3RD,RG,54579RA,RA,0RA,RB,2RB,RC,1RA,RD,4(RA,RD,4)與(RA,RE,4)從根RA開始的費(fèi)用都是4;而(RC,RF,2)的費(fèi)用是5。因此(RA,RD,4)被加入樹庫(kù),并將RD的所有未在樹庫(kù)的鄰居加入候選列表。從根RA到達(dá)RE的更高費(fèi)用的路徑被刪除運(yùn)行SPF算法(續(xù))RC,RF,2RD,RG,5RE,RF,2RE,RG,1RE,RH,8596512RA,RA,0RA,RB,2RB,RC,1RA,RD,4RA,RE,4(RA,RE,4)被加入樹庫(kù),而RE的未在樹庫(kù)的鄰居被加入候選列表。到達(dá)RG的更高費(fèi)用的路徑被刪除RE,RF,2RE,RG,1RE,RH,8RF,RH,465129RA,RA,0RA,RB,2RB,RC,1RA,RD,4RA,RE,4RC,RF,2(RC,RF,2)*被加入樹庫(kù),而RF的未在樹庫(kù)的鄰居被加入候選列表。到達(dá)RH的更高費(fèi)用的路徑被刪除*注:當(dāng)然也可以選擇(RE,RG,1)因?yàn)樗膹母鵕A開始的費(fèi)用也是5。
運(yùn)行SPF算法(續(xù))RF,RH,49RA,RA,0RA,RB,2RB,RC,1RA,RD,4RA,RE,4RC,RF,2RE,RG,1(RE,RG,1)被加入樹庫(kù),而RG沒有未在樹庫(kù)的鄰居,因此沒有新的鏈路被加入候選列表中。(RE,RF,2)被丟棄,因?yàn)閺母鵕A到達(dá)RF的路徑RA-RE-RF的費(fèi)用為6,而在樹庫(kù)中RA-RB-RC-RF的費(fèi)用為5
RA,RA,0RA,RB,2RB,RC,1RA,RD,4RA,RE,4RC,RF,2RE,RG,1RF,RH,4(RF,RH,4)是候選列表中費(fèi)用最低的鏈路,因此將其加入樹庫(kù)。此時(shí)候選列表已經(jīng)為空,因此算法結(jié)束,最短路徑樹完成。區(qū)域一個(gè)區(qū)域是構(gòu)成一個(gè)網(wǎng)絡(luò)的路由器的一個(gè)子集。將網(wǎng)絡(luò)劃分為區(qū)域是針對(duì)鏈路狀態(tài)協(xié)議的3個(gè)不利影響所采取的措施:必要的數(shù)據(jù)庫(kù)要求內(nèi)存的數(shù)量比距離矢量協(xié)議更多復(fù)雜的算法要求CPU時(shí)間比距離矢量協(xié)議更多
鏈路狀態(tài)泛洪擴(kuò)散數(shù)據(jù)包對(duì)可用帶寬帶來了不利的影響,特別是不穩(wěn)定的網(wǎng)絡(luò)使用區(qū)域減少系統(tǒng)LS需要的資源OSPFv2開放最短路徑優(yōu)先協(xié)議(OSPF)是由Internet工程任務(wù)組(IETF)開發(fā)的路由選擇協(xié)議,用來替代存在問題的RIP協(xié)議OSPF協(xié)議是IETF建議使用的內(nèi)部網(wǎng)關(guān)協(xié)議(IGP)OSPF協(xié)議是一個(gè)鏈路狀態(tài)協(xié)議,使用Dijkstra的最短路徑優(yōu)先(SPF)算法,而且是開放的OSPFv1(RFC1131)只在實(shí)驗(yàn)平臺(tái)使用;OSPFv2是目前IPv4協(xié)議仍然使用的版本,最初在RFC1247中說明的,最新是在RFC2328中說明OSPFv2協(xié)議的主要特點(diǎn)使用了區(qū)域的概念,這樣可以有效地減少路由選擇協(xié)議對(duì)路由器的CPU和內(nèi)存的占用。劃分區(qū)域還可以降低路由選擇協(xié)議的通信量,這使構(gòu)建一個(gè)層次化的網(wǎng)絡(luò)拓?fù)涑蔀榭赡芡耆珶o類別地處理地址,排除了不連續(xù)子網(wǎng)這樣的有類別路由選擇協(xié)議的問題支持無類別路由表查詢、VLSM和用來進(jìn)行有效地址管理的超網(wǎng)技術(shù)支持無大小限制的、任意的度量值支持使用多條路徑的效率更高的等價(jià)負(fù)載均衡使用保留的組播地址來減小對(duì)運(yùn)行0SPF的設(shè)備的影響支持更安全的路由選擇認(rèn)證使用可以跟蹤外部路由的路由標(biāo)記OSPFv2操作1.0SPF路由器從所有啟動(dòng)0SPF協(xié)議的接口上發(fā)出Hello數(shù)據(jù)包。如果共享一條公共鏈路的路由器能夠相互成功協(xié)商某些參數(shù),那么它們就成為了鄰居2.建立鄰接關(guān)系:鄰接關(guān)系可以想象成為一條點(diǎn)到點(diǎn)的虛鏈路,是在一些鄰居路由器之間構(gòu)成的關(guān)系。鄰接關(guān)系的建立是由交換Hello信息的路由器類型和交換Hello信息的網(wǎng)絡(luò)類型確定的3.每個(gè)路由器都會(huì)在所有形成鄰接關(guān)系的鄰居之間發(fā)送鏈路狀態(tài)通告LSA。LSA描述了路由器所有的鏈路、接口、鄰居以及鏈路狀態(tài)信息OSPF定義了許多LSA類型4.每個(gè)收到來自鄰居的LSA的路由器把這些LSA記錄在自己的鏈路狀態(tài)數(shù)據(jù)庫(kù)中,并將其擴(kuò)散到自己的其他所有鄰居5.通過LSA泛洪擴(kuò)散到整個(gè)區(qū)域,所有的路由器將形成相同的鏈路狀態(tài)數(shù)據(jù)庫(kù)6.當(dāng)所有路由器的數(shù)據(jù)庫(kù)完全相同時(shí),每個(gè)路由器都以自身為根,使用SPF算法來計(jì)算一個(gè)無環(huán)路的算法樹7.每個(gè)路由器利用SPF算法樹構(gòu)建自己的路由表路由器ID(RouterID)路由器ID用于在0SPF區(qū)域內(nèi)惟一標(biāo)識(shí)一臺(tái)路由器。一臺(tái)0SPF路由器對(duì)其他0SPF路由器的跟蹤也是利用路由器CISCO路由器使用下面的方法確定路由器ID:如果使用router-id命令手工配置RouterID,就使用該RouterID如果沒有手工配置RouterID,路由器就選取它所有的回送(loopback)接口上數(shù)值最高的IP地址作為RID如果路由器沒有配置IP地址的loopback接口,那么路由器將選取它所有的物理接口上數(shù)值最高的IP地址作為RIDHello協(xié)議Hello協(xié)議可用于下列幾個(gè)目的:用于發(fā)現(xiàn)鄰居路由器在兩臺(tái)路由器成為鄰居之前,通告相互認(rèn)可的幾個(gè)參數(shù)鄰居路由器之間擔(dān)當(dāng)Keep-alive的角色確保鄰居路由器之間的雙向通信用于在一個(gè)廣播網(wǎng)絡(luò)或非廣播多路訪問(NBMA)網(wǎng)絡(luò)上選取指定路由器(DesignatedRouter,DR)和后備指定路由器(BackupDesignatedRouter,BDR)HelloIntervel和RouterDeadIntervel0SPF路由器周期性地從啟動(dòng)0SPF協(xié)議的每個(gè)接口上發(fā)送Hello數(shù)據(jù)包。該周期性的時(shí)間段稱為Hello時(shí)間間隔(HelloIntervel),每個(gè)接口都有對(duì)應(yīng)的Hello間隔時(shí)間在CISCO路由器上,對(duì)于廣播型網(wǎng)絡(luò),缺省Hello時(shí)間間隔是10s;對(duì)于非廣播型網(wǎng)絡(luò),缺省值是30s??梢酝ㄟ^命令:ip
ospfhello-interval來更改如果一臺(tái)路由器在一個(gè)稱為路由器無效時(shí)間間隔(RouterDeadIntervel)的時(shí)間段內(nèi)還沒有收到來自鄰居的Hello數(shù)據(jù)包,那么將宣告它的鄰居路由器無效在CISCO路由器中,路由器無效時(shí)間間隔的缺省值是Hello時(shí)間間隔的4倍,可以通過命令ip
ospfdead-interval修改Hello包的內(nèi)容每個(gè)Hello數(shù)據(jù)包都包含以下信息:始發(fā)路由器的路由器始發(fā)路由器接口的區(qū)域ID始發(fā)路由器接口的地址掩碼始發(fā)路由器接口的認(rèn)證類型和認(rèn)證信息始發(fā)路由器接口的Hello時(shí)間間隔始發(fā)路由器接口的路由器無效時(shí)間間隔路由器的優(yōu)先級(jí)指定路由器(DR)和備份指定路由器(BDR)標(biāo)識(shí)可選性能的5個(gè)標(biāo)記位始發(fā)路由器的所有有效鄰居的路由器ID,這個(gè)列表僅包含一些所謂有效的鄰居路由器,即在最近的路由器無效時(shí)間間隔內(nèi),始發(fā)路由器接口可以從其接收到Hello數(shù)據(jù)包鄰接關(guān)系建立的必要條件當(dāng)一臺(tái)路由器從它的鄰居路由器收到一個(gè)Hello數(shù)據(jù)包時(shí),將檢驗(yàn)該Hello數(shù)據(jù)包攜帶的下列信息:區(qū)域ID認(rèn)證信息網(wǎng)絡(luò)掩碼Hello間隔時(shí)間路由器無效時(shí)間間隔其它可選項(xiàng)如果這些數(shù)值都與接收接口上配置的對(duì)應(yīng)值相匹配,那么就可以建立鄰接關(guān)系;如果不匹配,那么該數(shù)據(jù)包將被丟棄,且鄰接關(guān)系也無法建立雙向通信關(guān)系如果Hello包的所有參數(shù)都匹配,那么這個(gè)包就是有效的。如果始發(fā)路由器的路由器ID已在接收該包的接口的鄰居表中列出,那么路由器無效時(shí)間間隔定時(shí)器將被復(fù)位如果始發(fā)路由器的路由器ID沒有在鄰居表中列出,那么就把這個(gè)路由器ID加入到它的鄰居表中路由器發(fā)送一個(gè)Hello包時(shí),都會(huì)在這個(gè)包中列出傳送該數(shù)據(jù)包的鏈路上出現(xiàn)并記錄的鄰居的路由器ID。如果一臺(tái)路由器收到了一個(gè)有效的Hello包,并在這個(gè)包中發(fā)現(xiàn)了自己的路由器ID,那么它就認(rèn)為是雙向通信已經(jīng)建立成功鄰接關(guān)系的形成條件一旦雙向通信成功建立,鄰接關(guān)系也就可能建立了,但并不是所有的鄰居路由器都會(huì)成為鄰接對(duì)象鄰接關(guān)系的形成與否是依賴于這兩臺(tái)互為鄰居的路由器所連網(wǎng)絡(luò)的類型;而且網(wǎng)絡(luò)類型也影響0SPF數(shù)據(jù)包傳送的方式網(wǎng)絡(luò)類型OSPF協(xié)議定義了以下5種網(wǎng)絡(luò)類型:(1)點(diǎn)到點(diǎn)網(wǎng)絡(luò)(2)廣播型網(wǎng)絡(luò)(3)非廣播多路訪問(NBMA)網(wǎng)絡(luò)(4)點(diǎn)到多點(diǎn)網(wǎng)絡(luò)(5)虛鏈路網(wǎng)絡(luò)類型(續(xù))點(diǎn)到點(diǎn)網(wǎng)絡(luò):像T1、DS-3或SONET鏈路等,是連接單獨(dú)一對(duì)路由器的。在點(diǎn)到點(diǎn)網(wǎng)絡(luò)上的有效鄰居總是可以形成鄰接關(guān)系。在這些網(wǎng)絡(luò)上的0SPF數(shù)據(jù)包的目的地址也總是保留的D類地址224.0.0.5,這個(gè)組播地址稱為AllSPFRouters。網(wǎng)絡(luò)類型(續(xù))廣播型網(wǎng)絡(luò):像以太網(wǎng)、令牌環(huán)網(wǎng)和FDDI等,都屬于廣播型多址網(wǎng)絡(luò),這種多址網(wǎng)絡(luò)可以連接多于兩臺(tái)的設(shè)備,而且連接在這種網(wǎng)絡(luò)上的所有設(shè)備都可以接收到某個(gè)傳送的數(shù)據(jù)包。廣播型網(wǎng)絡(luò)上的0SPF路由器會(huì)選舉一臺(tái)指定路由器和一臺(tái)后備指定路由器。Helllo數(shù)據(jù)包以組播方式發(fā)送到AllSPFRouters(224.0.0.5),MAC組播地址是0100.5E00.0005。其他所有的路由器都將以組播方式發(fā)送鏈路狀態(tài)更新數(shù)據(jù)包和鏈路狀態(tài)確認(rèn)數(shù)據(jù)包保留的D類地址224.0.0.6,這個(gè)組播地址稱為AllDRouters,對(duì)應(yīng)的MAC組播地址是0100.5E00.0006網(wǎng)絡(luò)類型(續(xù))非廣播多路訪問(NBMA)網(wǎng)絡(luò):像X.25、幀中繼和ATM等,可以連接兩臺(tái)以上的路由器,但它們沒有廣播數(shù)據(jù)包的能力。一臺(tái)位于在NBMA網(wǎng)絡(luò)上的路由器發(fā)送的數(shù)據(jù)包將不能被其他與之相連的路由器收到。因此在這些網(wǎng)絡(luò)上的路由器必須增加另外的配置來獲得它們的鄰居。此外,在NBMA網(wǎng)絡(luò)上的0SPF路由器需要選舉DR和BDR,并且所有的0SPF數(shù)據(jù)包都是單播的。網(wǎng)絡(luò)類型(續(xù))點(diǎn)到多點(diǎn)網(wǎng)絡(luò):點(diǎn)到多點(diǎn)網(wǎng)絡(luò)是NBMA網(wǎng)絡(luò)的一個(gè)特殊配置,可以被看作是一群點(diǎn)到點(diǎn)鏈路的集合。在這些網(wǎng)絡(luò)上的0SPF路由器不需要選舉DR和BDR,0SPF數(shù)據(jù)包以單播方式發(fā)送給每一個(gè)已知的鄰居網(wǎng)絡(luò)類型(續(xù))虛鏈路:可以被路由器認(rèn)為是沒有編號(hào)的點(diǎn)到點(diǎn)網(wǎng)絡(luò)的一種特殊配置。在虛鏈路上0SPF數(shù)據(jù)包是以單播方式發(fā)送的另一種網(wǎng)絡(luò)類型分類所有的網(wǎng)絡(luò)也都可以分為下面兩種更普通的網(wǎng)絡(luò)類型之一:傳送網(wǎng)絡(luò)(TransitNetwork):與兩臺(tái)或兩臺(tái)以上的路由器相連的網(wǎng)絡(luò)。這種網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)包的始發(fā)網(wǎng)絡(luò)和目的網(wǎng)絡(luò)都不同于當(dāng)前的傳送網(wǎng)絡(luò)末梢網(wǎng)絡(luò)(StubNetwork):僅與一臺(tái)路由器相連的網(wǎng)絡(luò)。末梢網(wǎng)絡(luò)上的數(shù)據(jù)包總是有一個(gè)源地址或者目的地址屬于這個(gè)末梢網(wǎng)絡(luò)。OSPF協(xié)議在末梢網(wǎng)絡(luò)上通告主機(jī)路由(hostroute,就是網(wǎng)絡(luò)掩碼為255.255.255.255的路由)。loopback接口也可以認(rèn)為是末梢網(wǎng)絡(luò),并當(dāng)作主機(jī)路由來通告。OSPF在多址網(wǎng)絡(luò)上泛洪擴(kuò)散問題在多址網(wǎng)絡(luò)上有關(guān)LSA的泛洪擴(kuò)散存在兩個(gè)問題:在構(gòu)建相關(guān)路由器之間的鄰接關(guān)系時(shí),會(huì)創(chuàng)建很多不必要的LSA多址網(wǎng)絡(luò)本身的泛洪擴(kuò)散顯得比較混亂。某一臺(tái)路由器向與它存在鄰接關(guān)系的所有鄰居發(fā)出LSA,同樣地,這些鄰接的鄰居路由器又向與它有鄰接關(guān)系的鄰居的鄰居發(fā)出這個(gè)LSA,這樣將會(huì)在同一個(gè)網(wǎng)絡(luò)上創(chuàng)建很多個(gè)相同LSA的副本利用DR與BDR解決問題指定路由器(DR)的作用DR將完成以下工作:描述多路訪問網(wǎng)絡(luò)和0SPF區(qū)域內(nèi)其余與其相連的路由器管理多路訪問網(wǎng)絡(luò)上的泛洪擴(kuò)散過程偽節(jié)點(diǎn)(或虛擬路由器)當(dāng)計(jì)算SPF樹的時(shí)候,把廣播鏈路看作一個(gè)偽節(jié)點(diǎn)(或者叫“虛擬路由器”),與該鏈路相連的路由器都連接到這個(gè)節(jié)點(diǎn)上從與偽節(jié)點(diǎn)相連的路由器到這個(gè)偽節(jié)點(diǎn)的代價(jià)就是該路由器與這個(gè)廣播鏈路相連的接口的出站代價(jià);從偽節(jié)點(diǎn)到任何與之相連的路由器的代價(jià)都為0偽節(jié)點(diǎn)的理解設(shè)置BDR的目的指定路由器具有非常重要的作用,如果一臺(tái)指定路由器失效了,就必須選取一臺(tái)新的指定路由器。同時(shí),網(wǎng)絡(luò)上的所有路由器也要重新建立新的鄰接關(guān)系,并且網(wǎng)絡(luò)上所有的路由器必須與新選出的指定路由器同步它們的鏈路狀態(tài)數(shù)據(jù)庫(kù),但當(dāng)所有上述的過程發(fā)生時(shí),網(wǎng)絡(luò)將無法有效地傳送數(shù)據(jù)包--太長(zhǎng)的延遲時(shí)間!為了避免這個(gè)問題,在網(wǎng)絡(luò)上除了選取DR,再選取一臺(tái)BDR。網(wǎng)絡(luò)上所有的路由器將同時(shí)與DR和BDR形成鄰接關(guān)系。DR和BDR之間也將互相形成鄰接關(guān)系。此時(shí),如果DR失效了,BDR將成為新的DR。由于網(wǎng)絡(luò)上其余的路由器已經(jīng)與BDR形成了鄰接關(guān)系,因此網(wǎng)絡(luò)可以將無法傳送數(shù)據(jù)包的影響降低到最小的程度DR/BDR選取的前提條件能夠?qū)嵤┻x取過程一些前提條件:每臺(tái)路由器的每個(gè)多點(diǎn)訪問接口都有一個(gè)路由器的優(yōu)先級(jí),用一個(gè)8位的無符號(hào)整數(shù)來表示,范圍是0~255(Cisco路由器上缺省的優(yōu)先級(jí)是1,可以通過命令ip
ospfpriority來修改)。具有0優(yōu)先級(jí)的路由器將不能成為DR或者BDRHello數(shù)據(jù)包包含了表示始發(fā)路由器指定的路由器優(yōu)先級(jí)字段,也包含了表示路由器認(rèn)為可能是DR和BDR的相關(guān)接口的IP地址的字段當(dāng)一個(gè)接口在一個(gè)多址網(wǎng)絡(luò)上剛開始有效時(shí),將把它的DR和BDR的地址都設(shè)置為0.0.0.0,同時(shí)將等待定時(shí)器(waittimer)的值設(shè)置為路由器無效時(shí)間間隔(RouterDeadInterval)在多址網(wǎng)絡(luò)上已經(jīng)存在的接口將把DR和BDR的地址記錄在接口數(shù)據(jù)結(jié)構(gòu)表中DR和BDR的選取過程(1)在路由器和它的鄰居路由器之間首先建立雙向通信,接著檢查每臺(tái)鄰居路由器發(fā)送的Hello包的優(yōu)先級(jí)、DR和BDR字段。列出所有具有DR和BDR選取資格的路由器的列表,接著所有的路由器將宣稱自己是DR路由器,所有的路由器也將宣稱自己是BDR路由器(2)從具有選取資格的路由器列表中,創(chuàng)建一個(gè)還沒有宣告為DR路由器的所有路由器的子集(宣告自己為DR的路由器不能被選為BDR)(3)如果這個(gè)子集中的一臺(tái)或者多臺(tái)鄰居路由器在Hello包的BDR字段包含了它們自己的接口地址,那么具有最高優(yōu)先級(jí)的鄰居路由器將被宣告為BDR路由器。在優(yōu)先級(jí)相同時(shí)具有最高路由器ID的鄰居路由器將被選作BDR(4)如果子集中沒有路由器宣稱自己是BDR,那么具有最高優(yōu)先級(jí)的鄰居路由器將被宣告為BDR路由器。在優(yōu)先級(jí)相同時(shí)具有最高路由器ID的鄰居路由器將被選作BDR(5)如果一臺(tái)或多臺(tái)具有選取資格的路由器在Hello包的DR字段包含它們自己的接口地址,那么具有最高優(yōu)先級(jí)的鄰居路由器將被宣告為DR路由器。在優(yōu)先級(jí)相同時(shí)具有最高路由器ID的鄰居路由器將被選作DR(6)如果沒有路由器宣稱自己是DR,那么新選取的BDR將成為DR(7)如果正在執(zhí)行計(jì)算的路由器是新選取的DR或BDR,或者它不再是DR或BDR了,那么將重復(fù)以上的2~6步驟DR/BDR與優(yōu)先級(jí)的關(guān)系在一個(gè)多址網(wǎng)絡(luò)上,最先初始化啟動(dòng)的兩臺(tái)具有DR選取資格的路由器將成為DR和BDR路由器路由器的優(yōu)先級(jí)可以影響一個(gè)選取過程對(duì)于已經(jīng)選出DR/BDR的網(wǎng)絡(luò),不能強(qiáng)制更換已經(jīng)有效的DR或BDR路由器例如已經(jīng)選取了DR和BDR路由器后,如果一臺(tái)具有更高優(yōu)先級(jí)的路由器變?yōu)橛行?,那么這臺(tái)新的路由器將不會(huì)替換DR或BDR路由器的任何一臺(tái)DR/BDR與其余路由器的關(guān)系一旦DR和BDR路由器選取成功,其他的路由器(稱為DRothers)將只與DR及BDR路由器之間形成鄰接關(guān)系所有路由器繼續(xù)以組播方式發(fā)送Hello數(shù)據(jù)包到AllSPFRouters(組播地址是224.0.0.5),因此能夠跟蹤各自的鄰居路由器DRothers路由器只以組播方式發(fā)送更新數(shù)據(jù)包到AllDRouters(組播地址是224.0.0.6)。只有DR和BDR路由器去偵聽這個(gè)地址DR路由器使用組播地址224.0.0.5泛洪擴(kuò)散更新數(shù)據(jù)包到DRothersOSPF接口及其數(shù)據(jù)結(jié)構(gòu)DR和BDR的選取是通過接口狀態(tài)機(jī)的方式觸發(fā)的描述OSPF協(xié)議時(shí)可以不區(qū)分接口和鏈路這兩個(gè)術(shù)語運(yùn)行OSPF協(xié)議的路由器將為每個(gè)啟動(dòng)OSPF協(xié)議的接口維護(hù)一個(gè)數(shù)據(jù)結(jié)構(gòu)OSPF接口數(shù)據(jù)結(jié)構(gòu)AddressandMask(IP地址和掩碼):路由器接口所配置的IP地址和掩碼AreaID(區(qū)域ID):接口所在的區(qū)域ProcessID(進(jìn)程ID):這是Cisco公司特有的屬性,不是0SPF協(xié)議開放標(biāo)準(zhǔn)的一部分。用于區(qū)分同一臺(tái)路由器中運(yùn)行多個(gè)0SPF進(jìn)程Router1D(路由器ID):路由器IDNetworkType(網(wǎng)絡(luò)類型):與這個(gè)接口相連的網(wǎng)絡(luò)類型:廣播型、點(diǎn)到點(diǎn)類型、NBMA、點(diǎn)到多點(diǎn)類型或虛鏈路等Cost(代價(jià)):表示從該接口發(fā)送出去的數(shù)據(jù)包的出站接口代價(jià)接口數(shù)據(jù)結(jié)構(gòu)的其它參數(shù)InfTransDelay:指LSA從路由器的接口發(fā)送后經(jīng)歷的時(shí)間,單位為秒,CISCO路由器上缺省值為1sState(狀態(tài)):接口的功能狀態(tài)RouterPriority(路由器優(yōu)先級(jí)):用來選擇DR和BDR的—個(gè)8位無符號(hào)整數(shù)DesignatedRouter(指定路由器)BackupDesignatedRouter(備份指定路由器)HelloIntervalRouterDeadIntervalWaitTimer(等待計(jì)時(shí)器):在開始選取DR和BDR之前,路由器等待鄰居路由器的Hello包通告DR和BDR的時(shí)間RxmtInterval:是指在沒有得到確認(rèn)的情況下,路由器重傳報(bào)文需要等待的時(shí)間,單位為秒HelloTimer(Hello定時(shí)器:初始值由HelloInterval值來設(shè)置NeighboringRouters(鄰居路由器):是指與這個(gè)接口相連的網(wǎng)絡(luò)上的有效鄰居路由器
AuType:使用的認(rèn)證類型AuthenticationKey(認(rèn)證密鑰):如果接口上啟用的是簡(jiǎn)單認(rèn)證方式,那么認(rèn)證密鑰就是—個(gè)64位的口令;如果啟用的是加密認(rèn)證方式,那么認(rèn)證密鑰就是一個(gè)消息摘要密鑰OSPF接口狀態(tài)機(jī)接口狀態(tài)包括失效、點(diǎn)到點(diǎn)、等待、DR、BDR、DRother和Loopback等:失效(Down):初始化的接口狀態(tài)點(diǎn)到點(diǎn):僅適用于與點(diǎn)到點(diǎn)、點(diǎn)到多點(diǎn)以及虛電路等網(wǎng)絡(luò)類型相連的接口,表示接口開始起作用等待(Waiting):僅適用于與廣播型、NBMA等網(wǎng)絡(luò)類型相連的接口。表示接口將開始發(fā)送和接收Hello包指定路由器(DR):該路由器是所連網(wǎng)絡(luò)的指定路由器備份(Backup):該路由器是所連網(wǎng)絡(luò)的后備指定路由器DRother:該路由器既不是所連網(wǎng)絡(luò)上的DR,也不是BDRLoopback:路由器的接口是通過軟件或硬件的方式成為回送(loopback)的。在該種狀態(tài)下接口不能發(fā)送數(shù)據(jù)包,但接口的地址還是可以通過路由器LSA通告出去OSPF接口狀態(tài)機(jī)輸入事件及其描述IE1:底層協(xié)議指明該網(wǎng)絡(luò)接口是可操作的IE2:底層協(xié)議指明該網(wǎng)絡(luò)接口是不可操作的IE3:網(wǎng)絡(luò)管理系統(tǒng)或底層協(xié)議指明該網(wǎng)絡(luò)按口打環(huán)路后是有效的(loopedup)IE4:網(wǎng)絡(luò)管理系統(tǒng)或底層協(xié)議指明該網(wǎng)絡(luò)接口打環(huán)路后是無效的(loopeddown)IE5:收到Hello數(shù)據(jù)包,在Hello包中,要么始發(fā)鄰居路由器把自身作為BDR列出,要么始發(fā)鄰居路由器把自身作為DR列出而不指明BDRIE6:等待定時(shí)器超時(shí)IE7:路由器被所在的網(wǎng)絡(luò)選取為DR路由器IE8:路由器被所在網(wǎng)絡(luò)選取為BDR路由器IE9:路由器沒有被所在網(wǎng)絡(luò)選取為DR或者BDR路由器IE10:表示網(wǎng)絡(luò)中一組有效的鄰居路由器發(fā)生了變化(多種情況)OSPF鄰居鄰居之間建立關(guān)聯(lián)關(guān)系的目的是為了形成鄰接關(guān)系,最終可以順利地傳送路由選擇信息要成功建立一個(gè)鄰接關(guān)系,通常需要下面4個(gè)階段:鄰居路由器發(fā)現(xiàn)階段雙向通信階段數(shù)據(jù)庫(kù)同步階段完全鄰接階段鄰居數(shù)據(jù)結(jié)構(gòu)每個(gè)路由器將維護(hù)一個(gè)鄰居數(shù)據(jù)結(jié)構(gòu)表,用來表示從其他路由器學(xué)習(xí)到的Hello包的信息使用命令showip
ospfneighbor可以觀察路由器一個(gè)鄰居的鄰居數(shù)據(jù)結(jié)構(gòu)的信息鄰居數(shù)據(jù)結(jié)構(gòu)的信息NeighborID(鄰居路由器ID):鄰居路由器的IDNeighborIPAddress(鄰居IP地址):是指與網(wǎng)絡(luò)相連的鄰居路由器的接口IP地址AreaID(區(qū)域ID)Interface(接口):是指與鄰居路由器所在網(wǎng)絡(luò)相連的接口NeighborPriority(鄰居優(yōu)先級(jí))State(狀態(tài)):指的是從本地路由器角度看到的鄰居路由器的功能狀態(tài)DesignatedRouter(指定路由器):這個(gè)地址包含在鄰居路由器發(fā)送的Hello包的DR字段中BackupDesignatedRouter(后備指定路由器):這個(gè)地址包含在鄰居路由器發(fā)送的Hello包的BDR字段中PollInterval:只用于NBMA網(wǎng)絡(luò)上相關(guān)的鄰居路由器NeighborOptions(鄰居路由器可選項(xiàng)):鄰居路由器支持的可選項(xiàng)InactivityTimer(失效計(jì)時(shí)器):這是一個(gè)時(shí)長(zhǎng)為RouterDeadInterval(該參數(shù)在接口數(shù)據(jù)結(jié)構(gòu)中定義)的定時(shí)器鄰居數(shù)據(jù)結(jié)構(gòu)的信息(續(xù))Master/Slave:在ExStart狀態(tài)下,鄰居之間協(xié)商的主/從關(guān)系將用來控制數(shù)據(jù)庫(kù)的同步DDSequenceNumber(數(shù)據(jù)庫(kù)描述序列號(hào)):指當(dāng)前正在向鄰居路由器發(fā)送的數(shù)據(jù)庫(kù)描述的序號(hào)LastReceivedDatabaseDescriptionPacket(最后收到的數(shù)據(jù)庫(kù)描述數(shù)據(jù)包)LinkStateRetransmissionList(鏈路狀態(tài)重傳列表):這是在鄰接關(guān)系建立后,OSPF已經(jīng)進(jìn)行泛洪擴(kuò)散,但還沒有得到確認(rèn)的LSA的列表DatabaseSummaryList(數(shù)據(jù)庫(kù)摘要列表):是指在數(shù)據(jù)庫(kù)同步期間,數(shù)據(jù)庫(kù)描述報(bào)文中向鄰居路由器發(fā)送的LSA列表LinkStateRequestList(鏈路狀態(tài)請(qǐng)求列表):該列表記錄了來自鄰居路由器的數(shù)據(jù)庫(kù)描述報(bào)文的LSA,當(dāng)路由器通過鏈路狀態(tài)更新數(shù)據(jù)包收到請(qǐng)求的LSA時(shí),請(qǐng)求列表就會(huì)減小,直至變?yōu)榭樟斜磬従訝顟B(tài)機(jī)失效狀態(tài)(Down):鄰居會(huì)話的初始狀態(tài)嘗試狀態(tài)(Attempt):僅適用于NBMA網(wǎng)絡(luò)上的鄰居,路由器將使用HelloInterval時(shí)間代替PollInterval時(shí)間來作為向鄰居發(fā)送Hello包的時(shí)間間隔初始狀態(tài)(Init):表示在最近的RouterDeadInterval時(shí)間內(nèi)路由器收到了來自鄰居路由器的Hello包,但是雙向通信仍然沒有建立雙向通信狀態(tài)(2-Way):本地路由器已經(jīng)在來自鄰居路由器的Hello包的鄰居字段中看到了它自己的路由器ID信息交換初始狀態(tài)(ExStart):本地路由器和它的鄰居將建立起主/從關(guān)系,并確定數(shù)據(jù)庫(kù)描述報(bào)文的序號(hào),以便為數(shù)據(jù)庫(kù)描述報(bào)文的信息交換做準(zhǔn)備。其中具有最高路由器ID的鄰居路由器將成為“主”路由器信息交換狀態(tài)(Exchange):本地路由器將向它的鄰居路由器發(fā)送可以描述它整個(gè)鏈路狀態(tài)數(shù)據(jù)庫(kù)信息的數(shù)據(jù)庫(kù)描述數(shù)據(jù)包;也可以發(fā)送鏈路狀態(tài)請(qǐng)求報(bào)文給它的鄰居路由器,用來請(qǐng)求最新的LSA信息加載狀態(tài)(Loading):本地路由器將會(huì)向它的鄰居路由器發(fā)送鏈路狀態(tài)請(qǐng)求數(shù)據(jù)包,用來請(qǐng)求最新的LSA通告。雖然在Exchange狀態(tài)下已經(jīng)發(fā)現(xiàn)了這些最新的LSA通告,但本地路由器還沒有收到這些LSA通告完全鄰接狀態(tài)(Full):鄰居路由器之間建立起完全鄰接關(guān)系鄰居狀態(tài)機(jī)(續(xù))鄰居狀態(tài)機(jī)(續(xù))IEn:表示輸入事件DPn:表示DecisionPoint判定點(diǎn)建立一個(gè)鄰接關(guān)系在一個(gè)鄰接關(guān)系的創(chuàng)建過程中,OSPF協(xié)議使用了以下3種報(bào)文類型:數(shù)據(jù)庫(kù)描述報(bào)文(類型2)鏈路狀態(tài)請(qǐng)求報(bào)文(類型3)鏈路狀態(tài)更新報(bào)文(類型4)數(shù)據(jù)庫(kù)描述報(bào)文中有3個(gè)標(biāo)記位用來管理鄰接關(guān)系的建立過程:I位(初始位):指明所發(fā)送的是第一個(gè)數(shù)據(jù)庫(kù)描述報(bào)文M位(后繼位,More):表示后面還有DD報(bào)文MS位(主/從位,Master/Slave):當(dāng)DD報(bào)文始發(fā)于一個(gè)“主”路由器時(shí),該位置1LSA確認(rèn)方法顯式確認(rèn):確認(rèn)收到包含這個(gè)LSA頭部的鏈路狀態(tài)確認(rèn)數(shù)據(jù)包隱式確認(rèn):確認(rèn)收到包含這個(gè)LSA的相同實(shí)例(沒有其它更加新的LSA)的更新數(shù)據(jù)包數(shù)據(jù)庫(kù)同步過程當(dāng)數(shù)據(jù)庫(kù)同步過程完成后,可能出現(xiàn)下面兩種狀態(tài)之一:如果鏈路狀態(tài)請(qǐng)求列表中仍然還有一些LSA條目,那么路由器將把鄰居的狀態(tài)轉(zhuǎn)換到加載(Loading)狀態(tài)如果鏈路狀態(tài)請(qǐng)求列表為空,那么路由器將會(huì)把鄰居的狀態(tài)轉(zhuǎn)換到完全鄰接(Full)狀態(tài)一個(gè)鄰接關(guān)系的創(chuàng)建過程實(shí)例建立鄰接關(guān)系實(shí)例的一點(diǎn)說明如果路由器的鏈路狀態(tài)請(qǐng)求列表中還有LSA條目,它并不需要等待Loading狀態(tài)才發(fā)送鏈路狀態(tài)請(qǐng)求報(bào)文在鄰居狀態(tài)還處于Exchange狀態(tài)時(shí)路由器就可以發(fā)送鏈路狀態(tài)請(qǐng)求報(bào)文了,這樣更加高效泛洪擴(kuò)散(Flooding)泛洪擴(kuò)散過程將會(huì)使用下面兩種0SPF報(bào)文:鏈路狀態(tài)更新報(bào)文(類型4)鏈路狀態(tài)確認(rèn)報(bào)文(類型5)OSPF采用可靠的泛洪擴(kuò)散,每個(gè)單獨(dú)傳送的LSA都必須被確認(rèn)確認(rèn)可以是時(shí)延的(delayed)或直接(direct)的,直接的確認(rèn)總是立即發(fā)送,且以單播方式發(fā)送序列號(hào)、校驗(yàn)和、老化時(shí)間當(dāng)收到某條相同的LSA的多個(gè)實(shí)例時(shí),路由器將通過下面的算法來確定哪個(gè)是最新的實(shí)例:1.比較LSA實(shí)例的序號(hào),擁有最大的序號(hào)的LSA就是最新的LSA2.如果LSA實(shí)例的序號(hào)相同,那么比較它們的校驗(yàn)和。擁有最大的無符號(hào)校驗(yàn)和的LSA就是最新的LSA3.如果LSA實(shí)例的校驗(yàn)和也相同,那么再比較它們的老化時(shí)間。如果只有一條LSA擁有最大生存時(shí)間的老化時(shí)間(MaxAge),那么就認(rèn)為這條LSA是最新的LSA4.如果這些LSA的老化時(shí)間之間的差別多于15min(即MaxAgeDiff),那么擁有較小的老化時(shí)間的LSA就是最新的LSA5.如果上述的條件都無法區(qū)分最新的LSA,那么這兩個(gè)LSA就被認(rèn)為是相同的通信量的類型定義了下面3種與區(qū)域相關(guān)的通信量的類型:域內(nèi)通信量域間通信量外部通信量區(qū)域0(或者區(qū)域0.0.0.0)是為骨干域保留的區(qū)域ID號(hào)。其任務(wù)是匯總每一個(gè)區(qū)域的網(wǎng)絡(luò)拓?fù)涞狡渌械膮^(qū)域。所有的域間通信量都必須通過骨干區(qū)域,非骨干區(qū)域之間不能直接交換數(shù)據(jù)包路由器的類型路由器的類型內(nèi)部路由器區(qū)域邊界路由器(AreaBorderRouter,ABR)骨干路由器(BackboneRouter)自主系統(tǒng)邊界路由器(AutonomousSystemBoundaryRouter,ASBR):是0SPF域外部的通信量進(jìn)入OSPF域的網(wǎng)關(guān)路由器,用來把其他路由選擇協(xié)議學(xué)習(xí)到的路由,通過路由選擇重分配的方式注入到0SPF域的路由器。一臺(tái)ASBR路由器可以是位于0SPF域的自主系統(tǒng)內(nèi)部的任何路由器,可以是一臺(tái)內(nèi)部路由器、骨干路由器或者ABR路由器分段區(qū)域(partitionedarea)是指由于鏈路失效而使一個(gè)區(qū)域的一個(gè)部分與其他部分隔離開來的情形如果一個(gè)非骨干的區(qū)域變成分段區(qū)域,并且在這個(gè)分段區(qū)域的任何一段區(qū)域里的所有路由器當(dāng)中都還能發(fā)現(xiàn)一臺(tái)ABR路由器,那么這個(gè)分段區(qū)域?qū)⒉粫?huì)產(chǎn)生中斷通信服務(wù)的情況,骨干區(qū)域僅僅會(huì)把這個(gè)分段區(qū)域看成兩個(gè)單獨(dú)的區(qū)域分段區(qū)域不是孤立區(qū)域(isolatedarea),孤立區(qū)域沒有鏈路與主網(wǎng)絡(luò)相連虛鏈路虛鏈路是指一條通過一個(gè)非骨干區(qū)域連接到骨干區(qū)域的鏈路虛鏈路主要應(yīng)用于以下幾種目的:(1)通過一個(gè)非骨干區(qū)域連接一個(gè)區(qū)域到骨干區(qū)域(2)通過一個(gè)非骨干區(qū)域連接一個(gè)分段的骨干區(qū)域兩邊的部分區(qū)域配置虛鏈路的幾條規(guī)則:虛鏈路必須配置在兩臺(tái)ABR路由器之間配置了虛鏈路所經(jīng)過的區(qū)域必須擁有全部的路由選擇信息,這樣的區(qū)域又被稱為傳送區(qū)域傳送區(qū)域不能是一個(gè)末梢區(qū)域LSA的類型路由器LSA:每—臺(tái)路由器都會(huì)產(chǎn)生路由器LSA通告,列出了路由器所有的鏈路或接口,并指明了它們的狀態(tài)和沿每條鏈路方向出站的代價(jià),以及該鏈路上所有已知的0SPF鄰居網(wǎng)絡(luò)LSA:每一個(gè)多路訪問網(wǎng)絡(luò)中的指定路由器(DR)將會(huì)產(chǎn)生網(wǎng)絡(luò)LSA通告,列出所有與之相連的路由器,包括DR路由器本身網(wǎng)絡(luò)匯總LSA:由ABR路由器始發(fā)的,發(fā)送到一個(gè)區(qū)域,用來通告該區(qū)域外部的目的地址ASBR匯總LSA:由ABR路由器始發(fā)的,通告的目的地是一臺(tái)ASBR路由器AS外部LSA:始發(fā)于ASBR路由器的、用來通告到達(dá)0SPFAS外部的目的地或者0SPFAS外部的缺省路由組成員LSA:用于組播0SPF協(xié)議(MOSPF協(xié)議)NSSA外部LSA:是指在非純末梢區(qū)域(Not-So-StubbyArea)內(nèi)始發(fā)于ASBR路由器的LSA通告外部屬性LSA:IOS軟件不支持OpaqueLSA:用于對(duì)0SPF增加可變的擴(kuò)展特性末梢(Stub)區(qū)域完全末梢區(qū)域:通過阻塞類型3(僅一個(gè)例外,即用來通告缺省路由的LSA)、類型4~5傳播到一個(gè)區(qū)域的方法來節(jié)省內(nèi)存,使用缺省路由到達(dá)0SPFAS外部的所有目的地址非純末梢區(qū)域(NSSA):允許外部路由通告到0SPFAS內(nèi)部,同時(shí)保留AS其余部分的末梢區(qū)域特征路由表的目的地類型網(wǎng)絡(luò)路由器路徑類型區(qū)域內(nèi)路徑區(qū)域間路徑類型1的外部路徑(Type1externalpath):指目的地在0SPFAS外部的路徑類型2的外部路徑(Type2externalpath):也是指目的地在0SPFAS外部的路徑,但是在計(jì)算外部路由的度量時(shí)不再計(jì)入本地到達(dá)ASBR路由器的路徑代價(jià)認(rèn)證OSPF協(xié)議對(duì)鄰居路由器之間交換的所有數(shù)據(jù)包都具有認(rèn)證的能力認(rèn)證可以是簡(jiǎn)單的口令認(rèn)證或MD5加密校驗(yàn)和認(rèn)證OSPF報(bào)文格式OSPF報(bào)文格式數(shù)據(jù)包頭部有24字節(jié)版本(Version):版本號(hào),0SPFv2的值是2類型(Type):有5種報(bào)文類型報(bào)文長(zhǎng)度(PacketLength):包括數(shù)據(jù)包頭部的長(zhǎng)度路由器ID(RouterID):始發(fā)路由器的ID區(qū)域ID(AreaID):始發(fā)報(bào)文的路由器所在的區(qū)域校驗(yàn)和(Checksum):對(duì)整個(gè)報(bào)文(包括包頭)的標(biāo)準(zhǔn)IP校驗(yàn)和認(rèn)證類型(AuType):使用的認(rèn)證模式認(rèn)證(Authentication):報(bào)文認(rèn)證的必要信息。如果AuType=0,將不檢查這個(gè)認(rèn)證字段;如果AuType=1,該字段將包含一個(gè)最長(zhǎng)為64位的口令;如果AuTyp=2,該字段將包含一個(gè)KeyID、認(rèn)證數(shù)據(jù)長(zhǎng)度和一個(gè)不減小的加密序號(hào)。這個(gè)消息摘要附加在0SPF數(shù)據(jù)包的尾部,不作為0SPF報(bào)文本身的一部分。加密序號(hào)不會(huì)減小,用來防止重放攻擊OSPF的5種報(bào)文類型Hello報(bào)文數(shù)據(jù)庫(kù)描述(DD)報(bào)文鏈路狀態(tài)請(qǐng)求(LSREQ)報(bào)文鏈路狀態(tài)更新(LSUPD)報(bào)文鏈路狀態(tài)確認(rèn)(LAACK)報(bào)文Hello報(bào)文DatabaseDescription報(bào)文LinkStateRequest報(bào)文LinkStateUpdate報(bào)文LinkStateAcknowledgement報(bào)文LSA格式介紹CISCO支持的類型:類型1~5和類型7的LSALSA頭部格式:LSA頭部DD報(bào)文和LSACK報(bào)文直接使用了LSA的頭部本身其中有3個(gè)字段可以惟一地識(shí)別每個(gè)LSA:類型:LSA的類型值鏈路狀態(tài)ID:指定LSA所描述的部分0SPF域,這個(gè)字段的用法與LSA的類型有關(guān)通告路由器:始發(fā)LSA的路由器的RID還有其他3個(gè)字段可以惟一地識(shí)別一個(gè)LSA的最新實(shí)例:序列號(hào)校驗(yàn)和老化時(shí)間RouterLSA鏈路狀態(tài)ID:指始發(fā)路由器的路由器IDV(VirtualLinkEndpoint)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年03月南通市市屬事業(yè)單位統(tǒng)一工作人員84人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 用外購(gòu)和進(jìn)口鋼材、鐵合金再加工生產(chǎn)鋼材、鐵合金項(xiàng)目安全風(fēng)險(xiǎn)評(píng)價(jià)報(bào)告
- 河北省滄州市重點(diǎn)中學(xué)2025年高三下學(xué)期學(xué)業(yè)質(zhì)量陽光指標(biāo)調(diào)研語文試題試卷含解析
- 河北交通職業(yè)技術(shù)學(xué)院《大學(xué)英語讀寫(一)》2023-2024學(xué)年第一學(xué)期期末試卷
- 共青科技職業(yè)學(xué)院《影視聲音后期制作》2023-2024學(xué)年第二學(xué)期期末試卷
- 紹興文理學(xué)院《數(shù)值計(jì)算方法》2023-2024學(xué)年第二學(xué)期期末試卷
- 新疆科信職業(yè)技術(shù)學(xué)院《裝置藝術(shù)設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 重慶機(jī)電職業(yè)技術(shù)大學(xué)《數(shù)字繪畫基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 長(zhǎng)春職業(yè)技術(shù)學(xué)院《土力學(xué)及工程地質(zhì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 漳州理工職業(yè)學(xué)院《外國(guó)戲劇史》2023-2024學(xué)年第一學(xué)期期末試卷
- 第9課《桃花源記》教學(xué)設(shè)計(jì)-2024-2025學(xué)年統(tǒng)編版語文八年級(jí)下冊(cè)
- 2025年紹興職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)附答案
- 網(wǎng)絡(luò)系統(tǒng)維護(hù)記錄日志表
- 廣東省廣州市白云區(qū)2024-2025學(xué)年高三下學(xué)期2月統(tǒng)測(cè)英語試卷【含答案解析】
- 2023-2024學(xué)年廣東省廣州市天河區(qū)八校聯(lián)考七年級(jí)(下)期中數(shù)學(xué)試卷(含答案)
- deepseek的使用技巧與實(shí)際應(yīng)用培訓(xùn)課件
- 禁食病人護(hù)理措施
- 存款保險(xiǎn)知識(shí)競(jìng)賽
- 信息技術(shù)必修1數(shù)據(jù)與計(jì)算2.2《做出判斷的分支》教學(xué)設(shè)計(jì)
- 2025年臨床醫(yī)師定期考核必考復(fù)習(xí)題庫(kù)及答案(1000題)
- 保安指揮車輛標(biāo)準(zhǔn)手勢(shì)培訓(xùn)
評(píng)論
0/150
提交評(píng)論