CCNA - Part12 - 路由协议 (1) - 静态路由,动态路由 RIP (2)

路由器之间可以通过路由协议,自主学习来获得的路由信息,这样的路由称为动态路由。使用路由协议动态构建路由表不需要人工参与,并能自动的适应网络状态的变化更新路由表,大型网络或状态变化频繁的网络通常会采用动态路由协议。

自制系统和分层路由

因特网的网络数量巨大,几百万个路由器相互相互连接在一起。要让一个路由器记录每个网络的信息是不可能的,而且许多机构并不愿意自己的网络内部细节对外暴露。基于以上的原因,因特网划分了许多个自制系统(Autonomous System)。

自治系统内部的路由通过内部网关协议(IGP)交换路由信息,典型的内部网关协议有 RIP 和 OSPF。

自治系统之间也需要交换路由信息,自治系统之间使用外部网关协议(EGP)交换路由信息,每个自治系统都会有边界路由器来完成这个任务,目前因特网使用的外部网关协议是 BGP。

CCNA - Part12 - 路由协议 (1) - 静态路由,动态路由 RIP

动态路由协议一般分为如上图中这几种:

距离矢量路由协议:根据跳数来,选择跳数最小的。如 RIP 协议。EIGRP 会把跳数作为参考。

链路状态路由协议:通过自己计算和筛选怎么走(邻居表,拓扑表,路由表),如 OSPF,IS-IS 等。

RIP (距离矢量)

应用层协议,使用 UDP 传输,端口为 520。RIP 和 IGRP 已经被淘汰,因为它们仅支持有类路由协议。(就是不能划分子网的协议)

路由信息协议(RIP)是路由器生产厂商之间使用的第一个开放标准,是连接不同厂商设备使用最为广泛的共有协议。RIP 协议有两个版本,V2 版本比 V1 版本的基础上增加了一些拓展特性,如更新认证、路由汇总、无类路由、VLSM, 将广播改为组播等。

RIP 协议是基于距离矢量的路由状态协议。RIP 协议中,如果路由器 A 和 网络 B 直接相连,那么路由器 A 到网络 B 的距离就是 N + 1。如果从路由器 A 出发 到达网络 B 需要经过 N 个路由器,则路由器 A 到网络 B 的距离就是 N + 1。

RIP 认为距离最小的路径就是最好的路径。RIP 中的距离也称为 “跳数”,每增加一个路由器,跳数就加 1。

RIP 工作原理

每个路由器每隔 30s 给自己所有的邻居路由器广播 RIP 报文,报文的内容是这个路由器当前的路由信息。

收到邻居路由器的路由表信息后,更新自己的路由表,下次将更新后的路由表告诉自己的邻居

180s 没有收到某个路由器的路由表信息,就认为这个路由器出现故障,路由表中将所有以这个路由器为下一站的表项的距离修改为 16,表示不可达。再过 60s 依然没有回复,从路由表删除

当两个路由器共享一条链路或者在同一个物理网络中,就称它们为邻居

配置:

CCNA - Part12 - 路由协议 (1) - 静态路由,动态路由 RIP

#三台路由器正常配置端口 # R1 # r1(config)#router rip # 关闭自动汇总,汇总成主类 A,B,C 类的网络。 r1(config-router)#no auto-summary r1(config-router)#version 2 r1(config-router)#network 12.0.0.0 r1(config-router)#network 1.0.0.0 r1(config-router)#network 13..0.0 # R2,R3 同理 # 排错命令 show ip rip database show ip protocols/inc second

由于在向外通告网络时,存在 30s (默认)的时间差,这就有可能出现环路的现象。

CCNA - Part12 - 路由协议 (1) - 静态路由,动态路由 RIP

比如在图中 R3 宣告自己的网络后,恰巧 Lo 0 接口端口,此时 R3 会立即将直接在路由表中删除 3.3.3.0 的网络。

但此时 R2 是不知道的,假设过了 10 s 后,到了 R2 该通告本身路由的情况,此时会组播发给 R1 和 R3.

而此时 R3 发现,R2 能到达 3.3.3.0 的网络,会将该网络加入自己的路由表,并且距离加一。

此时如果有数据包发送 3.3.3.0 的网络,就会在 R2 和 R3 之间一直传递。而随着下一通告周期的来临,R2 和 R3

的举例会一直增加,直到 16 在双方的路由表消失。

如何解决成环的问题:

限制最大距离:RIP 协议允许一条路径上最多包含 15 个路由器,距离的最大值为 16(表示网络不可达)

水平分割:路由器从某个接口接收到的更新信息不允许再从这个接口发回去。

如 R2 收到了 R3 中到达 3.3.3.0 网络的路由信息,在自己宣告时不会将到 3.3.3.0 的消息再告诉 R3.

但水平分割依然无法解决像第一个图中,有多条路径可达的情况。

这里的解决方法就是毒性反转:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wspzpj.html