Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

RIP 和 RIPng 概述

RIP 概述

RIP 是一种内部网关协议 (IGP),使用距离向量算法来确定到达目标的最佳路由,将跃点计数用作指标。

在 RIP 网络中,每个路由器的转发表都会通过路由表信息泛滥分布到节点之间。由于拓扑更改在整个网络中都会泛洪,因此每个节点都会维护相同的目标列表。然后,根据在网络中每个节点进行的路径成本计算,数据包被路由到这些目标。

注意:

一般来说, RIP 术语是指 RIP 版本 1 和 RIP 版本 2。

本主题包含以下部分:

距离矢量路由协议

距离向量路由协议传输包括距离向量(通常表示为到达目标的跃点数)的路由信息。此信息会定期泛洪出所有支持协议的接口(在 RIP 的情况下每 30 秒),以创建存储在每个节点本地拓扑数据库中的网络映射。 图 1 显示了距离向量路由的工作原理。

图 1:距离向量协议 Distance-Vector Protocol

图 1 中,路由器 A 和 B 在相邻接口上启用了 RIP。路由器 A 有已知的 RIP 邻接路由器 C、D 和 E,分别距离 1、2 和 3 个跃点。路由器 B 已知 RIP 邻接路由器 X、Y 和 Z,分别距离 1、2 和 3 个跃点。每 30 秒,每个路由器都会将整个路由表信息泛洪到所有支持 RIP 的接口。在这种情况下,泛洪会通过 RIP 链路交换路由表信息。

当路由器 A 从路由器 B 接收路由信息时,它会将 1 添加到跃点计数,以确定新的跃点计数。例如,路由器 X 的跃点计数为 1,但当路由器 A 将路由导入 X 时,新的跃点计数为 2。导入的路由还包括有关获知路由的位置信息,因此原始路由会作为通过路由器 B 的路由导入到路由器 X,跃点计数为 2。

当收到到同一主机的多个路由时,RIP 使用距离向量算法确定要导入转发表中的路径。将导入跃点计数最小的路由。如果存在多个具有相同跃点计数的路由,则所有路由均会导入转发表,并且流量将沿着路径以轮询方式发送。

RIP 协议概述

RIP IGP 使用 Bellman-Ford 或 距离向量算法来确定到目标的最佳路由。RIP 使用跃点计数作为指标。RIP 使主机和路由器能够交换信息,以便通过基于 IP 的网络计算路由。RIP 打算用作中型合理同质网络的 IGP。

Junos® 操作系统 (Junos OS) 支持 RIP 版本 1 和 2。

注意:

多点接口不支持 RIP。

RIP 版本 1 数据包包含通过网络路由数据包所需的最少信息。但是,此版本的 RIP 不支持身份验证或子网。

RIP 使用用户数据报协议 (UDP) 端口 520。

RIP 具有以下架构限制:

  • 最长的网络路径不能超过 15 个跃点(假设每个网络或跃点的成本为 1)。

  • RIP 依赖于无限计数来解决某些异常情况 — 当网络由数百台路由器组成时,当形成路由环路时,解决下一跃点所需的时间和网络带宽可能很大。

  • RIP 仅使用固定指标来选择路由。其他 IGP 则使用其他参数,例如测量的延迟、可靠性和负载。

RIP 数据包

RIP 数据包包含以下字段:

  • 命令 — 指示数据包是请求消息还是响应消息。请求消息查找路由器路由表的信息。响应消息会定期发送,也会在收到请求消息时发送。定期响应消息称为 更新消息。更新消息包含命令和版本字段以及 25 个目标(默认情况下),每个目标都包含目标 IP 地址和到达该目标的指标。

    注意:

    从 Junos OS 11.1 版开始,有三个额外的命令字段类型可用于支持 RIP 需求电路。为 RIP 需求电路配置接口时,命令字段指示数据包是更新请求、更新响应还是更新确认消息。邻接方接口按需发送更新,而不是定期发送。这些命令字段类型仅在为 RIP 需求电路配置的接口上有效。有关详细信息,请参阅 RIP 需求电路概述

  • 版本号 — 始发路由器运行的 RIP 版本。

  • 地址族标识符 — 始发路由器使用的地址族。家族始终是 IP。

  • 地址 — 数据包中包含的 IP 地址。

  • 指标 — 为地址播发的指标值。

  • 掩码 — 与 IP 地址关联的掩码(仅限 RIP 版本 2)。

  • 下一跃点 — 下一跃点路由器的 IP 地址(仅限 RIP 版本 2)。

