地址:東莞市長安鎮(zhèn)上沙振華園工業(yè)區(qū)
電話:13356471172
傳真:0769-82926493
QQ:494265162
郵箱:sw@sw2011.com
OSFP外殼全稱為Open Shortest Path First,也就開放的最短路徑優(yōu)先協(xié)議,因為OSPF是由IETF開發(fā)的,它的使用不受任何廠商限制,所有人都可以使用,所以稱為開放的,而最短路徑優(yōu)先(SPF)只是OSPF的核心思想,其使用的算法是Dijkstra算法,最短路徑優(yōu)先并沒有太多特殊的含義,并沒有任何一個路由協(xié)議是最長路徑優(yōu)先的,所有協(xié)議,都會選最短的。
必須給每一個OSPF路由器定義一個身份,就相當(dāng)于人的名字,這就是Router-ID,并且Router-ID在網(wǎng)絡(luò)中******不可以有重名,否則路由器收到的鏈路狀態(tài),就無法確定發(fā)起者的身份,也就無法通過鏈路狀態(tài)信息確定網(wǎng)絡(luò)位置,OSPF路由器發(fā)出的鏈路狀態(tài)都會寫上自己的Router-ID,可以理解為該鏈路狀態(tài)的簽名,不同路由器產(chǎn)生的鏈路狀態(tài),簽名絕不會相同。
每一臺OSPF路由器只有一個Router-ID,Router-ID使用IP地址的形式來表示,確定Router-ID的方法為:
1 .手工指定Router-ID。
2 .路由器上活動Loopback接口中IP地址******的,也就是數(shù)字******的,如C類地址優(yōu)先于B類地址,一個非活動的接口的IP地址是不能被選為Router-ID的。
3 .如果沒有活動的Loopback接口,則選擇活動物理接口IP地址******的。
如果一臺路由器收到一條鏈路狀態(tài),無法到達該Router-ID的位置,就無法到達鏈路狀態(tài)中的目標(biāo)網(wǎng)絡(luò)。
Router-ID只在OSPF啟動時計算,或者重置OSPF進程后計算。
OSPF使用接口的帶寬來計算Metric,例如一個10 Mbit/s的接口,計算Coast的方法為:
將10 Mbit換算成bit,為10 000 000 bit,然后用10000 0000除以該帶寬,結(jié)果為 10000 0000/10 000 000 bit = 10,所以一個10 Mbit/s的接口,OSPF認為該接口的Metric值為10,需要注意的是,計算中,帶寬的單位取bit/s,而不是Kbit/s,例如一個100 Mbit/s的接口,Cost 值為 10000 0000 /100 000 000=1,因為Cost值必須為整數(shù),所以即使是一個1000 Mbit/s(1GBbit/s)的接口,Cost值和100Mbit/s一樣,為1。如果路由器要經(jīng)過兩個接口才能到達目標(biāo)網(wǎng)絡(luò),那么很顯然,兩個接口的Cost值要累加起來,才算是到達目標(biāo)網(wǎng)絡(luò)的Metric值,所以O(shè)SPF路由器計算到達目標(biāo)網(wǎng)絡(luò)的Metric值,必須將沿途中所有接口的Cost值累加起來,在累加時,同EIGRP一樣,只計算出接口,不計算進接口。
就是路由器上的接口,在這里,應(yīng)該指運行在OSPF進程下的接口。
鏈路狀態(tài)(LSA)就是OSPF接口上的描述信息,例如接口上的IP地址,子網(wǎng)掩碼,網(wǎng)絡(luò)類型,Cost值等等,OSPF路由器之間交換的并不是路由表,而是鏈路狀態(tài)(LSA),OSPF通過獲得網(wǎng)絡(luò)中所有的鏈路狀態(tài)信息,從而計算出到達每個目標(biāo)精確的網(wǎng)絡(luò)路徑。OSPF路由器會將自己所有的鏈路狀態(tài)毫不保留地全部發(fā)給鄰居,鄰居將收到的鏈路狀態(tài)全部放入鏈路狀態(tài)數(shù)據(jù)庫(Link-State Database),鄰居再發(fā)給自己的所有鄰居,并且在傳遞過程種,******不會有任何更改。通過這樣的過程,最終,網(wǎng)絡(luò)中所有的OSPF路 由器都擁有網(wǎng)絡(luò)中所有的鏈路狀態(tài),并且所有路由器的鏈路狀態(tài)應(yīng)該能描繪出相同的網(wǎng)絡(luò)拓樸。
因為OSPF路由器之間會將所有的鏈路狀態(tài)(LSA)相互交換,毫不保留,當(dāng)網(wǎng)絡(luò)規(guī)模達到一定程度時,LSA將形成一個龐大的數(shù)據(jù)庫,勢必會給OSPF計算帶來巨大的壓力;為了能夠降低OSPF計算的復(fù)雜程度,緩存計算壓力,OSPF采用分區(qū)域計算,將網(wǎng)絡(luò)中所有OSPF路由器劃分成不同的區(qū)域,每個區(qū)域負責(zé)各自區(qū)域精確的LSA傳遞與路由計算,然后再將一個區(qū)域的LSA簡化和匯總之后轉(zhuǎn)發(fā)到另外一個區(qū)域,這樣一來,在區(qū)域內(nèi)部,擁有網(wǎng)絡(luò)精確的LSA,而在不同區(qū)域,則傳遞簡化的LSA。區(qū)域的劃分為了能夠盡量設(shè)計成無環(huán)網(wǎng)絡(luò),所以采用了Hub-Spoke的拓樸架構(gòu),也就是采用核心與分支的拓樸
區(qū)域的命名可以采用整數(shù)數(shù)字,如1、2、3、4,也可以采用IP地址的形式,0.0.0.1、0.0.0.2,因為采用了Hub-Spoke的架構(gòu),所以必須定義出一個核心,然后其它部分都與核心相連,OSPF的區(qū)域0就是所有區(qū)域的核心,稱為BackBone 區(qū)域(骨干區(qū)域),而其它區(qū)域稱為Normal 區(qū)域(常規(guī)區(qū)域),在理論上,所有的常規(guī)區(qū)域應(yīng)該直接和骨干區(qū)域相連,常規(guī)區(qū)域只能和骨干區(qū)域交換LSA,常規(guī)區(qū)域與常規(guī)區(qū)域之間即使直連也無法互換LSA,如上圖中Area 1、Area 2、Area 3、Area 4只能和Area 0互換LSA,然后再由Area 0轉(zhuǎn)發(fā),Area 0就像是一個中轉(zhuǎn)站,兩個常規(guī)區(qū)域需要交換LSA,只能先交給Area 0,再由Area 0轉(zhuǎn)發(fā),而常規(guī)區(qū)域之間無法互相轉(zhuǎn)發(fā)。
OSPF區(qū)域是基于路由器的接口劃分的,而不是基于整臺路由器劃分的,一臺路由器可以屬于單個區(qū)域,也可以屬于多個區(qū)域.
如果一臺OSPF路由器屬于單個區(qū)域,即該路由器所有接口都屬于同一個區(qū)域,那么這臺路由器稱為Internal Router(IR),如上圖中的R2,R3和R4;如果一臺OSPF路由器屬于多個區(qū)域,即該路由器的接口不都屬于一個區(qū)域,那么這臺路由器稱為Area Border Router (ABR),如上圖中的R1,ABR可以將一個區(qū)域的LSA匯總后轉(zhuǎn)發(fā)至另一個區(qū)域;如果一臺OSPF路由器將外部路由協(xié)議重分布進OSPF,那么這臺路由器稱為Autonomous System Boundary Router (ASBR),如上圖中,R5將EIGRP重分進OSPF,那么R5就是ASBR,但是如果只是將OSPF重分布進其它路由協(xié)議,則不能稱為ASBR。
可以配置任何OSPF路由器成為ABR或ASBR。
由于OSPF有著多種區(qū)域,所以O(shè)SPF的路由在路由表中也以多種形式存在,共分以下幾種:
當(dāng)存在多種路由可以到達同一目的地時,OSPF將根據(jù)先后順序來選擇要使用的路由,所有路由的先后順序為:
Intra-Area — Inter-Area — External E1 — External E2,即 O — O IA — O E1 — O E2。
一臺路由器可以運行多個OSPF進程,不同進程的OSPF,可視為沒有任何關(guān)系,如需要獲得相互的路由信息,需要重分布。
每個OSPF進程可以有多個區(qū)域,而路由器的鏈路狀態(tài)數(shù)據(jù)庫是分進程和分區(qū)域存放的。
OSPF只有鄰居之間才會交換LSA,路由器會將鏈路狀態(tài)數(shù)據(jù)庫中所有的內(nèi)容毫不保留地發(fā)給所有鄰居,要想在OSPF路由器之間交換LSA,必須先形成OSPF鄰居,OSPF鄰居靠發(fā)送Hello包來建立和維護,Hello包會在啟動了OSPF的接口上周期性發(fā)送,在不同的網(wǎng)絡(luò)中,發(fā)送Hello包的間隔也會不同,當(dāng)超過4倍的Hello時間,也就是Dead時間過后還沒有收到鄰居的Hello包,鄰居關(guān)系將被斷開。
兩臺OSPF路由器必須滿足4個條件,才能形成OSPF鄰居,4個必備條件如下:
1.Area-id(區(qū)域號碼)
即路由器之間必須配置在相同的OSPF區(qū)域,否則無法形成鄰居。
2.Hello and Dead Interval(Hello時間與Dead時間)
即路由器之間的Hello時間和Dead時間必須一致,否則無法形成鄰居。
3.Authentication(認證)
路由器之間必須配置相同的認證密碼,如果密碼不同,則無法形成鄰居。
4.Stub Area Flag(末節(jié)標(biāo)簽)
路由器之間的末節(jié)標(biāo)簽必須一致,即處在相同的末節(jié)區(qū)域內(nèi),否則無法形成鄰居。
OSPF只能使用接口的Primary地址建立鄰居,不能使用Secondary建立鄰居。
路由器雙方接口要么都為手工配置地址(Numbered),要么都為借用地址(Unnumbered),否則無法建立鄰居。
兩臺OSPF路由器能夠形成鄰居,但并不一定能相互交換LSA,只要能交換LSA,關(guān)系則稱為鄰接(Adjacency)。鄰居之間只交換Hello包,而鄰接(Adjacency)之間不僅交換Hello包,還要交換LSA。
當(dāng)多臺OSPF路由器連到同一個多路訪問網(wǎng)段時,如果每兩臺路由器之間都相互交換LSA,那么該網(wǎng)段將充滿著眾多LSA條目,為了能夠盡量減少LSA的傳播數(shù)量,通過在多路訪問網(wǎng)段中選擇出一個核心路由器,稱為DR(Designated Router),網(wǎng)段中所有的OSPF路由器都和DR互換LSA,這樣一來,DR就會擁有所有的LSA,并且將所有的LSA轉(zhuǎn)發(fā)給每一臺路由器;DR就像是該網(wǎng)段的LSA中轉(zhuǎn)站,所有的路由器都與該中轉(zhuǎn)站互換LSA,如果DR失效后,那么就會造成LSA的丟失與不完整,所以在多路訪問網(wǎng)絡(luò)中除了選舉出DR之外,還會選舉出一臺路由器作為DR的備份,稱為BDR(Backup Designated Router),BDR在DR不可用時,代替DR的工作,而既不是DR,也不是BDR的路由器稱為Drother,事實上,Dother除了和DR互換LSA之外,同時還會和BDR互換LSA
上圖中R1被選為DR,R2被選為BDR,而R3和R4為Drother,R3同時和R1與R2互換LSA,R4也同時和R1與R2互換LSA,但R3與R4卻不能互換LSA。
其實不難看出,DR與BDR并沒有任何本質(zhì)與功能的區(qū)別,只有在多路訪問的網(wǎng)絡(luò)環(huán)境,才需要DR和BDR,DR與BDR的選舉是在一個二層網(wǎng)段內(nèi)選舉的,即在多個路由器互連的接口范圍內(nèi),與OSPF區(qū)域沒有任何關(guān)系,一個區(qū)域可能有多個多路訪問網(wǎng)段,那么就會存在多個DR和BDR,但一個多路訪問網(wǎng)段,只能有一個DR和BDR;選舉DR和BDR的規(guī)則為:
比較接口優(yōu)先級
選舉優(yōu)先級******的成為DR,優(yōu)先級數(shù)字越大,表示優(yōu)先級越高,被選為DR的幾率就越大,次優(yōu)先級的為BDR,優(yōu)先級范圍是0-255,默認為1,優(yōu)先級為0表示沒有資格選舉DR和BDR。
Route-Id大小
如果在優(yōu)先級都相同的情況下,Route-Id ******的成為DR,其次是BDR,數(shù)字越大,被選為DR的幾率就越大。
因為所有路由器都能與DR和BDR互換LSA,所以所有路由器都與DR和BDR是鄰接(Adjacency)關(guān)系,而Drother與Drother之間無法互換LSA,所以Drother與Drother之間只是鄰居關(guān)系。
在一個多路訪問網(wǎng)絡(luò)中,選舉DR和BDR是有時間限制的,該時間為Wait時間,默認為4倍的Hello時間,即與Dead時間相同,如果OSPF路由器在超過Wait時間后也沒有其它路由器與自己競爭DR與BDR的選舉,那么就選自己為DR;當(dāng)一個多路訪問網(wǎng)絡(luò)中選舉出DR與BDR之后,在DR與BDR沒有失效的情況下,不會進行重新選舉,也就是在選舉出DR與BDR之后,即使有更高優(yōu)先級的路由器加入網(wǎng)絡(luò),也不會影響DR與BDR的角色,在越出選舉時間(Wait時間)后,只有DR與BDR失效后,才會重新選舉。DR失效后,會同時重新選舉DR與BDR,而在BDR失效后,只會重新選舉BDR。
DR和BDR與Drother的數(shù)據(jù)包處理會有所不同
所有OSPF路由器,包括DR與BDR,都能夠接收和傳遞目標(biāo)地址為224.0.0.5的數(shù)據(jù)包。
只有DR和BDR才能接收和傳遞目標(biāo)地址為224.0.0.6的數(shù)據(jù)包。
由此可見,Drother路由器將數(shù)據(jù)包發(fā)向目標(biāo)地址224.0.0.6,只能被DR和BDR接收,其它Drother不能接收;而DR和BDR將數(shù)據(jù)包發(fā)向目標(biāo)地址224.0.0.5,可以被所有路由器接收。
從OSPF建立鄰居,到LSA的互換,到路由表的計算,需要經(jīng)過一系列的數(shù)據(jù)包交換過程,過程如下:
**
Hello
↓
Database Description Packets (DBD)
↓
Link-state Request (LSR)
↓
Link-state update(LSU)
↓
LSDB
**
具體情況如下:
Hello包是用來建立和維護OSPF鄰居的,要交換LSA,必須先通過Hello包建立OSPF鄰居。
鄰居建立之后,并不會立刻就將自己鏈路狀態(tài)數(shù)據(jù)庫中所有的LSA全部發(fā)給鄰居,而是將LSA的基本描述信息發(fā)給鄰居,這就是Database Description Packets (DBD),是LSA的目錄信息,相當(dāng)于書的目錄,鄰居在看完DBD之后,就能知道哪些LSA是需要鄰居發(fā)送給自己的。
鄰居在看完發(fā)來的LSA描述信息(DBD)之后,就知道哪些LSA是需要鄰居發(fā)送給自己的,自己就會向鄰居發(fā)送LSA請求(LSR),告訴鄰居自己需要哪些LSA。
當(dāng)鄰居收到其它路由器發(fā)來的LSA請求(LSR)之后,就知道對方需要哪些LSA,然后根據(jù)LSR,將完整的LSA內(nèi)容全部發(fā)給鄰居,以供計算路由表。
就是已經(jīng)收到了所有需要鄰居發(fā)給自己的LSA,這時的鏈路狀態(tài)數(shù)據(jù)庫已經(jīng)達到收斂狀態(tài)。
路由器從啟動OSPF進程,到根據(jù)鏈路狀態(tài)數(shù)據(jù)庫計算出路由表,同樣需要經(jīng)歷一系列的啟動過程,總共有8種可能的啟動過程,但并不是一定會經(jīng)歷這8個過程,具體過程如下:
Down → Attempt → Init → Two-way → Exstart → Exchange → Loading → Full
每個過程詳細情況如下:
路由器剛剛啟動OSPF進程,還沒有從任何路由器收到任何數(shù)據(jù)包,Hello包也沒有收到,在此進程,可以向外發(fā)送Hello包,以試圖發(fā)現(xiàn)鄰居。
因為OSPF使用組播發(fā)送數(shù)據(jù)包,如使用組播發(fā)送Hello包,如果Hello包不能發(fā)出去被其它路由器收到,就不能和其它路由器建立OSPF鄰居;在一些組播不能發(fā)送的網(wǎng)絡(luò)中,例如幀中繼這樣的非廣播網(wǎng)絡(luò)環(huán)境,組播不能夠傳遞,在這種情況下,就需要指定OSPF使用單播向鄰居發(fā)送Hello包,以此試圖和指定的鄰居建立OSPF鄰居關(guān)系,在此狀態(tài)下,OSPF稱為Attempt狀態(tài)。
只是OSPF路由器一方收到了另一方的Hello,但并沒有雙方都交換Hello,也就是對方的Hello中還沒有將自己列為鄰居。
雙方都已經(jīng)交換了Hello信息,并且從Hello中看到對方已經(jīng)將自己列為鄰居,此狀態(tài),就表示OSPF鄰居關(guān)系已經(jīng)建立,并且如果是需要選舉DR和BDR的話,也已經(jīng)選舉出來,但OSPF鄰居之間并不一定就會交換LSA,如果不需要交換LSA,則永遠停留在此狀態(tài),如果需要形成鄰接并互相交換LSA,則狀態(tài)繼續(xù)往下進行。(比如Drother與Drother之間將永遠停留在Two-way狀態(tài),因為Drother與Drother之間不需要交換LSA。)
因為在OSPF鄰居之間交換完整的LSA之前,會先發(fā)送Database Description Packets (DBD),Link-state Request (LSR)等數(shù)據(jù)包,鄰居之間是誰先發(fā),誰后發(fā),需要確定順序,在Exstart狀態(tài),就是確定鄰居之間的主從關(guān)系(Master—Slave關(guān)系),Router-ID數(shù)字大的為主路由器,另一端為從路由器,由主路由器先向從路由器發(fā)送信息。在選舉DR與BDR的網(wǎng)絡(luò)環(huán)境中,并不一定DR就是主路由器,BDR就是從路由器,因為DR和BDR可以通過調(diào)整接口優(yōu)先級來控制,所以DR也許是因為優(yōu)先級比BDR高,而Router-ID并不比BDR高。
在任何網(wǎng)絡(luò)環(huán)境下,OSPF在交換LSA之前,都需要確定主從關(guān)系。
就是交換Database Description Packets (DBD)的過程,DBD只是LSA的簡單描述,只包含LSA的一些頭部信息,收到DBD的路由器會和自己的鏈路狀態(tài)數(shù)據(jù)庫作對比,確定需要哪些LSA的完整信息,就會發(fā)送LSR請求給鄰居。
鄰居根據(jù)收到的LSR(Link-State Request),向?qū)Ψ交貜?fù)Link-state update(LSU)。
等到OSPF都收到了鄰居回復(fù)的所有Link-state update(LSU),那么此時的數(shù)據(jù)庫狀態(tài)就變成了收斂狀態(tài),此狀態(tài)就是Full狀態(tài),但此時只是數(shù)據(jù)庫已經(jīng)同步,但路由表卻還在計算當(dāng)中。
除了Two-way和Full這兩個狀態(tài),鄰居停留在任何狀態(tài),都是不正常。
OSPF是一個在各方面都考慮比較周全的路由協(xié)議,也會因此將該協(xié)議變得更為復(fù)雜化,OSPF并不像RIP與EIGRP那樣,RIP與EIGRP在運行時,并不考慮OSI模型在二層所定義的內(nèi)容,即并不關(guān)心二層的鏈路介質(zhì)類型,而OSPF在運行時,必須考慮鏈路層的類型,稱為OSPF網(wǎng)絡(luò)類型(Network Type),對于不同二層介質(zhì)類型,OSPF將有不同的操作和運行過程,網(wǎng)絡(luò)類型,可分為如下幾種:
對于不同的網(wǎng)絡(luò)類型,將會影響到OSPF的Hello時間與Dead時間,關(guān)系到DR與BDR的選舉與否,影響到OSPF鄰居是自動建立還是手工建立,總結(jié)如下:
網(wǎng)絡(luò)類型 | Hello時間 | 選舉DR/BDR | 鄰居建立方式 |
---|---|---|---|
點到點(p2p) | 10s | 否 | 自動 |
點到多點(p2mp) | 30s | 否 | 自動 |
廣播(Boradcast) | 10s | 是 | 自動 |
非廣播(Non-B) | 30s | 是 | 手工 |
點到多點非廣播(p2mp-Non-B) | 30s | 否 | 手工 |
OSPF網(wǎng)絡(luò)類型(Network Type)是根據(jù)二層鏈路層的介質(zhì)決定的,但也可以手工定義網(wǎng)絡(luò)類型,因此可以在各類型之間手工切換。
OSPF鄰居的成功建立,并不要求雙方網(wǎng)絡(luò)類型一致,但雙方網(wǎng)絡(luò)類型不一致,將可能導(dǎo)致鏈路狀態(tài)數(shù)據(jù)庫中的條目無法進入路由表。
OSPF確實因為考慮問題的全面,而導(dǎo)致路由協(xié)議的復(fù)雜,OSPF不僅因為不同的二層鏈路層介質(zhì)定義了不同的OSPF網(wǎng)絡(luò)類型(Network Type),還因為鏈路上的鄰居,而定義了OSPF鏈路類型(Link Type) 。
OSPF網(wǎng)絡(luò)類型(Network Type)是完全根據(jù)二層鏈路層的介質(zhì)決定的,而OSPF鏈路類型(Link Type)不僅受二層鏈路層介質(zhì)的影響,還受到鏈路中OSPF鄰居的影響,同時還影響到LSA,因此變得復(fù)雜。
OSPF鏈路類型(Link Type)不會影響人們操作OSPF,所以可以選擇不深入理解OSPF鏈路類型(Link Type),但OSPF網(wǎng)絡(luò)類型(Network Type)卻影響到OSPF的操作,OSPF網(wǎng)絡(luò)類型(Network Type)必須理解和牢記。
OSPF鏈路類型(Link Type)與OSPF網(wǎng)絡(luò)類型(Network Type)沒有對應(yīng)關(guān)系,沒有因果關(guān)系.
OSPF鏈路類型(Link Type)分為以下幾種:
在一個網(wǎng)段中只有一臺OSPF路由器的情況下,該網(wǎng)段被OSPF鏈路類型定義為Stub Network Link;因為一個網(wǎng)段中只有一臺OSPF路由器,所以在這個網(wǎng)段就不可能有OSPF鄰居,一個接口被通告進OSPF,無論其二層鏈路是什么介質(zhì),只要在該接口上沒有OSPF鄰居,那么就是Stub Network Link;Loopback接口永遠被定義為Stub Network Link,默認使用32位掩碼表示,無論將Loopback接口改為哪種OSPF網(wǎng)絡(luò)類型(Network Type),始終改變不了它的OSPF鏈路類型(Link Type)屬性,但可以改變它在LSA中的掩碼長度。
OSPF網(wǎng)絡(luò)類型(Network Type)為Point-To-Point的接口,OSPF鏈路類型(Link Type)為Point-To-Point Link,但Loopback接口除外;而網(wǎng)絡(luò)類型為點到多點(Point-To-Multipoint)的接口,同樣鏈路類型也為Point-To-Point Link。
Point-To-Point Link可以是手工配置的地址(Numbered),也可以是借用的地址(Unnumbered),也可以是物理接口或邏輯子接口。
擁有兩臺或兩臺以上OSPF路由器的鏈路,簡單理解為有鄰居的OSPF接口就是Transit Link,但網(wǎng)絡(luò)類型為Point-To-Point和點到多點(Point-To-Multipoint)的接口除外,因為它們被定義為Point-To-Point Link。
就是OSPF虛鏈路(Virtual Link),但希奇的是,虛鏈路(Virtual Link)被定義為手工配置的地址(Numbered)的Point-To-Point Link。
OSPF同其它路由協(xié)議一樣,可以將其它外部協(xié)議的路由信息或其它OSPF進程的路由信息重分布進自己的域內(nèi),這樣的路由在OSPF域內(nèi)就是OSPF外部路由(External Route),在路由表中的表示方法和OSPF自己的路由會有所不同,因為OSPF外部路由可以分為兩類,分為Type 2和Type 1,所以在路由表中分別表示為OE2和OE1。
OE2與OE1在路由條目上沒有任何區(qū)別,只是對于路由的Metric值計算有區(qū)別;類型為OE2的外部路由,在該路由進入OSPF之前的Metric值為多少,進入OSPF域后,所有OSPF路由器看到關(guān)于該路由的Metric值全部相同,不會再為該路由增加任何Metric值,OE2默認Metric值為20。而OE1的路由在OSPF路由器上的Metric值包含該路由進入OSPF域之前的Metric值,再加上在OSPF域內(nèi)傳遞的Metric值,也就是到達外部路由的Metric值為到達ASBR的Metric值再加上進入OSPF域之前的Metric值之和,不同OSPF路由器看到OE1的路由的Metric值可能會有不同。如下圖:
在上圖中,R5將EIGRP重分布進OSPF,如果使用OE2類型重分布進OSPF,并且取默認Metric值20,那么OSPF域內(nèi)的路由器R1,R2,R3,R4,R5看到外部路由的Metric值全部都為20,不會有任何變化。如果使用OE1類型重分布進OSPF,并且取默認Metric值20,那么OSPF域內(nèi)的路由器在計算Metric值時,還會在原有Metric值的基礎(chǔ)上,再加上到達ASBR(R5)所需的Metric值,假設(shè)R1選擇從R3到R5再到外部路由,那么R1到外部路由的Metric值為20+1+10=31,所以使用OE2時,R1到外部路由的Metric值為20,而在使用OE1時,R1到外部路由的Metric值為31。
所以必須給每一個OSPF路由器定義一個身份,就相當(dāng)于人的名字,這就是Router-ID,并且Router-ID在網(wǎng)絡(luò)中******不可以有重名,否則路由器收到的鏈路狀態(tài),就無法確定發(fā)起者的身份,也就無法通過鏈路狀態(tài)信息確定網(wǎng)絡(luò)位置,OSPF路由器發(fā)出的鏈路狀態(tài)都會寫上自己的Router-ID,可以理解為該鏈路狀態(tài)的簽名,不同路由器產(chǎn)生的鏈路狀態(tài),簽名絕不會相同。
之前說過,每一臺OSPF路由器都有一個Router-ID,在自己產(chǎn)生LSA時,都會在LSA中寫上自己的Router-ID,表示LSA的身份,類似于簽名,如果一臺路由器收到一條鏈路狀態(tài),無法到達該Router-ID的位置,就無法到達鏈路狀態(tài)中的目標(biāo)網(wǎng)絡(luò)。其實,在同區(qū)域內(nèi),每臺OSPF路由器的Router-ID對于每一臺路由器都是可達的,因為同區(qū)域內(nèi)會有精確的LSA信息,包含Router-ID,但需要說明,同區(qū)域路由器的Router-ID并不是單獨通過LSA來通告的,而是通過精確的LSA計算出來的,也就是說Router-ID的位置是推算出來的,但您放心,這不會有錯;因為同區(qū)域路由器的Router-ID都有精確的路徑信息,所以網(wǎng)絡(luò)是通暢的,然而,不同區(qū)域的OSPF路由器,Router-ID是不知道的,也可以理解為Router-ID不會跨區(qū)域傳遞,那么是否就意味著不同區(qū)域的路由是不可達的呢?答案當(dāng)然是可達的,只要同區(qū)域所有路由器可達,那么不同區(qū)域自然就是可達的,理由是,不同區(qū)域是通過ABR相連的,因為ABR連接著不同區(qū)域,所以只要各個區(qū)域路由器和ABR是通的,那么不同區(qū)域當(dāng)然可以實現(xiàn)網(wǎng)絡(luò)連通,所以,ABR在將一個區(qū)域的LSA轉(zhuǎn)發(fā)至另一個區(qū)域時,產(chǎn)生該LSA的Router-ID就不再是原來的Router-ID,會被修改為ABR的Router-ID,這樣一來,和ABR相通的路由器只要到達ABR,就能到達其它區(qū)域;如下圖所示:
上圖中,R2和R3是ABR,Area 0一定擁有全網(wǎng)的LSA,R2可以在Area 0與Area 2之間轉(zhuǎn)發(fā)LSA,而R3可以在Area 0與Area 1之間轉(zhuǎn)發(fā)LSA,但是對于其它區(qū)域的路由,R1無法到達,因為R1只有Area 2每臺路由器的Router-ID,R4的情況同樣如此;最終結(jié)果是,R2在將Area 0的LSA轉(zhuǎn)發(fā)給Area 2時,已經(jīng)將所有LSA的Router-ID改成了自己的,所以所有的路由對于R1來說,只要交給ABR(R2)即可,因為R2能夠全網(wǎng)可達,在Area 1也是一樣,R3在將Area 0的LSA轉(zhuǎn)發(fā)給Area 1時,已經(jīng)將所有LSA的Router-ID改成了自己的,所以所有的路由對于R4來說,只要交給ABR(R3)即可,由此可見,OSPF中,不同區(qū)域之間的路由互通,是由于ABR在轉(zhuǎn)發(fā)區(qū)域是的LSA時,將LSA的Router-ID改成了自己的Router-ID,才使得該區(qū)域可以與其它區(qū)域通信,如果沒有ABR這種自動修改Router-ID的行為,那么OSPF不同區(qū)域間將會無法通信。
對于外部路由,執(zhí)行重分布的路由器同樣需要在LSA中寫上自己的Router-ID,其實就是ASBR的Router-ID,因為外部路由會在多個OSPF區(qū)域之間傳遞,所以會被多個ABR轉(zhuǎn)發(fā),而ABR在轉(zhuǎn)發(fā)外部路由的LSA時,是沒有權(quán)限修改LSA的Router-ID,這樣一來,外部路由的Router-ID在所有OSPF路由器上都不會改變,永遠是ASBR的Router-ID,最終造成的結(jié)果是只有與ASBR同在一個區(qū)域的路由器才能到達外部路由,因為只有與ASBR同在一個區(qū)域的路由器才知道如何到達ASBR的Router-ID,而其它區(qū)域的路由器對此卻無能為力;為了能夠讓OSPF所有區(qū)域都能與外部路由連通,在ABR將外部路由從ASBR所在的區(qū)域轉(zhuǎn)發(fā)至其它區(qū)域時,需要發(fā)送單獨的LSA來告知如何到達ASBR的Router-ID,因為ABR將外部路由的LSA告訴了其它區(qū)域,是有義務(wù)讓它們與外部路由可達的,所以額外發(fā)送了單獨的LSA來告知如何到達ASBR的Router-ID;從這里也可以看出,任何一個ASBR所在區(qū)域外的其它區(qū)域,都必須靠ABR通告一條通往ASBR 的Router-ID的LSA,此LSA就是后面將會詳細解釋的LSA 類型的第4類。如下圖:
在上圖中,因為ASBR(R4)將外部路由(EIGRP)重分布進OSPF后,自己的Router-ID對于Area 1的所有路由器是可達的,但對于Area 2和Area 0中的路由器是不可達的,所以在ABR將外部路由的LSA發(fā)向Area 0和Area 2時,會額外通過單獨的LSA 4將ASBR(R4)的Router-ID發(fā)向這些區(qū)域。
OSPF外部路由有許多是需要理解的地方,外部LSA的Forward Address是一個其它LSA沒有的特征,每一條外部LSA都帶有一個Forward Address,該地址是用來告訴收到此LSA的路由器如何到達外部路由,那么一條外部路由的LSA,F(xiàn)orward Address究竟該是什么地址呢?在ASBR的路由表中,外部路由的下一跳地址是什么,那么在外部路由的LSA中Forward Address就是什么,但是OSPF內(nèi)部路由器是通過Forward Address來到達外部路由的,如果它們連這個Forward Address都到達不了,比如Forward Address本身就是外部路由而不包含在OSPF進程中,那么可想而知,F(xiàn)orward Address的意義等于0,所以,如果ASBR的路由表中,外部路由的下一跳地址是OSPF進程自己的路由,那么外部路由LSA的Forward Address就是該地址,所有OSPF內(nèi)部路由器則通過該地址去往外部路由,但如果ASBR的路由表中,外部路由的下一跳地址不在OSPF進程中,那么該地址對于其它所有OSPF路由器都不可達,這時,ASBR就將外部路由LSA的Forward Address設(shè)置為0.0.0.0,當(dāng)Forward Address為0.0.0.0時,所有OSPF路由器通過外部LSA的Router-ID去往外部路由;如下圖所示:
在上圖中,當(dāng)R5(ASBR)將外部路由EIGRP重分布進OSPF時,因為R5到達外部路由的下一跳地址是56.1.1.6,如果該地址的網(wǎng)段被通告進OSPF進程,那么此時外部路由的Forward Address就是56.1.1.6,所有OSPF路由器通過去往地址56.1.1.6來去往外部路由;但如果該地址并不在OSPF進程中,那么外部路由的Forward Address就是0.0.0.0,則所有OSPF路由器通過去往ASBR(R5)的Router-ID去往外部路由。
重分布外部路由時,默認類型為O E2,如果通過兩個ASBR能到達相同的外部路由,選擇O E1的優(yōu)先,其次是O E2,但如果都為O E1或O E2,則選擇到達Forward Address最小Metric的路徑優(yōu)先,如果Forward Address都為0.0.0.0,最后選擇到達ASBR最小Metric的路徑優(yōu)先,但如果Forward Address地址一個為0.0.0.0,一個為真實地址,統(tǒng)一比較到ASBR的Metric。
如果路由增加,就意味著LSA的增加,有時,在一個末梢網(wǎng)絡(luò)中,許多路由信息是多余的,并不需要通告進來,因為一個OSPF區(qū)域內(nèi)的所有路由器都能夠通過該區(qū)域的ABR去往其它OSPF區(qū)域或者OSPF以外的外部網(wǎng)絡(luò),既然一個區(qū)域的路由器只要知道去往ABR,就能去往區(qū)域外的網(wǎng)絡(luò),所以可以過濾掉區(qū)域外的路由進入某個區(qū)域,這樣的區(qū)域稱為OSPF末節(jié)區(qū)域(Stub Area);一個末節(jié)區(qū)域的所有路由器雖然可以從ABR去往區(qū)域外的網(wǎng)絡(luò),但路由器上還是得有指向ABR的路由,所以末節(jié)區(qū)域的路由器只需要有默認路由,而不需要明細路由,即可與區(qū)域外的網(wǎng)絡(luò)通信,根據(jù)末節(jié)區(qū)域過濾掉區(qū)域外的不同路由,可將末節(jié)區(qū)域分為如下四類:
各類型的特征如下:
在Stub Area(末節(jié)區(qū)域)下,ABR將過濾掉所有外部路由進入末節(jié)區(qū)域,同時,末節(jié)區(qū)域內(nèi)的路由器也不可以將外部路由重分布進OSPF進程,即末節(jié)區(qū)域內(nèi)的路由器不可以成為ASBR,但其它OSPF區(qū)域的路由(Inter-Area Route)可以進入末節(jié)區(qū)域,由于沒有去往外部網(wǎng)絡(luò)的路由,所以ABR會自動向末節(jié)區(qū)域內(nèi)發(fā)送一條指向自己的默認路由,如下圖:
在Totally Stub Area(完全末節(jié)區(qū)域)下,ABR將過濾掉所有外部路由和其它OSPF區(qū)域的路由(Inter-Area Route)進入完全末節(jié)區(qū)域,同時,末節(jié)區(qū)域內(nèi)的路由器也不可以將外部路由重分布進OSPF進程,即完全末節(jié)區(qū)域內(nèi)的路由器不可以成為ASBR,由于沒有去往外部網(wǎng)絡(luò)的路由,所以ABR會自動向完全末節(jié)區(qū)域內(nèi)發(fā)送一條指向自己的默認路由,如下圖:
可以發(fā)現(xiàn),末節(jié)區(qū)域與完全末節(jié)區(qū)域的不同之處在于,末節(jié)區(qū)域可以允許其它OSPF區(qū)域的路由(Inter-Area Route)進入,而完全末節(jié)區(qū)域卻不可以。
在Not-so-Stubby Area(NSSA)下,ABR將過濾掉所有外部路由進入末節(jié)區(qū)域,同時也允許其它OSPF區(qū)域的路由(Inter-Area Route)進入NSSA區(qū)域,并且路由器還可以將外部路由重分布進OSPF進程,即NSSA區(qū)域內(nèi)的路由器可以成為ASBR,由于自身可以將外部網(wǎng)絡(luò)的路由重分布進OSPF進程,所以ABR不會自動向NSSA區(qū)域內(nèi)發(fā)送一條指向自己的默認路由,但可以手工向NSSA域內(nèi)發(fā)送默認路由,并且只可在ABR上發(fā)送默認路由;如下圖:
NSSA與末節(jié)區(qū)域的******區(qū)別在于,NSSA區(qū)域可以允許自身將外部路由重分布進OSPF,而末節(jié)區(qū)域則不可以。
在Totally Not-so-Stubby Area(Totally NSSA)下,ABR將過濾掉所有外部路由和其它OSPF區(qū)域的路由(Inter-Area Route)進入Totally NSSA區(qū)域,但路由器可以將外部路由重分布進OSPF進程,即Totally NSSA區(qū)域內(nèi)的路由器可以成為ASBR,由于沒有去往其它OSPF區(qū)域的路由,所以ABR會自動向Totally NSSA內(nèi)發(fā)送一條指向自己的默認路由,如下圖:
Totally NSSA與NSSA的區(qū)別在于,NSSA區(qū)域可以允許其它OSPF區(qū)域的路由(Inter-Area Route)進入,而Totally NSSA區(qū)域卻不可以,但Totally NSSA區(qū)域的ABR會自動向Totally NSSA區(qū)域內(nèi)發(fā)送一條指向自己的默認路由。
總結(jié)各區(qū)域的特征如下:
區(qū)域類型 | 接收區(qū)域間路由 | ABR是否發(fā)送默認路由 | 是否可以重分布外部路由 |
---|---|---|---|
Stub Area | 是 | 是 | 否 |
Totally Stub Area | 否 | 是 | 否 |
NSSA | 是 | 否 | 是 |
Totally NSSA | 否 | 是 | 是 |
- 在末節(jié)區(qū)域下,ABR自動發(fā)出的默認路由,Metric值默認為1,可通過命令area area-id default-cost cost修改,默認路由除了默認的Cost值以外,還會累加真實接口的Cost值。
OSPF由于有著多種區(qū)域類型,多種網(wǎng)絡(luò)類型,多種鏈路類型,多種路由器身份,所以LSA(Link-State Advertisements)也是多樣的。
在詳細講解LSA之前,需要重點說明,只有同一個區(qū)域內(nèi)的LSA,才是精確的,區(qū)域外的LSA,并不一定包含所有必備的信息,因此,所有LSA知識信息,并不一定可以套用到每一類LSA。
OSPF中共有11類LSA,而在CCIE的要求中,只需要理解1、2、3、4、5、7共6類即可,這些LSA會因為區(qū)域類型,網(wǎng)絡(luò)類型,鏈路類型,路由器身份的不同而不同,以下是詳細介紹:
類型1的LSA是任何一臺OSPF路由器都會產(chǎn)生的,每一臺OSPF路由器的每一個OSPF接口都會有自己的鏈路狀態(tài),但是每臺OSPF路由器只能產(chǎn)生一條類型1的LSA,即使有多個OSPF接口,也只有一條類型1的LSA,因為所有OSPF接口的鏈路狀態(tài)是被打包成一條類型1的LSA發(fā)送的。
一個區(qū)域正是由于LSA 1的存在,才有精確的路由表,一個區(qū)域如果只有LSA 1,同樣可以正常通信。LSA 1 只能在單個區(qū)域內(nèi)傳遞,ABR不能將LSA 1轉(zhuǎn)到發(fā)另外一個區(qū)域,并且沒有任何權(quán)利修改LSA 1。
類型2的LSA只有在需要選舉DR/BDR的網(wǎng)絡(luò)類型中才會產(chǎn)生,并且只是DR產(chǎn)生,BDR沒有權(quán)利產(chǎn)生,LSA 2與LSA 1沒有任何關(guān)聯(lián),沒有任何依存關(guān)系,是相互獨立的。
類型3的LSA就是將一個區(qū)域的LSA發(fā)向另一個區(qū)域時的匯總和簡化,ABR其實就是將LSA 1匯總和簡化,變成LSA 3后再發(fā)到另一個區(qū)域的,如果是詳細完整的LSA 1,是絕不允許的,LSA 3是LSA 1的縮略版。
對于外部路由,執(zhí)行重分布的路由器ASBR在LSA中寫上自己的Router-ID,然后傳遞到多個OSPF區(qū)域,所以會被多個ABR轉(zhuǎn)發(fā),而ABR在轉(zhuǎn)發(fā)外部路由的LSA時,是沒有權(quán)限修改LSA的Router-ID,這樣一來,外部路由的Router-ID在所有OSPF路由器上都不會改變,永遠是ASBR的Router-ID,最終造成的結(jié)果是只有與ASBR同在一個區(qū)域的路由器才能到達外部路由,因為只有與ASBR同在一個區(qū)域的路由器才知道如何到達ASBR的Router-ID,而其它區(qū)域的路由器對此卻無能為力;為了能夠讓OSPF所有區(qū)域都能與外部路由連通,在ABR將外部路由從ASBR所在的區(qū)域轉(zhuǎn)發(fā)至其它區(qū)域時,需要發(fā)送單獨的LSA來告知如何到達ASBR的Router-ID,因為ABR將外部路由的LSA告訴了其它區(qū)域,是有義務(wù)讓它們與外部路由可達的,所以額外發(fā)送了單獨的LSA來告知如何到達ASBR的Router-ID;這個單獨的LSA就是類型4的LSA,LSA 4是包含的ASBR 的Router-ID,只要不是ASBR所在的區(qū)域,都需要ABR發(fā)送LSA 4來告知如何去往ASBR。
類型5的LSA就是外部路由重分布進OSPF時產(chǎn)生的,并且是由ASBR產(chǎn)生的,LSA中包含ASBR的Router-ID,任何路由器都不允許更改該Router-ID,LSA 5中還包含F(xiàn)orward Address,對于LSA 5 的Metric值計算與選路規(guī)則也有所不同,詳細信息請見OSPF外部路由部分。
因為NSSA區(qū)域可以將外部路由重分布進OSPF進程,而NSSA不是一般的常規(guī)區(qū)域,所以在NSSA將外部路由重分布進OSPF時,路由信息使用類型7來表示,LSA 7由NSSA區(qū)域的ASBR產(chǎn)生,LSA 7也只能在NSSA區(qū)域內(nèi)傳遞,如果要傳遞到NSSA之外的其它區(qū)域,需要同時連接NSSA與其它區(qū)域的ABR將LSA 7 轉(zhuǎn)變成LSA 5后再轉(zhuǎn)發(fā)。
在LSA的內(nèi)容中,將有多個參數(shù)來表示,這些參數(shù)會因為LSA類型,區(qū)域類型,網(wǎng)絡(luò)類型,鏈路類型,路由器身份的不同而不同,是真正的變化多端,非常的復(fù)雜,這些參數(shù)在我們操作OSPF時,可以幫助我們更好的分析LSA,但并不會起決定性的作用,所以對LSA參數(shù)的理解與否,不會影響到OSPF的配置與排錯,若無特殊要求,LSA參數(shù)需要大家了解即可,不需要掌握,不需要牢記。
LSA中包含的參數(shù)有LS Type,Link State ID,Link ID,Link Data,具體如下:
LS Type就是前面講到的LSA類型,如LSA 1,LSA 2,LSA 3,LSA 4,LSA 5,LSA 7。
因為OSPF接口的鏈路狀態(tài),是使用LSA發(fā)送的,接口的相關(guān)信息,如網(wǎng)絡(luò)號,掩碼等等,它們算是LSA真正的內(nèi)容,而LSA也是有簡明信息的,或者說是LSA的標(biāo)題,或者說是LSA的名稱,這就是Link State ID,如果將LSA比作一個包裹,那么Link State ID就是包裹外面寫的信息,比如包裹里是一件衣服,那么Link State ID可能就是寫的衣服是什么牌子,什么尺寸,什么顏色,等等;但不同類型的LSA,其Link State ID的表示也會不同,如下表:
LSA類型 | Link State ID內(nèi)容 |
---|---|
LSA 1 | 是產(chǎn)生LSA 1的路由器的Router-ID |
LSA 2 | 因為LSA 2是由DR產(chǎn)生的,所以LSA 2的Link State ID是DR的接口地址 |
LSA 3 | 是目標(biāo)網(wǎng)絡(luò)的網(wǎng)絡(luò)地址,其實這個等同于路由條目 |
LSA 4 | 是ASBR的Router-ID |
LSA 5 | 是目標(biāo)網(wǎng)絡(luò)的網(wǎng)絡(luò)地址,其實這個等同于路由條目 |
Link ID是用來表示鏈路自己的,也就是表示OSPF接口自己,再換句話說,就是OSPF接口的鏈路狀態(tài),可以理解為LSA的內(nèi)容部分。
Link ID會因為鏈路類型(Link Type)的不同而不同,對于鏈路類型(Link Type)的詳細解釋,請參見前面部分。
需要注意,Link ID的內(nèi)容有時與Link State ID的內(nèi)容相同,但Link ID并非完全等于Link State ID,因為Link State ID是由LSA類型的不同而不同,而Link ID是由Link Type的不同而不同。
Link ID的具體內(nèi)容如下表:
鏈路類型(Link Type) | Link ID內(nèi)容 |
---|---|
Stub Network Link | 使用接口的網(wǎng)絡(luò)號和子網(wǎng)掩碼來表示 |
Point-To-Point Link | 鄰居的Router-ID |
Transit Link | 是DR的接口地址 |
Virtual link | 同Point-To-Point Link,是鄰居的Router-ID |
是接口上的IP地址,如果鏈路類型(Link Type)為Stub Network Link,則Link Data是子網(wǎng)掩碼。
因為OSPF采用了區(qū)域化的設(shè)計,并且區(qū)域也采用了Hub-Spoke的架構(gòu),所有區(qū)域中定義出一個核心,然后其它部分都與核心相連,OSPF的區(qū)域0就是所有區(qū)域的核心,稱為BackBone 區(qū)域(骨干區(qū)域),而其它Normal 區(qū)域(常規(guī)區(qū)域)應(yīng)該直接和骨干區(qū)域相連,常規(guī)區(qū)域只能和骨干區(qū)域交換LSA,常規(guī)區(qū)域與常規(guī)區(qū)域之間即使直連也無法互換LSA,但在某些情況下,某些常規(guī)區(qū)域無法與骨干區(qū)域直連,這時便無法得到其它區(qū)域的路由,因此,設(shè)計了將骨干區(qū)域的范圍通過虛擬的方法進行擴展到相鄰常規(guī)區(qū)域的位置,因而讓不能直接與骨干區(qū)域相連的區(qū)域,最終可以與骨干區(qū)域直連,這種對骨干虛擬的擴展和拉伸就是OSPF虛鏈路(Virtual Link)能實現(xiàn)的;因為某些常規(guī)區(qū)域不能與骨干區(qū)域直連而只能與其它常規(guī)區(qū)域直連,所以O(shè)SPF虛鏈路(Virtual Link)通過將相鄰的常規(guī)區(qū)域虛擬為骨干區(qū)域,從而讓那些不能與骨干區(qū)域直連的常規(guī)區(qū)域也能獲得其它OSPF區(qū)域的路由。與骨干區(qū)域相鄰的常規(guī)區(qū)域被擴展后,該區(qū)域被稱為Transit Area,理論上Transit Area不應(yīng)該為末節(jié)區(qū)域;在擴展后,原本為常規(guī)區(qū)域的Transit Area,將變成骨干區(qū)域,所以路由將從Inter-Area Route轉(zhuǎn)變?yōu)镮ntra-Area Route,路由表示形式也將從O IA改變?yōu)镺的形式;在進行OSPF虛鏈路擴展時,是將Transit Area中與骨干區(qū)域直連的ABR和連接另一個常規(guī)區(qū)域的ABR相連,連接這兩個ABR時,使用雙方的Router-ID來連接。如下圖:
在上圖中,區(qū)域2只能與區(qū)域1直連,而無法與骨干區(qū)域直連,在這種情況下,由于常規(guī)區(qū)域與常規(guī)區(qū)域之間即使直連也無法互換LSA,所以R3雖然是ABR,但因為沒有連接骨干區(qū)域,最后不可能將任何區(qū)域的LSA發(fā)進區(qū)域2,最終導(dǎo)致區(qū)域2無法外其它區(qū)域通信,在這種情況下,需要通過OSPF虛鏈路將骨干區(qū)域的范圍擴展到相鄰的區(qū)域1,如下圖:
在進行OSPF虛鏈路擴展后,區(qū)域1被虛擬成了骨干區(qū)域,而這時的R3等同于連接骨干區(qū)域和區(qū)域2的ABR,所以可以將自己所有的LSA發(fā)進區(qū)域2。在擴展OSPF虛鏈路時,是通過連接R2(ABR)與R3(ABR)的Router-ID 來建立的。
因為OSPF虛鏈路(Virtual Link)能將骨干區(qū)域擴展到相鄰的常規(guī)區(qū)域,從而將常規(guī)區(qū)域虛擬為骨干區(qū)域,所以在某些情況下,如公司合并,或者為了備份骨干區(qū)域,可能出現(xiàn)骨干區(qū)域被常規(guī)區(qū)域所隔離,如下圖:
圖中骨干區(qū)域被區(qū)域1分割為兩部分,將使得骨干區(qū)域自己的路由無法相互傳遞,在使用OSPF虛鏈路后,可以將區(qū)域1也擴展為骨干區(qū)域,如下圖:
在經(jīng)過OSPF虛鏈路將區(qū)域1也擴展為骨干區(qū)域后,可見所有的區(qū)域都變成了骨干區(qū)域,從而使網(wǎng)絡(luò)中骨干區(qū)域能夠收到另外一邊被分割的骨干區(qū)域的路由,并且最后骨干區(qū)域自己的路由都為Intra-Area Route,但Area 1與骨干區(qū)域的路由將仍然為O IA。
OSPF虛鏈路必須是在兩個擁有共同區(qū)域的ABR之間建立的,其中必須至少有一個ABR是連接骨干的。
OSPF虛鏈路被認為是骨干區(qū)域的一個接口,一條鏈路,也需要建立OSPF鄰居,但在鄰居建立之后,鏈路上是沒有Hello包傳遞的。
同RIP和EIGRP一樣,出于安全考慮,OSPF也使用了認證,OSPF同時支持明文和MD5認證,在啟用OSPF認證后,Hello包中將攜帶密碼,雙方Hello包中的密碼必須相同,才能建立OSPF鄰居關(guān)系,需要注意,空密碼也是密碼的一種。
當(dāng)OSPF鄰居的一方在接口上啟用認證后,從該接口發(fā)出的Hello包中就會帶有密碼,雙方的Hello包中擁有相同的密碼時,鄰居方可建立;一臺OSPF路由器可能有多個OSPF接口,也可能多個接口在多個OSPF區(qū)域,只要在接口上輸入OSPF認證的命令后,便表示開啟了OSPF認證,可以在每個接口上一個一個啟用,也可以一次性開啟多個接口的認證,如果需要開啟多個接口的認證功能,那么認證的命令就并非直接在接口上輸入,而是到OSPF進程模式下輸入,并且是對某個區(qū)域全局開啟的,當(dāng)在進程下對某個區(qū)域開啟OSPF認證后,就表示在屬于該區(qū)域的所有接口上開啟了認證。所以,在進程下對區(qū)域配置認證,是快速配置多個接口認證的方法,與在多個接口上一個一個開啟,沒有本質(zhì)區(qū)別。因為OSPF虛鏈路被認為是骨干區(qū)域的一個接口,一條鏈路,所以在OSPF進程下對骨干區(qū)域開啟認證后,不僅表示開啟了區(qū)域0下所有接口的認證,同時也開啟了OSPF虛鏈路的認證,但OSPF虛鏈路在建立后,并沒有Hello包的傳遞,所以認證在沒有重置OSPF進程的情況下,是不會生效的。
在OSPF同區(qū)域內(nèi),LSA是******不允許以任何形式或任何手段更改的,但在一個區(qū)域與另一個區(qū)域之間,LSA可以被ABR修改后傳遞,從而得知,在同一個區(qū)域內(nèi),OSPF路由是不能被匯總的,而是當(dāng)路由從一個區(qū)域被ABR轉(zhuǎn)發(fā)到另外一個區(qū)域時,就可以執(zhí)行路由匯總,并且匯總必須是在ABR上執(zhí)行的,但該匯總不對OSPF外部路由生效;在將外部路由重分布進OSPF時,也可以執(zhí)行路由匯總,此時的匯總必須在ASBR上配置。
為了防止路由黑洞,需要在執(zhí)行路由匯總的路由器上將匯總由指向空接口(null0),在IOS 12.1(6)以后的版本,配置匯總后會自動產(chǎn)生指向空接口的路由,但在IOS 12.1(6)及以前的版本需要手工創(chuàng)建。
OSPF RFC (1583)并沒有規(guī)定一個區(qū)域適合多少臺路由器,一個網(wǎng)段多少個鄰居,或如何布署網(wǎng)絡(luò)
東莞市升豐訊實業(yè)有限公司 版權(quán)所有 備案號:粵ICP備18107829號-2
24小時熱線 :15377741450 郵箱: sfx@sfx0769.com 網(wǎng)站: www.sfp28.com.cn
24小時服務(wù)熱線