RIP 的历史影响
RIP 是最早的距离矢量路由协议。尽管 RIP 缺少许多更为高级的路由协议所具备的复杂功能,但其简单性和使用的广泛性使其具有很强的生命力。RIP 不是“即将被淘汰”的协议。实际上,现在已经出现了一种支持 IPv6 的 RIP,称为 RIPng(ng 是 next generation 的缩写,意为“下一代”)。
RIP 从 Xerox 开发的早期协议 - 网关信息协议 (GWINFO) 演变而来。随着 Xerox 网络系统 (XNS) 的发展,GWINFO 逐渐演变成 RIP。此后,由于 Berkeley 软件分发 (BSD) 的 routed(读作“route-dee”,而不是“rout-ed”)守护程序中采用了 RIP,RIP 因而得以广泛流行。其它厂商也相继开发出了大同小异的自有 RIP 版本。由于意识到需要对该协议进行标准化,所以 Charles Hedrick 在 1988 年编写了 RFC 1058,他在该文档中记录了现有协议并进行了一些改进。自那时起,RIP 不断完善,1994 年出现 RIPv2,1997 年出现 RIPng。
ripv1的特征和消息格式
RIP 的特征
RIP 主要有以下特征:
.RIP 是一种距离矢量路由协议。
.RIP 使用跳数作为路径选择的唯一度量。
.将跳数超过 15 的路由通告为不可达。
.每 30 秒广播一次消息。
.RIP 是一种距离矢量路由协议。
.RIP 使用跳数作为路径选择的唯一度量。
.将跳数超过 15 的路由通告为不可达。
.每 30 秒广播一次消息。
RIP 消息的数据部分封装在 UDP 数据段内,其源端口号和目的端口号都被设为 520。在消息从所有配置了 RIP 的接口发送出去之前,IP 报头和数据链路报头会加入广播地址作为目的地址。
RIP 消息格式:RIP 报头
RIP 报头长度为四个字节,这四个字节被划分为三个字段,如图中橙色区域所示。命令字段指定了消息类型。版本字段设置为 1,表示为 RIPv1。第三个字段被标记为必须为零。“必须为零”字段用于为协议将来的扩展预留空间。
RIP 消息格式:路由条目
消息的路由条目部分包含三个字段,其内容分别是:地址类型标识符(设置为 2 代表 IP 地址,但在路由器请求完整的路由表时设置为 0)、IP 地址以及度量。路由条目部分代表一个目的路由及与其关联的度量。一个 RIP 更新最多可包含 25 个路由条目。数据报最大可以是 512 个字节,不包括 IP 或 UDP 报头。
为什么很多字段都设置为零?
RIP 开发得比 IP 更早,以前是用于其它网络协议(如 XNS)。BSD 也对其产生一定影响。最初添加额外的空间是为了今后支持更大的地址空间。RIPv2 目前已经使用了这些空字段的绝大部分。
IP 地址类和有类路由
RIP 是有类路由协议。我们知道 RIPv1 不会在更新中发送子网掩码信息。因此,路由器将使用本地接口配置的子网掩码,或者根据地址类应用默认子网掩码。受此限制,RIPv1 网络不能为不连续网络,也不能使用 VLSM。
network 命令的作用如下:
在属于某个指定网络的所有接口上启用 RIP。相关接口将开始发送和接收 RIP 更新。
在每 30 秒一次的 RIP 路由更新中向其它路由器通告该指定网络。
注: 如果您输入子网地址,IOS 会自动将其转换到有类网络地址。例如,如果您输入命令 network 192.168.1.32,路由器将把它转换为 network 192.168.1.0。
强大的故障排除命令
要检验路由和排除路由故障,请首先使用 show ip route 和 show ip protocols。如果使用这两条命令不能找出问题,那么请使用 debug ip rip 命令查看详细情况。我们将按照检验路由和排除路由故障时这三条命令的建议使用顺序来分别讨论它们。请记住,在配置任何路由(无论静态或动态)时,请使用 show ip interface brief 命令确保所有必需的接口都处于“up”和“up”状态。
解读 show ip route 输出
现在我们以 R1 获知的一条 RIP 路由为例来解读路由表中显示的输出。
R 192.168.5.0/24 [120/2] via 192.168.2.2, 00:00:23, Serial0/0/0
通过检查路由列表中是否存在带 R 代码的路由,我们可快速得知路由器上是否确实运行着 RIP。如果没有配置 RIP,您将不会看到任何 RIP 路由。
紧跟在 R 代码后的是远程网络地址和子网掩码 (192.168.5.0/24)。
AD 值(RIP 为 120)和到该网络的距离(2 跳)显示在括号中。
此外,输出中还列出了通告路由器的下一跳 IP 地址(地址为 192.168.2.2 的 R2)和自上次更新以来已经过了多少秒(本例中为 00:00:23)。
最后列出的是路由器用来向该远程网络转发数据的送出接口 (Serial 0/0/0)。
解读 show ip protocols 输出
如果路由表中缺少某个网络,可以使用 show ip protocols 命令来检查路由配置。show ip protocols 命令会显示路由器当前配置的路由协议。其输出可用于检验大多数 RIP 参数,从而确认:
.是否已配置 RIP 路由
.发送和接收 RIP 更新的接口是否正确
.路由器通告的网络是否正确
.RIP 邻居是否发送了更新
.是否已配置 RIP 路由
.发送和接收 RIP 更新的接口是否正确
.路由器通告的网络是否正确
.RIP 邻居是否发送了更新
此命令对于检验其它路由协议的工作情况也非常有用
解读 debug ip rip 输出
大多数 RIP 配置错误都涉及 network 语句配置错误、缺少 network 语句配置,或在有类环境中配置了不连续的子网。对于这种情况,可使用一个很有效的命令 debug ip rip 找出 RIP 更新中存在的问题,如图所示。该命令将在发送和接收 RIP 路由更新时显示这些更新信息。因为更新是定期发送的,所以您需要等到下一轮更新开始才能看到命令输出
不必要的 RIP 更新会影响网络性能
在 LAN 上发送不需要的更新会在以下三个方面对网络造成影响:
1. 带宽浪费在传输不必要的更新上。因为 RIP 更新是广播,所以交换机将向所有端口转发更新。
2. LAN 上的所有设备都必须逐层处理更新,直到传输层后接收设备才会丢弃更新。
3. 在广播网络上通告更新会带来严重的风险。RIP 更新可能会被数据包嗅探软件中途截取。路由更新可能会被修改并重新发回该路由器,从而导致路由表根据错误度量误导流量。
停止不需要的 RIP 更新
您可能会想到使用 no network 192.168.3.0 命令从配置中删除 192.168.3.0 网络,从而停止该更新,但这样做的后果是 R2 将不会在发往 R1 和 R3 的更新中通告该 LAN。正确的解决方法是使用 passive-interface 命令,该命令可以阻止路由更新通过某个路由器接口传输,但仍然允许向其它路由器通告该网络。在路由器配置模式下输入 passive-interface 命令。
Router(config-router)#passive-interface interface-type interface-number
本文出自 “www.51cto.com” 博客,请务必保留此出处http://frecolwang.blog.51cto.com/330699/131526