通过 RIP 请求和 RIP 响应数据包在 RIP 网络中交换路由信息。刚刚启动的路由器可以在所有支持 RIP 的接口上广播 RIP 请求。在这些链路上运行 RIP 的任何路由器都接收请求,并通过立即向路由器发送 RIP 响应数据包来做出响应。响应数据包包含构建网络拓扑图的本地副本所需的路由表信息。

在没有 RIP 请求数据包的情况下,所有 RIP 路由器每 30 秒在所有支持 RIP 的接口上广播一次 RIP 响应数据包。RIP 广播是在整个网络中泛洪拓扑信息的主要方式。

路由器通过 RIP 了解特定目标后,会启动计时器。每次收到包含目标信息的新响应数据包时,路由器都会将计时器重置为零。但是,如果路由器在 180 秒内未收到有关特定目标的更新,则会从其 RIP 路由表中移除该目标。

除了每 30 秒定期传输一次 RIP 数据包之外,如果路由器检测到新邻接方或检测到某个接口不可用,它将生成触发的更新。新的路由信息会立即广播出所有支持 RIP 的接口,并且更改会反映在所有后续 RIP 响应数据包中。

最大化跃点计数

要成功通过 RIP 网络路由流量,就需要网络中的每个节点都维护相同的拓扑视图。每 30 秒在 RIP 邻接方之间广播一次拓扑信息。如果路由器 A 远离新主机、路由器 B 的许多跃点,则到 B 的路由可能需要很长时间才能通过网络传播并导入到路由器 A 的路由表中。如果两个路由器彼此之间相距 5 个跃点,则路由器 A 在路由器 B 联机后 2.5 分钟(每跳 30 秒)之前无法将路由导入路由器 B。对于大量跃点,延迟变得令人望而却步。为了防止这种延迟增加得任意大,RIP 实施的最大跃点计数为 15 个跃点。距离超过 15 个跃点的任何前缀均被视为无法访问,并分配的跃点计数等于无限。这个最大跃点计数称为 网络直径

水平分割和毒气反向效率技术

由于 RIP 功能会定期将整个路由表泛洪到网络,因此会产生大量流量。水平分割和毒物反向技术有助于减少 RIP 主机发出的网络流量,并提高路由信息的传输效率。

如果路由器在特定接口上收到一组路由播发,RIP 将确定不需要将这些播发重新传输出同一接口。这种称为 “水平分割”的技术通过消除该接口上其他邻接方已经学习的信息,有助于限制 RIP 路由流量。 图 2 显示了水平分割技术的示例。

图 2:水平分割示例 Split Horizon Example

图 2 中,路由器 A 将路由播发至路由器 C、D 和 E,再播发至路由器 B。在此示例中,路由器 A 可以 2 个跃点到达路由器 C。当路由器 A 将路由播发至路由器 B 时,路由器 B 将其作为路由导入到路由器 A 3 个跃点。如果路由器 B 随后将此路由读到路由器 A,路由器 A 将它作为路由导入到路由器 B 4 个跃点。但是,从路由器 B 到路由器 A 的播发是不必要的,因为路由器 A 可以在 2 个跃点内到达路由。水平分割技术通过消除这种类型的路由播发,有助于减少额外的流量。

同样,毒物反向技术有助于优化路由信息的传输,并缩短实现网络融合的时间。如果路由器 A 通过其某个接口了解无法访问的路由,它将从同一接口将这些路由播发为无法访问(跃点计数为 16)。 图 3 显示了毒物反向技术的示例。

图 3:毒物反向示例 Poison Reverse Example

图 3 中,路由器 A 通过其一个接口学习无法路由到路由器 C、D 和 E 的接口。路由器 A 将这些路由读出与无法访问的同一接口。播发通知路由器 B,路由器 C、D 和 E 绝对无法通过路由器 A 访问。

单向连接限制

由于 RIP 仅根据收到路由表更新处理路由信息,因此无法确保双向连接。如图 4 所示,RIP 网络受到单向连接的限制。

