OSPF協(xié)議原理及配置chs_第1頁
OSPF協(xié)議原理及配置chs_第2頁
OSPF協(xié)議原理及配置chs_第3頁
OSPF協(xié)議原理及配置chs_第4頁
OSPF協(xié)議原理及配置chs_第5頁
已閱讀5頁,還剩105頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

OSPF協(xié)議原理及配置鏈路狀態(tài)路由選擇協(xié)議也稱為最短路徑優(yōu)先協(xié)議或分布式數(shù)據(jù)庫協(xié)議基于Dijkstra的著名算法而設(shè)計(jì)鏈路狀態(tài)協(xié)議的例子:OpenShortestPathFirst(OSPF)forIPTheISO'sIntermediateSystem-to-IntermediateSystem(IS-IS)forCLNSandIPDEC'sDNAPhaseVNovell'sNetWareLinkServicesProtocol(NLSP)基本功能每臺路由器與它的鄰居之間建立聯(lián)系,這種聯(lián)系叫做鄰接關(guān)系每臺路由器向每個鄰居發(fā)送被稱為鏈路狀態(tài)通告(LSA)的數(shù)據(jù)單元每臺路由器在數(shù)據(jù)庫中保存一份它所收到的LSA的備份,如果所有路由器工作正常,它們的數(shù)據(jù)庫應(yīng)該相同整個網(wǎng)絡(luò)拓?fù)鋽?shù)據(jù)庫(也叫鏈路狀態(tài)庫)由Dijkstra算法使用,通過對網(wǎng)絡(luò)圖進(jìn)行計(jì)算得出到每臺路由器的最短路徑鄰居鄰居發(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)兩臺路由器已經(jīng)互相發(fā)現(xiàn)并將對方視為鄰居時,要進(jìn)行數(shù)據(jù)庫同步過程,直到數(shù)據(jù)庫相同為止除建立鄰接關(guān)系之外,Hello數(shù)據(jù)包還作為監(jiān)視鄰接關(guān)系的握手信號。典型的Hello數(shù)據(jù)包交換間隔為10s,典型的死亡周期是數(shù)據(jù)包交換間隔的4倍。

鏈路狀態(tài)泛洪建立鄰接關(guān)系之后,路由器開始發(fā)送LSA鄰居路由器保存接收到的LSA,并依次向自己每個鄰居轉(zhuǎn)發(fā)(除了發(fā)送該LSA的鄰居)泛洪擴(kuò)散過程是鏈路狀態(tài)協(xié)議中最復(fù)雜的一部分兩個過程對泛洪擴(kuò)散極為重要的:排序和老化序號

數(shù)據(jù)包中的TTL值可以終止過期的數(shù)據(jù)包(位于IP首部的一個字段)但是不能有效地控制LSA在網(wǎng)絡(luò)中漫游序號(續(xù))當(dāng)拓?fù)浒l(fā)生變化時,通告該變化的LSA在整個網(wǎng)絡(luò)上擴(kuò)散序號(續(xù))當(dāng)路由器發(fā)送LSA時,每個拷貝中的序號都是一樣的這個序列號和LSA的其他部分一起被保存在路由器的拓?fù)鋽?shù)據(jù)庫中當(dāng)路由器收到數(shù)據(jù)庫中已存在的LSA并且序號相同時,將丟棄這些信息如果信息相同但是序號更大,那么接收的信息和新序號被保存到數(shù)據(jù)庫中,并且泛洪擴(kuò)散該LSA序號(續(xù))設(shè)網(wǎng)絡(luò)172.22.4.0發(fā)生故障之后立即恢復(fù)正常:路由器A可能會發(fā)出序號為166的通告網(wǎng)絡(luò)故障的LSA,接著再發(fā)送序號為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如果使用序號,路由器C的數(shù)據(jù)庫可以顯示來自路由器A的LSA的序列號為167,而后面到達(dá)的LSA序列號為166,因此該LSA被認(rèn)為是過時的信息而被丟棄線性序號空間一種解決辦法是使用一個非常大的線性序號空間,以至于根本不可能到達(dá)其上限例如,如果使用32位序號字段,那么從0開始將有232=4,294,967,296個可用序列號,即使路由器每10s產(chǎn)生一個新的狀態(tài)數(shù)據(jù)包,也需要花1361年才能用盡所有序列號線性序號空間(續(xù))如果一個鏈路狀態(tài)路由選擇進(jìn)程用完了所有序列號,那么在重新使用最低序列號之前必須停止,并等待它所發(fā)出的LSA在所有數(shù)據(jù)庫中都不再被使用

如果一個路由器故障重啟,其鄰居仍然在數(shù)據(jù)庫中保留了該路由器最近的序號,那么越小的序列號也就是越舊的序列號,因而都會被忽略丟棄路由選擇進(jìn)程必須一直等到網(wǎng)絡(luò)上所有陳舊的LSA都消失為止ExplainWhy?一個更好的解決方案如果一臺重新啟動的路由器向鄰居發(fā)送LSA的序號比鄰居保存的序列號還要老,那么鄰居會發(fā)回自己保存的LSA和序號.該路由器從中知道啟動前自己最近曾經(jīng)使用過的序號,并作出相應(yīng)的調(diào)整需要注意的是,最近使用過的序號不能接近上限,否則重新啟動的路由器將不得不再次重新啟動循環(huán)序號空間另一種方法是使用循環(huán)序號對于32位序號,當(dāng)序號到達(dá)232–1(0xFFFFFFFF)時再返回0循環(huán)序號會形成一個奇怪的邏輯:

如果x是一個位于

1(含)與

4,294,967,295(含)的數(shù),那么有:0<x<0循環(huán)序號空間(續(xù))引入兩條規(guī)則來確定一個序號比另一個序號更大或更小給定一個序號空間n

和兩個序號a

與b,在滿足下列兩個條件之一時認(rèn)為a比b更大:

a

>

b,

(a-

b)

<=

n/2

a

<

b,

(b

-

a)

>

n/2

6-Bit循環(huán)序號空間

