OSPF路由協(xié)議是鏈路狀態(tài)型路由協(xié)議,這里的鏈路即設(shè)備上的接口。鏈路狀態(tài)型路由協(xié)議基于連接源和目標(biāo)設(shè)備的鏈路狀態(tài)作出路由的決定。鏈路狀態(tài)是接口及其與鄰接網(wǎng)絡(luò)設(shè)備的的關(guān)系的描述,接口的信息即鏈路的信息,也就是鏈路的狀態(tài)(信息)。這些信息包括接口的IPv6前綴(prefix)、網(wǎng)絡(luò)掩碼、接口連接的網(wǎng)絡(luò)(鏈路)類(lèi)型、與該接口在同一網(wǎng)絡(luò)(鏈路)上的路由器等信息。這些鏈路狀態(tài)信息由不同類(lèi)型的LSA攜帶,在網(wǎng)絡(luò)上傳播。
路由器把收集到的LSA存儲(chǔ)在鏈路狀態(tài)數(shù)據(jù)庫(kù)中,然后運(yùn)行SPF算法計(jì)算出路由表。鏈路狀態(tài)數(shù)據(jù)庫(kù)和路由表的本質(zhì)不同在于:數(shù)據(jù)庫(kù)中包含的是完整的鏈路狀態(tài)原始數(shù)據(jù),而路由表中列出的是到達(dá)所有已知目標(biāo)網(wǎng)絡(luò)的最短路徑的列表。
OSPF協(xié)議是為IP協(xié)議提供路由功能的路由協(xié)議。OSPFv2(OSPF版本2)是支持IPv4的路由協(xié)議,為了讓OSPF協(xié)議支持IPv6,技術(shù)人員開(kāi)發(fā)了OSPFv3(OSPF版本3),OSPFv3由RFC2740定義。
OSPFv3與OSPFv2
數(shù)據(jù)包結(jié)構(gòu)
IPv6 使用的LSA類(lèi)型
配置OSPFv3
NBMA配置示例
配置OSPFv3認(rèn)證
OSPFv3與OSPFv2
無(wú)論是OSPFv2還是OSPFv3,OSPF協(xié)議的基本運(yùn)行原理是沒(méi)有區(qū)別的,然而,由于IPv4和IPv6協(xié)議意義的不同,地址空間大小的不同,它們之間的不同之處也是必然存在的。
相似之處
(1)路由器類(lèi)型相同。包括內(nèi)部路由器(internal router)、骨干路由器(backbone router)、區(qū)域邊界路由器(area border router)和自治系統(tǒng)邊界路由器(autonomous system boundary router)。
(2)支持的區(qū)域類(lèi)型相同。包括骨干區(qū)域、標(biāo)準(zhǔn)區(qū)域、末節(jié)區(qū)域、NSSA和完全末節(jié)區(qū)域。
(3)都使用SPF算法。
(4)DR和BDR的選舉過(guò)程相同。
(5)接口類(lèi)型相同。包括點(diǎn)到點(diǎn)鏈路、點(diǎn)到多點(diǎn)鏈路、BMA鏈路、NBMA鏈路和虛擬鏈路。
(6)LSA的傳播和老化機(jī)制相同。
(7)雖然OSPFv3的數(shù)據(jù)包攜帶地址空間更大的IPv6地址,但大多數(shù)數(shù)據(jù)包都兼容OSPFv2。
(8)基本數(shù)據(jù)包類(lèi)型相同,都使用Hello、DBD、LSR、LSU和LSA。
(9)鄰居的發(fā)現(xiàn)和鄰居關(guān)系的建立機(jī)制相同。
(10)度量值的計(jì)算方法相同,都使用鏈路開(kāi)銷(xiāo)。
不同之處
(1)術(shù)語(yǔ)。大多數(shù)用在OSPFv2中的術(shù)語(yǔ)都可以用來(lái)描述OSPFv3中相同的概念。但其中有一個(gè)術(shù)語(yǔ)在OSPFv2中和在OSPFv3中具有不同的含義。在OSPFv3中,用"鏈路(link)"取代了OSPFv2中的"網(wǎng)絡(luò)(network)"或"子網(wǎng)(subnet)"的概念。"接口"與"鏈路"相連。一條"鏈路"可以有多個(gè)IP地址,如果兩個(gè)接點(diǎn)與同一個(gè)鏈路相連,即使它們不在同一個(gè)IP子網(wǎng)(IPv6前綴)上,也能夠通過(guò)該"鏈路"直接通話(huà)。
(2)OSPFv3進(jìn)程運(yùn)行在鏈路上,而不象OSPFv2進(jìn)程那樣運(yùn)行在子網(wǎng)上。
(3)一條鏈路上可以運(yùn)行多個(gè)OSPF實(shí)例(instance)。例如,可以使用兩個(gè)實(shí)例讓一條鏈路運(yùn)行在兩個(gè)區(qū)域內(nèi)。
(4)IPv6地址信息僅在LSU的載荷(payload)中攜帶。
(5) 路由器ID、區(qū)域ID和LSA鏈路狀態(tài)ID值仍然使用32比特表達(dá),因此不能使用IPv6地址表示。
(6) OSPFv3總是使用路由器ID來(lái)確認(rèn)鄰接路由器的身份。而OSPFv2在NBMA和BMA網(wǎng)絡(luò)中,使用路由器IP地址確認(rèn)鄰接路由器的身份;在點(diǎn)到點(diǎn)網(wǎng)絡(luò)和虛鏈路上使用路由器ID確認(rèn)鄰接路由器身份。
(7)LSA的傳播范圍(flooding scope)定義為如下3種:
本鏈路范圍(link-local scope)-- LSA僅在本鏈路范圍內(nèi)傳播。
區(qū)域范圍(area scope)-- LSA僅在一個(gè)區(qū)域內(nèi)傳播。
AS范圍(AS scope)-- LSA在整個(gè)AS內(nèi)傳播。
(8)使用本鏈路地址(link-local address)發(fā)現(xiàn)鄰居和完成自動(dòng)配置等工作。IPv6路由器并不轉(zhuǎn)發(fā)源地址是本鏈路地址的數(shù)據(jù)包。OSPFv3認(rèn)為每臺(tái)路由器已經(jīng)為它相接的每個(gè)物理網(wǎng)段(物理鏈路)分配了本鏈路地址。
(9)認(rèn)證方式不同。運(yùn)行OSPFv3的路由器使用IPsec認(rèn)證。因此在OSPFv3的報(bào)文頭中不包含認(rèn)證信息(參見(jiàn)4.2小節(jié))。
(10)數(shù)據(jù)包結(jié)構(gòu)不同(參見(jiàn)4.2小節(jié))。
(11)LSA類(lèi)型不同(參見(jiàn)4.4小節(jié))。
(12)LSA結(jié)構(gòu)不同(參見(jiàn)RFC2740)。
(13)一個(gè)接口可以配置多個(gè)IPv6地址前綴,缺省地,這些前綴都被注入到OSPFv3中,不能人為地選擇哪些前綴被注入,哪些前綴不被注入。
(14)如果路由器的接口上設(shè)置了IPv4地址,或者設(shè)置了環(huán)回接口,OSPFv3則自動(dòng)選擇IPv4地址作為路由器ID,否則需要為路由器設(shè)置ID號(hào)。
數(shù)據(jù)包結(jié)構(gòu)
OSPFv3協(xié)議直接運(yùn)行在IPv6上,因此,OSPFv3的數(shù)據(jù)由IPv6報(bào)文攜帶。在IPv6報(bào)文頭的’下一個(gè)報(bào)文頭’字段中,用協(xié)議號(hào)89代表該數(shù)據(jù)包中攜帶的是OSPFv3的數(shù)據(jù)。
IPv6的報(bào)頭結(jié)構(gòu)如圖4-1所示,各字段的含義如下:
Version(版本號(hào)):參數(shù)值為6,代表IPv6報(bào)頭,4比特長(zhǎng)。
Priority(優(yōu)先級(jí)):4比特長(zhǎng)。發(fā)送方可以使用該值為其發(fā)出的數(shù)據(jù)賦予優(yōu)先級(jí)。
Flow label(流標(biāo)簽):發(fā)送放可以用它標(biāo)志屬于同一個(gè)流的數(shù)據(jù)。
Payload length(載荷長(zhǎng)度):表示報(bào)頭后面攜帶的有效數(shù)據(jù)長(zhǎng)度。
Next header(下一個(gè)報(bào)頭):表示IPv6報(bào)頭后面的報(bào)頭類(lèi)型。89代表OSPF協(xié)議。
Hops(跳數(shù)限制):表示報(bào)文所能經(jīng)由的路由器數(shù)。
Source address(源地址):發(fā)送數(shù)據(jù)方地址。
Destination address(目的地地址):接收數(shù)據(jù)方地址。
圖 4-1 IPv6報(bào)頭格式
緊跟著IPv6報(bào)文頭的后面是OSPFv3的報(bào)文頭,其格式如圖4-2所示?!?BR>
圖 4-2 OSPFv3報(bào)文頭

