六、CCNA-距离矢量协议RIP

RIP: Routing Information Protocol

6.1  RIP特点

  • 衡量路由的好坏用跳数来衡量;
  • 运行路由矢量协议后,路由器之间更新路由表;
  • RIPV1是广播的方式,RIPV2是组播的方式;
  • 利用广播的方式更新整张路由表;
  • 广播会造成带宽和设备损耗。

6.2  工作原理

初始启动:每台路由器只能感知自己直连的网络;

一旦运行RIP协议后,周期性互相同步路由表;

  • 对于A来说,1和2是直连网段;
  • B把路由表发给A,A发现2和3,只有3是没有的,所以添加3;由于3是从B学来的,去往3从S0接口出去,由于是B通告,3在B的跳数是0,则A是跳数+1为1跳;
  • 同样B收到A和C及更新流程类似;
  • C路由器从B获取信息,流程类似。
  • A从B更新信息时:
  • A收到路由信息1、2、3时,比较跳数最低的。
  • A收到路由信息4时,由于不存在,添加4的信息,由于4在B中跳数是1,到A时跳数+1,所以跳数为2;由于是从B学到的,则转发时是到B,所以是从S0出。
  • B和C路由更新流程类似;

6.3  Metric度量值

  • 每一条协议都会使用度量值来衡量路由的好坏;
  • 如A到E,一个是经过2条,一个是经过3跳。RIP是使用跳数作为Metric值,所以按2条作为最佳路径,即使最佳路径带宽低,但是RIP不考虑其他,除非2跳的路径挂了,3跳的路径才会取而代之。
  • 出现多条去往同一个目的地时,比较Metric值,在RIP中,就是跳数最小的才是最优的。
  • R表示通过RIP协议学到的路由;1表示距离
  • 格式:R 目的网络 管理距离/跳数 路径

6.3.1  管理距离

R2从两种协议中获取Metric值,一个是从RIP中,一个是从OSPF中,各自Metric值衡量还不一样;

Mtric值比较是介于同一种协议的不用值得比较,不同协议比较Metric值没有意义;

管理距离AD:当R2收到R1和R3发来的都是关于1.0网段的信息时,R2则根据管理距离进行选择,业界统一给每种动态路由协议规定一个AD值,R2同时运行RIP和OSPF动态路由协议,这是R2则选择AD值小的,通常OSPF会比较小。而R2的RIP路径不是被丢弃,而是隐藏在后台,当OSPF断开了,RIP会出现。

总结:

  • 一台路由器,从两种不同的动态路由选择协议中学习到去往同一个目的地的路由,这个时候比较AD值,取AD值小的转入路由表,进行路径转发,另一条路由只有当有限路径DOWN掉的时候才会出现和使用;
  • 一台路由器,从同种动态路由协议但不用方向/邻居学习到去往同一个目的地的路由,则比较METRIC值,选择优的转入路由表进行路由转发。
  • 全行业统一的AD值。
  • 直接接口0是最优的;其次是静态路由;可以看到OSFP由于RIP;

6.4  不可靠性

  • 当拓扑发生变化,B路由器会查看获取到的路由信息和本地进行比较,利用METRIC值进行更新;
  • B更新完成后,B中所有RIP路由接着会都更新发给A;
  • A根据B发过来的RIP信息更新本地路由信息;

6.4.1  环路及解决

  • 正常情况下,RIP收敛后的路由信息;
  • 当4.0出现故障,DOWN掉后,因为直连的原因,C能立即感应到并设置DOWN状态;
  • 下一个更新周期时,B向C更新路由表信息,C发现B有到4.0的路由并且是1跳,则C将4.0的路由信息装进路由表,将跳数+1,保存为2,方向为S0口,因为从B学习到的;
  • 但是B的出口是S1口,因为B的4.0之前是从C学习到的,这是就出现了环路问题,即访问4.0网络时,在B和C之间来回路由。

下一个周期,C又把自己的4.0网络信息更新给B,B还把信息告诉A。

每个更新周期到了之后会不断同步,导致跳数不断累加。

  • 是个权宜之计,超过16条则定义为不可达。
  • 当大网真的超过16台路由器,导致可用的也会定为不可达。
  • 导致RIP注定了不会成为大的网络选择协议,适用于小的这路由器少的网络环境中。

