华为 RIP 协议中 RIP 兼容版本、RIPv1、RIPv2 在收发 RIP 报文时的区别

RIP (Routing Information Protocol,路由信息协议)

RIP 是一个比较早期的协议,在实际部署中较少使用,但RIP 协议的机制是所有矢量跻由协议的基础,因此,掌握 RIP 协议的工作原理对研究矢量路由协议有重要的价值。

RIP 是一种较为简单的、基于距离矢量(Distance-Vector) 算法的内部网关协议(Interior Gateway Protocol), 它采用跳数 (Hop Count)作为度量来衡量到达目的网络的距离。

距离矢量算法最早是由 Ford 和 Fulkerson 这两个人提出的,正因为如此,在早期,距离矢量算法被称为 Ford-Fulkerson 算法,而现在也有人把它称为 Bellman-Ford 算法。

RIP 兼容版本

华为 VRP 平台启动 RIP 进程后,如果没有配置 RIP 版本,默认版本为兼容版本,对 version 1 和 version 2 都支持,且系统在向外发送 RIP 路由信息是以 RIPv1 发布的,而对接收到的 RIPv1 和 RIPv2 的路由都可以识别。

RIPv1 路由的发送和接收规则

路由发送规则

将要发送的前缀网段和出接口网段进行匹配,有以下情况。

如果不在同一主网,那么此为主网边界,将前缀网段自动汇总为有类网络号,并且发送前缀到出接口。

如果在同一主网,检查要发送的前缀是否为 32 位掩码。

如果是,发送 32 位前缀到出接口。

如果不是,检查前缀和出口掩码是否相同。

如果不同,抑制发送或者汇总为主网络号。

如果相同,没有边界,发送正确前缀到出口。

路由接收规则

当路由器从某个接口接收到一个前缀后,有以下情况。

如果发现是主网络号,直接放入路由表,掩码是 8/16/24。

如果不是主网络号,将收到的目标前缀与接口网段进行匹配。

如果不在同一主网,生成有类路由,掩码按有类路由计算,放入路由表。

如果在同一主网,使用该接口的掩码与路由前缀做 “与” 运算,然后检查该前缀是网段地址还是主机地址。

如果是网段地址,生成路由,掩码等于自己的接口掩码,放入路由表。

如果不是网段地址,就默认是主机,生成 32 位主机路由,放入路由表。

RIPv1 和 RIPv2 比较

RIPv1 和 RIPv2 共同点

  • RIPv1 和 RIPv2 报文格式一致,都是采用 UDP 封装,并且监听 520 端口号 (源端口和目的端的端口号都是 520)。

  • 报文类型一样,都是两种报文:request 和 response。

  • 采用的度量值一样,都使用 Hop 作为度量值,最大 15 跳,如果达到 16 跳,则认为目标不可达。

  • 定时器是一致的。

RIPv1 和 RIPv2 不同点

  • RIPv1 采用的是广播更新报文,RIPv2 默认采用组播更新,也可以将 RIPv2 更改为使用广播更新。通过组播方式替代广播方式的更新可以降低设备的负担,从而提高了效率。

  • RIPv1 是有类的路由协议,传递路由时不能携带子网掩码,当路由器收到路由后,子网掩码是采取猜测的方式获取的,以至于路由表存在错误路由的可能。而 RIPv2 是无类的路由协议,路由传递时可以携带子网掩码,不会出现上述问题。

  • RIPv1 不支持 VLSM、CIDR, 而 RIPv2 可以支持,因此可以更加灵活地部署网络。

  • RIPv1 无法关闭自动汇总,且不支持手动汇总,会带来不连续子网的问题。而 RIPv2 可以关闭自动汇总,并且能够在网络的任意地方进行手动汇总,可以减少路由表的大小,降低网络不稳定所带来的影响。

  • RIPv1 不支持路由标记,而 RIPv2 支持路由标记。通过设置路由标记可以为来自外部的路由统一实施路由策略,使用路由标记可以有效地防止多协议之间相互引入造成的环路问题。

  • RIPv1 报文中不含 Next-hop 属性,而 RIPv2 支持 Next-hop 属性,该属性可以解决 RIP 的次优路径问题,有全 0 (0.0.0.0) 和非全 0 (如 1.2.3.4) 的两种形式。

    如果 Next-hop 字段为全 0 地址,那么在路由表中,到达该目标网络的下一跳地址即为发送响应报文的源 IP 地址,到达该目标网段的数据包将会发往该接口地址。

    如果 Next-hop 字段为非全 0 地址 (多出现在一个广播多址网络中),则发往目标网段的数据包会被路由器直接发往此非全 0 的接口地址,因为该地址一定是最优的下一跳

  • RIPv1 不支持认证。RIPv2 增加了对认证的支持,可以提供明文和 MD5 两种方式认证,增强安全性。