n

=

26

=

64,so

n/2

=

32.

6-Bit循環(huán)序號空間(續(xù))給定兩個序號48和18,由規(guī)則1得:48比18更新

48

>

18

(48

-

18)

=

30

30

<

32.

給定兩個序號3和48,由規(guī)則2得:3比48更新

3

<

48

(48

-

3)

=

45

45

>

32.

給定兩個序號3和18,由規(guī)則1得:18比3更新

18

>

3

(18

-

3)

=

15

15

<

32.

6-Bit循環(huán)序號空間(續(xù))假設(shè)一臺工作不正常的路由器突然發(fā)送了3個相同的且序列號為44(101100)的LSA。它的一個鄰居也發(fā)生了故障—丟掉了幾位數(shù)據(jù),假設(shè)丟失的數(shù)據(jù)位是第2個LSA和第3個LSA序號中的1位,然后該鄰居路由器向外泛洪擴(kuò)散了這3個LSA,結(jié)果造成了三個相同的LSA的序號各不相同:44(101100)40(101000)8(001000)

應(yīng)用循環(huán)規(guī)則可得:44比40更新,40比8更新,而8又比44更新!

這個結(jié)論將使3個LSA都持續(xù)擴(kuò)散下去,數(shù)據(jù)庫也不斷地被最新的LSA更新,直到數(shù)據(jù)庫緩沖被塞滿,CPU超載為止,最終使得整個網(wǎng)絡(luò)崩潰棒棒糖形的序號空間由RadiaPerlman博士提出棒棒糖地址空間使用了有符號數(shù),范圍是-k<0<k。從-k到-1的負(fù)數(shù)計(jì)數(shù)形成了一根直棒,而從0到k的正數(shù)則形成了環(huán)形空間給定兩個數(shù)a

和b

以及序號空間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棒棒糖形的序號空間(續(xù))注:-N(-231或0x80000000)和N-1(231-1或0x7FFFFFFF)未被使用棒棒糖形的序號空間(續(xù))假設(shè)路由器發(fā)生重啟,重啟前最后一個被發(fā)送的LSA序號是0x00005de3路由器重啟后,當(dāng)它與鄰居同步數(shù)據(jù)庫時,發(fā)送的序號是0x80000001(-N+1)鄰居檢查自己的數(shù)據(jù)庫后發(fā)現(xiàn)該路由器重啟前的LSA序號為0x00005de3,鄰居將把這個保存的LSA發(fā)送給重啟的路由器重啟路由器記錄下這個序號為正數(shù)的ISA棒棒糖形的序號空間(續(xù))原始OSPFv1(RFC1131)使用了棒棒糖形序號空間OSPFv2(由RFC1247定義)采納了線性空間和棒棒糖形空間的最佳特性:開始時像棒棒糖形序號數(shù)一樣使用了從0x80000001開始的有符號數(shù)空間當(dāng)序號變?yōu)檎龜?shù)時,序號空間持續(xù)保持線性增長直至到達(dá)最大數(shù)0x7FFFFFFF為止在到達(dá)最大值時需要重啟,在重啟之前,0SPF進(jìn)程必須從所有鏈路狀態(tài)數(shù)據(jù)庫中刪除LSA老化

老化過程為泛洪擴(kuò)散過程增加了另一層可靠性協(xié)議為網(wǎng)絡(luò)定義了一個最大年齡差距(MaxAgeDiff)值路由器可能接收到一個LSA的多個副本,其中序號相同,但年齡不同:如果年齡差距小于MaxAgeDiff,那么認(rèn)為是由于網(wǎng)絡(luò)的正常時延造成了年齡的差異,因此數(shù)據(jù)庫原有的LSA繼續(xù)保存,新收到的LSA不被擴(kuò)散而丟棄如果年齡差距超過MaxAgeDiff,那么認(rèn)為網(wǎng)絡(luò)發(fā)生了異常,因?yàn)樾掳l(fā)送的LSA的序號沒有增加。此時新的LSA被保存下來,并將被擴(kuò)散出去用于OSPF的典型MaxAgeDiff值為15minMaxAge

和LSRefreshTime保存在數(shù)據(jù)庫中的LSA的年齡會不斷增加。如果鏈路狀態(tài)記錄的年齡增加到最大年齡值(MaxAge),那么一個帶有MaxAge值的LSA將被泛洪擴(kuò)散到所有鄰居,鄰居隨即從數(shù)據(jù)庫中刪除相關(guān)記錄鏈路狀態(tài)刷新定時器(LSRefreshTime)用于定期確認(rèn)LSA并且在LSA到達(dá)最大年齡之前將其年齡定時器復(fù)位。也就是說,一旦刷新定時器超時,路由器將向所有鄰居泛洪擴(kuò)散新的LSA,收到的鄰居把有關(guān)LSA的年齡設(shè)置為新接收到的年齡OSPF定義MaxAge為1小時,LsRefreshTime為30min鏈路狀態(tài)數(shù)據(jù)庫

建立鏈路狀態(tài)數(shù)據(jù)庫是鏈路狀態(tài)路由選擇協(xié)議的另一個主要任務(wù)鏈路狀態(tài)數(shù)據(jù)庫把LSA作為一連串記錄予以保存

對于路由器鏈路信息,使用三元組(路由器ID,鄰居ID,代價)來通告路由器的鄰接鄰居,其中的代價是指連接該鄰居的鏈路的費(fèi)用對于末梢網(wǎng)絡(luò)信息,使用三元組(路由器ID,網(wǎng)絡(luò)ID,代價)來通告路由器直接連接的末梢網(wǎng)絡(luò)(即沒有鄰居的網(wǎng)絡(luò))鏈路狀態(tài)數(shù)據(jù)庫(續(xù))鏈路代價是按照接口的出站方向計(jì)算的;在同一條鏈路上的所有接口的代價沒有必要完全相同拓?fù)浠蜴溌窢顟B(tài)數(shù)據(jù)庫的例子路由器ID鄰居費(fèi)用RARB2RARD4RARE4RBRA2RBRC1RBRE10RCRB5RCRF2RDRA4RDRE3RDRG5RERA5RERB2RERD3RERF2RERG1RERH8RFRC2RFRE2RFRH4RGRD5RGRE1RHRE8RHRF6SPF算法