环路的问题在于B从C学到的,C竟然又从B学,相互学习导致的根源。

RIP水平分割原则:比如B路由器从接口S1收到的4.0网段路由信息,则B不再向这个接口S1发送4.0的信息;

  • 即当4.0出现故障,C感知后,直接将跳数设置为无穷大,且将4.0变更信息为最大的16跳,并泛洪出去,让A和B第一时间感知到4.0故障。
  • A和B将4.0从自己的路由表中隐藏在RIB数据库后台中,启动计时器,在计时器超时前,如果4.0恢复了,则会给4.0一个机会,恢复路由。

水平分割的原则有一个特殊场合会被打破:

  • C出现感知4.0故障,第一时间泛洪,A和B将4.0变成possibly down,A和B会在计时器时间范围内存在侥幸信息,等待4.0的好消息。
  • 等待过程中,B和A会不断的向C发送毒性逆转的消息,查询4.0的16条不可达,按照水平分割原则,B是不能像C发送4.0消息的,这是就被打破了。
  •  B和A不断向C通告4.0出现故障16跳信息,是为了让让C知道B和A一直在等4.0网段回复的消息。
  • 为网络收敛增加应变能力;
  • 当路由器中某条路由有个既定的MERIC值,比如4跳,当收到这条路由更多的跳数METRIC值时,如5跳,这时不会马上取信及更新,而是启动个抑制计时器,超时之前,仍然采用旧的4跳路由信息,超时之后,如果还是5条,才取信5跳。
  • 相当于路由器这个时刻,在一定时间内怀疑这个更高跳数的信息,超时后才取信。
  • 即4.0信息从C的16跳过来时,A和B都启动抑制计时器,并不是直接完全去除,而是认为possibly down,并且等待4.0恢复的消息,在抑制计时器时间范围内,如果4.0恢复了,则马上可以启动4.0的路由信息。
  • RIP是周期性广播路由表;
  • 触发更新则是在拓扑发生变更是,即使没有到达更新周期,依旧可以发送路由信息。解决等待更新周期,造成时间错位,产生环路。

6.5  配置

宣告路由器直连接口的网段,接口被激活,接口所在的网关会放到RIP中传递。

6.5.1  实验

路由器R1配置:

router rip
network 192.168.1.0
network 192.168.10.0
network 192.168.20.0

路由器R1路由信息:

C 192.168.1.0/24 is directly connected, Serial1/0
R 192.168.2.0/24 [120/1] via 192.168.1.2, 00:00:18, Serial1/0
C 192.168.10.0/24 is directly connected, FastEthernet0/0
C 192.168.20.0/24 is directly connected, FastEthernet0/1
R 192.168.30.0/24 [120/2] via 192.168.1.2, 00:00:18, Serial1/0
R 192.168.40.0/24 [120/2] via 192.168.1.2, 00:00:18, Serial1/0

路由器R2配置:

router rip
network 192.168.2.0
network 192.168.30.0
network 192.168.40.0

路由器R2路由信息:

R 192.168.1.0/24 [120/1] via 192.168.2.1, 00:00:08, Serial1/1
C 192.168.2.0/24 is directly connected, Serial1/1
R 192.168.10.0/24 [120/2] via 192.168.2.1, 00:00:08, Serial1/1
R 192.168.20.0/24 [120/2] via 192.168.2.1, 00:00:08, Serial1/1
C 192.168.30.0/24 is directly connected, FastEthernet0/0
C 192.168.40.0/24 is directly connected, FastEthernet0/1

路由器R0配置:

router rip
network 192.168.1.0
network 192.168.2.0

路由器R0路由信息:

C 192.168.1.0/24 is directly connected, Serial1/0
C 192.168.2.0/24 is directly connected, Serial1/1
R 192.168.10.0/24 [120/1] via 192.168.1.1, 00:00:08, Serial1/0
R 192.168.20.0/24 [120/1] via 192.168.1.1, 00:00:08, Serial1/0
R 192.168.30.0/24 [120/1] via 192.168.2.2, 00:00:26, Serial1/1
R 192.168.40.0/24 [120/1] via 192.168.2.2, 00:00:26, Serial1/1

测试:

PC0 ping PC1:

PC0 ping PC2:

PC0 ping PC3:

发表回复