距离矢量路由协议——RIP

一、RIP原理

路由器运行RIP后,会优先发送路由更新请求,收到请求的路由器会发送自己的RIP路由进行响应,网络稳定后路由器会周期性的发送路由更新信息。RIP使用跳数作为度量值来衡量到达目标网络的聚类。缺省条件下直连路由跳数为0,当路由器收到其他路由器发送的RIP路由信息时会把跳数加1,。RIP规定超过15跳的网络不可达。

路由器启动时,路由表中只会包含直连路由。运行RIP之后,路由器会发送Request报文,用来请求邻居路由器的RIP路由。运行RIP的邻居路由器收到该Request报文后,会根据自己的路由表,生成Response报文进行回复。路由器在收到Response报文后,会将相应的路由添加到自己的路由表中。
RIP网络稳定以后,每个路由器会周期性地向邻居路由器通告自己的整张路由表中的路由信息,默认周期为30秒。邻居路由器根据收到的路由信息刷新自己的路由表。

二、工作过程

  • 依据传闻进行路由选择

在这里插入图片描述
距离矢量路由协议——RIP_第1张图片
t0时段直接产生的路由进入路由表,t1时段所有路由器向他直连的路由器宣告自己的路由表,其他路由器收到路由表后与自己的路由表比较,计算自己没有的路由条目,t2时段重复t1时段的工作,知道所有的路由学习完成。

三、RIP度量

  • RIP使用跳数作为度量值来衡量到达目的网络的距离。
  • 缺省情况下,直连网络的路由跳数为0。当路由器发送路由更新时,会把度量值加1。RIP规定超过15跳为网络不可达。
    距离矢量路由协议——RIP_第2张图片
    RIP使用跳数作为度量值来衡量到达目的网络的距离。在RIP中,路由器到与它直接相连网络的跳数为0,每经过一个路由器后跳数加1。为限制收敛时间,RIP规定跳数的取值范围为0~15之间的整数,大于15的跳数被定义为无穷大,即目的网络或主机不可达。路由器从某一邻居路由器收到路由更新报文时,将根据以下原则更新本路由器的RIP 路由表:
  1. 对于本路由表中已有的路由项,当该路由项的下一跳是该邻居路由器时,不论度量值将增大或是减少,都更新该路由项(度量值相同时只将其老化定时器清零。路由表中的每一路由项都对应了一个老化定时器,当路由项在180 秒内没有任何更新时,定时器超时,该路由项的度量值变为不可达)。
  2. 当该路由项的下一跳不是该邻居路由器时,如果度量值将减少,则更新该路由项。
  3. 对于本路由表中不存在的路由项,如果度量值小于16,则在路由表中增加该路由项。 某路由项的度量值变为不可达后,该路由会在 Response
    报文中发布四次(120 秒),然后从路由表中清除。
    在本示例中,路由器RTA通过两个接口学习路由信息,每条路由信息都有相应的度量值,到达目的网络的最佳路由就是通过这些度量值计算出来的。

四、协议报文

RIP协议有两个版本RIPv1和RIPv2
距离矢量路由协议——RIP_第3张图片
RIPv1为有类别路由协议,不支持VLSM和CIDR。 RIPv2为无类别路由协议,支持VLSM,支持路由聚合与CIDR。
RIPv1使用广播发送报文;RIPv2有两种发送方式:广播方式和组播方式,缺省是组播方式。RIPv2的组播地址为224.0.0.9。组播发送报文的好处是在同一网络中那些没有运行RIP的网段可以避免接收RIP的广播报文;另外,组播发送报文还可以使运行RIPv1的网段避免错误地接收和处理RIPv2中带有子网掩码的路由。
RIPv1不支持认证功能,RIPv2支持明文认证和MD5密文认证。

4.1 RIPv1报文格式

距离矢量路由协议——RIP_第4张图片

RIP协议通过UDP交换路由信息,端口号为520。RIPv1以广播形式发送路由信息,目的IP地址为广播地255.255.255.255。
报文格式中每个字段的值和作用:

