动态路由协议----RIP

RIP:Routing Information Protocol 路由信息协议  


RIP:Routing Information Protocol 路由信息协议

  • 标准的距离矢量路由协议,邻居(直连)间直接共享路由表
  • 版本分类:RIPv1、RIPV2(IPV4);RIPng(IPV6)
  • 使用周期更新和触发更新
    • 30s周期更新---保活、确认
    • 触发更新---结构突变时,及时进行收敛
  • 基于UDP 520端口工作(不可靠)
  • 管理距离(AD)值120,使用跳数作为度量值,最大15跳,16跳为不可达
  • 只存在更新包(update),携带路由条目信息和度量值
  • 支持等开销负载均衡,默认4条,最大6条,IOS版本12.4以上支持16条

 RIPv1 和 RIPv2的共同特性:

  1. 以到达目的网络的最小跳数作为路由选择度量标准,而不是以链路带宽和延迟进行选择
  2. 最大跳数为15跳,这限制了网络的规模
  3. 默认路由更新周期为30s,同时支持触发更新,并使用UDP协议的520端口
  4. 管理距离120
  5. 支持等价路径(在等价路径上负载均衡),默认为4条,最大为6条

RIP协议的三个要点:

  1. 仅和相邻路由器交换信息,不相邻的路由器不进行信息的交换;
  2. 交换的信息是当前本路由器所知道的全部信息,即自己的路由表;
  3. 按固定的时间间隔交换路由信息,例如,每隔 30 秒

RIPv1 和 RIPv2的区别:

  • 更新方式:
    • v1 广播更新,目标IP:255.255.255.255
    • v2 组播更新,目标IP:224.0.0.9
  • 更新时是否携带掩码:
    • v1(有类) :更新时不携带掩码,按照主类网络的掩码的进行发送;10.1.1.1  255.0.0.0
    • v2(无类):更新时携带掩码;10.1.1.1/24
  • v2支持手工认证,邻居间身份核实

 路由防环机制(6个):

     机制                                                                         解释
定义最大值最大跳数为15跳,16跳标记为不可达
水平分割(Split Horizon)

路由器从某个接口接收到的更新信息不允许再从这个接口发回去

它能够阻止路由环路的产生,减少路由器更新信息占用的链路带宽资源

路由中毒(Router Poisoning)

将不可达网络度量值置为无穷大(RIP为16),而不是从路由表中删除这条路由表项,并向所有邻居路由器发送此路由不可达的信息

这种为了删除路由信息而洪泛的行为,被称为路由中毒

反向中毒(毒化反转)

触发更新:当网络稳定之后存在断开网络 时,将立即产生跳数为16跳的毒性更新包并发送到邻居路由器来告知邻居该路径不可达,收到该毒性更新包的邻居将立即删除与之有关的路由条目,之后邻居打破水平分割机制将信息再次发出,来标记确认;

分为主动发送和超时发送

抑制更新时间

当路由器收到一个网络不可达信息后,标记此路由不可访问,并启动一个抑制计时器,如果再次收到从邻居发送来的此路由可达的更新信息,就标记为可以访问,并取消抑制计时器

反之,在抑制计时器内仍没有收到任何更好的更新,就向其他路由传播此路由不可访问的信息;

触发更新正常情况下,路由器30s将路由表发送给邻居路由器。触发更新指当检测到网络故障时,路由器会立即发送一个更新信息给邻居路由表,并依次传播到整个网络

距离矢量路由协议通过定期广播路由表来跟踪互联网的变化,收敛慢,因此每台路由器不能同时或接近同时完成路由表的更新;

因而产生了不协调或者矛盾的路由选择条目,就会发生路由环路问题,只是用户的数据包不停的在网络上循环发送,造成网络资源的严重浪费;


RIP的缺点:

  1. 以跳数作为度量值,会选出非最优路径
  2. 度量值最大为16,限制了网络规模,所有只适用于小型网络
  3. 可靠性差,接受来自任何设备的更新
  4. 收敛速度慢,通常需要5min左右;容易造成环路;为了避免环路,RIP采用水平分割、毒性逆转、定义最大跳数、触发更新和抑制计时器5个机制来避免路由环路
  5. 因发送全部路由表中的信息,RIP协议占用太多的带宽

RIP的消息类型和报文模式:

  • RIP有两种消息类型,request(请求消息)和response(响应消息)
    • request:RIP的request消息在特殊情况下发送,当路由器需要时它可以提供即时的路由信息;它可以请求全部的路由条目也可以请求具体的某些路由条目;最常见的例子是当路由器第一次加入网络时,通常会发送request消息,以要求获取相邻路由器的最新路由信息;
    • response:当RIP接收到request消息,将处理并发送一个response消息,消息包含自己的整个路由表或请求要求的条目;正常情况下,路由器通常不会发送对路由消息有特殊要求的请求信息;RIP会每30s发送一个response消息,用于路由表更新;
  • RIP报文使用UDP进行传输,即将整个报文封装成UDP数据报的数据部分,端口为520。

  • AFI为0表示请求所有的路由条目且metric值为16
  • command为1时表示为请求,2时表示为响应
  • RIP最大一次只能传25个路由条目.如果超过25个就要分多个数据包进行传递,加上8字节的UDP头部,所以RIP的最大报文为512字节
  • 如果当开启验证的时候会拿20的字节出来存放验证字段.此时就只能传24个路由条目了

       那么一个路由器是如何知道整个网络的路由信息的呢?RIP协议刚开始工作时,和相邻的路由器交换信息,整个网络中的路由器都是如此,在经过许多次的信息交换之后,路由信息被逐渐传递出去,最终,任何一个路由器都会知道到某一个网络的最短路径,和下一跳地址。

      RIP协议最重要的就是它的距离向量算法----距离矢量算法

      对于某一个路由器来说,从它相邻的路由器X发过来的RIP报文(内容是:到某个网络N的最短路径,以及下一跳地址,),首先要做如下处理: 

  • 修改报文中的所有项目,将路由表项中的下一跳地址都改为X,然后将距离加一,
  • 对于修改过的报文,进行如下步步骤:
    • 若路由器的路由表中,不存在到N的路由,则将修改过的表项加入到自己的路由表中
    • 若路由器的路由表中,存在到N的路由,再进行如下步骤
      • 若路由表中的下一跳地址就是X,那么将修改过的表项替换原来的路由(以最新的消息为准)。
      • 若路由表中的下一跳地址不是X,则将自己的路由的距离,于修改过的表项中的距离相比,若修改过的表项中的距离比自己的小,那么替换路由,否则什么也不做。
  • 若三分钟还没有收到相邻路由器发过来的RIP报文,则将此相邻路由标记为不可到达,即把距离设置为16.
  • 完成

以上是语言描述的RIP协议的距离向量算法。

每个路由器不断于其响铃路由器交换信息,重复以上步骤,最终,整个自治系统中的所有路由器都会知道整个网络的结构。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值