在IPv6网络环境下,尽管大多数的IPv4的路由协议都需要重新设计,或者开发以支持IPv6,但IPv6路由协议相对IPv4只有很小的变化。
目前各种常用的单播路由协议(IGP、EGP)和组播协议都已经支持IPv6。
1、RIPng
RIP(Routing Information Protocol)路由协议是一种采用距离向量算法的距离向量协议。
下一代RIP协议(简称RIPng)是对原来的IPv4网络中RIP-2协议的扩展。大多数RIP的概念都可以用于RIPng。
为了在IPv6网络中应用,RIPng对原有的RIP协议进行了修改:
UDP端口号:使用UDP的521端口发送和接收路由信息;
组播地址:使用FF02:9作为链路本地范围内的RIPng路由器组播地址;
路由前缀:使用128比特的IPv6地址作为路由前缀;
下一跳地址:使用128比特的IPv6地址。
2、OSPFv3
OSPF作为一个内部网关协议(Interior Gateway Protocol,IGP),运行在同一个自治域(AS)中的三层设备之间。
不同于距离向量协议,OSPF是一种链路状态协议。通过设备之间交换用以记录链路状态信息的各类型的Link-State Advertisements(LSAs),实现设备之间链路状态信息的同步,随后通过Dijkstra Algorithm计算出OSPF路由表项。
OSPFv3是OSPF版本3的简称,主要提供对IPv6的支持,遵循的标准为RFC2740(OSPF for IPv6)。
与OSPFv2相比,OSPFv3除了提供对IPv6的支持外,还充分考虑了协议的网络无关性和可扩展性,进一步理顺了拓扑与路由的关系,使得OSPF的协议逻辑更加简单清晰,大大提高了OSPF的可扩展性。
OSPFv3和OSPFv2主要存在如下不同之处。
修改部分协议流程,使其独立于网络协议,大大提高了可扩展性。主要的修改包括Router-ID来标记邻居,使用链路本地(Link-local)地址来发现邻居等,使得拓扑本身独立于网络协议,以便于未来扩展。
进一步理顺了拓扑与路由的关系。OSPFv3在LSA中将拓扑与路由信息相分离,一、二类LSA中不再携带路由信息,而只是单纯地描述拓扑信息,另外用新增的八、九类LSA结合原有的三、五、七类LSA来发布路由前缀信息。
提高了协议的适应性。通过引入LSA扩散范围的概念,进一步明确了对未知LSA的处理,使得协议可以在不识别LSA的前提下根据需要做出恰当的处理,大大提高了协议对未来扩展的适应性。
3、IS-ISv6
IS-IS是由国际标准化组织为其无连接网络协议CLNP发布的动态路由协议。同BGP一样,IS-IS可以同时承载IPv4和IPv6的路由信息。
为了使IS-IS支持IPv4,IETF在RFC1195中对IS-IS协议进行了扩展,命名为集成化IS-IS(Integrated IS-IS)或双IS-IS(Dual IS-IS)。
这个新的IS-IS协议可以同时应用在TCP/IP和OSI环境中。
在此基础上,为了有效的支持IPv6,IETF在draft-ietf-isis-IPv6-05.txt中对IS-IS进一步进行了扩展,主要是新添加了支持IPv6路由信息的两个TLV(Type-Length-Values)和一个新的NLP ID(Network Layer Protocol Identifier)
TLV是在LSP(Link State PDUs)中的一个可变长结构,新增的两个TLV分别是:
IPv6 Reachability(TLV type 236)。类型值为236,通过定义路由信息前缀、度量值等信息来说明网络的可达性。
IPv6 Interface Address(TLV type 132)。类型值为232(0xE8),它相当于IPv4中的“IP Interface Address” TLV,只不过把原来的32比特的IPv4地址改为128比特的IPv6地址。
NLP ID是标记IS-IS支持何种网络层协议的一个8比特字段,IPv6对应的NLP ID值为142(0x8E)。如果IS-IS路由器支持IPv6,那么它必须在Hello报文中携带该值向邻居通告它支持IPv6。
4、BGP4+
BGP(Border Gateway Protocol)是一种不同自治系统的路由器之间进行通信的外部网关协议,其主要功能是在不同的自治系统(Autonomous Systems,AS)之间交换网络可达信息,并通过协议自身机制来消除路由环路。
传统的BGP4只能管理IPv4的路由信息,对于使用其他网络层协议(如IPv6等)的应用,在跨自治系统传播时就受到一定限制。
为了提供对多种网络层协议的支持,IETF对BGP4进行了扩展,形成BGP4+,目前BGP4+标准是RFC2858(Multiprotocol Extensions for BGP4,BGP4多协议扩展)。
为了实现对IPv6协议的支持,BGP4+需要将IPv6网络层协议的信息反映到NLRI(Network Layer Reachable Information)及Next-Hop属性中。
BGP4+中引入的两个NLRI属性分别是:
MP-REACH-NLRI:Multiprotocol reachable NLRI,多协议可达NLRI。用于发布可达路由及下一跳信息。
MP-UNREACH-NLRI:Multiprotocol Unreachable NLRI,多协议不可达NLRI。用于撤销不可达路由。
BGP4+中的Next-Hop属性用IPv6地址来表示,可以是IPv6全球单播地址或者下一跳的链路本地地址。
BGP4+利用BGP的多协议扩展属性来达到在IPv6网络中应用的目的,BGP协议原有的消息机制和路由机制并没有改变。