表项 释义
Command 表示该报文是一个请求报文还是响应报文,只能取1或者2。1表示该报文是请求报文,2表示该报文是响应报文
Version 表示RIP的版本信息。对于RIPv1,该字段的值为1
Address Family Identifier(AFI) 表示地址标识信息,对于IP协议,其值为2
IP address 表示该路由条目的目的IP地址。这一项可以是网络地址、主机地址
Metric 标识该路由条目的度量值,取值范围1-16

一个RIP路由更新消息中最多可包含25条路由表项,每个路由表项都携带了目的网络的地址和度量值。整个RIP报文大小限制为不超过504字节。如果整个路由表的更新消息超过该大小,需要发送多个RIPv1报文

4.2 RIPv2报文格式

距离矢量路由协议——RIP_第5张图片
RIPv2在RIPv1基础上进行了扩展,但RIPv2的报文格式仍然同RIPv1类似。
其中不同的字段如下所示:

表项 释义
AFI :地址族标识除了表示支持的协议类型外,还可以用来描述认证信息
Route tag 用于标记外部路由
Subnet Mask 指定IP地址的子网掩码,定义IP地址的网络或子网部分
Next Hop 指定通往目的地址的下一跳IP地址

4.3 RIPv2认证功能

  • RIPv2支持对协议报文进行认证,认证方式有明文认证和MD5认证两种
    距离矢量路由协议——RIP_第6张图片
    RIPv2的认证功能是一种过滤恶意路由信息的方法,该方法根据key值来检查从有效对端设备接收到的报文。这个key值是每个接口上都可以配置的一个明文密码串,相应的认证类型(Authentication Type)的值为2。早期的RIPv2只支持简单明文认证,安全性低,RIPv2引入了加密认证功能,开始是通过支持MD5认证来实现,后来通过支持HMAC-SHA-1认证进一步增强了安全性。本示例只介绍了简单明文认证原理。

五、RIP环路

  • 当网络发生故障时,RIP网络有可能产生路由环路。

距离矢量路由协议——RIP_第7张图片
如图所示,RIP网络正常运行时,RTA会通过RTB学习到10.0.0.0/8网络的路由,度量值为1。一旦路由器RTB的直连网络10.0.0.0/8产生故障,RTB会立即检测到该故障,并认为该路由不可达。此时,RTA还没有收到该路由不可达的信息,于是会继续向RTB发送度量值为2的通往10.0.0.0/8的路由信息。RTB会学习此路由信息,认为可以通过RTA到达10.0.0.0/8网络。此后,RTB发送的更新路由表,又会导致RTA路由表的更新,RTA会新增一条度量值为3的10.0.0.0/8网络路由表项,从而形成路由环路。这个过程会持续下去,直到度量值为16。

六、RIP防环机制

6.1水平分割

  • 路由器从某个接口学到的路由,不会从该接口再发回给邻居路由器。

距离矢量路由协议——RIP_第8张图片
RIP路由协议引入了很多机制来解决环路问题,除了之前介绍的最大跳数,还有水平分割机制。水平分割的原理是,路由器从某个接口学习到的路由,不会再从该接口发出去。也就是说,RTA从RTB学习到的10.0.0.0/8网络的路由不会再从RTA的接收接口重新通告给RTB,由此避免了路由环路的产生。

6.2 毒性反转

  • 毒性反转是指路由器从某个接口学到路由后,将该路由的跳数设置为16,并从原接收接口发回给邻居路由器。
    距离矢量路由协议——RIP_第9张图片
    RIP的防环机制中还包括毒性反转,毒性反转机制的实现可以使错误路由立即超时。配置了毒性反转之后,RIP从某个接口学习到路由之后,发回给邻居路由器时会将该路由的跳数设置为16。利用这种方式,可以清除对方路由表中的无用路由。本示例中,RTB向RTA通告了度量值为1的10.0.0.0/8路由,RTA在通告给RTB时将该路由度量值设为16。如果10.0.0.0/8网络发生故障,RTB便不会认为可以通过RTA到达10.0.0.0/8网络,因此就可以避免路由环路的产生。

