目录
一、动态路由协议概述
动态路由协议是路由器之间用来交换信息的语言,在网络中静态路由和动态路由互相补充。
分类
按照路由执行的算法分类,可以分为:
- 距离矢量路由协议:依据从源网络到目标网络所经过的路由器的个数选择路由。比如:RIP、IGRP
- 链路状态路由协议:综合考虑从源网络到目标网络的各条路径的情况选择路由。比如:OSPF、IS-IS
一些概念
- 动态路由:基于某种路由协议实现
- 度量值:跳数、带宽、负载、时延、可靠性、成本
- 收敛:使所有路由表都达到一致状态的过程
内部网关协议与外部网关协议:
AS(自治系统):决定本系统使用哪种路由协议的单位
IGP(内部网关协议):用于在单一AS内决策路由,例如:RIP、OSPF等
EGP(外部网关协议):用于在多个AS之间执行路由
IGP用来解决AS内部通信,EGP用来解决AS间通信
二、距离矢量路由协议RIP
RIP是一个标准协议,所有厂商都支持。它是距离矢量协议,通过UDP数据报交换路由信息。
RIP工作原理
- 默认每30s向邻居发送自己完整的“路由表”(V1广播、V2组播,组播地址:224.0.0.9)
- 以跳数做为评价路由好坏的度量值,每经过一个路由器,跳数自动加1,最大支持15跳,16跳认为不可达。
RIP版本区别
v1版本路由更新时不携带掩码,v2版本路由更新时携带掩码。
防环机制
- 水平分割:主要目的是避免环路的产生,原理:从一个接口学习到的网络信息,将不会再从此接口转发回去
- 触发更新:默认为30s向邻居发送一次信息,而触发更新则是,当网络出现改变后,立即发出更新信息
- 毒性反转:当一条路径信息变为无效之后,路由器并不立即将它从路由表中删除,而是用16,即不可达的度量值将它广播出去,这叫做毒性逆转。这样虽然增加了路由表的大小,但对消除路由循环很有帮助,它可以立即清除相邻路由器之间的任何环路,但无法从根本上防止路由环路,使用在小型网络场景
三、链路状态路由协议OSPF
OSPF协议概述及工作过程
OSPF特点
- 路由信息传递与路由计算分离。即不直接传递各路由器的路由表,而传递链路状态信息,各路由器基于链路状态信息独立计算路由。所谓Link State(链路状态)指的就是路由器的接口状态。
- 基于SPF(Shortest Path First)算法计算最优路由,提高收敛速度。
- 以“累计链路开销”作为选路参考值。在度量方式上,OSPF将链路带宽作为选路时的参考依据。
路由器分类
- DR
- BDR
- 其他路由器(DRothers)
选举DR和BDR的方法
①自动选举
Router ID最大的路由器为DR,第二大的将为BDR
②手工选择DR和BDR
优先级范围是0~255,数值越大,优先级越高,默认为1;如果优先级相同,则需要比较Router ID,优先级为0,不参与DR和DBR的选举
Router ID
:OSPF区域内唯一标识路由器的IP地址
选取规则
- 选取路由器loopback接口上数值最高的IP地址
- 如果没有loopback接口,在物理端口中选取IP地址最高的
- 也可以使用router-id命令指定Router ID
OSPF工作过程
- 邻居列表
- 链路状态数据库
- 路由表
OSPF数据包
OSPF数据包承载在IP数据包内,使用协议号89
OSPF邻接关系的建立:
- 失效(Down)状态:这是OSPF建立交互关系的初始化状态,路由器没有与任何邻居交换信息
- 初始(init)状态:路由器的各个接口通过224.0.0.5发送Hello报文,例如当邻居路由器R2接收到R1发送的第一个Hello报文时就进入了lnit状态。
- 双向(2-Way)状态:收到第一个Hello报文的路由器R2发送一个Hello回应报文,该报文含有R1的ID,当R1接收到此报文后,就完成了双向通信的建立,DR和BDR的选举也是在该状态下完成的。其他路由器则是Drother。
- 准启动(ExStart)状态:当存在DR和BDR时,路由器则处于此状态,在该状态下,DR和BDR与其他路由器建立邻接关系。
- 交换(Exchange)状态:DRother和DR 开始交换数据库描述包(DBD),数据中包含了数据库中的LSA条目的摘要信息,主/从路由器之间交换DBD时要确双方都能够接收到。
- 加载(Loading)模式:收到DBD更新的LS条目信息后,路由器将发送对方链路状态请求包LSR,请求更加详细的信息,对方路由器用链路状态更新包LSU回应该LSR,LSU需要对方确认收到,当路由器之间完成了数据库同步,他们的数据库数据已经完全一致,此时通过最短路径优先算法SPF来计算到达目的网络的最佳路径并形成路由表进行转发数据。
OSPF度量值
度量值是cost
cost=参考带宽/实际带宽
默认参考带宽为100M。当计算结果有小数位时,只取整数位;结果小于1时,cost取1。OSPF以“累计cost”为开销值
OSPF多区域划分
为了适应大型的网络,OSPF在AS内划分多个区域,每个OSPF路由器只维护所在区域的完整链路状态信息。通过区域ID来实现区域的划分。
生成多区域的原因:改善网络的可扩展性,实现快速收敛
区域划分
①骨干区域Area 0
②非骨干区域:根据能够学习的路由种类来区分
- 标准区域
- 末梢区域(stub):没有LSA4、5、7通告
- 完全末梢(Totally stubby)区域:除一条LSA3的默认路由通告外,没有LSA3、4、5、7通告
- 非纯末梢区域(NSSA)
- 完全非纯末梢区域
末梢区域和完全末梢区域
条件:
①只有一个默认路由作为其区域的出口
②区域不能作为虚链路的穿越区域
③该区域里无自治系统边界路由器ASBR
④不是骨干区域Area 0
末梢区域和完全末梢区域的作用:主要目的是减少区域内的LSA条目以及路由条目,减少对设备CPU和内存的占用。末梢区域和完全末梢区域中ABR会自动生成一条默认路由发布到末梢区域或完全末梢区域中。
NSSA区域
①定义了特殊的LSA类型7
②提供类似stub area和totally stubby area的优点
③可以包含ASBR
NSSA区域重分发路由类型
N1、N2
经过NSSA区域ABR后转换为E1、E2
每一种区域中允许泛洪的LSA
链路状态通告(LSA)类型
OSPF路由器类型
内部路由器:只保存本区域内的链路状态信息
区域边界路由器(ABR):用来连接区域0和其他区域
自治系统边界路由器(ASBR):用来连OSPF的AS与外部其他的路由
OSPF高级配置
防环机制
为了防止区域间的环路,OSPF定义了骨干区域和非骨干区域和三类LSA的传递规则,即Area 0与其它区域直接连接。同时,OSPF要求ABR设备至少有一个接口属于骨干区域
虚连接vlink
如果其它区域没有和Area 0连接,可以使用虚连接使骨干区域在逻辑上连续。
虚连接可以在任意两个区域边界路由器上建立,但是要求这两个区域边界路由器都有端口连接到一个相同的非骨干区域。
路由重分发
华为vrp使用路由重分发特性以交换由不同协议创建的路由信息。
路由重分发的考虑:度量值、管理距离
重分发到OSPF域中路由的路径类型
类型1的外部路径(Type 1 external path,E1)
类型2的外部路径(Type 2 external path,E2)
OSPF地址汇总
作用:
①通过减少泛洪的LSA数量节省资源
②可以通过屏蔽一些网络不稳定的细节来节省资源
③减少路由表中的路由条目
区域间路由汇总配置配置在ABR上,而外部路由汇总配置在ASBR上