IPv6时代RIP路由协议研究与实现
Internet的迅猛发展,使得网络规模急剧膨胀,信息量直线上升,新应用层出不穷,原有的己发展20多年的网络互连协议版本4--IPv4协议由于其先天的缺陷(地址空间不足、路由选择效率不高、安全性差、服务质量不高以及缺乏对移动的有效支持等),己经不能从根本上适应网络发展的需要。在这样的背景下,下一代网络标准--IPv6协议应运而生。本文探讨了Ripng用于IPv6网络的RIP。在IPv6技术作为下一代互联网IP层技术已成定局的情况下,深入研究未来网络中路由技术的简单,易用协议Ripng是一项走在信息技术学科前沿的课题之一,具有重要的经济和社会意义。
一、 RIP基本工作原理
路由信息协议RIP(RoutingInformationProtocol)是互联网工程任务组(IETF)的内部网关协议工作组为IP网络专门设计的路由协议,是一种基于距离矢量算法的内部网关动态路由协议。
每个运行RIP的路由器都维护着一张RIP路由表,该路由表的内容如图1所示。
其中,下一跳(nexthop)表示下一站数据包要到达的地址,度量(metric)代表把数据包从本路由器送达目的站所需的花费(cost)。RIP协议支持的最大有效度量为15,当一条路由的度量达到16后,那条路由就被认为无效,并且认为对应的目的地不可达。
标志位标志此路由最近是否发生变化,以备触发更新时用到,年龄实际是个定时器,用于维护每条路由。在RIP中若哪条路由经过180秒后仍未被刷新,则该路由被认为不再有效,而把其度量置成16。
RIP路由器周期性地以多播形式向邻居发送自己的路由表拷贝,即<目的,度量>组,每个接收到该消息的路由器修改消息中路由的度量,在每条路由的度量上加上接收该路由消息接口的花费。然后,依据度量的大小来判断路由的好坏,把度量最小的一条路由放入路由表,其判断过程如下:
(1)查看路由表中是否已有到该目的的路由;(2)如果没找到,则添加该路由;(3)如果找到,只有在新度量更小时才更新路由,否则,忽略该路由。
图2是RIP的工作流程。由此图大家就可以很清楚的感受到RIP拥有如此简单的工作流程。
如图2所示,当在RouterA路由器的某接口上启动RIP,接口以多播形式向邻居发送路由表信息请求,请求邻居给自己发送路由表信息;邻居RouterB接收到路由表信息请求,发送整个路由表信息对请求进行响应;RouterA和RouterB在启动后就开始周期发送并周期更新路由器;RouterA检测到路由变化时,以多播形式向邻居发送触发更新,通知邻居路由变化。
二、IPv6时代RIP的演变
众所周知,如今的RIP已经从RIP-1发展到RIP-2,直到今天有变革意义的基于IPv6的Ripng!研究RIP的演变过程,剖析其各个发展阶段的异同点对于优化、发展该协议具有重要的意义。
RIP-1只在有子网划分的网络中支持子网,在该网络外部由于子网掩码很难得知,从而也就无法区分子网项和主机项,这样就需要强制使用严格层次路由:外部路由器把分组传递到该网中距离最近的路由器,而不考虑目的站点属于哪个子网。紧跟在严格层次路由之后是对连通性的要求,即这个网络中的每一个路由器都应该知道如何去往任何一个子网!
基于上述缺点,RIP-2定义了一套有效的RIP改进方案,把RIP-1的格式中含有的一些"必须为零"的域,进行了重新定义。
基于安全考虑添加了新的AFI项(0xFFFF)用来传送"验证数据";添加了"路由选择域"、"下一跳域",允许在单个路由器上运行多个RIP实例,指明发往目的IP地址的报文该发向哪里,"下一跳域"属性使得仅仅只有一个运行别种协议的路由器通告所有的路由,并且使得运行RIP的路由器能够找到正确运行别种协议的路由器作为下一跳以达到所有已知的别种协议的目的地址;添加了"子网掩码",达到可以支持VLSM(可变长子网掩码)和CIDR(无类别域间路由)的目的,增强子网选择路由的性能;添加了"路由标签",对外部路由进行标志。
RIP-2保留了RFC-1058中定义的"命令字"、"地址族标志符"、"IP地址"、"度量值"等域。
没有最好只有更好!在基于IPv4的RIP-1,RIP-2不断完善的状态下,IPv4虽然将一个成熟的互联网架构支撑了20年之久,但人们早已形成共识,那就是IPv6最终取代IPv4是大势所趋:128位地址格式所支持的IP地址数量可以彻底解决地址枯竭的问题;IPv4地址空间匮乏,路由选择效率差,安全性差,移动性差,服务质量保证差。所有这些IPv4问题将毫不犹豫地要求IPv6协议解决,于是Ripng(v6版本)将要,也必然会成为宠儿。
Ripng虽然隶属RIP家族,但毕竟它经历了一场变革。与RIP-1,RIP-2在各个方面都有差别:使用端口不同;分组格式不同