IPv6路由协议分析
摘要:介绍了IPv6常见的几种路由协议,对其进行了比较分析,并指出当前情况下如何选择合适的路由协议。
关键词:IPv6;路由协议
1IPv6路由协议概述
IPv6路由表是IPv6路由器进行IPv6报文转发的基础,路由器会根据IPv6报文的目的地址在路由表中查询下一跳的相关信息。IPv6路由表的每一条路由都应该包括以下的一些信息:①目的地址;②前缀长度;③下一跳地址;④本地接口;⑤优先级;⑥开销;⑦协议。IPv6路由的生成方法有三种:①通过链路层协议直接发现从而生出的直连路由;②手动配置的静态路由;③通过路由协议生成的动态路由。
根据路由协议作用的范围,IPv6路由协议可以分为两类。第一类为域内路由协议,又称为内部网关协议,适用于单个自治系统内部,目前常见的IPv6域内路由协议有RIPng、OSPFv3和IPv6-IS-IS;第二类为域间路由协议,又称为外部网关协议,适用于多个自治系统之间,目前IPv6最常见的IPv6域间路由协议为BGP4+。
2常见域内路由协议
2.1RIPng协议
RIPng(RIP next generation,下一代RIP)是在RIP-2协议的基础之上修改和增强而来,是针对IPv6的特性定义的新的版本。RIPng
和RIP的区别体现在以下几个方面:①RIPng基于UDP,使用端口521发送和接受路由信息;RIP使用端口520;②RIPng使用FF02∷9作为本地RIPng路由器组播地址;③RIPng基于IPv6,下一跳地址是128位,子网掩码的概念在RIPng中没有,其目的地址使用128位前缀;RIP基于IPv4,地址是32位;④RIPng使用本地地址FE80∷/10发送路由信息更新报文;⑤RIPng不支持非IP的网络,RIP支持;⑥RIPng的下一跳作为单独RTE存在;⑦RIPng使用IPv6内嵌的IPsec 协议进行身份验证,其本身不支持身份验证。
RIPng基于距离矢量算法,每隔30秒发送一次路由更新报文,如果180秒没有收到网络邻居的路由更新报文,则将其标识为不可达;如果再过120秒没有收到网络邻居的路由更新报文,则将其从路由表中删除。RIPng规定目标网络的跳数如果大于或等于16则为不可达到,所以运行RIPng的网络中到达目的地址所通过路由器不能超过15台。因为基于距离矢量算法的路由协议会产生慢收敛和无限计数问题,为了避免形成环路路由,RIPng支持水平分割、毒性逆转和触发更新等技术。
RIPng报文包括头和路由表项(Route Table Entry,RTE)组成(其格式如图1所示),RTE的条数取决于发送端口的MTU值。在RIPng 中有两类RTE,它们是IPv6前缀RTE和下一跳RTE(其格式如图2、3所示)。IPv6前缀RTE描述路由表项中的目的地址、路由标志、前缀长度、度量值等属性。下一跳RTE中为下一跳IPv6的地址信息,位于一组具有同样下一跳的IPv6前缀RTE的前面。
图1RIPng报文格式图2IPv6前缀RTE格式
图3下一跳RTE格式图4OSPFv3报文格式
2.2OSPFv3协议
OSPFv3(Open Shortest Path First version 3,开放最短路径优先第3版)为IETF在1999年制定的,其在OSPFv2的基础上进行了相关的修改,使其能够支持IPv6。OSPFv3基本上延续了OSPFv2的框架,但也针对IPv6的特点进行了相应的修改,其不同之处表现在:
(1)用链路代替了网段、子网等概念。OSPFv2运行基于子网,路由器之间形成邻居关系其IP地址必须位于同一个网段。OSPFv3基于链路,同一链路即使不在同一个子网中,也能够建立邻居关系。
(2)OSPFv3中,Router LSA、Network LSA中不包含地址信息,仅用来描述网络拓扑结构。Router ID、Area ID、Link State ID
中不包含地址信息。地址信息仅仅包含在新增加的Intra Area Prefix LSA中。Intra Area Prefix LSA在区域范围内泛洪。此外增加了Link LSA,用于向链路中其他路由器通告自己的链路本地地址以及IPv6地址前缀信息。Link LSA在本地链路范围内泛
洪。原OSPFv2中的Type 3 LSA更名为Inter Area Prefix LSA,Type 4 LSA更名为Inter Area Router LSA。
(3) OSPFv3中支持同一链路上运行多个OSPF实例,使用Instance ID字段标识不同的实例。OSPFv2中只允许一条链路运行一个实例。
(4) OSPFv3中使用链路本地地址作为报文源地址(不包括虚连
接),所有路由器学习本链路中其他路由器的链路本地地址,作为下一跳的IP地址,因此网络中只负责报文转发的路由器不需要配置全局的IPv6地址,从而节约大量的IPv6全局地址资源。OSPFv2中每个运行OSPF的接口都需要配置一个全局的IPv4地址。
(5) OSPFv3可以支持对未知类型的LSA的处理,而在OSPFv2中仅仅作简单的丢弃。
(6) OSPFv3报文使用IPv6内嵌的IPsec协议进行身份验证,取消了OSPFv2中的验证字段(报文格式如图4),简化了OSPF协议的处理过程。
2.3IPv6IS IS协议
IS IS(Intermediate System to Intermediate System intra domain routing information exchange protocol,中间系统对中间系统域内路由信息交换协议)是一种链路状态协议。支持IPv6的IS IS协议称为IPv6IS IS动态路由协议,主要是增加了支持IPv6的两个TLV(Type Length Value,类型-长度-值)和一个NLPID(Network Layer Protocol Identifier,网络层协议标识符)值。IS-IS报文封装在数据链路层的帧结构之中,称为PDU(Protocol Data Unit,协议数据单元)。PDU由通用报头、专用报头和变长字段组成,其中变长字段由多个TLV组成。IPv6IS IS新添加的TLV有两个,它们是:(1)IPv6 Reachability对应于IS IS中的普通可达性TLV和扩展可达性TLV,用来表达网络的可到达性;(2)IPv6 Interface Address对应原来的IP Interface Address,只不过原32位IPv4地址改为128位