RIP协议是我们接触的较为早期的一个路由协议。对于这个协议的使用,我们需要作为基础知识来学习,因为之后的协议演进都是基于这个版本的。
RIP协议简介
RIP是Routing Information Protocol(路由信息协议)的简称,是一种基于D-V算法的简单动态路由协议,主要用于小型网络.它通过UDP交换路由信息,每隔30秒向外发送一次更新报文(将自己所有的路由表都发送给邻居).如果路由器经过180秒没有收到来自对方端的路由更新报文,则将所有来自此路由器的路由信息标志为不可达,如果在其后120 秒内仍未收到更新报文,就将该条路由从路由表中删除.
RIP使用跳数来衡量到达目的网络的距离,路由器到与它直接相连网络的跳数为0,通过一个路由器可达网络的跳数为1,其余依此类推.为限制收敛时间,RIP规定metric***跳数为15,高于此的都不可达,这是限制RIP不能用于大型网络的主要因素.
RIP协议处于UDP协议的上层,RIP所接收的路由信息都封装在UDP的数据报中,RIP在520号端口上接收来自远程路由器的路由修改信息,并对本地的路由表做相应地修改,同时通知其他路由器.通过这种方式,达到全局路由的同步.
RIP协议的实现
系统初始化
1.RIP启动时的初始路由表仅包含本路由器的一些直连接口路由.
2.RIP协议启动后向各接口广播一个Request报文.
3.邻居路由器的RIP协议从某接口收到Request报文后,根据自己的路由表,形成Response报文向该接口对应的网络广播.
4.RIP接收邻居路由器回复的包含邻居路由器路由表的Response报文,形成自己的路由表.
路由更新
RIP协议以30秒为周期用Response报文广播自己的路由表.
收到邻居发送而来的Response报文后,RIP协议计算报文中路由项的度量值,比较其与本地路由表路由项度量值的差别,更新自己的路由表.
报文中路由项度量值的计算公式为:metric=MIN(metric + cost, 16).其中metric为报文中携带的度量值信息,cost为接收报文的网络的度量值开销,缺省为 1(1 跳),16代表不可达.
RIP配置(以Cisco的路由器为例)
Router(config)#router rip—启动RIP路由协议
AH_CZ_TC_2500(config-router)# network [network range | all]—指定工作网段,RIP只在指定网段上的接口工作;对于不在指定网段上的接口,RIP既不在它上面接收和发送路由,也不将它的接口路由转发出去.
AH_CZ_TC_2500(config-router)# version [1|2—指定RIP的版本
AH_CZ_TC_2500(config-router)# maximum-paths [1-6]—指定等价路由的最多使用条数
AH_CZ_TC_2500(config-router)# passive-interface e0—可以使eth0口只接收RIP分组,但不发送rip分组,这个命令只有在需要的时候才配置.
AH_CZ_TC_2500(config-router)#int s0—进入单独的接口进行配置
AH_CZ_TC_2500(config-if)#ip rip [send|receive] version [1|2]—可以指定某个接口做发送或接口功能,并且执行哪一个版本的RIP
AH_CZ_TC_2500(config-if)#ip split-horizon—可以设置是否启用水平分割
由于此处命令太多,不一一例举,具体命令格式可以参考Cisco网站或其他命令参考手册.
RIP协议注意:RIP-1采用广播形式发送报文;RIP-2有两种传送方式,广播方式和多播方式,缺省将采用多播发送报文.多播发送报文的好处是在同一网络中那些未运行RIP的主机可以避免接收RIP的广播报文.当接口运行RIP-1时,只接收和发送RIP-1与RIP-2广播报文,不接收RIP-2多播报文;当接口运行在RIP-2多播方式时,只接收和发送RIP-2多播报文,不接收RIP-1与RIP-2广播报文.在缺省情况下,一个接口既可接收RIP更新报文,也可发送RIP更新报文.