文章目录
前言
前面我们学习了静态路由,在进行实验配置时,通过手动一个一个进行配置,久了感到非常麻烦,尤其在规模较大的网络配置里
而且一旦网络拓扑发生改变,这样静态路由还得一个一个改配置,工作量很大
那么有没有一种能让我们轻松一点的办法呢,好,这就是我接下要给大家讲解的动态路由
一、动态路由协议基础
1.概述
静态路由是指路由器中设置固定的路由表,除非网络管理员进行干预,否则静态路由项不会发生变化
好处在于这样设置比较简单而且高效,而且因为已经设置好,就不用更新了,所以不占用带宽,而且这样可靠性也比较高
动态路由呢,是指路由器能够自动建立路由表,根据网络中路由器之间通信,传递信息,利用收到的路由信息更新路由表(各自宣告网段,进行自主交流学习)
我们把路由器一次设定好以后,它就能实时地适应网络结构的变化
(如果发生了网络变化,动态路由就会重新计算路由,并发出新的路由更新信息)
这样在网络规模较大,情况较复杂的情况下,无需网络管理员手工维护,能减轻工作负担
总的来说,动态路由是基于某种路由协议来实现,而路由协议就是路由器之间用来交换信息的语言
而且在网络中动态路由和静态路由相互补充的
2.度量值
度量值代表距离
它们用来在寻找路由时确定最优路由路径
每一种路由算法在产生路由表时,会为每一条通过网络的路径产生一个数值(度量值),最小的值表示最优路径
度量值的计算可以只考虑路径的一个特性,但更复杂的度量值是综合了路径的多个特性产生的
一些常用的度量值:
- 跳数
报文要通过的路由器输出端口的个数,即通过一台路由器算“跳”一次 - 带宽
数据传输速度(能力) - 负载
网络资源或者链路已被使用的部分的大小(正在运行的) - 时延
报文从源端传到目的地的时间 - 可靠性
链路稳定性,会不会出错 - 成本
协议的计算公式,用来计算总成本
3.分类
按照路由执行的算法分类
- 距离矢量路由协议(RIP)
依据从源网络到目标网络所经过的路由器的个数选择路由 - 链路状态路由协议
综合考虑从源网络到目标网络的各条路径的情况选择路由
二、RIP路由协议工作原理
1.基本原理
- RIP是一种基于距离矢量算法的协议,它使用跳数作为度量值来衡量到达目的地址的距离
- 度量值等于从本网络到达目的网络间的设备数量,跳数最大为15跳,16跳为不可达(所以RIP应用不了大型网络)
- 使用UDP的520端口发送和接收RIP分组
- RIP 每隔30秒(更新周期)以广播形式发送一次路由信息,在邻居之间互传
- 更新消息是发送整个路由信息
2.路由环路
通过前面的学习,我们知道了动态路由的工作原理就是路由器之间可以自主进行广播宣告,进行自主学习,每30s更新一次来更新路由表
但是这样的话,路由器就可能收到它自己发送的路由信息
在路由运行中不可能有同时开启的情况,而基且本都是每隔30S更新一次
这里如果R3在更新CD中先发生状态变化,比如毒化了(40.0.0.0出现故障断掉了),那么Hop变化成16
此时正好R2更新周期到了,向R3发送本身的路由表,就把原先学习记录到的40网段的发送了过去
这下直接就把出问题的40网段给覆盖,并且把下一跳地址变为30.0.0.1
此时如果有个数据包是发向40网段的,经过R2,查看路由表,找到下一跳30.0.0.2发向R3,R3得到后查看路由表得到,40网段的下一跳往30.0.0.1发,即形成路由环路
3.水平分割
既然按照这种工作原理工作下去,一旦一点发生故障,就有可能会形成路由环路,那么有没有解决的办法呢
我们可以这样设置:路由器从某个接口接收到的更新信息不允许再从这个接口发回去,意思就是说收到了你的消息,我下次往回传的时候不会再发送你上次传给我的内容了
如下图所示
本来更新消息是发送整个路由信息的
但这样,当R2之前的一次互相广播路由信息,已经学习记录了R1和R3的路由记录信息,再次广播给邻居的时候,就不会再添加之前收的属于他们的路由信息了
这样能有效组织路由环路的产生,同时也能减少路由更新信息所占用的链路带宽资源
4.毒性逆转
这里可以理解,毒性逆转实际上是一种改进版的水平分割
就是说将从邻居那里所获得的路由信息不是不发送回去,而是直接将这个网段标志为不可达(16跳)再发送回去
收到此种的路由信息后,接收方路由器会立刻抛弃该路由,而不是等待其老化时间到
这样可以加速路由的收敛
通俗的来讲,就是收到一条坏消息好过没有收到任何消息,也就是有消息好过没有消息
不过通常情况下,不提倡使用,因为这样会增大路由表,浪费链路带宽
5.RIP v1和v2的区别
三、RIP实验(华为)
配置图如下,验证R1、R2、R3能否互相RIP进行发送和接收广播(路由信息)
1.进入各路由,配置各端口网关地址
R1
R2
R3
2.进入每个路由器设置RIP相关设置,宣告相邻网段
R2
R3
3.最终检查
R1
R2
R3