IPv6關(guān)鍵技術(shù)之IPv6路由技術(shù)

在IPv6網(wǎng)絡(luò)環(huán)境下,盡管大多數(shù)的IPv4的路由協(xié)議都需要重新設(shè)計(jì),或者開發(fā)以支持IPv6,但I(xiàn)Pv6路由協(xié)議相對(duì)IPv4只有很小的變化。
目前各種常用的單播路由協(xié)議(IGP、EGP)和組播協(xié)議都已經(jīng)支持IPv6。
1、RIPng
RIP(Routing Information Protocol)路由協(xié)議是一種采用距離向量算法的距離向量協(xié)議。
下一代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地址。
2、OSPFv3
OSPF作為一個(gè)內(nèi)部網(wǎng)關(guān)協(xié)議(Interior Gateway Protocol,IGP),運(yùn)行在同一個(gè)自治域(AS)中的三層設(shè)備之間。
不同于距離向量協(xié)議,OSPF是一種鏈路狀態(tài)協(xié)議。通過設(shè)備之間交換用以記錄鏈路狀態(tài)信息的各類型的Link-State Advertisements(LSAs),實(shí)現(xiàn)設(shè)備之間鏈路狀態(tài)信息的同步,隨后通過Dijkstra Algorithm計(jì)算出OSPF路由表項(xiàng)。
OSPFv3是OSPF版本3的簡(jiǎn)稱,主要提供對(duì)IPv6的支持,遵循的標(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主要存在如下不同之處。
?修改部分協(xié)議流程,使其獨(dú)立于網(wǎng)絡(luò)協(xié)議,大大提高了可擴(kuò)展性。主要的修改包括Router-ID來標(biāo)記鄰居,使用鏈路本地(Link-local)地址來發(fā)現(xiàn)鄰居等,使得拓?fù)浔旧愍?dú)立于網(wǎng)絡(luò)協(xié)議,以便于未來擴(kuò)展。
進(jìn)一步理順了拓?fù)渑c路由的關(guān)系。OSPFv3在LSA中將拓?fù)渑c路由信息相分離,一、二類LSA中不再攜帶路由信息,而只是單純地描述拓?fù)湫畔ⅲ硗庥眯略龅陌恕⒕蓬怢SA結(jié)合原有的三、五、七類LSA來發(fā)布路由前綴信息。
提高了協(xié)議的適應(yīng)性。通過引入LSA擴(kuò)散范圍的概念,進(jìn)一步明確了對(duì)未知LSA的處理,使得協(xié)議可以在不識(shí)別LSA的前提下根據(jù)需要做出恰當(dāng)?shù)奶幚恚蟠筇岣吡藚f(xié)議對(duì)未來擴(kuò)展的適應(yīng)性。
3、IS-ISv6
IS-IS是由國(guó)際標(biāo)準(zhǔn)化組織為其無連接網(wǎng)絡(luò)協(xié)議CLNP發(fā)布的動(dòng)態(tài)路由協(xié)議。同BGP一樣,IS-IS可以同時(shí)承載IPv4和IPv6的路由信息。
為了使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分別是:
?IPv6 Reachability(TLV type 236)。類型值為236,通過定義路由信息前綴、度量值等信息來說明網(wǎng)絡(luò)的可達(dá)性。
IPv6 Interface Address(TLV type 132)。類型值為232(0xE8),它相當(dāng)于IPv4中的“IP Interface Address” TLV,只不過把原來的32比特的IPv4地址改為128比特的IPv6地址。
NLP ID是標(biāo)記IS-IS支持何種網(wǎng)絡(luò)層協(xié)議的一個(gè)8比特字段,IPv6對(duì)應(yīng)的NLP ID值為142(0x8E)。如果IS-IS路由器支持IPv6,那么它必須在Hello報(bào)文中攜帶該值向鄰居通告它支持IPv6。
4、BGP4+
BGP(Border Gateway Protocol)是一種不同自治系統(tǒng)的路由器之間進(jìn)行通信的外部網(wǎng)關(guān)協(xié)議,其主要功能是在不同的自治系統(tǒng)(Autonomous Systems,AS)之間交換網(wǎng)絡(luò)可達(dá)信息,并通過協(xié)議自身機(jī)制來消除路由環(huán)路。
傳統(tǒng)的BGP4只能管理IPv4的路由信息,對(duì)于使用其他網(wǎng)絡(luò)層協(xié)議(如IPv6等)的應(yīng)用,在跨自治系統(tǒng)傳播時(shí)就受到一定限制。
為了提供對(duì)多種網(wǎng)絡(luò)層協(xié)議的支持,IETF對(duì)BGP4進(jìn)行了擴(kuò)展,形成BGP4+,目前BGP4+標(biāo)準(zhǔn)是RFC2858(Multiprotocol Extensions for BGP4,BGP4多協(xié)議擴(kuò)展)。
為了實(shí)現(xiàn)對(duì)IPv6協(xié)議的支持,BGP4+需要將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ī)制并沒有改變。
