RIPV2及链路状态协议介绍
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
距离矢量路由协议
距离矢量路由协议包括 RIP、IGRP 和 EIGRP。
RIP
RIP(路由信息协议)最初在 RFC 1058 中定义。
主要有以下特点:
.使用跳数作为选择路径的度量。
.如果某网络的跳数超过 15,RIP 便无法提供到达该网络的路由。
.默认情况下,每 30 秒通过广播或组播发送一次路由更新。
IGRP
IGRP(内部网关路由协议)是由 Cisco 开发的专有协议。
IGRP 的主要设计特点如下:.使用基于带宽、延迟、负载和可靠性的复合度量。
.默认情况下,每 90 秒通过广播发送一次路由更新。
.IGRP 是 EIGRP 的前身,现在已不再使用。
EIGRP
EIGRP(增强型 IGRP)是 Cisco 专用的距离矢量路由协议。
EIGRP 主要具有以下特点:.能够执行不等价负载均衡。
.使用扩散更新算法 (DUAL) 计算最短路径。
.不需要像 RIP 和 IGRP 一样进行定期更新。
只有当拓扑结构发生变化时才会发送路由更新
距离矢量的含义
顾名思义,距离矢量意味着用距离和方向矢量通告路由。
距离使用诸如跳数这样的度量确定,
而方向则是下一跳路由器或送出接口。
使用距离矢量路由协议的路由器并不了解到达目的网络的整条路径。
该路由器只知道:
应该往哪个方向或使用哪个接口转发数据包
自身与目的网络之间的距离
例如,在上图中,R1 知道到达网络 172.16.3.0/24 的距离是 1 跳,方向是从接口 S0/0/0 到 R2。
距离矢量路由协议的工作方式
一些距离矢量路由协议需要路由器定期向各个邻居广播整个路由表。
这种方法效率很低,因为这些路由更新不仅消耗带宽,而且处理起来也会消耗路由器的 CPU 资源。
距离矢量路由协议有一些共同特征。
按照一定的时间间隔发送定期更新(RIP 的间隔为 30 秒,IGRP 的间隔为 90 秒)。
即使拓扑结构数天都未发生变化,定期更新仍然会不断地发送到所有邻居那里。
邻居是指使用同一链路并配置了相同路由协议的其它路由器。
路由器只了解自身接口的网络地址以及能够通过其邻居到达的远程网络地址,对于网络拓扑结构的其它部分则一无所知。
使用距离矢量路由的路由器不了解网络拓扑结构。
广播更新均发送到 255.255.255.255。
配置了相同路由协议的相邻路由器将处理此类更新。
所有其它设备也会在第 1、2、3 层处理此类更新,然后将其丢弃。
一些距离矢量路由协议使用组播地址而不是广播地址。
定期向所有邻居发送整个路由表更新(但其中也有一些特例,我们将在稍后讨论)。
接收这些更新的邻居必须处理整个更新,从中找出有用的信息,并丢弃其余的无用信息。
某些距离矢量路由协议(如 EIGRP)不会定期发送路由表更新。
算法的作用
距离矢量协议的核心是算法。
算法用于计算最佳路径并将该信息发送给邻居。
算法是用于完成特定任务的步骤,开始于给定的初始状态并终止于定义好的结束状态。
不同的路由协议使用不同的算法将路由添加到路由表中、将更新发送给邻居以及确定路径。
用于路由协议的算法定义了以下过程:
发送和接收路由信息的机制。
计算最佳路径并将路由添加到路由表的机制。
检测并响应拓扑结构变化的机制。
路由协议特征
可以根据以下特征来比较路由协议:
收敛时间-收敛时间是指网络拓扑结构中的路由器共享路由信息并使各台路由器掌握的网络情况达到一致所需的时间。
收敛速度越快,协议的性能越好。
在发生了改变的网络中,收敛速度缓慢会导致不一致的路由表无法及时得到更新,从而可能造成路由环路。
可扩展性-可扩展性表示根据一个网络所部署的路由协议,该网络能达到的规模。
网络规模越大,路由协议需要具备的可扩展性越强。
无类(使用 VLSM)或有类-无类路由协议在更新中会提供子网掩码。
此功能支持使用可变长子网掩码 (VLSM),总结路由的效果也更好。
有类路由协议不包含子网掩码且不支持VLSM。
资源使用率-资源使用率包括路由协议的要求(如内存空间)、CPU 利用率和链路带宽利用率。
资源要求越高,对硬件的要求越高,如此才能对路由协议工作和数据包转发过程提供有力支持。
实现和维护-实现和维护体现了对于所部署的路由协议,网络管理员实现和维护网络时必须要具备的知识级别。
比较 RIPv1 和 RIPv2 的消息格式
RIPV2
RFC 1723 中对 RIPv2 进行了定义。
与第 1 版一样,RIPv2 封装在使用 520 端口的 UDP 数据段中,最多可包含 25 条路由。
虽然 RIPv2 与 RIPv1 的基本消息格式相同,但 RIPv2 添加了两项重要扩展。
RIPv2 消息格式的第一项扩展是添加了子网掩码字段,这样 RIP 路由条目中就能包含 32 位掩码。
因此,接收路由器在确定路由的子网掩码时,不再依赖于入站接口的子网掩码或有类掩码。
RIPv2 消息格式的第二项重要扩展是添加了下一跳地址。
下一跳地址用于标识比发送方路由器的地址更佳的下一跳地址(如果存在)。
如果此字段被设为全零 (0.0.0.0),则发送方路由器的地址便是最佳的下一跳地址。
有关下一跳地址使用方式的详细信息不在本课程范围内。
不过,可在 RFC 1722 和 Jeff Doyle 的《Routing TCP/IP Volume 1》中找到相关示例。
默认情况下,配置了 RIP 过程的 Cisco 路由器上会运行 RIPv1。
不过,尽管路由器只发送RIPv1 消息,但它可以同时解释 RIPv1 和 RIPv2 消息。
RIPv1 路由器会忽略路由条目中的RIPv2 字段。
show ip protocols 命令显示,配置为使用 RIPv1,但会接收两个版本的 RIP 消息。
请注意,version 2 命令用于将 RIP 版本修改为使用第 2 版。
此命令应在路由域的所有路由器上配置。
现在,RIP 过程将在所有更新中包含子网掩码,所以 RIPv2 是一种无类路由协议。
当路由器配置为使用第 2 版时,路由器只发送和接收 RIPv2 消息。
自动总结和ripv2
检查路由表
因为 RIPv2 是无类路由协议,所以您可能以为在路由表中会看到单个的 172.30.0.0 子网。
然而,我们观察图中 R2 的路由表,仍然会看到有两条等价路径的总结路由 172.30.0.0/16。
路由器 R1 和 R3 仍然不包含对方的 172.30.0.0 子网。
到目前为止,RIPv1 与 RIPV2 的唯一差别是,R1 和 R3 现在均具有到达 192.168.0.0/16 超网的路由。
此路由是在 R2 上配置并由 RIP 重分布的静态路由。
请观察会出现什么情况。
要检查正在发送或接收哪一条 RIPv2 路由,可使用 debug ip rip。
上图显示了 R1 的 debug ip rip 命令输出。
请注意,RIPv2 正在同时发送网络地址和子网掩码:
RIP:sending v2 update to 224.0.0.9 via Serial0/0 (209.165.200.230)
172.30.0.0/16 via 0.0.0.0, metric 1, tag 0
但是要注意,发送的路由是总结有类网络地址 172.30.0.0/16,而不是单个的
172.30.1.0/24 和 172.30.2.0/24 子网。
默认情况下,RIPv2 与 RIPv1 一样都会在主网边界上自动总结。
当 R1 和 R3 路由器从其位于 209.165.200.228 和 209.165.200.232 网络的接口将更新发送出去时,R1 和 R3 仍会将 172.30.0.0 子网总结为 B 类地址 172.30.0.0。
show ip protocols 命令表明,“automatic summarization is in effect”(已启用自动总结)。
单击图中的“R1 调试2”。
version 2 命令带来的唯一改变是,现在 R2 的更新中包含 192.168.0.0/16 网络。
这是因为 RIPv2 在更新中会同时包含网络地址 192.168.0.0 及其掩码 255.255.0.0。
现在,R1 和R3 都会通过 RIPv2 收到这一重分布的静态路由,并将此路由输入到各自的路由表中。
注:请记住,192.168.0.0/16 路由不能通过 RIPv1 重分布,因为其子网掩码小于有类掩码。
由于 RIPv1 更新中不包含掩码,因此 RIPv1 路由器无法确定掩码应该是什么。
所以,该更新不会发送出去。
既然我们使用的是无类路由协议 RIPv2,并且也已禁用自动总结,那么我们应该在路由表
中看到什么呢?
在上图中,现在 R2 的路由表包含的是 172.30.0.0/16 的单个子网。
请注意,路由表中
不再有一条带有两条等价路径的总结路由。
每个子网和掩码都有自己单个的条目,以及到
达该子网的送出接口和下一跳地址。
R1 路由表包含 172.30.0.0/16 的所有子网,其中还包括来自 R3 的子网。
R3 路由表包含 172.30.0.0/16 的所有子网,其中还包括来自 R1 的子网。
此网络已收敛。
我们可以使用 debug ip rip 来检验无类路由协议 RIPv2 确实正在发送和接收路由更新中的子网掩码信息。
请注意,每个路由条目现在都包含采用斜线记法的子网掩码。
我们还可以观察到,一个接口上的更新在发送到另一个接口之前,会先增加度量。
例如,从 Serial 0/0/1 上收到的 172.30.100.0/24 网络的更新是 1 跳,发送到其它接口时(例如 Serial 0/0/0)度量变为 2,即 2 跳。
RIP:received v2 update from 209.165.200.234 on Serial0/0/1
172.30.100.0/24 via 0.0.0.0 in 1 hops
RIP:sending v2 update to 224.0.0.9 via Serial0/0/0 (209.165.200.229)
172.30.100.0/24 via 0.0.0.0, metric 2, tag 0
请注意,此处的更新是使用组播地址 224.0.0.9 发送的。
而 RIPv1 使用广播地址
255.255.255.255 来发送更新。
使用组播地址有几个优势。
组播占用的网络带宽较少。
此外,组播更新对于未启用 RIP 的设备只需执行较少的处理工作。
使用 RIPv2 时,所有未配置 RIP 的设备都会在数据链路层将帧丢弃。
对于 RIPv1 发出的广播更新,以太网等广播网络上的所有设备都必须向上逐层处理 RIP 更新,到达传输层后,设备才会发现数据包的目的进程不存在。
对有关 RIPv2 的问题进行故障排除时,可以检查以下几个方面。
版本
对运行 RIP 的网络进行故障排除的一个很好的切入点是检验所有的路由器是否都配置了RIP 第 2 版。
虽然 RIPv1 和 RIPv2 相互兼容,但 RIPv1 不支持不连续子网、VLSM 或CIDR 超网路由。
除非有特殊原因,否则所有路由器上最好都使用相同的路由协议。
Network 语句
network 语句不正确或缺少 network 语句也会造成问题。
您应该还记得,network 语句有两个作用:
.启用路由协议,以在任何本地接口上发送和接收所属网络的更新。
.在发往邻居路由器的路由更新中包括所属网络。
network 语句不正确或缺少将导致路由更新丢失以及接口无法发送或接收路由更新。
自动总结
如果希望发送具体的子网而不仅是总结路由,那么请务必禁用自动总结功能。
对 RIPv2 进行检验和故障排除的方法有许多种。
许多用于 RIPv2 的命令也可用于对其它路由协议进行检验和故障排除。
故障排除
最好从基础配置开始:
1. 确保所有链路(接口)已启用而且运行正常。
2. 检查布线。
3. 检查并确保每个接口均配置了正确的 IP 地址和子网掩码。
4. 删除所有不再需要的配置命令,或者已被其它命令所替代的配置命令。