Dijkstra算法的原始描述(來自其論文)構(gòu)造一棵樹,使每個節(jié)點(diǎn)之間的總長最小前提條件:分枝被分成3個集合:I:被明確分配給構(gòu)造中的樹的分枝II:從中選擇下一個分枝被添加到集合IIII:剩余的分杖(拋棄的或不考慮)節(jié)點(diǎn)被分成2個集合:A.被集合I中的分枝連接的節(jié)點(diǎn)B.剩余的節(jié)點(diǎn)(集合II中有且僅有一個分枝將指向其中的每一個節(jié)點(diǎn))SPF算法(續(xù))

先選擇任意一個節(jié)點(diǎn)作為集合A中僅有的成員,并將所有以該節(jié)點(diǎn)為端點(diǎn)的分枝放入集合II中。開始時集合I是空的,然后重復(fù)執(zhí)行下面兩步:步驟⒈集合II中最短的分枝被移出并加入集合I。結(jié)果是一個節(jié)點(diǎn)從集合B傳送到集合A;步驟⒉考慮從該節(jié)點(diǎn)(剛才被傳送到集合A中的那個節(jié)點(diǎn))通向集合B中節(jié)點(diǎn)的每一個分枝,如果構(gòu)建中的分枝長于集合II中相應(yīng)的分枝,那么這個分枝被丟棄;否則用它替代集合II中相應(yīng)的分枝,并且丟棄后者。接著我們回到第1步并重復(fù)此過程,直到集合II和集合B為空。集合I中的分枝形成所要求的樹。SPF算法(續(xù))

路由器采用的Dijkstra算法:步驟I:路由器初始化樹數(shù)據(jù)庫,將自己作為樹的根。這表明路由器作為它自己的鄰居,代價為0步驟2:在鏈路狀態(tài)數(shù)據(jù)庫中,所有描述通向根路由器鄰居鏈路的三元組被添加到候選對象數(shù)據(jù)庫中步驟3:計(jì)算從根到每條鏈路的代價,候選對象數(shù)據(jù)庫中代價最小的鏈路被移到樹數(shù)據(jù)庫中。如果兩個或以上的鏈路離根的最短代價相同,選擇其中一條步驟4:檢查添加到樹數(shù)據(jù)庫中的鄰居ID。除了鄰居ID已在樹數(shù)據(jù)庫中的三元組之外,鏈路狀態(tài)數(shù)據(jù)庫中描述路由器鄰居的三元組被添加到候選對象數(shù)據(jù)庫中步驟5:如果候選對象數(shù)據(jù)庫中還有剩余的表項(xiàng),則回到第3步;如果候選數(shù)據(jù)庫為空,那么終止算法。在算法終止時,在樹數(shù)據(jù)庫中,每個單一的鄰居ID表項(xiàng)將表示1臺路由器,到此最短路徑樹構(gòu)造完畢。運(yùn)行SPF算法候選庫到達(dá)根的費(fèi)用樹庫說明

RA,RA,0路由器A把自己加入樹庫,作為根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)用最低的鏈路,因此將其加入樹庫。

將RB的所有未在樹庫的鄰居加入候選列表。從(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)用最低的鏈路,因此將其加入樹庫。將RC的所有未在樹庫的鄰居加入候選列表。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)被加入樹庫,并將RD的所有未在樹庫的鄰居加入候選列表。從根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)被加入樹庫,而RE的未在樹庫的鄰居被加入候選列表。到達(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)*被加入樹庫,而RF的未在樹庫的鄰居被加入候選列表。到達(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)被加入樹庫,而RG沒有未在樹庫的鄰居,因此沒有新的鏈路被加入候選列表中。(RE,RF,2)被丟棄,因?yàn)閺母鵕A到達(dá)RF的路徑RA-RE-RF的費(fèi)用為6,而在樹庫中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)用最低的鏈路,因此將其加入樹庫。此時候選列表已經(jīng)為空,因此算法結(jié)束,最短路徑樹完成。區(qū)域一個區(qū)域是構(gòu)成一個網(wǎng)絡(luò)的路由器的一個子集。將網(wǎng)絡(luò)劃分為區(qū)域是針對鏈路狀態(tài)協(xié)議的3個不利影響所采取的措施:必要的數(shù)據(jù)庫要求內(nèi)存的數(shù)量比距離矢量協(xié)議更多復(fù)雜的算法要求CPU時間比距離矢量協(xié)議更多

