開放最短路徑優(yōu)先(Open Shortest Path First)是目前非?;钴S的一種鏈路狀態(tài)內(nèi)部網(wǎng)關(guān)協(xié)議(IGP),當(dāng)人們發(fā)現(xiàn)RIP(路由信息協(xié)議)無法適用于更大型網(wǎng)絡(luò),而且收斂速度太慢時(shí),就開始采用OSPF協(xié)議。本文將概括介紹OSPF協(xié)議,而下一篇網(wǎng)絡(luò)基礎(chǔ)知識(shí)講座將更深入研究該協(xié)議本身,以及OSPF區(qū)域的設(shè)置方法。 OSPF是目前應(yīng)用最廣泛的內(nèi)部網(wǎng)關(guān)協(xié)議(IGP)。當(dāng)討論IGP時(shí),我們談到的是一個(gè)路由域或自治系統(tǒng)(AS)。設(shè)想一個(gè)擁有多棟辦公樓和多個(gè)部門的中型企業(yè),所有的設(shè)備都通過網(wǎng)絡(luò)連接并共享兩個(gè)冗余的Internet連結(jié),而這些辦公樓群里的所有在線設(shè)備都屬于同一個(gè)AS。但是如果采用OSPF協(xié)議,我們同樣得理解區(qū)域的概念,它允許將自治域進(jìn)一步的分割,例如按每棟樓內(nèi)的各個(gè)部門進(jìn)一步細(xì)分。 為了解OSPF的設(shè)計(jì)需求,我們來討論一下OSPF的工作原理。下面先解釋一些相關(guān)術(shù)語: * 路由器ID:OSPF協(xié)議中每臺(tái)路由器都被賦予一個(gè)唯一的32位無符號(hào)整數(shù),這就是路由器ID,它是路由器上的最高IP地址,可以通過為所選路由器的loopback(環(huán)回)接口設(shè)置一個(gè)更高的地址來加大這個(gè)值。 * 相鄰路由器:兩臺(tái)通過一條普通鏈路相連的可以對(duì)話的路由器。 * 相鄰關(guān)系:兩臺(tái)相鄰路由器的雙向關(guān)系。是鄰居不一定就有相鄰關(guān)系。 * LSA:鏈路狀態(tài)廣播數(shù)據(jù)包(LSA)被傳送給相鄰路由器;它描述了指定鏈路內(nèi)的路由信息。 * Hello協(xié)議:網(wǎng)絡(luò)上的路由器通過該協(xié)議確定其相鄰路由器并生成LSA。 * 區(qū)域:一種分級(jí)制度。每個(gè)區(qū)域內(nèi)有一組路由器,它們與其它路由器交換LSA。每個(gè)區(qū)域都限制自己區(qū)域的LSA,并鼓勵(lì)匯總路由。 我們已經(jīng)說過,OSPF是一種鏈路狀態(tài)路由協(xié)議,你可以把它想象成網(wǎng)絡(luò)的分布式地圖。為了取得這些分布式信息,OSPF要做三件事。 首先,當(dāng)一臺(tái)運(yùn)行OSPF協(xié)議的路由器加入網(wǎng)絡(luò)時(shí),它會(huì)發(fā)送Hello數(shù)據(jù)包,以便找到它的相鄰路由器,并選擇一臺(tái)指定路由器(DR)。Hello數(shù)據(jù)包中包含鏈路狀態(tài)信息,以及相鄰路由器列表。向相鄰路由器發(fā)送Hello數(shù)據(jù)包其作用就是做出ACK(命令正確應(yīng)答),同時(shí)證明路由器之間的通信是雙向的。OSPF對(duì)于第2層拓?fù)渑袛嘌杆?如果是點(diǎn)對(duì)點(diǎn)鏈路,它知道了解的情況已經(jīng)足夠,并且認(rèn)為該鏈路“準(zhǔn)備就緒”;而如果是在廣播鏈路上,路由器就必須等候選擇,然后確定鏈路是否可行。 在選舉DR的過程中,如果有Priority ID,你可以選擇出最強(qiáng)壯的路由器作為DR,否則就是擁有最高IP地址的路由器獲勝。DR和備份DR(BDR)角色的關(guān)鍵之處在于它們是生成LSA的路由器,它們必須與其子網(wǎng)內(nèi)的其它路由器進(jìn)行數(shù)據(jù)庫交換,所以,非指定路由器都與DR建立相鄰關(guān)系。DR/DBR的作用就是保證協(xié)議運(yùn)作的可擴(kuò)展性。確保所有路由器都有相同信息的唯一辦法是讓它們的數(shù)據(jù)庫同步。例如你現(xiàn)在已有21臺(tái)路由器,并且想加入1臺(tái),如果沒有DR和BDR,你就必須建立21個(gè)新的相鄰關(guān)系。并與每臺(tái)路由器進(jìn)行同步,而如果你把數(shù)據(jù)庫統(tǒng)一放在DR上(萬一需要可以建立備份),那么增加更多的路由器是輕而易舉的事,各路由器只需要和DR同步就可以了。 交換Hello數(shù)據(jù)包之后進(jìn)行數(shù)據(jù)庫
我們將在下一篇網(wǎng)絡(luò)基礎(chǔ)知識(shí)中介紹LSA的詳細(xì)情況,以及更深入討論區(qū)域概念。現(xiàn)在你只需知道區(qū)域零是一獨(dú)特區(qū)域,并且如果是多區(qū)域OSPF,則每個(gè)區(qū)域都必須與區(qū)域零相連。區(qū)域零也稱主干區(qū)域(BA)。OSPF網(wǎng)絡(luò)有多個(gè)不同區(qū)域,如果為了讓兩個(gè)區(qū)域能夠不經(jīng)由區(qū)域零進(jìn)行對(duì)話而添加虛擬鏈路(VL),網(wǎng)絡(luò)可能會(huì)變得非?;靵y。不僅如此,OSPF中的路由器也有幾種不同類型。 ABR 區(qū)域邊界路由器。位于區(qū)域零和其它區(qū)域中。 DR,BDR 指定路由器。保存子網(wǎng)數(shù)據(jù)庫,并向同一網(wǎng)絡(luò)中的其它路由器發(fā)送和接收更新數(shù)據(jù)(通過多點(diǎn)傳送)。 ASBR 自治系統(tǒng)邊界路由器。很獨(dú)特也令人困惑的一種路由器。ASBR連接一個(gè)或多個(gè)AS,并在AS之間交換路由信息。ASBR的作用是把來自另一個(gè)AS的路由重新分配到自己的AS中。 重新分配的概念終于出現(xiàn)了:假如我們有一臺(tái)路由器(內(nèi)部路由器,而不是主干路由器BR),并且想把它連接到我們并不控制的新網(wǎng)絡(luò)上。連接之后,我們有幾種選擇:一是采用非IGP(內(nèi)部網(wǎng)關(guān)協(xié)議)路由協(xié)議,如BGP(邊界網(wǎng)關(guān)協(xié)議)來交換路由信息。二是認(rèn)為匯總路由就已不錯(cuò),并在這臺(tái)路由器中加入到達(dá)新網(wǎng)絡(luò)的靜態(tài)路由中。任何使用這條路由到達(dá)此路由器的數(shù)據(jù)包都會(huì)被發(fā)向新網(wǎng)絡(luò),但是OSPF并不知道它的存在。為此,我們雖然把這些路由信息“重新分配”給OSPF。我們并不想把200K以上的BGP路由信導(dǎo)入OSPF,但是如果選擇靜態(tài)路由,就需要將新加入的靜態(tài)路由信息發(fā)布到整個(gè)內(nèi)網(wǎng),以便我們自治系統(tǒng)里的每一臺(tái)路由器都能了解到新網(wǎng)絡(luò)的路由。一旦告知內(nèi)部路由器要它向OSPF重新發(fā)布靜態(tài)路由信息,它就成為一臺(tái)ASBR,并且整個(gè)網(wǎng)絡(luò)都可以連接到新網(wǎng)絡(luò)上。 下一篇網(wǎng)絡(luò)基礎(chǔ)知識(shí)中我們將討論區(qū)域和LSA,從而鞏固你對(duì)整個(gè)OSPF概念的理解,并且了解什么才是高質(zhì)量的OSPF設(shè)計(jì)。 小結(jié) OSPF是一種可以快速收斂的鏈路狀態(tài)內(nèi)部網(wǎng)關(guān)協(xié)議(IGP),使用者達(dá)數(shù)百萬。 OSPF使相鄰路由器建立相鄰關(guān)系,并且通過DR和BDR傳送LSA來分享信息。 OSPF中的區(qū)域用于限制LSA并總結(jié)路由信息,每臺(tái)路由器均與區(qū)域零(主干區(qū)域)相連。交換是建立相鄰關(guān)系的步驟之一,而這一步非常重要。如果數(shù)據(jù)庫不同步,就會(huì)導(dǎo)致路由環(huán)路、黑洞和其它危險(xiǎn)。建立相鄰關(guān)系的第三步是Reliable Flooding(即可靠的LSA傳送、數(shù)據(jù)庫更新直至網(wǎng)絡(luò)穩(wěn)定的過程),或稱LSA交換。 |
|