路由器把收集到的LSA存儲(chǔ)在鏈路狀態(tài)數(shù)據(jù)庫(kù)中,然后運(yùn)行SPF算法計(jì)算出路由表。鏈路狀態(tài)數(shù)據(jù)庫(kù)和路由表的本質(zhì)不同在于:數(shù)據(jù)庫(kù)中包含的是完整的鏈路狀態(tài)原始數(shù)據(jù),而路由表中列出的是到達(dá)所有已知目標(biāo)網(wǎng)絡(luò)的最短路徑的列表。
OSPF協(xié)議是為IP協(xié)議提供路由功能的路由協(xié)議。OSPFv2(OSPF版本2)是支持IPv4的路由協(xié)議,為了讓OSPF協(xié)議支持IPv6,技術(shù)人員開(kāi)發(fā)了OSPFv3(OSPF版本3),OSPFv3由RFC2740定義。
OSPFv3與OSPFv2
數(shù)據(jù)包結(jié)構(gòu)
IPv6 使用的LSA類(lèi)型
配置OSPFv3
NBMA配置示例
配置OSPFv3認(rèn)證
OSPFv3與OSPFv2
無(wú)論是OSPFv2還是OSPFv3,OSPF協(xié)議的基本運(yùn)行原理是沒(méi)有區(qū)別的,然而,由于IPv4和IPv6協(xié)議意義的不同,地址空間大小的不同,它們之間的不同之處也是必然存在的。
相似之處
(1)路由器類(lèi)型相同。包括內(nèi)部路由器(internal router)、骨干路由器(backbone router)、區(qū)域邊界路由器(area border router)和自治系統(tǒng)邊界路由器(autonomous system boundary router)。
(2)支持的區(qū)域類(lèi)型相同。包括骨干區(qū)域、標(biāo)準(zhǔn)區(qū)域、末節(jié)區(qū)域、NSSA和完全末節(jié)區(qū)域。
(3)都使用SPF算法。
(4)DR和BDR的選舉過(guò)程相同。
(5)接口類(lèi)型相同。包括點(diǎn)到點(diǎn)鏈路、點(diǎn)到多點(diǎn)鏈路、BMA鏈路、NBMA鏈路和虛擬鏈路。
(6)LSA的傳播和老化機(jī)制相同。
(7)雖然OSPFv3的數(shù)據(jù)包攜帶地址空間更大的IPv6地址,但大多數(shù)數(shù)據(jù)包都兼容OSPFv2。
(8)基本數(shù)據(jù)包類(lèi)型相同,都使用Hello、DBD、LSR、LSU和LSA。
(9)鄰居的發(fā)現(xiàn)和鄰居關(guān)系的建立機(jī)制相同。
(10)度量值的計(jì)算方法相同,都使用鏈路開(kāi)銷(xiāo)。
不同之處
(1)術(shù)語(yǔ)。大多數(shù)用在OSPFv2中的術(shù)語(yǔ)都可以用來(lái)描述OSPFv3中相同的概念。但其中有一個(gè)術(shù)語(yǔ)在OSPFv2中和在OSPFv3中具有不同的含義。在OSPFv3中,用"鏈路(link)"取代了OSPFv2中的"網(wǎng)絡(luò)(network)"或"子網(wǎng)(subnet)"的概念。"接口"與"鏈路"相連。一條"鏈路"可以有多個(gè)IP地址,如果兩個(gè)接點(diǎn)與同一個(gè)鏈路相連,即使它們不在同一個(gè)IP子網(wǎng)(IPv6前綴)上,也能夠通過(guò)該"鏈路"直接通話(huà)。
(2)OSPFv3進(jìn)程運(yùn)行在鏈路上,而不象OSPFv2進(jìn)程那樣運(yùn)行在子網(wǎng)上。
(3)一條鏈路上可以運(yùn)行多個(gè)OSPF實(shí)例(instance)。例如,可以使用兩個(gè)實(shí)例讓一條鏈路運(yùn)行在兩個(gè)區(qū)域內(nèi)。
(4)IPv6地址信息僅在LSU的載荷(payload)中攜帶。
(5) 路由器ID、區(qū)域ID和LSA鏈路狀態(tài)ID值仍然使用32比特表達(dá),因此不能使用IPv6地址表示。
(6) OSPFv3總是使用路由器ID來(lái)確認(rèn)鄰接路由器的身份。而OSPFv2在NBMA和BMA網(wǎng)絡(luò)中,使用路由器IP地址確認(rèn)鄰接路由器的身份;在點(diǎn)到點(diǎn)網(wǎng)絡(luò)和虛鏈路上使用路由器ID確認(rèn)鄰接路由器身份。
(7)LSA的傳播范圍(flooding scope)定義為如下3種:
本鏈路范圍(link-local scope)-- LSA僅在本鏈路范圍內(nèi)傳播。
區(qū)域范圍(area scope)-- LSA僅在一個(gè)區(qū)域內(nèi)傳播。
AS范圍(AS scope)-- LSA在整個(gè)AS內(nèi)傳播。
(8)使用本鏈路地址(link-local address)發(fā)現(xiàn)鄰居和完成自動(dòng)配置等工作。IPv6路由器并不轉(zhuǎn)發(fā)源地址是本鏈路地址的數(shù)據(jù)包。OSPFv3認(rèn)為每臺(tái)路由器已經(jīng)為它相接的每個(gè)物理網(wǎng)段(物理鏈路)分配了本鏈路地址。
(9)認(rèn)證方式不同。運(yùn)行OSPFv3的路由器使用IPsec認(rèn)證。因此在OSPFv3的報(bào)文頭中不包含認(rèn)證信息(參見(jiàn)4.2小節(jié))。
(10)數(shù)據(jù)包結(jié)構(gòu)不同(參見(jiàn)4.2小節(jié))。
(11)LSA類(lèi)型不同(參見(jiàn)4.4小節(jié))。
(12)LSA結(jié)構(gòu)不同(參見(jiàn)RFC2740)。
(13)一個(gè)接口可以配置多個(gè)IPv6地址前綴,缺省地,這些前綴都被注入到OSPFv3中,不能人為地選擇哪些前綴被注入,哪些前綴不被注入。
(14)如果路由器的接口上設(shè)置了IPv4地址,或者設(shè)置了環(huán)回接口,OSPFv3則自動(dòng)選擇IPv4地址作為路由器ID,否則需要為路由器設(shè)置ID號(hào)。
數(shù)據(jù)包結(jié)構(gòu)
OSPFv3協(xié)議直接運(yùn)行在IPv6上,因此,OSPFv3的數(shù)據(jù)由IPv6報(bào)文攜帶。在IPv6報(bào)文頭的’下一個(gè)報(bào)文頭’字段中,用協(xié)議號(hào)89代表該數(shù)據(jù)包中攜帶的是OSPFv3的數(shù)據(jù)。
IPv6的報(bào)頭結(jié)構(gòu)如圖4-1所示,各字段的含義如下:
Version(版本號(hào)):參數(shù)值為6,代表IPv6報(bào)頭,4比特長(zhǎng)。
Priority(優(yōu)先級(jí)):4比特長(zhǎng)。發(fā)送方可以使用該值為其發(fā)出的數(shù)據(jù)賦予優(yōu)先級(jí)。
Flow label(流標(biāo)簽):發(fā)送放可以用它標(biāo)志屬于同一個(gè)流的數(shù)據(jù)。
Payload length(載荷長(zhǎng)度):表示報(bào)頭后面攜帶的有效數(shù)據(jù)長(zhǎng)度。
Next header(下一個(gè)報(bào)頭):表示IPv6報(bào)頭后面的報(bào)頭類(lèi)型。89代表OSPF協(xié)議。
Hops(跳數(shù)限制):表示報(bào)文所能經(jīng)由的路由器數(shù)。
Source address(源地址):發(fā)送數(shù)據(jù)方地址。
Destination address(目的地地址):接收數(shù)據(jù)方地址。
圖 4-1 IPv6報(bào)頭格式
緊跟著IPv6報(bào)文頭的后面是OSPFv3的報(bào)文頭,其格式如圖4-2所示?!?BR>

圖 4-2 OSPFv3報(bào)文頭
