OSPF協(xié)議總結(jié)
OSPF的五個(gè)包:
1.Hello:9項(xiàng)內(nèi)容,4個(gè)必要
2.DBD:數(shù)據(jù)庫(kù)描述數(shù)據(jù)包(主要描述始發(fā)路由器數(shù)據(jù)庫(kù)中的一些或者全部LSA信息),主要包括接口的MTU,主從位MS,數(shù)據(jù)庫(kù)描述序列號(hào)等);
3.LSR:鏈路狀態(tài)請(qǐng)求數(shù)據(jù)包(查看收到的LSA是否在自己的數(shù)據(jù)庫(kù),或是更新的LSA,如果是將向鄰居發(fā)送請(qǐng)求);
4.LSU:鏈路狀態(tài)更新數(shù)據(jù)包(用于LSA的泛洪擴(kuò)散和發(fā)送LSA去響應(yīng)鏈路狀態(tài)請(qǐng)求數(shù)據(jù)包);
5.LSACK:鏈路狀態(tài)確認(rèn)數(shù)據(jù)包(用來(lái)進(jìn)行LSA可靠的泛洪擴(kuò)散,即對(duì)可靠包的確認(rèn))。
Hello包作用:
1.發(fā)現(xiàn)鄰居;
2.建立鄰居關(guān)系;
3.維持鄰居關(guān)系;
4.選舉DR,BDR
5.確保雙向通信。
Hello包所包含的內(nèi)容:
路由器id |
Hello&Dead間隔 * |
區(qū)域id * |
鄰居 |
DR |
BDR |
優(yōu)先級(jí) |
驗(yàn)證 * |
末節(jié)區(qū)域 * |
注:1.“*”部分全部匹配才能建立鄰居關(guān)系。
2.鄰居關(guān)系為FULL狀態(tài);而鄰接關(guān)系是處于TWO-WAY狀態(tài)。
Hello時(shí)間間隔:
在點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)與廣播網(wǎng)絡(luò)中為10秒;
在NBMA網(wǎng)絡(luò)與點(diǎn)對(duì)多點(diǎn)網(wǎng)絡(luò)中為30秒。
注:
保持時(shí)間為hello時(shí)間4倍
虛電路傳送的LSA為DNA,時(shí)間抑制,永不老化.
OSPF的組播地址:
DR將使用組播地址224.0.0.5泛洪擴(kuò)散更新的數(shù)據(jù)包到DRothers
DRothers使用組播地址224.0.0.6發(fā)送更新數(shù)據(jù)包
組播的MAC地址分別為:0100.5E00.0005,0100.5E00.0006
OSPF的包頭格式:
| 版本 | 類型| 長(zhǎng)度 | 路由器ID | 區(qū)域ID| 驗(yàn)證和 |驗(yàn)證類型 |驗(yàn)證 |數(shù)據(jù)|
| 1 byte |1 |2|4|4| 2|2|8 | variance|
OSPF支持的驗(yàn)證類型:
OSPF支持明文和md5認(rèn)證,用Sniffer抓包看到明文驗(yàn)證的代碼是“1”,md5驗(yàn)證的代碼是“2”。
OSPF支持的網(wǎng)絡(luò)類型:
1.廣播
2.非廣播
3.點(diǎn)對(duì)點(diǎn)(若MTU不匹配 將停留在EX-START狀態(tài))
4.點(diǎn)對(duì)多點(diǎn)
5.虛電路(虛電路的網(wǎng)絡(luò)類型是點(diǎn)對(duì)點(diǎn))
虛鏈路必須配置在ABR上,
虛鏈路的配置使用的命令是area transit-area-id virtual-linkrouter-id
虛鏈路的Metric等同于所經(jīng)過(guò)的全部鏈路開銷之和
DR /BDR選舉:
1.優(yōu)先級(jí)(0~255; 0代表不參加選舉;默認(rèn)為1);
2.比較Router-id。
次者為BDR。
在Point-to-Point,Point-to-Multipoint(廣播與非廣播)這三種網(wǎng)絡(luò)類型不選取DR與BDR; Broadcast,NBMA選取DR與BDR。
先啟動(dòng)OSPF進(jìn)程的路由器會(huì)等待一段時(shí)間,這個(gè)時(shí)間內(nèi)你沒(méi)有啟動(dòng)其它路由的OSPF進(jìn)程的話,第一臺(tái)路由就認(rèn)為自己是DR,之后再加進(jìn)來(lái)的也不能在選舉了,這個(gè)等待時(shí)間叫做WaitTimer計(jì)時(shí)器,CISCO規(guī)定的WaitTimer是40秒。這個(gè)時(shí)間內(nèi)你啟動(dòng)的路由是參與選舉的,所以真實(shí)工作環(huán)境中,40秒你大概只啟動(dòng)了兩臺(tái),DR會(huì)再前兩臺(tái)啟動(dòng)的路由中產(chǎn)生,工作一段時(shí)間以后,活的最久的路由最有可能成為DR
OSPF over FRAME-RELAY 的配置:
(1) NBMA :在HUB上指定鄰居;SPOKE上設(shè)置優(yōu)先級(jí)為0。
(2) P-TO-P: 接口下配置命令 ip ospfnetwork point-to-point。
(3) P-TO-MULT P:接口下配置命令 ip ospf network point-to-multipoint。
按需電路配置:
接口下配置命令 ip ospf demand-cricuit。
孤立區(qū)域問(wèn)題解決:
1.虛電路 (虛電路穿過(guò)的區(qū)域一定是標(biāo)準(zhǔn)區(qū)域,標(biāo)準(zhǔn)區(qū)域一定是全路由的)
2.隧道
3.多進(jìn)程重分發(fā)
注:如果中間間隔區(qū)域?yàn)閟tub區(qū)域,則只能用隧道解決.
OSPF分區(qū)域的原因:
1.LSA數(shù)據(jù)過(guò)大,造成帶寬負(fù)載過(guò)大。
2.計(jì)算全網(wǎng)拓?fù)?,?duì)cpu要求過(guò)高。
3.?dāng)?shù)據(jù)庫(kù)過(guò)大,對(duì)內(nèi)存要求過(guò)高。
OSPF的區(qū)域類型:
骨干: LSA:1 2 3 4 5
標(biāo)準(zhǔn): LSA:1 2 3 4 5
stub:LSA1 2 3
nssa:LSA1 2 3 7 7(default)
AREA 1 NSSA DEFAULT INFORMATION-ORIGINATE
(ABR上產(chǎn)生默認(rèn)路由LSA 7)
total-stub: 1 2一條默認(rèn)3
total-nssa: 1 2 7一條默認(rèn)3
LSA的類型:
類型1: 路由器鏈路信息
內(nèi)容包括:路由器鏈路Router-id; 接口地址; 接口網(wǎng)絡(luò); 接口花費(fèi)
可使用show ospf database router命令查看。
類型2: 網(wǎng)絡(luò)鏈路信息
由DR通告,如果是點(diǎn)對(duì)點(diǎn)的網(wǎng)絡(luò)類型,沒(méi)有LSA2
類型3、4:匯總鏈路(都是ABR通告)
3號(hào)通告ospf區(qū)域間信息
4號(hào)通告asbr的router-id信息(通告nssa區(qū)域的abr)
類型5: 通告外部路由
類型7: nssa區(qū)域外部路由
類型11: 用于打標(biāo)簽
類型代碼 | 類型名稱 | 描述 |
1 | 路由器LSA | 每臺(tái)路由器都會(huì)產(chǎn)生,在區(qū)域內(nèi)泛洪 |
2 | 網(wǎng)絡(luò)LSA | DR產(chǎn)生,在區(qū)域內(nèi)泛洪 |
3 | 網(wǎng)絡(luò)匯總LSA | ABR始發(fā),在整個(gè)OSPF域中泛洪 |
4 | ASBR匯總LSA | ABR始發(fā),在整個(gè)OSPF域中泛洪 |
5 | AS外部LSA | ASBR始發(fā),在整個(gè)OSPF域中泛洪 |
6 | 組成員LSA | 標(biāo)識(shí)OSPF組播中的組成員,不做討論 |
7 | NSSA外部LSA | ASBR始發(fā), |
8 | 外部屬性LSA | 沒(méi)有實(shí)現(xiàn) |
9 | Opaque LSA(本地鏈路范圍) | 用于MPLS流量工程,不做討論 |
10 | Opaque LSA(本地區(qū)域范圍) | |
11 | Opaque LSA(AS范圍) |
OSPF鄰居建立過(guò)程:
A-------------------------B
down
initB收到A 發(fā)來(lái)hello進(jìn)入init狀態(tài)
two way hello 4個(gè)“*”匹配,選舉DRBDR ;A在hello中發(fā)現(xiàn)自己的Router-id;
exstart交換DBD;確立主從關(guān)系(多路訪問(wèn)Router-id高為主,低為從;串行接口下接口地址大的為主)
exchange 交換數(shù)據(jù)DBD (主的先發(fā))
loading 交換完整數(shù)據(jù)包LSR LSU
full
注:
每個(gè)LSA由序列號(hào)確認(rèn)為最新的更新。
當(dāng)路由器收到LSA之后的處理過(guò)程:
(1)如果數(shù)據(jù)庫(kù)有這樣的,再查看序列號(hào),如果序列號(hào)相同,忽略這條LSA;如果序列號(hào)偏大,將其轉(zhuǎn)到數(shù)據(jù)庫(kù),并進(jìn)行SPF,更新路由表;如果序列號(hào)偏小,將一個(gè)包含自己的LSA新信息發(fā)送給發(fā)送方。
(2)如果數(shù)據(jù)可沒(méi)有這樣的,將其加到數(shù)據(jù)庫(kù)表,并發(fā)一個(gè)ACK返回,并運(yùn)行SPF,更新路由表?!?/p>
OSPF的Metric值:
Cost=10的8次方/帶寬,簡(jiǎn)便記做100Mb/帶寬值。Metric值是由cost值逐跳累加的。
環(huán)回口的路由,掩碼為/32,既我們所說(shuō)的“主機(jī)路由”。在實(shí)際應(yīng)用中,環(huán)回口以32位的居多,用作ospf的管理接口。但是如果你想讓環(huán)回口模擬一個(gè)網(wǎng)段,我們可以通過(guò)以下配置來(lái)消除。
R1(config)#int loopback 0
R1(config-if)#ip ospf network point-to-point
環(huán)回口只能配置成point-to-point這種類型,不可以配置成其它的類型。
其他:
1.當(dāng)一個(gè)路由器既是ABR又是ASBR時(shí)為了不讓巨量外部路由分發(fā)進(jìn)nssa區(qū)域使用命令:area 1 nssano-redistribution default-information originate
2.配置命令show ip ospf database router用來(lái)查詢拓?fù)?/p>
3.一個(gè)路由器在理論上支持65535個(gè)OSPF進(jìn)程,在實(shí)際環(huán)境中一個(gè)路由器可支持的OSPF
進(jìn)程數(shù)量與其可用物理接口數(shù)量相等。(這個(gè)我對(duì)老師說(shuō)的有疑問(wèn),如果我啟用了很多環(huán)回口,每個(gè)環(huán)回口一個(gè)區(qū)域不可以嗎?)
OSPF匯總
在OSPF骨干區(qū)域當(dāng)中,一個(gè)區(qū)域的所有地址都會(huì)被通告進(jìn)來(lái)。但是如果某個(gè)子網(wǎng)忽好忽壞不穩(wěn)定,那么在它每次改變狀態(tài)的時(shí)候,都會(huì)引起LSA在整個(gè)網(wǎng)絡(luò)中泛洪。為了解決這個(gè)問(wèn)題,我們可以對(duì)網(wǎng)絡(luò)地址進(jìn)行匯總。
Cisco路由器的匯總有兩種類型:區(qū)域匯總和外部路由匯總。區(qū)域匯總就是區(qū)域之間的地址匯總,一般配置在ABR上;外部路由匯總就是一組外部路由通過(guò)重發(fā)布進(jìn)入OSPF中,將這些外部路由進(jìn)行匯總。一般配置在ASBR上。
區(qū)域匯總:
area area-id range ip-address mask
外部路由匯總:
summary-address ip-address mask
我設(shè)計(jì)的兩個(gè)試驗(yàn),把幾個(gè)知識(shí)點(diǎn)串起來(lái)
試驗(yàn)一
用一個(gè)試驗(yàn)總結(jié)一下ospf over 楨中繼的時(shí)候,OSPF幾種網(wǎng)絡(luò)類型的差別。
封裝好FR,DEBUG看到的幾種情況
情況一:兩邊只起了OSPF進(jìn)程,其它全部默認(rèn)
這種情況下鄰居需要手動(dòng)配置!
R2(config)#router ospf 10
R2(config-router)#neighbor 12.1.1.3
選舉了DR,BDR
hello的間隔是30s
OSPF的數(shù)據(jù)包是單播傳送的。
情況二:兩邊的網(wǎng)絡(luò)類型改為Broadcast(命令接口下ip ospfnetwork broadcast)
這種網(wǎng)絡(luò)類型下是不需要手動(dòng)配置鄰居關(guān)系
有DR與BDR的選舉。
Hello時(shí)間間隔為10s。
使用224.0.0.5這個(gè)組播地址傳送數(shù)據(jù)包。
情況三:網(wǎng)絡(luò)類型改為Point-to-Point(命令接口下ip ospf netpoint-to-point)
不需要手動(dòng)指定鄰居
沒(méi)有DR/BDR的選舉
Hello時(shí)間間隔為10s
使用224.0.0.5這個(gè)組播地址傳送數(shù)據(jù)。
情況四:Point-to-Multipoint(命令接口下ip ospfnetwork point-to-multipoint)
不需要手動(dòng)指定鄰居
沒(méi)有DR和BDR的選舉
Hello時(shí)間間隔為30s
以224.0.0.5這個(gè)組播地址發(fā)送數(shù)據(jù)
情況五:非廣播的Point-to-Multipoint
(命令接口下ip ospf network point-to-multipoint non-broadcast)
鄰居需要手動(dòng)指定,但是鄰居只要在一邊指定即可。
沒(méi)有DR和BDR的選取
Hello時(shí)間間隔為30s
使用單播傳送OSPF數(shù)據(jù)
列出一張表,方便看
網(wǎng)絡(luò)類型 | 鄰居自動(dòng)發(fā)現(xiàn) | 有無(wú)DR選舉 | Hello間隔 | 傳輸方式 |
默認(rèn) | 否 | 有 | 30s | 單播 |
Broadcast | 是 | 有 | 10s | 組播 |
Point-to-Point | 是 | 無(wú) | 10s | 組播 |
Point-to-Multipoint | 是 | 無(wú) | 30s | 組播 |
Point-to-Multipoint(非廣播) | 否,單邊指即可 | 無(wú) | 30s | 單播 |
試驗(yàn)二
OSPF的認(rèn)證總結(jié):
OSPF的認(rèn)證有2種類型(不驗(yàn)證也算的話是3種),使用DEBUG可以看到type0表示無(wú)認(rèn)證,type1表示明文認(rèn)證,type2表示MD5認(rèn)證。明文認(rèn)證發(fā)送密碼進(jìn)行認(rèn)證,而MD5認(rèn)證發(fā)送的是報(bào)文摘要。
OSPF的認(rèn)證可以在鏈路上進(jìn)行,也可以在整個(gè)區(qū)域內(nèi)進(jìn)行認(rèn)證。另外虛鏈路同樣也可以進(jìn)行認(rèn)證。
同樣也是分情況來(lái)討論。
情況一:R1和R2明文驗(yàn)證
R1(config)#int s1/0
R1(config-if)#ip ospfauthentication(啟用認(rèn)證)
R1(config-if)#ip ospf authentication-keycisco(配置密碼)
不配置R2的話
通過(guò)debug工具我們可以看到如下信息:
*Aug 15 22:51:54.275: OSPF: Rcv pkt from 10.1.1.2,Serial1/0 : Mismatch Authentication type. Input packet specifiedtype 0, we use type 1
這里的type0是指對(duì)方?jīng)]有啟用認(rèn)證,type1是明文認(rèn)證。
在R2上配置認(rèn)證,使得鄰居關(guān)系恢復(fù)。
R2(config)#int s1/0
R2(config-if)#ip ospf authentication
R2(config-if)#ip ospf authentication-keycisco
*Aug 15 22:54:55.815: %OSPF-5-ADJCHG: Process 10,Nbr 1.1.1.1 on Serial1/0 from LOADING to FULL, Loading Done
情況二:在R2和R3的串行鏈路上進(jìn)行MD5認(rèn)證的:
R2(config)#int s1/1
R2(config-if)#ip ospf authenticationmessage-digest(定義認(rèn)證類型為MD5)
R2(config-if)#ip ospf message-digest-key 1 md5cisco(定義key和密碼)
R3(config)#int s1/0
R3(config-if)#ip ospf authenticationmessage-digest
R3(config-if)#ip ospf message-digest-key 1 md5cisco
情況三:增加R2和R3上串行鏈路的MD5認(rèn)證的密碼:
在R2原有的配置上加上下面這條命令:
R2(config-if)#ip ospf message-digest-key 2 md5openlab
R2#sho ip ospf neighbor
Neighbor IDPriStateDead TimeAddressInterface
3.3.3.30FULL/--11.1.1.2OSPF_VL0
1.1.1.11 FULL/BDR00:00:3421.1.1.1FastEthernet0/0
1.1.1.10 FULL/-00:00:3710.1.1.1Serial1/0
3.3.3.30 FULL/-00:00:3111.1.1.2Serial1/1
鄰居關(guān)系沒(méi)有丟失。
增加新的密碼鑰匙,然后在將原來(lái)的密碼刪除,候鄰居關(guān)系不受影響。
情況四:在Area0上進(jìn)行區(qū)域認(rèn)證(以前沒(méi)做過(guò)吧)
R1(config)#router ospf 10
R1(config-router)#area 0 authentication
還沒(méi)有寫下一步,就是剛啟用,還沒(méi)設(shè)置密碼,鄰居就down掉了
同樣,R2上啟用一下,鄰居就恢復(fù)
或者都設(shè)置相同的密碼也可以。
情況五:Area0上進(jìn)行區(qū)域認(rèn)證以后。。。
R2#clear ip ospfpro清進(jìn)程,A2區(qū)域的學(xué)不到鄰居了。R3是通過(guò)虛鏈路連接到骨干區(qū)域的。因?yàn)関irtual-link屬于Area0,因此在R2配置完成Area0區(qū)域認(rèn)證后,R3也需要相應(yīng)的配置。
R3(config)#router ospf 10
R3(config-router)#area 0 authentication
這樣就可以了
情況六:?jiǎn)渭兊奶撴溌返恼J(rèn)證(這個(gè)以前也沒(méi)做過(guò)吧)
明文認(rèn)證,MD5認(rèn)證。配置命令如下:
明文:
R2(config-router)#area 1 virtual-link 3.3.3.3authentication-key cisco
R3(config-router)#area 1 virtual-link 2.2.2.2authentication-key cisco
MD5:
R2(config-router)#area 1 virtual-link 3.3.3.3authentication message-digest
R2(config-router)#area 1 virtual-link 3.3.3.3message-digest-key 1 md5 cisco
R3(config-router)#area 1 virtual-link 2.2.2.2authentication message-digest
R3(config-router)#area 1 virtual-link 2.2.2.2message-digest-key 1 md5 cisco
另外通過(guò)實(shí)驗(yàn)知道虛鏈路在建立起來(lái)后是DNALSA(不老化LSA),所以如果沒(méi)有重啟OSPF進(jìn)程的話,即使一端配置了認(rèn)證,虛鏈路也是不會(huì)斷開的。
后面是sniffer抓得包
Hello包
Lsu包
LSACK包
上面是一般情況,下面是明文驗(yàn)證的幾個(gè)包
Hello
DBD
LSR
LSU
LSACK
下面是MD5加密認(rèn)證得包
Hello
DBD
LSR
LSU
LSACK
愛(ài)華網(wǎng)本文地址 » http://www.klfzs.com/a/25101010/19082.html
愛(ài)華網(wǎng)