6.3 触发更新

  • 触发更新是指当路由信息发生变化时,立即向邻居设备发送触发更新报文。
    距离矢量路由协议——RIP_第10张图片
    缺省情况下,一台RIP路由器每30秒会发送一次路由表更新给邻居路由器。当本地路由信息发生变化时,触发更新功能允许路由器立即发送触发更新报文给邻居路由器,来通知路由信息更新,而不需要等待更新定时器超时,从而加速了网络收敛。

七、 配置实验

实验拓扑:
距离矢量路由协议——RIP_第11张图片
IP地址配置:
AR1:距离矢量路由协议——RIP_第12张图片
AR2:距离矢量路由协议——RIP_第13张图片
AR3:在这里插入图片描述
RIP配置:

[Huawei]rip
[Huawei-rip-1]version 2 
[Huawei-rip-1]network 10.0.0.0
[Huawei]interface GigabitEthernet 0/0/0 
[Huawei-GigabitEthernet0/0/0]rip metricin 2   # RIP配置Metricin

命令rip metricin 用于修改接口上应用的度量值(注意:该命令所指定的度量值会与当前路由的度量值相加)。当路由器的一个接口收到路由时,路由器会首先将接口的附加度量值增加到该路由上,然后将路由加入路由表中。
例如AR1发送的10.1.1.0/30路由条目的度量值为1,由于在AR2的GigabitEthernet0/0/0接口上配置了rip metricin 2,所以当路由到达AR2的接口时,AR2会将该路由条目的度量值加2,最后该路由的度量值为3。


[Huawei]interface GigabitEthernet 0/0/0 
[Huawei-GigabitEthernet0/0/0]rip metricout 2

命令rip metricout用于路由器在通告RIP路由时修改路由的度量值。一般情况下,在将路由表项转发到下一跳之前,RIP会将度量值加1。如果配置了rip metricout命令,则只应用命令中配置的度量值。即,当路由器发布一条路由时,此命令配置的度量值会在发布该路由之前附加在这条路由上,但本地路由表中的度量值不会发生改变。
例如,缺省情况下,AR1发送的10.1.1.0/30路由条目的度量值为1。但是,由于在AR1
GigabitEthernet0/0/0接口上配置了rip metricout 2,所以AR2会将该路由条目的度量值设置为2,然后发送给AR2。

[Huawei]interface GigabitEthernet 0/0/0 
[Huawei-GigabitEthernet0/0/0]rip split-horizon   # 配置水平分割
[Huawei-GigabitEthernet0/0/0]rip poison-reverse  # 配置毒性反转
  • 两个特性同时配置后,只有rip poison-reverse会生效。

水平分割和毒性反转都是基于每个接口来配置的。缺省情况下,每个接口都启用了rip split-horizon命令(NBMA网络除外)以防止路由环路。

[Huawei]interface GigabitEthernet 0/0/0
[Huawei-GigabitEthernet0/0/0]undo rip output  #禁止发送RIP报文

命令rip output用于配置允许一个接口发送RIP更新消息。如果想要禁止指定接口发送RIP更新消息,可以在接口上运行命令undo rip output。缺省情况下,ARG3系列路由器允许接口发送RIP报文。
企业网络中,可以通过运行命令undo rip output来防止连接外网的接口发布内部路由。

[Huawei]interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]undo rip input    #接口禁止接收RIP报文

rip input命令用来配置允许指定接口接收RIP报文。
undo rip input命令用来禁止指定接口接收RIP报文。运行命令undo rip input之后,该接口所收到的RIP报文会被立即丢弃。缺省情况下,接口可以接收RIP报文。

[Huawei]rip 1
[Huawei-rip-1]silent-interface GigabitEthernet 0/0/1

silent-interface命令用来抑制接口,使其只接收RIP报文,更新自己的路由表,但不发送RIP报文。
命令silent-interface比命令rip input和rip output的优先级更高。命令silent-interface all表示抑制所有接口,此命令优先级最高,在配置该命令之后,所有接口都被抑制。
命令silent-interface通常会配置在NBMA网络上。在NBMA网络上,一些路由器需要接收RIP更新消息但是不需要广播或者组播路由器自身的路由更新,而是通过命令peer 与对端路由器建立关系。

你可能感兴趣的:(数通,路由器)