图 4:单向连接的限制 Limitations of Unidirectional Connectivity

图 4 中,路由器 A 和 D 将其路由表信息泛洪到路由器 B。由于通过路由器 A 路由路由器 E 的路径跃点最少,因此该路由会导入路由器 B 的转发表。但是,假设路由器 A 由于链路不可用或路由策略无效,可以传输流量,但未从路由器 B 接收流量。如果到路由器 E 的唯一路由是通过路由器 A,则发往路由器 A 的任何流量将丢失,因为从未建立双向连接。

OSPF 通过三次握手建立双向连接。

RIPng 概述

新一代路由信息协议 (RIPng) 是一种内部网关协议 (IGP),使用距离向量算法来确定到达目标的最佳路由,将跃点计数作为指标。RIPng 交换用于计算路由的路由信息,适用于基于 IP 版本 6 (IPv6) 的网络。默认情况下,RIPng 处于禁用状态。

在安全环境中的设备上,IPv6 已禁用。您必须启用 IPv6 才能使用 RIPng。有关说明,请参阅 安全设备的 Junos OS 接口配置指南

本主题包含以下部分:

RIPng 协议概述

RIPng IGP 使用 Bellman-Ford 距离向量算法来确定到达目标的最佳路由,将跃点计数用作指标。RIPng 允许主机和路由器通过基于 IP 的网络交换信息以计算路由。RIPng 旨在用作中型自治系统的 IGP。

RIPng 是一种与 RIPv2 不同的路由协议。RIPng 的 Junos OS 实现与 RIPv2 类似,但具有以下差异:

  • RIPng 不需要对数据包实施身份验证。

  • Junos OS 不支持多个 RIPng 实例。

  • Junos OS 不支持 RIPng 路由表组。

RIPng 是基于 UDP 的协议,使用 UDP 端口 521。

RIPng 有以下架构限制:

  • 最长的网络路径不能超过 15 个跃点(假设每个网络或跃点的成本为 1)。

  • 当重新构建路由表时,RIPng 容易出现路由环路。特别是在由数百台路由器组成的大型网络中实施 RIPng 时,RIPng 可能需要很长时间才能解决路由环路。

  • RIPng 仅使用固定指标来选择路由。其他 IGP 则使用其他参数,例如测量的延迟、可靠性和负载。

RIPng 标准

RIPng 在以下文档中进行了定义:

  • RFC 2080, RIPng for IPv6

  • RFC 2081, RIPng Protocol Applicability Statement

要访问互联网备注请求 (RFC) 和草案,请参阅互联网工程任务组 (IETF) 网站。

RIPng 数据包

RIPng 数据包标头包含以下字段:

  • 命令 — 指示数据包是请求消息还是响应消息。请求消息查找路由器路由表的信息。响应消息会定期发送,或者在收到请求消息时发送。定期响应消息称为更新消息。更新消息包含命令和版本字段以及一组目标和指标。

  • 版本号 — 指定始发路由器运行的 RIPng 版本。这当前设置为版本 1。

RIPng 数据包的其余部分包含一个路由表条目列表,包含以下字段:

  • 目标前缀 — 目标的 128 位 IPv6 地址前缀。

  • 前缀长度 — 前缀中的重要位数。

  • 指标 — 为地址播发的指标值。

  • 路由标记 — 必须随路由一起播发和重新分配的路由属性。主要是,当路由必须通过外部网关协议 (EGP) 重新分配时,路由标记可以区分外部 RIPng 路由和内部 RIPng 路由。

支持的 RIP 和 RIPng 标准

Junos OS 充分支持以下 RFC,这些 RFC 定义了 RIP(适用于 IP 版本 4 [IPv4]) 和 RIP 下一代(RIPng,适用于 IP 版本 6 [IPv6])的标准。

Junos OS 支持对所有 RIP 协议交换的身份验证(MD5 或简单身份验证)。

  • RFC 1058, 路由信息协议

  • RFC 2080, 适用于 IPv6 的 RIPng

  • RFC 2082, RIP-2 MD5 身份验证

    不支持使用不同密钥 ID 的多个密钥。

  • RFC 2453, RIP 版本 2

以下 RFC 不定义标准,但提供有关 RIPng 的信息。IETF 将其分类为“信息性”。

  • RFC 2081, RIPng 协议适用性声明