互联网协议 — RIP 路由信息协议

目录

文章目录

RIP 路由信息协议

RIP(Routing Information Protocol,路由信息协议)是一种古早的 IGP 路由协议,早于互联网时代,它专为具有基本路由和无子网划分的较小网络域而设计。

RIP 是一种距离矢量协议,不可扩展,收敛速度慢,只能进行分类寻址,优点是易于部署和故障排除。作为纯粹的距离矢量协议,路由度量是跳数,即从源到目的地的跳数(距离),选择路由器跳数最少的路由作为最佳路径。RIPv1 不支持消息身份验证,因此不太适合 Internet 连接。除了 EIGRP 之外,大多数内部网关协议的负载平衡只是等成本路径。

RIPv2 是对协议标准的增强,旨在解决 RIPv1 的一些问题。主要区别在于 RIPv2 是一种 CIDR(无类别)协议,其中包含带有路由更新的子网掩码信息。还支持通过文本密码或 MD5 哈希对 RIPv2 邻居之间的消息进行身份验证。这提供了跨现代网络域的最低安全级别。

RIPv2 将路由更新发送到多播 224.0.0.9,而不是所有路由器都必须处理消息的较旧的 255.255.255.255 广播方法。RIPv2 路由器可以选择向 RIPv1 路由器发送广播以实现向后兼容性,问题在于 RIPv1 将汇总有类边界上的任何无类路由。

互联网协议 — RIP 路由信息协议

特征

  • 距离矢量路由协议
  • 内部网关协议(IGP)
  • 管理距离:120
  • 仅 IP 路由
  • IPv6 支持(RIPng)
  • 开放标准
  • 应用层(UDP 520端口)
  • 指标 = 跳数
  • 最佳路径 = 到达目的地的最少跳数
  • 最大跳数 = 15
  • 无类路由(RIPv2)
  • 标准子网掩码
  • 扁平拓扑
  • 仅邻居拓扑视图
  • 每 30 秒更新一次完整的路由
  • 组播地址:224.0.0.9(RIPv2)
  • 更新计时器 = 30 秒,按住计时器 = 180 秒
  • 环路预防:水平分割/路由中毒
  • RIPv2 消息认证:文本密码/MD5
  • 路由自动汇总:启用(默认)
  • 仅限中小型网域
  • 负载均衡 = 6 条等价路径(默认)

RIP 的报文类型及格式

RIP 协议报文使用 UDP 封装,使用的端口号是 520 。RIP 有两种报文,分别是请求(Request)报文和响应(Response)报文。RIPv1 和 RIPv2 的功能不同,所以报文中的字段定义有一些差别。Request 报文是向邻居请求全部或部分 RIP 路由信息,Response 报文是发送 RIP 路由更新,Response 报文中携带路由及路由的度量值等信息。

当路由器的接口激活 RIP 后,这个接口会立即发送一个 Request 报文和 Response 报文,并开始侦听 RIP 协议报文。然后开始周期性的发送 Response 报文。RIPv1 使用广播地址 255.255.255.255 作为协议报文的目的 IP 地址,而 RIPv2 使用组播地址 224.0.0.9 作为协议报文的目的 IP 地址。

当 RIP 路由器收到 Request 报文后,会使用 Response 报文进行回应,在报文中携带对方请求的路由信息。当 RIP 路由器收到 Response 报文后,会解析报文中的路由信息,如果路由信息是自己未发现的,并且路由的度量值有效,那么路由器将学习这条路由并添加到路由表中,同时为这条路由关联度量值、出接口和下一跳信息。

RIPv1

互联网协议 — RIP 路由信息协议

  • 命令(Command):表示 RIP 报文类型。值为 1 时表示 Request 报文,向直连路由器请求全部或部分路由信息。值为 2 时表示 Response 报文,用于发送路由更新。可以是 Request 报文的回应,也可以是路由器主动发送的。一个 Response 报文最多携带 25 个路由条目,当路由数量超过 25 时,会使用多个 Response 报文发送。

  • 版本(Version):RIPv1 时,值为 1 。

  • 地址族标识符(Address Family Identifier ,AFI):值为 2 时表示 IP 协议。如果是请求整个路由表的 Request 报文,则值为 0 ,同时 Request 报文有且只有一个路由条目,路由的目的网段为 0.0.0.0 ,度量值为 16 。

  • IP 地址(IP Address):路由的目的网络地址。

  • 度量值(Metric):路由的度量值。

