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