認(rèn)識(shí)單播IPv6路由協(xié)議
在我們部署和推進(jìn)IPv6協(xié)議的使用過程中,特別需要強(qiáng)調(diào)的就是IPv6路由協(xié)議的改進(jìn)。在一些路由方面,雖然上一個(gè)網(wǎng)絡(luò)協(xié)議版本的路由統(tǒng)領(lǐng)了整個(gè)市場(chǎng),但是隨著新版本的商用,IPv6路由協(xié)議也得到了多方的支持,現(xiàn)在我們就來了解一下這方面的內(nèi)容。
IPv6單播路由協(xié)議
IPv6單播路由協(xié)議實(shí)現(xiàn)和IPv4中類似,有些是在原有協(xié)議上做了簡(jiǎn)單擴(kuò)展(如,ISISv6、BGP4+),有些則完全是新的版本(如,RIPng、OSPFv3)。
1 RIPng
下一代RIP協(xié)議(簡(jiǎn)稱RIPng)是對(duì)原來的IPv4網(wǎng)絡(luò)中RIP-2協(xié)議的擴(kuò)展。大多數(shù)RIP的概念都可以用于RIPng。
為了在IPv6網(wǎng)絡(luò)中應(yīng)用,RIPng對(duì)原有的RIP協(xié)議進(jìn)行了修改:
UDP端口號(hào):使用UDP的521端口發(fā)送和接收路由信息
組播地址:使用FF02::9作為鏈路本地范圍內(nèi)的RIPng路由器組播地址
路由前綴:使用128比特的IPv6地址作為路由前綴
下一跳地址:使用128比特的IPv6地址#p#
2 OSPFv3
OSPFv3是OSPF版本3的簡(jiǎn)稱,主要提供對(duì)IPv6路由協(xié)議的支持,遵循的標(biāo)準(zhǔn)為 RFC2740(OSPF for IPv6)。與OSPFv2相比,OSPFv3除了提供對(duì)IPv6的支持外,還充分考慮了協(xié)議的網(wǎng)絡(luò)無關(guān)性以及可擴(kuò)展性,進(jìn)一步理順了拓?fù)渑c路由的關(guān)系,使得OSPF的協(xié)議邏輯更加簡(jiǎn)單清晰,大大提高了OSPF的可擴(kuò)展性。
OSPFv3和OSPFv2的不同主要有:
修改了LSA的種類和格式,使其支持發(fā)布IPv6路由信息
修改部分協(xié)議流程,使其獨(dú)立于網(wǎng)絡(luò)協(xié)議,大大提高了可擴(kuò)展性
主要的修改包括用Router-ID來標(biāo)識(shí)鄰居,使用鏈路本地(Link-local)地址來發(fā)現(xiàn)鄰居等,使得拓?fù)浔旧愍?dú)立于網(wǎng)絡(luò)協(xié)議,與便于未來擴(kuò)展。
進(jìn)一步理順了拓?fù)渑c路由的關(guān)系
OSPFv3在LSA中將拓?fù)渑c路由信息相分離,一、二類LSA中不再攜帶路由信息,而只是單純的描述拓?fù)湫畔?另外用新增的八、九類LSA結(jié)合原有的三、五、七類LSA來發(fā)布路由前綴信息。
提高了IPv6路由協(xié)議適應(yīng)性
通過引入LSA擴(kuò)散范圍的概念,進(jìn)一步明確了對(duì)未知LSA的處理,使得協(xié)議可以在不識(shí)別LSA的情況下根據(jù)需要做出恰當(dāng)處理,大大提高了協(xié)議對(duì)未來擴(kuò)展的適應(yīng)性。#p#
3 IS-ISv6
IS-IS是由國(guó)際標(biāo)準(zhǔn)化組織ISO為其無連接網(wǎng)絡(luò)協(xié)議CLNP發(fā)布的動(dòng)態(tài)路由協(xié)議。同BGP一樣,IS-IS可以同時(shí)承載IPv4和IPv6路由協(xié)議。
為了使IS-IS支持IPv4,IETF在RFC1195中對(duì)IS-IS協(xié)議進(jìn)行了擴(kuò)展,命名為集成化IS-IS(Integrated IS-IS)或雙IS-IS(Dual IS-IS)。這個(gè)新的IS-IS協(xié)議可同時(shí)應(yīng)用在TCP/IP和OSI環(huán)境中。在此基礎(chǔ)上,為了有效的支持IPv6,IETF在draft-ietf-isis-IPv6-05.txt中對(duì)IS-IS進(jìn)一步進(jìn)行了擴(kuò)展,主要是新添加了支持IPv6路由信息的兩個(gè)TLV(Type-Length-Values)和一個(gè)新的NLP ID(Network Layer Protocol Identifier)。
TLV是在LSP(Link State PDUs)中的一個(gè)可變長(zhǎng)結(jié)構(gòu),新增的兩個(gè)TLV分別是:
IPv6Reachability(TLV type 236):
類型值為236(0xEC),通過定義路由信息前綴、度量值等信息來說明網(wǎng)絡(luò)的可達(dá)性。
IPv6Interface Address(TLV type 232):
類型值為232(0xE8),它相當(dāng)于IPv4中的“IP Interface Address"TLV,只不過把原來的32比特的IPv4地址改為128比特的IPv6地址。
NLP ID是標(biāo)識(shí)IS-IS支持何種網(wǎng)絡(luò)層協(xié)議的一個(gè)8比特字段,IPv6對(duì)應(yīng)的NLP ID值為142(0x8E)。如果IS-IS支持IPv6路由協(xié)議,那么它必須在Hello報(bào)文中攜帶該值向鄰居通告它支持IPv6。#p#
4 BGP4+
傳統(tǒng)的BGP-4只能管理IPv4的路由信息,對(duì)于使用其它網(wǎng)絡(luò)層協(xié)議(如IPv6等)的應(yīng)用,在跨自治系統(tǒng)傳播時(shí)就受到一定限制。
為了提供對(duì)多種網(wǎng)絡(luò)層協(xié)議的支持,IETF對(duì)BGP-4進(jìn)行了擴(kuò)展,形成BGP4+,目前的BGP4+標(biāo)準(zhǔn)是RFC2858(Multiprotocol Extensions for BGP-4,BGP-4多協(xié)議擴(kuò)展)。
為了實(shí)現(xiàn)對(duì)IPv6路由協(xié)議的支持,BGP-4+需要將IPv6網(wǎng)絡(luò)層協(xié)議的信息反映到NLRI(Network Layer Reachable Information)及Next_Hop屬性中。
BGP4+中引入的兩個(gè)NLRI屬性分別是:
MP_REACH_NLRI:Multiprotocol Reachable NLRI,多協(xié)議可達(dá)NLRI。用于發(fā)布可達(dá)路由及下一跳信息。
MP_UNREACH_NLRI:Multiprotocol Unreachable NLRI,多協(xié)議不可達(dá)NLRI。用于撤銷不可達(dá)路由。
BGP4+中的Next_Hop屬性用IPv6地址來表示,可以是IPv6全球單播地址或者下一跳的鏈路本地地址。
BGP4+利用BGP的多協(xié)議擴(kuò)展屬性來達(dá)到在IPv6網(wǎng)絡(luò)中應(yīng)用的目的,BGP協(xié)議原有的消息機(jī)制和路由機(jī)制并沒有改變。