RIPv2

互联网协议 — RIP 路由信息协议

  • 命令(Command):和 RIPv1 相同。

  • 版本(Version):RIPv2 时,值为 2 。

  • 地址族标识符(Address Family Identifier ,AFI):和 RIPv1 相同。

  • 路由标记(Route Tag):用于标记路由信息,默认值为 0 。当有一条外部路由引入并形成一条 RIP 路由时,这条路由设置路由标记。

  • IP 地址(IP Address):路由的目的网络地址。

  • 网络掩码(Netmask):RIPv2 定义的字段,用于表示路由的目的网络掩码,支持 VLSM(可变长子网掩码)。RIPv1 没有定义这个字段,不支持 VLSM 。

  • 下一跳(Next Hop):RIPv2 定义的字段,多路访问网络中,可自定义指定最优路径。通常路由器发送的路由更新中,下一跳字段为 0.0.0.0 ,收到的路由器将路由条目添加到路由表中,将路由的发送方设置为目的网段的下一跳。在特殊场景下,字段值会设置为非 0.0.0.0 。

  • 度量值(Metric):路由的度量值。

RIP 的路由宣告

每台运行 RIP 的路由器,都有一个 RIP 数据库,里面存着路由器所有的 RIP 路由,包括路由器本身的直连路由,以及从其它路由器收到的路由。RIP 数据库的路由条目包含:目的网络地址/网络掩码、度量值、下一跳地址、老化计时器以及路由状态标识等信息。RIP 数据库中的有效路由条目才会添加到路由器的路由表中。

每台运行 RIP 的路由器都会定期的通告自己的路由表,当路由器收到 RIP 路由更新时,如果这些路由是自己路由表里没有的,并且是有效的,那么就把它添加到路由表中,同时设置路由的度量值和下一跳地址。

路由器启动

互联网协议 — RIP 路由信息协议
R1 、R2 和 R3 三台路由器直连,三台路由器都已开启 RIP 。

在启动路由器后,所有路由器自动发现自己的直连路由,并将直连路由添加到路由表中。比如:R1 的路由表中添加了 192.168.12.0/24 和 1.0.0.0/8 两条直连路由。直连路由的 RIP 度量值为 0 跳,0 跳表示到达这个网段不需要经过路由器。

第一次交换路由信息

互联网协议 — RIP 路由信息协议

运行了 RIP 的路由器会将自己的路由通过 RIP 报文周期性的从接口发送出去。

第一次交换路由信息,R1 、R2 和 R3 都是通告自己的直连路由。R2 会将自己的路由表从 G0/0 和 G0/1 接口发送出去。以 192.168.23.0/24 为例,R2 从 G0/0 口发送给 R1 时,会将路由的度量值从 0 跳改为 1 跳,RIP 路由器将路由发送出去时会把跳数加 1 ,意思是要到达 192.168.23.0/24 需要经过一个 RIP 路由器。R1 收到 R2 发出的路由更新后,发现自己的路由表没有 192.168.23.0/24 这条路由,于是把这条路由添加到路由表中,路由的度量值为 1 跳,出接口设置为 G0/0 。

R3 也会收到 R2 的路由更新,R2 也会收到 R1 和 R3 发送的路由更新。经过第一轮的路由通告和学习,R1 学习到 192.168.23.0/24 的路由,R2 学习到 1.0.0.0/8 和 3.0.0.0/8 两条路由,R3 学习到 192.168.12.0/24 的路由。

路由收敛

互联网协议 — RIP 路由信息协议

来到下一个更新周期时,所有路由器又会把自己的路由发送出去。

R1 收到 R2 通告的路由,发现 3.0.0.0/8 不在路由表中,R1 就把这条路由添加到路由表,度量值为 2 跳,表示 R1 到达 3.0.0.0/8 需要经过两个路由器。另一边的 R3 也从 R2 学到了 1.0.0.0/8 的路由。这样三台路由器就有了全网各个网段的路由,路由表也稳定下来,这个状态说明网络中的路由已经完成了收敛。网络收敛后,路由器还是会周期性的通告路由,确保路由的有效性。

上一篇:rip实验(基础)


下一篇:动态路由