鏈路狀態(tài)泛洪擴(kuò)散數(shù)據(jù)包對可用帶寬帶來了不利的影響,特別是不穩(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é)議是一個鏈路狀態(tài)協(xié)議,使用Dijkstra的最短路徑優(yōu)先(SPF)算法,而且是開放的OSPFv1(RFC1131)只在實(shí)驗(yàn)平臺使用;OSPFv2是目前IPv4協(xié)議仍然使用的版本,最初在RFC1247中說明的,最新是在RFC2328中說明OSPFv2協(xié)議的主要特點(diǎn)使用了區(qū)域的概念,這樣可以有效地減少路由選擇協(xié)議對路由器的CPU和內(nèi)存的占用。劃分區(qū)域還可以降低路由選擇協(xié)議的通信量,這使構(gòu)建一個層次化的網(wǎng)絡(luò)拓?fù)涑蔀榭赡芡耆珶o類別地處理地址,排除了不連續(xù)子網(wǎng)這樣的有類別路由選擇協(xié)議的問題支持無類別路由表查詢、VLSM和用來進(jìn)行有效地址管理的超網(wǎng)技術(shù)支持無大小限制的、任意的度量值支持使用多條路徑的效率更高的等價負(fù)載均衡使用保留的組播地址來減小對運(yùn)行0SPF的設(shè)備的影響支持更安全的路由選擇認(rèn)證使用可以跟蹤外部路由的路由標(biāo)記OSPFv2操作1.0SPF路由器從所有啟動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.每個路由器都會在所有形成鄰接關(guān)系的鄰居之間發(fā)送鏈路狀態(tài)通告LSA。LSA描述了路由器所有的鏈路、接口、鄰居以及鏈路狀態(tài)信息OSPF定義了許多LSA類型4.每個收到來自鄰居的LSA的路由器把這些LSA記錄在自己的鏈路狀態(tài)數(shù)據(jù)庫中,并將其擴(kuò)散到自己的其他所有鄰居5.通過LSA泛洪擴(kuò)散到整個區(qū)域,所有的路由器將形成相同的鏈路狀態(tài)數(shù)據(jù)庫6.當(dāng)所有路由器的數(shù)據(jù)庫完全相同時,每個路由器都以自身為根,使用SPF算法來計(jì)算一個無環(huán)路的算法樹7.每個路由器利用SPF算法樹構(gòu)建自己的路由表路由器ID(RouterID)路由器ID用于在0SPF區(qū)域內(nèi)惟一標(biāo)識一臺路由器。一臺0SPF路由器對其他0SPF路由器的跟蹤也是利用路由器CISCO路由器使用下面的方法確定路由器ID:如果使用router-id命令手工配置RouterID,就使用該RouterID如果沒有手工配置RouterID,路由器就選取它所有的回送(loopback)接口上數(shù)值最高的IP地址作為RID如果路由器沒有配置IP地址的loopback接口,那么路由器將選取它所有的物理接口上數(shù)值最高的IP地址作為RIDHello協(xié)議Hello協(xié)議可用于下列幾個目的:用于發(fā)現(xiàn)鄰居路由器在兩臺路由器成為鄰居之前,通告相互認(rèn)可的幾個參數(shù)鄰居路由器之間擔(dān)當(dāng)Keep-alive的角色確保鄰居路由器之間的雙向通信用于在一個廣播網(wǎng)絡(luò)或非廣播多路訪問(NBMA)網(wǎng)絡(luò)上選取指定路由器(DesignatedRouter,DR)和后備指定路由器(BackupDesignatedRouter,BDR)HelloIntervel和RouterDeadIntervel0SPF路由器周期性地從啟動0SPF協(xié)議的每個接口上發(fā)送Hello數(shù)據(jù)包。該周期性的時間段稱為Hello時間間隔(HelloIntervel),每個接口都有對應(yīng)的Hello間隔時間在CISCO路由器上,對于廣播型網(wǎng)絡(luò),缺省Hello時間間隔是10s;對于非廣播型網(wǎng)絡(luò),缺省值是30s??梢酝ㄟ^命令:ip

ospfhello-interval來更改如果一臺路由器在一個稱為路由器無效時間間隔(RouterDeadIntervel)的時間段內(nèi)還沒有收到來自鄰居的Hello數(shù)據(jù)包,那么將宣告它的鄰居路由器無效在CISCO路由器中,路由器無效時間間隔的缺省值是Hello時間間隔的4倍,可以通過命令ip

