一、RIP简介
RIP(Routing Information Protocol,路由信息协议)是一种较为简单的内部网关协议(Interior Gateway Protocol,IGP),主要用于规模较小的网络中,比如校园网以及结构较简单的地区性网络。对于更为复杂的环境和大型网络,一般不使用RIP。
由于RIP的实现较为简单,在配置和维护管理方面也远比OSPF和IS-IS容易,因此在实际组网中仍有广泛的应用。
RIP是一种基于距离矢量(Distance-Vector)算法的协议,它通过UDP报文进行路由信息的交换,使用的端口号为520。
RIP使用跳数来衡量到达目的地址的距离,跳数称为度量值。在RIP中,路由器到与它直接相连网络的跳数为0,通过一个路由器可达的网络的跳数为1,其余依此类推。为限制收敛时间,RIP规定度量值取0~15之间的整数,大于或等于16的跳数被定义为无穷大,即目的网络或主机不可达。由于这个限制,使得RIP不适合应用于大型网络。
为提高性能,防止产生路由环路,RIP支持水平分割(Split Horizon)和毒性逆转(Poison Reverse)功能。
二、RIP防止环路机制
RIP协议向邻居通告的是自己的路由表,有可能会发生路由环路,可以通过以下机制来避免:
- 计数到无穷(Counting to infinity):将度量值等于16的路由定义为不可达(infinity)。在路由环路发生时,某条路由的度量值将会增加到16,该路由被认为不可达。
- 触发更新(Triggered Updates):RIP通过触发更新来避免在多个路由器之间形成路由环路的可能,而且可以加速网络的收敛速度。一旦某条路由的度量值发生了变化,就立刻向邻居路由器发布更新报文,而不是等到更新周期的到来。
- 水平分割(Split Horizon):RIP从某个接口学到的路由,不会从该接口再发回给邻居路由器。这样不但减少了带宽消耗,还可以防止路由环路。
- 毒性逆转(Poison Reverse):RIP从某个接口学到路由后,将该路由的度量值设置为16(不可达),并从原接口发回邻居路由器。利用这种方式,可以清除对方路由表中的无用信息。
三、RIP运行过程
RIP的运行过程如下:
(1) 路由器启动RIP后,便会向相邻的路由器发送请求报文(Request message),相邻的RIP路由器收到请求报文后,响应该请求,回送包含本地路由表信息的响应报文(Response message)。
(2) 路由器收到响应报文后,更新本地路由表,同时向相邻路由器发送触发更新报文,通告路由更新信息。相邻路由器收到触发更新报文后,又向其各自的相邻路由器发送触发更新报文。在一连串的触发更新广播后,各路由器都能得到并保持最新的路由信息。
(3) 路由器周期性向相邻路由器发送本地路由表,运行RIP协议的相邻路由器在收到报文后,对本地路由进行维护,选择一条最佳路由,再向其各自相邻网络发送更新信息,使更新的路由最终能达到全局有效。同时,RIP采用老化机制对超时的路由进行老化处理,以保证路由的实时性和有效性。
四、RIP配置
1、在指定网段使能RIP
RIP只在指定网段的接口上运行,指定网段的同时可以配置反码;对于不在指定网段上的接口,RIP既不在它上面接收和发送路由,也不将它的接口路由发布出去。因此,RIP启动后必须指定其工作网段。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动RIP,并进入RIP视图 |
rip [ process-id ] [ vpn-instance vpn-instance-name ] |
缺省情况下,系统没有启动RIP |
在指定网段上使能RIP |
network network-address [ wildcard-mask ] |
缺省情况下,没有网段使能RIP 在单进程情况下,可以使用network 0.0.0.0命令用来在所有接口上使能RIP;在多进程情况下,无法使用network 0.0.0.0命令 |
2、配置RIP版本
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
配置全局RIP版本 |
version { 1 | 2 } |
缺省情况下,未配置全局RIP版本。接口只能发送RIP-1广播报文,可以接收RIP-1广播/单播报文、RIP-2广播/组播/单播报文 |
退回系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口运行的RIP版本 |
rip version { 1 | 2 [ broadcast | multicast ] } |
缺省情况下,未配置接口运行的RIP版本。接口只能发送RIP-1广播报文,可以接收RIP-1广播/单播报文、RIP-2广播/组播/单播报文 |
3、水平分割
配置水平分割可以使得从一个接口学到的路由不能通过此接口向外发布,用于避免相邻路由器间的路由环路。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能水平分割功能 |
rip split-horizon |
缺省情况下,水平分割功能处于使能状态 |
4、毒性逆转
配置毒性逆转后,从一个接口学到的路由还可以从这个接口向外发布,但这些路由的度量值会设置为16(即不可达),可以用于避免相邻路由器间的路由环路。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能毒性逆转功能 |
rip poison-reverse |
缺省情况下,毒性逆转功能处于关闭状态 |
来源:https://www.cnblogs.com/xiaoyao881102/p/12365151.html