RIPv1 vs RIPv2

terms RIPv1 RIPv2
RFC RFC 1058 RFC 1721,1722 and 2453
Routing Classful Classful and Classless
Routing algorithm Bellman-Ford Distance-Vector Bellman-Ford Distance-Vector
authentication not supported supported(clear text, MD5)
secure less secure more secure
hop count limit 15 (16 is considered unreachable) 15 (16 is considered unreachable)
Path Metric hop count hop count
Administrative Distance 120 120
Protocol Port UDP 520 UDP 520
routing update address Broadcast 255.255.255.255 Multicast 224.0.0.9
trigger update not provided provided
subnet mask not supported supported
manual route summarization not supported supported
CIDR not supported supported
VLSM not supported supported

clear text,即 simple password 。

RIP 兼容版本、RIPv1、RIPv2 在收发 RIP 报文时的区别

举例场景

A、B 两台路由器 RIP 协议互连,讨论以下几种情况:

1)A 指定运行 version 1,B- 指定运行 version 2

A 将以 version 1 向外发送 RIP 路由信息,对接收到的非 version 1 的路由信息不予接收。

B 将以 version 2 向外发送 RIP 路由信息,对接收到的非 version 2 的路由信息不予接收。

在这种情况下,A、B 之间彼此都不能学到对方的 RIP 路由信息。

2)A 指定运行 version 1,B 未指定具体版本

A 将以 version 1 向外发送 RIP 路由信息,对接收到的非 version 1 的路由信息不予接收。

B 将以 version 1 向外发送 RIP 路由信息,对接收到的 version 1 和 version 2 的路由信息都可以正常学习。

在这种情况下,A、B 之间彼此都可以学到对方的 RIP 路由信息。

3)A 指定运行 version 2,B 未指定具体版本

A 将以 version 2 向外发送 RIP 路由信息,对接收到的非 version 2 的路由信息不予接收。

B 将以 version 1 向外发送 RIP 路由信息,对接收到的 version 1 和 version 2 的路由信息都可以正常学习。

在这种情况下,A学不到B发布的 RIP 路由;B 可以学到 A 发布的 RIP 路由。

4)A 指定运行 version 1(或 version 2),B 指定运行 version 1(或 version 2)

A 将以 version 1(或 version 2)向外发送 RIP 路由信息,对接收到的非 version 1(或 version 2)的路由信息不予接收。

B 将以 version 1(或 version 2)向外发送 RIP 路由信息,对接收到的非 version 1(或 version 2)的路由信息不予接收。

在这种情况下,A、B 之间彼此都可以学到对方的 RIP 路由信息。


via: huawei

相关推荐

  1. RIPv1RIPv2区别

    2024-07-09 21:38:04       17 阅读
  2. RIP协议

    2024-07-09 21:38:04       20 阅读
  3. <span style='color:red;'>RIP</span><span style='color:red;'>协议</span>

    RIP协议

    2024-07-09 21:38:04      17 阅读
  4. RIP协议

    2024-07-09 21:38:04       9 阅读

最近更新

  1. Amazon Bedrock 常用场景及 Python 实现

    2024-07-09 21:38:04       0 阅读
  2. go语言web框架:Echo超详细一文搞透

    2024-07-09 21:38:04       0 阅读
  3. OJ-0718

    2024-07-09 21:38:04       0 阅读
  4. 【Python中的垃圾回收机制是什么】

    2024-07-09 21:38:04       0 阅读
  5. 基于深度学习的人脸表情识别系统

    2024-07-09 21:38:04       0 阅读
  6. Rancher

    Rancher

    2024-07-09 21:38:04      0 阅读
  7. 探索单片机的光耦:定义、作用与应用

    2024-07-09 21:38:04       0 阅读

热门阅读

  1. mysql面试题 Day5

    2024-07-09 21:38:04       5 阅读
  2. Xcode简介

    2024-07-09 21:38:04       5 阅读
  3. iOS项目怎样进行二进制重排

    2024-07-09 21:38:04       7 阅读
  4. 相机光学(二十八)——感光度(ISO)

    2024-07-09 21:38:04       5 阅读
  5. 【Adobe】Photoshop图层的使用

    2024-07-09 21:38:04       6 阅读
  6. Rust破界:前端革新与Vite重构的深度透视(上)

    2024-07-09 21:38:04       5 阅读
  7. bash终端快捷键

    2024-07-09 21:38:04       6 阅读
  8. ChatGPT 5.0:一年半后的展望与看法

    2024-07-09 21:38:04       4 阅读
  9. python实现excel数据自动统计

    2024-07-09 21:38:04       5 阅读
  10. NIO基础

    NIO基础

    2024-07-09 21:38:04      6 阅读