ospfdead-interval修改Hello包的內(nèi)容每個Hello數(shù)據(jù)包都包含以下信息:始發(fā)路由器的路由器始發(fā)路由器接口的區(qū)域ID始發(fā)路由器接口的地址掩碼始發(fā)路由器接口的認(rèn)證類型和認(rèn)證信息始發(fā)路由器接口的Hello時間間隔始發(fā)路由器接口的路由器無效時間間隔路由器的優(yōu)先級指定路由器(DR)和備份指定路由器(BDR)標(biāo)識可選性能的5個標(biāo)記位始發(fā)路由器的所有有效鄰居的路由器ID,這個列表僅包含一些所謂有效的鄰居路由器,即在最近的路由器無效時間間隔內(nèi),始發(fā)路由器接口可以從其接收到Hello數(shù)據(jù)包鄰接關(guān)系建立的必要條件當(dāng)一臺路由器從它的鄰居路由器收到一個Hello數(shù)據(jù)包時,將檢驗(yàn)該Hello數(shù)據(jù)包攜帶的下列信息:區(qū)域ID認(rèn)證信息網(wǎng)絡(luò)掩碼Hello間隔時間路由器無效時間間隔其它可選項(xiàng)如果這些數(shù)值都與接收接口上配置的對應(yīng)值相匹配,那么就可以建立鄰接關(guān)系;如果不匹配,那么該數(shù)據(jù)包將被丟棄,且鄰接關(guān)系也無法建立雙向通信關(guān)系如果Hello包的所有參數(shù)都匹配,那么這個包就是有效的。如果始發(fā)路由器的路由器ID已在接收該包的接口的鄰居表中列出,那么路由器無效時間間隔定時器將被復(fù)位如果始發(fā)路由器的路由器ID沒有在鄰居表中列出,那么就把這個路由器ID加入到它的鄰居表中路由器發(fā)送一個Hello包時,都會在這個包中列出傳送該數(shù)據(jù)包的鏈路上出現(xiàn)并記錄的鄰居的路由器ID。如果一臺路由器收到了一個有效的Hello包,并在這個包中發(fā)現(xiàn)了自己的路由器ID,那么它就認(rèn)為是雙向通信已經(jīng)建立成功鄰接關(guān)系的形成條件一旦雙向通信成功建立,鄰接關(guān)系也就可能建立了,但并不是所有的鄰居路由器都會成為鄰接對象鄰接關(guān)系的形成與否是依賴于這兩臺互為鄰居的路由器所連網(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ú)一對路由器的。在點(diǎn)到點(diǎn)網(wǎng)絡(luò)上的有效鄰居總是可以形成鄰接關(guān)系。在這些網(wǎng)絡(luò)上的0SPF數(shù)據(jù)包的目的地址也總是保留的D類地址224.0.0.5,這個組播地址稱為AllSPFRouters。網(wǎng)絡(luò)類型(續(xù))廣播型網(wǎng)絡(luò):像以太網(wǎng)、令牌環(huán)網(wǎng)和FDDI等,都屬于廣播型多址網(wǎng)絡(luò),這種多址網(wǎng)絡(luò)可以連接多于兩臺的設(shè)備,而且連接在這種網(wǎng)絡(luò)上的所有設(shè)備都可以接收到某個傳送的數(shù)據(jù)包。廣播型網(wǎng)絡(luò)上的0SPF路由器會選舉一臺指定路由器和一臺后備指定路由器。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,這個組播地址稱為AllDRouters,對應(yīng)的MAC組播地址是0100.5E00.0006網(wǎng)絡(luò)類型(續(xù))非廣播多路訪問(NBMA)網(wǎng)絡(luò):像X.25、幀中繼和ATM等,可以連接兩臺以上的路由器,但它們沒有廣播數(shù)據(jù)包的能力。一臺位于在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ò)的一個特殊配置,可以被看作是一群點(diǎn)到點(diǎn)鏈路的集合。在這些網(wǎng)絡(luò)上的0SPF路由器不需要選舉DR和BDR,0SPF數(shù)據(jù)包以單播方式發(fā)送給每一個已知的鄰居網(wǎng)絡(luò)類型(續(xù))虛鏈路:可以被路由器認(rèn)為是沒有編號的點(diǎn)到點(diǎn)網(wǎng)絡(luò)的一種特殊配置。在虛鏈路上0SPF數(shù)據(jù)包是以單播方式發(fā)送的另一種網(wǎng)絡(luò)類型分類所有的網(wǎng)絡(luò)也都可以分為下面兩種更普通的網(wǎng)絡(luò)類型之一:傳送網(wǎng)絡(luò)(TransitNetwork):與兩臺或兩臺以上的路由器相連的網(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):僅與一臺路由器相連的網(wǎng)絡(luò)。末梢網(wǎng)絡(luò)上的數(shù)據(jù)包總是有一個源地址或者目的地址屬于這個末梢網(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òu)建相關(guān)路由器之間的鄰接關(guān)系時,會創(chuàng)建很多不必要的LSA多址網(wǎng)絡(luò)本身的泛洪擴(kuò)散顯得比較混亂。某一臺路由器向與它存在鄰接關(guān)系的所有鄰居發(fā)出LSA,同樣地,這些鄰接的鄰居路由器又向與它有鄰接關(guān)系的鄰居的鄰居發(fā)出這個LSA,這樣將會在同一個網(wǎng)絡(luò)上創(chuàng)建很多個相同LSA的副本利用DR與BDR解決問題指定路由器(DR)的作用DR將完成以下工作:描述多路訪問網(wǎng)絡(luò)和0SPF區(qū)域內(nèi)其余與其相連的路由器管理多路訪問網(wǎng)絡(luò)上的泛洪擴(kuò)散過程偽節(jié)點(diǎn)(或虛擬路由器)當(dāng)計(jì)算SPF樹的時候,把廣播鏈路看作一個偽節(jié)點(diǎn)(或者叫“虛擬路由器”),與該鏈路相連的路由器都連接到這個節(jié)點(diǎn)上從與偽節(jié)點(diǎn)相連的路由器到這個偽節(jié)點(diǎn)的代價就是該路由器與這個廣播鏈路相連的接口的出站代價;從偽節(jié)點(diǎn)到任何與之相連的路由器的代價都為0偽節(jié)點(diǎn)的理解設(shè)置BDR的目的指定路由器具有非常重要的作用,如果一臺指定路由器失效了,就必須選取一臺新的指定路由器。同時,網(wǎng)絡(luò)上的所有路由器也要重新建立新的鄰接關(guān)系,并且網(wǎng)絡(luò)上所有的路由器必須與新選出的指定路由器同步它們的鏈路狀態(tài)數(shù)據(jù)庫,但當(dāng)所有上述的過程發(fā)生時,網(wǎng)絡(luò)將無法有效地傳送數(shù)據(jù)包--太長的延遲時間!為了避免這個問題,在網(wǎng)絡(luò)上除了選取DR,再選取一臺BDR。網(wǎng)絡(luò)上所有的路由器將同時與DR和BDR形成鄰接關(guān)系。DR和BDR之間也將互相形成鄰接關(guān)系。此時,如果DR失效了,BDR將成為新的DR。由于網(wǎng)絡(luò)上其余的路由器已經(jīng)與BDR形成了鄰接關(guān)系,因此網(wǎng)絡(luò)可以將無法傳送數(shù)據(jù)包的影響降低到最小的程度DR/BDR選取的前提條件能夠?qū)嵤┻x取過程一些前提條件:每臺路由器的每個多點(diǎn)訪問接口都有一個路由器的優(yōu)先級,用一個8位的無符號整數(shù)來表示,范圍是0~255(Cisco路由器上缺省的優(yōu)先級是1,可以通過命令ip

ospfpriority來修改)。具有0優(yōu)先級的路由器將不能成為DR或者BDRHello數(shù)據(jù)包包含了表示始發(fā)路由器指定的路由器優(yōu)先級字段,也包含了表示路由器認(rèn)為可能是DR和BDR的相關(guān)接口的IP地址的字段當(dāng)一個接口在一個多址網(wǎng)絡(luò)上剛開始有效時,將把它的DR和BDR的地址都設(shè)置為0.0.0.0,同時將等待定時器(waittimer)的值設(shè)置為路由器無效時間間隔(RouterDeadInterval)在多址網(wǎng)絡(luò)上已經(jīng)存在的接口將把DR和BDR的地址記錄在接口數(shù)據(jù)結(jié)構(gòu)表中DR和BDR的選取過程(1)在路由器和它的鄰居路由器之間首先建立雙向通信,接著檢查每臺鄰居路由器發(fā)送的Hello包的優(yōu)先級、DR和BDR字段。列出所有具有DR和BDR選取資格的路由器的列表,接著所有的路由器將宣稱自己是DR路由器,所有的路由器也將宣稱自己是BDR路由器(2)從具有選取資格的路由器列表中,創(chuàng)建一個還沒有宣告為DR路由器的所有路由器的子集(宣告自己為DR的路由器不能被選為BDR)(3)如果這個子集中的一臺或者多臺鄰居路由器在Hello包的BDR字段包含了它們自己的接口地址,那么具有最高優(yōu)先級的鄰居路由器將被宣告為BDR路由器。在優(yōu)先級相同時具有最高路由器ID的鄰居路由器將被選作BDR(4)如果子集中沒有路由器宣稱自己是BDR,那么具有最高優(yōu)先級的鄰居路由器將被宣告為BDR路由器。在優(yōu)先級相同時具有最高路由器ID的鄰居路由器將被選作BDR(5)如果一臺或多臺具有選取資格的路由器在Hello包的DR字段包含它們自己的接口地址,那么具有最高優(yōu)先級的鄰居路由器將被宣告為DR路由器。在優(yōu)先級相同時具有最高路由器ID的鄰居路由器將被選作DR(6)如果沒有路由器宣稱自己是DR,那么新選取的BDR將成為DR(7)如果正在執(zhí)行計(jì)算的路由器是新選取的DR或BDR,或者它不再是DR或BDR了,那么將重復(fù)以上的2~6步驟DR/BDR與優(yōu)先級的關(guān)系在一個多址網(wǎng)絡(luò)上,最先初始化啟動的兩臺具有DR選取資格的路由器將成為DR和BDR路由器路由器的優(yōu)先級可以影響一個選取過程對于已經(jīng)選出DR/BDR的網(wǎng)絡(luò),不能強(qiáng)制更換已經(jīng)有效的DR或BDR路由器例如已經(jīng)選取了DR和BDR路由器后,如果一臺具有更高優(yōu)先級的路由器變?yōu)橛行?,那么這臺新的路由器將不會替換DR或BDR路由器的任何一臺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路由器去偵聽這個地址DR路由器使用組播地址224.0.0.5泛洪擴(kuò)散更新數(shù)據(jù)包到DRothersOSPF接口及其數(shù)據(jù)結(jié)構(gòu)DR和BDR的選取是通過接口狀態(tài)機(jī)的方式觸發(fā)的描述OSPF協(xié)議時可以不區(qū)分接口和鏈路這兩個術(shù)語運(yùn)行OSPF協(xié)議的路由器將為每個啟動OSPF協(xié)議的接口維護(hù)一個數(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ū)分同一臺路由器中運(yùn)行多個0SPF進(jìn)程Router1D(路由器ID):路由器IDNetworkType(網(wǎng)絡(luò)類型):與這個接口相連的網(wǎng)絡(luò)類型:廣播型、點(diǎn)到點(diǎn)類型、NBMA、點(diǎn)到多點(diǎn)類型或虛鏈路等Cost(代價):表示從該接口發(fā)送出去的數(shù)據(jù)包的出站接口代價接口數(shù)據(jù)結(jié)構(gòu)的其它參數(shù)InfTransDelay:指LSA從路由器的接口發(fā)送后經(jīng)歷的時間,單位為秒,CISCO路由器上缺省值為1sState(狀態(tài)):接口的功能狀態(tài)RouterPriority(路由器優(yōu)先級):用來選擇DR和BDR的—個8位無符號整數(shù)DesignatedRouter(指定路由器)BackupDesignatedRouter(備份指定路由器)HelloIntervalRouterDeadIntervalWaitTimer(等待計(jì)時器):在開始選取DR和BDR之前,路由器等待鄰居路由器的Hello包通告DR和BDR的時間RxmtInterval:是指在沒有得到確認(rèn)的情況下,路由器重傳報文需要等待的時間,單位為秒HelloTimer(Hello定時器:初始值由HelloInterval值來設(shè)置NeighboringRouters(鄰居路由器):是指與這個接口相連的網(wǎng)絡(luò)上的有效鄰居路由器

AuType:使用的認(rèn)證類型AuthenticationKey(認(rèn)證密鑰):如果接口上啟用的是簡單認(rèn)證方式,那么認(rèn)證密鑰就是—個64位的口令;如果啟用的是加密認(rèn)證方式,那么認(rèn)證密鑰就是一個消息摘要密鑰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:等待定時器超時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)系,最終可以順利地傳送路由選擇信息要成功建立一個鄰接關(guān)系,通常需要下面4個階段:鄰居路由器發(fā)現(xiàn)階段雙向通信階段數(shù)據(jù)庫同步階段完全鄰接階段鄰居數(shù)據(jù)結(jié)構(gòu)每個路由器將維護(hù)一個鄰居數(shù)據(jù)結(jié)構(gòu)表,用來表示從其他路由器學(xué)習(xí)到的Hello包的信息使用命令showip

