陳俊 張燕君
摘 要:本文根據(jù)RFC2328 draft簡(jiǎn)單介紹動(dòng)態(tài)路由協(xié)議OSPFv2的技術(shù)特點(diǎn),重點(diǎn)分析OSPF 鏈路狀態(tài)數(shù)據(jù)庫(kù)以及route-id沖突引起的嚴(yán)重后果,特別指出網(wǎng)絡(luò)規(guī)劃中OSPF router-id正確分配的重要性。
關(guān)鍵詞:動(dòng)態(tài)路由協(xié)議;鏈路狀態(tài)路由協(xié)議;OSPF;router-id沖突;自治系統(tǒng);CE;RFC2328
1 OSPFv2協(xié)議研究
1.1 OSPF協(xié)議概述
IETF為了滿(mǎn)足建造越來(lái)越大基于IP網(wǎng)絡(luò)的需要,形成了一個(gè)工作組,專(zhuān)門(mén)用于開(kāi)發(fā)開(kāi)放式的、鏈路狀態(tài)路由協(xié)議,以便用在大型、異構(gòu)的IP網(wǎng)絡(luò)中。新的路由協(xié)議已經(jīng)取得一些成功的一系列私人的、和生產(chǎn)商相關(guān)的、最短路徑優(yōu)先(SPF)路由協(xié)議為基礎(chǔ),在市場(chǎng)上廣泛使用。包括OSPF在內(nèi),所有的SPF路由協(xié)議基于一個(gè)數(shù)學(xué)算法Dijkstra算法。這個(gè)算法能使路由選擇基于鏈路狀態(tài),而不是距離向量。
OSPF由IETF在20世紀(jì)80年代末期開(kāi)發(fā),OSPF是SPF類(lèi)路由協(xié)議中的開(kāi)放式版本。最初的OSPF規(guī)范體現(xiàn)在RFC1131中,第1版(OSPF版本1)很快被進(jìn)行重大改進(jìn)的版本所代替,新版本體現(xiàn)在RFC1247文檔中,RFC1247OSPF稱(chēng)為OSPF版本2是為了明確指出其在穩(wěn)定性和功能性方面的實(shí)質(zhì)性改進(jìn)。OSPF版本2中有許多更新文檔,每一個(gè)更新都是對(duì)開(kāi)放標(biāo)準(zhǔn)的精心改進(jìn),后續(xù)的規(guī)范出現(xiàn)在RFC 1583、2178和2328中。
鏈路是路由器接口的另一種說(shuō)法,因此OSPF也稱(chēng)為接口狀態(tài)路由協(xié)議。OSPF通過(guò)路由器之間通告網(wǎng)絡(luò)接口的狀態(tài)來(lái)建立鏈路狀態(tài)數(shù)據(jù)庫(kù),生成最短路徑樹(shù),每個(gè)OSPF路由器使用這些最短路徑構(gòu)造路由表。
OSPF路由協(xié)議是一種典型的鏈路狀態(tài)(Link-state)的路由協(xié)議,一般用于同一個(gè)路由域內(nèi)。在這里,路由域是指一個(gè)自治系統(tǒng)(Autonomous System),即AS,它是指一組通過(guò)統(tǒng)一的路由政策或路由協(xié)議互相交換路由信息的網(wǎng)絡(luò)。在這個(gè)AS中,所有的OSPF路由器都維護(hù)一個(gè)相同的描述這個(gè)AS結(jié)構(gòu)的數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)中存放的是路由域中相應(yīng)鏈路的狀態(tài)信息,OSPF路由器正是通過(guò)這個(gè)數(shù)據(jù)庫(kù)計(jì)算出其OSPF路由表的。作為一種鏈路狀態(tài)的路由協(xié)議,OSPF將鏈路狀態(tài)廣播數(shù)據(jù)LSA(Link State Advertisement)傳送給在某一區(qū)域內(nèi)的所有路由器,這一點(diǎn)與距離矢量路由協(xié)議不同,運(yùn)行距離矢量路由協(xié)議的路由器是將部分或全部的路由表傳遞給與其相鄰的路由器。
1.2 OSPFv2協(xié)議研究
RFC2328中明確OSPF僅通過(guò)在IP包頭中的目標(biāo)地址來(lái)轉(zhuǎn)發(fā)IP包,IP包在A(yíng)S中被轉(zhuǎn)發(fā),而沒(méi)有被其他協(xié)議再次封裝。OSPF是一種動(dòng)態(tài)路由協(xié)議,它可以快速地探知AS中拓?fù)涞母淖儯ɡ缏酚善鹘涌诘氖В?,并在一段時(shí)間的收斂后計(jì)算出無(wú)環(huán)路的新路徑,收斂的時(shí)間很短且只使用很小的路由流量。
在連接狀態(tài)路由協(xié)議中,每臺(tái)路由器都維持著一個(gè)數(shù)據(jù)庫(kù)以描述AS的拓?fù)浣Y(jié)構(gòu),這個(gè)數(shù)據(jù)庫(kù)被稱(chēng)為連接狀態(tài)數(shù)據(jù)庫(kù),所有參與的路由器都有著同樣的數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)中的各項(xiàng)說(shuō)明特定路由器自身的狀態(tài)(如該路由器的可用接口和可以到達(dá)的鄰居)。該路由器通過(guò)洪泛將其自身的狀態(tài)傳送到整個(gè)AS中。所有的路由器同步地運(yùn)行完全相同的算法。根據(jù)連接狀態(tài)數(shù)據(jù)庫(kù),每臺(tái)路由器構(gòu)建出一棵以其自身為樹(shù)根的最短路徑樹(shù),最短路徑樹(shù)給出了到達(dá)AS中各個(gè)目標(biāo)的路徑,路由信息的起源在樹(shù)中表現(xiàn)為樹(shù)葉。當(dāng)有多條等值的路徑到達(dá)同一目標(biāo)時(shí),數(shù)據(jù)流量將在這些路徑上平均分?jǐn)?,路徑的距離值表現(xiàn)為一個(gè)無(wú)量綱數(shù)。
OSPF允許將一些網(wǎng)絡(luò)組合到一起。這樣的組被稱(chēng)為區(qū)域area。區(qū)域?qū)S中的其他部分隱藏其內(nèi)部的拓?fù)浣Y(jié)構(gòu),信息的隱藏極大地減少了路由流量;同時(shí),區(qū)域內(nèi)的路由僅由區(qū)域自身的拓?fù)鋪?lái)決定,這可使區(qū)域抵御錯(cuò)誤的路由信息,區(qū)域通常是一個(gè)子網(wǎng)化的IP網(wǎng)絡(luò)。OSPF允許靈活的配置IP子網(wǎng),由OSPF發(fā)布的每條路徑都包含目標(biāo)和掩碼,同一個(gè)IP網(wǎng)絡(luò)的兩個(gè)子網(wǎng)可以有不同的大?。床煌难诖a),這常被稱(chēng)為變長(zhǎng)子網(wǎng)variable length subnetting,數(shù)據(jù)包按照最佳匹配(最長(zhǎng)匹配)來(lái)轉(zhuǎn)發(fā),主機(jī)路徑被看作掩碼為“全1”(0xffffffff)的子網(wǎng)來(lái)處理。
OSPF協(xié)議中所有的信息交換都經(jīng)過(guò)驗(yàn)證。這意味著,在A(yíng)S中只有被信任的路由器才能參與路由,有多種驗(yàn)證方法可以被選擇;事實(shí)上,可以為每個(gè)IP子網(wǎng)選用不同的驗(yàn)證方法。來(lái)源于外部的路由信息(如路由器從諸如BGP的外部網(wǎng)關(guān)協(xié)議中得到的路徑)向整個(gè)AS內(nèi)部宣告,外部數(shù)據(jù)與OSPF協(xié)議的連接狀態(tài)數(shù)據(jù)相對(duì)獨(dú)立,每條外部路徑可以由所宣告的路由器作出標(biāo)記,在自制系統(tǒng)邊界路由器(ASBR)之間傳遞額外的信息。
2 OSPF域router-id沖突研究
兩臺(tái)路由器R1與R2之間建立域內(nèi)OSPF,當(dāng)R1和R2出現(xiàn)router-id 10.1.1.1重復(fù)時(shí),通過(guò)查看OSPF數(shù)據(jù)庫(kù)可以得到以下信息,詳情請(qǐng)查閱下圖3、圖4。
我們從以上數(shù)據(jù)分析得出,每種LSA的age數(shù)值都非常的小,每種LSA的seq數(shù)值都非常的大,這也說(shuō)明當(dāng)出現(xiàn)router-id重復(fù),那么LSDB中的LSA表現(xiàn)得非常不穩(wěn)定,最終將導(dǎo)致SPF算法不停的工作、路由表不穩(wěn)定、路由條目丟失。通過(guò)查看路由器日志告警文件可以見(jiàn)一旦出現(xiàn)router-id重復(fù),那么日志信息表現(xiàn)為下圖5的形式,其中adv-rtr為重復(fù)的router-id。
綜上所述,從router-id沖突分析后得出以下結(jié)論:
(1)整個(gè)ospf域內(nèi)會(huì)泛洪錯(cuò)誤LSA,database不斷更新(seq很大,age很?。?,網(wǎng)絡(luò)極其不穩(wěn)定;
(2)由于整個(gè)ospf域database不斷更新,導(dǎo)致整個(gè)ospf域中routing-table抖動(dòng)(route flapping),丟失路由條目。
3 結(jié)束語(yǔ)
移動(dòng)通信網(wǎng)絡(luò)IP承載網(wǎng)工程建設(shè)中涉及IP地址分配,工程建設(shè)過(guò)程中使用分配的IP地址開(kāi)啟建立動(dòng)態(tài)路由協(xié)議OSPF的router-id,需重視并嚴(yán)格按照設(shè)計(jì)規(guī)范及要求,加強(qiáng)IP地址的分配及使用,杜絕分配IP地址沖突導(dǎo)致OSPF域router-id的重復(fù)使用,避免因router-id沖突影響OSPF協(xié)議的正常工作,避免因router-id沖突導(dǎo)致的網(wǎng)絡(luò)事故影響用戶(hù)業(yè)務(wù)的發(fā)生。
[參考文獻(xiàn)]
[1]Development.Routing.TCP.IP.Volume.I.by Jeff Doyle.
[2]RFC draft 2328 by Network Working Group J.Moy.