ospfneighbor可以觀察路由器一個鄰居的鄰居數(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)先級)State(狀態(tài)):指的是從本地路由器角度看到的鄰居路由器的功能狀態(tài)DesignatedRouter(指定路由器):這個地址包含在鄰居路由器發(fā)送的Hello包的DR字段中BackupDesignatedRouter(后備指定路由器):這個地址包含在鄰居路由器發(fā)送的Hello包的BDR字段中PollInterval:只用于NBMA網(wǎng)絡(luò)上相關(guān)的鄰居路由器NeighborOptions(鄰居路由器可選項(xiàng)):鄰居路由器支持的可選項(xiàng)InactivityTimer(失效計(jì)時器):這是一個時長為RouterDeadInterval(該參數(shù)在接口數(shù)據(jù)結(jié)構(gòu)中定義)的定時器鄰居數(shù)據(jù)結(jié)構(gòu)的信息(續(xù))Master/Slave:在ExStart狀態(tài)下,鄰居之間協(xié)商的主/從關(guān)系將用來控制數(shù)據(jù)庫的同步DDSequenceNumber(數(shù)據(jù)庫描述序列號):指當(dāng)前正在向鄰居路由器發(fā)送的數(shù)據(jù)庫描述的序號LastReceivedDatabaseDescriptionPacket(最后收到的數(shù)據(jù)庫描述數(shù)據(jù)包)LinkStateRetransmissionList(鏈路狀態(tài)重傳列表):這是在鄰接關(guān)系建立后,OSPF已經(jīng)進(jìn)行泛洪擴(kuò)散,但還沒有得到確認(rèn)的LSA的列表DatabaseSummaryList(數(shù)據(jù)庫摘要列表):是指在數(shù)據(jù)庫同步期間,數(shù)據(jù)庫描述報文中向鄰居路由器發(fā)送的LSA列表LinkStateRequestList(鏈路狀態(tài)請求列表):該列表記錄了來自鄰居路由器的數(shù)據(jù)庫描述報文的LSA,當(dāng)路由器通過鏈路狀態(tài)更新數(shù)據(jù)包收到請求的LSA時,請求列表就會減小,直至變?yōu)榭樟斜磬従訝顟B(tài)機(jī)失效狀態(tài)(Down):鄰居會話的初始狀態(tài)嘗試狀態(tài)(Attempt):僅適用于NBMA網(wǎng)絡(luò)上的鄰居,路由器將使用HelloInterval時間代替PollInterval時間來作為向鄰居發(fā)送Hello包的時間間隔初始狀態(tài)(Init):表示在最近的RouterDeadInterval時間內(nèi)路由器收到了來自鄰居路由器的Hello包,但是雙向通信仍然沒有建立雙向通信狀態(tài)(2-Way):本地路由器已經(jīng)在來自鄰居路由器的Hello包的鄰居字段中看到了它自己的路由器ID信息交換初始狀態(tài)(ExStart):本地路由器和它的鄰居將建立起主/從關(guān)系,并確定數(shù)據(jù)庫描述報文的序號,以便為數(shù)據(jù)庫描述報文的信息交換做準(zhǔn)備。其中具有最高路由器ID的鄰居路由器將成為“主”路由器信息交換狀態(tài)(Exchange):本地路由器將向它的鄰居路由器發(fā)送可以描述它整個鏈路狀態(tài)數(shù)據(jù)庫信息的數(shù)據(jù)庫描述數(shù)據(jù)包;也可以發(fā)送鏈路狀態(tài)請求報文給它的鄰居路由器,用來請求最新的LSA信息加載狀態(tài)(Loading):本地路由器將會向它的鄰居路由器發(fā)送鏈路狀態(tài)請求數(shù)據(jù)包,用來請求最新的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)建立一個鄰接關(guān)系在一個鄰接關(guān)系的創(chuàng)建過程中,OSPF協(xié)議使用了以下3種報文類型:數(shù)據(jù)庫描述報文(類型2)鏈路狀態(tài)請求報文(類型3)鏈路狀態(tài)更新報文(類型4)數(shù)據(jù)庫描述報文中有3個標(biāo)記位用來管理鄰接關(guān)系的建立過程:I位(初始位):指明所發(fā)送的是第一個數(shù)據(jù)庫描述報文M位(后繼位,More):表示后面還有DD報文MS位(主/從位,Master/Slave):當(dāng)DD報文始發(fā)于一個“主”路由器時,該位置1LSA確認(rèn)方法顯式確認(rèn):確認(rèn)收到包含這個LSA頭部的鏈路狀態(tài)確認(rèn)數(shù)據(jù)包隱式確認(rèn):確認(rèn)收到包含這個LSA的相同實(shí)例(沒有其它更加新的LSA)的更新數(shù)據(jù)包數(shù)據(jù)庫同步過程當(dāng)數(shù)據(jù)庫同步過程完成后,可能出現(xiàn)下面兩種狀態(tài)之一:如果鏈路狀態(tài)請求列表中仍然還有一些LSA條目,那么路由器將把鄰居的狀態(tài)轉(zhuǎn)換到加載(Loading)狀態(tài)如果鏈路狀態(tài)請求列表為空,那么路由器將會把鄰居的狀態(tài)轉(zhuǎn)換到完全鄰接(Full)狀態(tài)一個鄰接關(guān)系的創(chuàng)建過程實(shí)例建立鄰接關(guān)系實(shí)例的一點(diǎn)說明如果路由器的鏈路狀態(tài)請求列表中還有LSA條目,它并不需要等待Loading狀態(tài)才發(fā)送鏈路狀態(tài)請求報文在鄰居狀態(tài)還處于Exchange狀態(tài)時路由器就可以發(fā)送鏈路狀態(tài)請求報文了,這樣更加高效泛洪擴(kuò)散(Flooding)泛洪擴(kuò)散過程將會使用下面兩種0SPF報文:鏈路狀態(tài)更新報文(類型4)鏈路狀態(tài)確認(rèn)報文(類型5)OSPF采用可靠的泛洪擴(kuò)散,每個單獨(dú)傳送的LSA都必須被確認(rèn)確認(rèn)可以是時延的(delayed)或直接(direct)的,直接的確認(rèn)總是立即發(fā)送,且以單播方式發(fā)送序列號、校驗(yàn)和、老化時間當(dāng)收到某條相同的LSA的多個實(shí)例時,路由器將通過下面的算法來確定哪個是最新的實(shí)例:1.比較LSA實(shí)例的序號,擁有最大的序號的LSA就是最新的LSA2.如果LSA實(shí)例的序號相同,那么比較它們的校驗(yàn)和。擁有最大的無符號校驗(yàn)和的LSA就是最新的LSA3.如果LSA實(shí)例的校驗(yàn)和也相同,那么再比較它們的老化時間。如果只有一條LSA擁有最大生存時間的老化時間(MaxAge),那么就認(rèn)為這條LSA是最新的LSA4.如果這些LSA的老化時間之間的差別多于15min(即MaxAgeDiff),那么擁有較小的老化時間的LSA就是最新的LSA5.如果上述的條件都無法區(qū)分最新的LSA,那么這兩個LSA就被認(rèn)為是相同的通信量的類型定義了下面3種與區(qū)域相關(guān)的通信量的類型:域內(nèi)通信量域間通信量外部通信量區(qū)域0(或者區(qū)域0.0.0.0)是為骨干域保留的區(qū)域ID號。其任務(wù)是匯總每一個區(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域的路由器。一臺ASBR路由器可以是位于0SPF域的自主系統(tǒng)內(nèi)部的任何路由器,可以是一臺內(nèi)部路由器、骨干路由器或者ABR路由器分段區(qū)域(partitionedarea)是指由于鏈路失效而使一個區(qū)域的一個部分與其他部分隔離開來的情形如果一個非骨干的區(qū)域變成分段區(qū)域,并且在這個分段區(qū)域的任何一段區(qū)域里的所有路由器當(dāng)中都還能發(fā)現(xiàn)一臺ABR路由器,那么這個分段區(qū)域?qū)⒉粫a(chǎn)生中斷通信服務(wù)的情況,骨干區(qū)域僅僅會把這個分段區(qū)域看成兩個單獨(dú)的區(qū)域分段區(qū)域不是孤立區(qū)域(isolatedarea),孤立區(qū)域沒有鏈路與主網(wǎng)絡(luò)相連虛鏈路虛鏈路是指一條通過一個非骨干區(qū)域連接到骨干區(qū)域的鏈路虛鏈路主要應(yīng)用于以下幾種目的:(1)通過一個非骨干區(qū)域連接一個區(qū)域到骨干區(qū)域(2)通過一個非骨干區(qū)域連接一個分段的骨干區(qū)域兩邊的部分區(qū)域配置虛鏈路的幾條規(guī)則:虛鏈路必須配置在兩臺ABR路由器之間配置了虛鏈路所經(jīng)過的區(qū)域必須擁有全部的路由選擇信息,這樣的區(qū)域又被稱為傳送區(qū)域傳送區(qū)域不能是一個末梢區(qū)域LSA的類型路由器LSA:每—臺路由器都會產(chǎn)生路由器LSA通告,列出了路由器所有的鏈路或接口,并指明了它們的狀態(tài)和沿每條鏈路方向出站的代價,以及該鏈路上所有已知的0SPF鄰居網(wǎng)絡(luò)LSA:每一個多路訪問網(wǎng)絡(luò)中的指定路由器(DR)將會產(chǎn)生網(wǎng)絡(luò)LSA通告,列出所有與之相連的路由器,包括DR路由器本身網(wǎng)絡(luò)匯總LSA:由ABR路由器始發(fā)的,發(fā)送到一個區(qū)域,用來通告該區(qū)域外部的目的地址ASBR匯總LSA:由ABR路由器始發(fā)的,通告的目的地是一臺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:用于對0SPF增加可變的擴(kuò)展特性末梢(Stub)區(qū)域完全末梢區(qū)域:通過阻塞類型3(僅一個例外,即用來通告缺省路由的LSA)、類型4~5傳播到一個區(qū)域的方法來節(jié)省內(nèi)存,使用缺省路由到達(dá)0SPFAS外部的所有目的地址非純末梢區(qū)域(NSSA):允許外部路由通告到0SPFAS內(nèi)部,同時保留AS其余部分的末梢區(qū)域特征路由表的目的地類型網(wǎng)絡(luò)路由器路徑類型區(qū)域內(nèi)路徑區(qū)域間路徑類型1的外部路徑(Type1externalpath):指目的地在0SPFAS外部的路徑類型2的外部路徑(Type2externalpath):也是指目的地在0SPFAS外部的路徑,但是在計(jì)算外部路由的度量時不再計(jì)入本地到達(dá)ASBR路由器的路徑代價認(rèn)證OSPF協(xié)議對鄰居路由器之間交換的所有數(shù)據(jù)包都具有認(rèn)證的能力認(rèn)證可以是簡單的口令認(rèn)證或MD5加密校驗(yàn)和認(rèn)證OSPF報文格式OSPF報文格式數(shù)據(jù)包頭部有24字節(jié)版本(Version):版本號,0SPFv2的值是2類型(Type):有5種報文類型報文長度(PacketLength):包括數(shù)據(jù)包頭部的長度路由器ID(RouterID):始發(fā)路由器的ID區(qū)域ID(AreaID):始發(fā)報文的路由器所在的區(qū)域校驗(yàn)和(Checksum):對整個報文(包括包頭)的標(biāo)準(zhǔn)IP校驗(yàn)和認(rèn)證類型(AuType):使用的認(rèn)證模式認(rèn)證(Authentication):報文認(rèn)證的必要信息。如果AuType=0,將不檢查這個認(rèn)證字段;如果AuType=1,該字段將包含一個最長為64位的口令;如果AuTyp=2,該字段將包含一個KeyID、認(rèn)證數(shù)據(jù)長度和一個不減小的加密序號。這個消息摘要附加在0SPF數(shù)據(jù)包的尾部,不作為0SPF報文本身的一部分。加密序號不會減小,用來防止重放攻擊OSPF的5種報文類型Hello報文數(shù)據(jù)庫描述(DD)報文鏈路狀態(tài)請求(LSREQ)報文鏈路狀態(tài)更新(LSUPD)報文鏈路狀態(tài)確認(rèn)(LAACK)報文Hello報文DatabaseDescription報文LinkStateRequest報文LinkStateUpdate報文LinkStateAcknowledgement報文LSA格式介紹CISCO支持的類型:類型1~5和類型7的LSALSA頭部格式:LSA頭部DD報文和LSACK報文直接使用了LSA的頭部本身其中有3個字段可以惟一地識別每個LSA:類型:LSA的類型值鏈路狀態(tài)ID:指定LSA所描述的部分0SPF域,這個字段的用法與LSA的類型有關(guān)通告路由器:始發(fā)LSA的路由器的RID還有其他3個字段可以惟一地識別一個LSA的最新實(shí)例:序列號校驗(yàn)和老化時間RouterLSA鏈路狀態(tài)ID:指始發(fā)路由器的路由器IDV(VirtualLinkEndpoint)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論