OSPF路由协议
一、RIP的局限
1.大型网络所发生的变化
-
网络规模扩大:
-
企业新业务层出不穷,且业务呈现大集中趋势,使得网络规模不断扩大。
-
-
网络可靠性要求提高:
-
各种应用程序对网络可靠性要求越来越高,网络发生故障后,需要在更短的时间内恢复正常。
-
-
网络异构化,多厂商设备互联需求:
-
在日常的运营维护中,硬件设备不断升级或更新,不同设备之间性能差异较大,设备间互连链路带宽也存在一定的差异。
-
需要一种各厂商均支持的开放路由协议。
-
2.RIP在大型网络中部署所面临的问题
-
RIP 特性:
-
逐跳收敛
-
分布式路由计算
-
以“跳数”为度量
-
-
带来的问题:
-
收敛慢,故障恢复时间长
-
缺少对全局网络拓扑的了解
-
存在选择次优路径的风险
-
3.如何解决RIP的问题?
-
RIP的问题:
-
-
收敛慢,故障恢复时间长
-
缺少对全局网络拓扑的了解
-
存在选择次优路径的风险
-
-
优化或解决的方式:
-
触发更新
-
路由器基于拓扑信息,独立计算机路由
-
将链路带宽作为选路参考值
-
4.链路状态路由协议OSPF
-
路由信息传递与路由计算分离。
-
基于SPF算法。
-
以“累计链路开销”作为选路参考值。
二、OSPF的基本概念和工作过程
1.OSPF路由协议概述
-
内部网关协议和外部网关协议
-
自治系统(AS)
-
内部网关协议(IGP)
-
外部网关协议(EGP)
-
AS:决定本系统使用哪种路由协议的单位
-
IGP:用于在单一AS内决策路由
-
EGP:用于在多个AS之间执行路由
-
IGP用来解决AS内部通信,EGP用来解决AS间通信
-
严格意义上来讲,BGP属于边界网关协议,因此只有EGP属于外部网关路由协议
-
-
OSPF是链路状态路由协议
2.OSPF的工作过程
-
邻居列表
-
链路状态数据库
-
路由表
-
建立邻接关系(学习链路状态信息)--》链路状态数据库(Dijkstra算法)--》最短路径树--》路由表
3.OSPF的基本概念
-
OSPF区域
-
为了适应大型的网络,OSPF在AS内划分多个区域
-
每个OSPF路由器只维护所在区域的完整链路状态信息
-
-
区域ID
-
区域ID可以表示成一个十进制的数字
-
也可以表示成一个IP
-
-
骨干区域Area 0
-
负责区域间路由信息传播
-
-
非骨干区域
-
Router ID
-
OSPF区域内唯一标识路由器的IP地址
-
-
Router ID选取规则
-
选取路由器loopback接口上数值最高的IP地址
-
如果没有loopback接口,在物理端口中选取IP地址最高的
-
也可以使用router-id命令指定Router ID
-
-
DR和BDR
-
DR:指定路由器
-
BDR:第二指定路由器
-
-
其他路由器(DRothers)只和DR及BDR形成邻接关系
-
DR和BDR的选举方法
-
自动选举DR和BDR
-
网段上Router ID最大的路由器将被选举为DR,第二大的将被选举为BDR
-
-
手工选择DR和BDR
-
优先级范围是0~255,数值越大,优先级越高,默认为1
-
如果优先级相同,则需要比较Router ID
-
如果路由器的优先级被设置为0,它将不参与DR和DBR的选举
-
-
-
DR和BDR的选举过程
-
路由器的优先级可以影响一个选举过程,但是它不能强制更换已经存在的DR或BDR路由器
-
-
OSPF的组播地址
-
224.0.0.5
-
224.0.0.6
-
-
OSPF的度量值为COST
-
COST= 108/BW
-
最短路径是基于接口指定的代价(cost)计算的
-
4.OSPF的数据包类型
-
OSPF数据包
-
承载在IP数据包内,使用协议号89
-
-
OSPF的包类型
-
Hello包:用于发现和维持邻居关系,选举DR和BDR
-
数据库描述包(DBD):用于向邻居发送摘要信息以同步链接状态数据库
-
链路状态请求包(LSR):在路由器收到包含新信息的DBD后发送,用于请求更详细的信息
-
链路状态更新包(LSU):收到LSR后发送链路状态通告(LSA),一个LSU数据包可能包含几个LSA
-
链路状态确认包(LSAck):确认已经收到LSU,每个LSA需要被分别确认
-
三、OSPF邻接关系
1.OSPF邻接关系的建立
-
OSPF启动的第一个阶段是使用Hello报文建立双向通信的过程
-
失效(Down)状态
-
这是OSPF建立交互关系的初始化状态,路由器没有与任何邻居交换信息
-
-
初始(init)状态
-
路由器的各个接口通过224.0.0.5发送Hello报文,例如当邻居路由器R2接收到R1发送的第一个Hello报文时就进入了lnit状态。
-
-
双向(2-Way)状态
-
收到第一个Hello报文的路由器R2发送一个Hello回应报文,该报文含有R1的ID,当R1接收到此报文后,就完成了双向通信的建立,DR和BDR的选举也是在该状态下完成的。其他路由器则是Drother。
-
-
-
OSPF启动的第二个阶段是建立完全邻接关系
-
准启动(ExStart)状态
-
当存在DR和BDR时,路由器则处于此状态,在该状态下,DR和BDR与其他路由器建立邻接关系,
-
-
交换(Exchange)状态
-
DRother和DR 开始交换数据库描述包(DBD),数据中包含了数据库中的LSA条目的摘要信息,主/从路由器之间交换DBD时要确双方都能够接收到。
-
-
加载(Loading)模式
-
收到DBD更新的LS条目信息后,路由器将发送对方链路状态请求包LSR,请求更加详细的信息,对方路由器用链路状态更新包LSU回应该LSR,LSU需要对方确认收到
-
当路由器之间完成了数据库同步,他们的数据库数据已经完全一致,此时通过最短路径优先算法SPF来计算到达目的网络的最佳路径并形成路由表进行转发数据。
-
-
四、OSPF的应用环境
1.从以下几方面考虑OSPF的使用
-
网络规模
-
网络拓扑
-
其他特殊要求
-
路由器自身要求
2.OSPF的特点
-
可适应大规模网络
-
路由变化收敛速度快
-
无路由环
-
支持变长子网掩码VLSM
-
支持区域划分
-
支持以组播地址发送协议报
3.OSPF与RIP的比较
第一点
OSPF:链路状态路由协议
RIPv1&RIPv2:距离矢量路由协议
第二点
OSPF:没有跳数的限制
RIPv1&RIPv2:RIP的15跳限制,超过15跳的路由被认为不可达
第三点
OSPF:支持可变长子网掩码(VLSM)
RIPv1:不支持可变长子网掩码(VLSM)
RIPv2:支持可变长子网掩码(VLSM)
第四点
OSPF:收敛速度快
RIPv1&RIPv2:收敛速度慢
第五点
OSPF:使用组播发送链路状态更新
RIPv1:周期性广播更新整个路由表
RIPRv2:周期性组播更新整个路由表
OSPF多区域原理与配置
一、OSPF的多区域
1.OSPF多区域的生成
-
在大型网络中,网络结构的变化是时常发生的,因此OSPF路由器就会经常运行SPF算法来重新计算路由信息,大量消耗路由器的CPU和内存资源。
-
在OSPF网络中,随着多条路径的增加,路由表变得越来越庞大,每一次路径的改变都使路由器不得不花大量的时间和资源去重新计算路由表,路由器越来越低效。
-
包含完整网络结构的链路状态数据库也会越来越大,这将有可能使路由器的CPU和内存资源彻底耗尽,从而导致路由器的崩溃。
-
然后,通过OSPF划分区域以便引出OSPF多区域划分的原因。
-
生成OSPF多区域的原因
-
改善网络的可扩展性
-
快速收敛
-
2.OSPF的三种通信量
-
域内通信量(Intra-Area Traffic)
-
单个区域内的路由器之间交换数据包构成的通信量
-
-
域间通信量(Inter-Area Traffic)
-
不同区域的路由器之间交换数据包构成的通信量
-
-
外部通信量(External Traffic)
-
OSPF域内的路由器与OSPF区域外或另一个自治系统内的路由器之间交换数据包构成的通信量
-
3.OSPF的路由器类型
-
内部路由器:只保存本区域内的链路状态信息
-
区域边界路由器/ABR:用来连接区域0和其他区域
-
自治系统边界路由器/ASBR:用来连接OSPF的AS与外部其他的路由
4.OSPF的区域类型
-
OSPF的区域类型
-
骨干区域Area 0
-
非骨干区域-根据能够学习的路由种类来区分
-
标准区域
-
末梢区域(stub)
-
完全末梢(Totally stubby)区域
-
非纯末梢区域(NSSA)
-
完全非纯末梢区域
-
-
-
标准区域:能学习其他区域的路由;能学习外部路由
-
ASBR:ASBR负责将外部路由注入到OSPF的网络中
-
ABR:将ABR1的链路状态信息汇总后发送到Area0,将其他区域的链路状态信息汇总后发送给Area1
二、OSPF链路状态数据库
1.链路状态数据库的组成
-
每个路由器都创建了由每个接口、对应的相邻节点和接口速率组成的数据库
-
链路状态数据库中每个条目称为LSA(链路状态通告),常见的有六种LSA类型
2.OSPF链路状态通告
-
Type1
-
路由器LSA:由区域内的路由器发出的
-
-
Type2
-
网络LSA:由区域内的DR发出的
-
-
Type3
-
网络汇总LSA:ABR发出的,其他区域的汇总链路通告
-
-
Type4
-
ASBR汇总LSA:ABR发出的,用于通告ASBR信息
-
-
Type5
-
AS外部LSA:ASBR发出的,用于通告外部路由
-
-
Type7
-
NSSA外部LSA:NSSA区域内的ASBR发出的,用于通告外部路由
-
-
具体见PPT
三、非骨干区域
1.末梢区域和完全末梢区域
-
满足以下条件的区域
-
只有一个默认路由作为其区域的出口
-
区域不能作为虚链路的穿越区域
-
该区域里无自治系统边界路由器ASBR
-
不是骨干区域Area 0
-
-
末梢区域
-
没有LSA4、5、7通告
-
-
完全末梢区域
-
除一条LSA3的默认路由通告外,没有LSA3、4、5、7通告
-
2.非纯末稍区域(NSSA)区域和完全非纯末稍区域
-
NSSA区域是OSPF RFC的补遗
-
定义了特殊的LSA类型7
-
提供类似stub area和totally stubby area的优点
-
可以包含ASBR
-
-
OSPF链路状态通告
-
LSA7(NSSA External LSA, NSSA外部LSA)
-
-
NSSA区域重分发路由类型
-
N1、N2
-
经过NSSA区域ABR后转换为E1、E2
-
四、小结
-
常见的6种LSA
-
LSA1、LSA2、LSA3、LSA4、LSA5、LSA7
-
-
OSPF的路径类型
-
区域内路径、区域外路径、类型1的外部路径和类型2的外部路径
-
-
OSPF的路径类型的优先级
-
区域内路径: 优先级1
-
区域间路径: 优先级2
-
E1外部路径: 优先级3
-
E2外部路径: 优先级4
-
1表示最高的优先级,4表示最低的优先级
-
-
OSPF高级配置
一、OSPF环路
1.域间路由环路的产生
-
见ppt
-
RTB将AREA1中1的一类、二类LSA转换成三类LSA,发布到区域0中。
-
RTC重新生成有关192.168.1.0/24网络的三类LSA并发布到Area 2中。
-
同理,RTE也将有关192.168.1.0/24网络的三类LSA发布到Area 3中。
-
RTD又将192.168.1.0/24网络的三类LSA发布到Area 1中,从而形成了路由环路。
2.避免域间路由环路
-
为防止区域间的环路OSPF定义了骨干区域和非骨干区域和三类LSA的传递规则。
-
OSPF划分了骨干区域和非骨干区域,所有非骨干区域均直接和骨干区域相连且骨干区域只有一个,非骨干区域之间的通信都要通过骨干区域中转,骨干区域ID固定为0。
-
OSPF规定从骨干区域传来的三类LSA不再传回骨干区域。
-
-
对于前文提到的ABR,OSPF要求ABR设备至少有一个接口属于骨干区域。
-
新建网络按照区域间的防环规则进行部署,可以避免区域间环路问题。但是部分网络可能因早期规划问题,区域间的连接关系违背了骨干区域和非骨干区域的规则。
3.虚连接vlink
-
骨干区域必须是连续的,但是并不要求物理上连续,可以使用虚连接使骨干区域逻辑上连续。
-
虚连接可以在任意两个区域边界路由器上建立,但是要求这两个区域边界路由器都有端口连接到一个相同的非骨干区域。
二、路由重发及配置
-
理解路由重分发
-
一个单一IP路由协议是管理网络中IP路由的首选方案
-
华为vrp能执行多个路由协议,每一个路由协议和该路由协议所服务的网络属于同一个自治系统
-
华为vrp使用路由重分发特性以交换由不同协议创建的路由信息
-
-
路由重分发的考虑
-
度量值
-
管理距离
-
-
重分发到OSPF域中路由的路径类型
-
类型1的外部路径(Type 1 external path,E1)
-
类型2的外部路径(Type 2 external path,E2)
-
-
E1类型
-
路径A-B-D的代价是25(20+5)
-
路径A-C-D的代价是48(18+30)
-
-
E2类型
-
路径A-B-D的代价是20
-
路径A-C-D的代价是18
-
-
路由器A有两条到达外部目的网络10.1.2.0的路径
三、OSPF地址汇总
-
OSPF地址汇总的作用
-
地址汇总也是通过减少泛洪的LSA数量节省资源
-
可以通过屏蔽一些网络不稳定的细节来节省资源
-
减少路由表中的路由条目
-
-
区域间路由汇总配置
-
外部路由汇总配置
四、OSPF更新机制
1.定时更新与触发更新
-
定时更新:
-
LSA每1800s更新一次,3600s失效。
-
-
触发更新:
-
当链路状态发生变化之后,立即发送链路状态更新。
-
-
为了保证路由计算的准确性,需要保证LSA的可靠性。
-
OSPF为每个LSA条目维持一个老化计时器(3600s),当计时器超时,此LSA将从LSDB中删除。
-
为了防止LSA条目达到最大生存时间而被删除,OSPF通过定期更新(每1800s刷新一次)机制来刷新LSA。
-
OSPF路由器每1800s会重新生成LSA,并通告给其他路由器。
-
为了加快收敛速度,OSPF设置了触发更新机制。
-
当链路状态发生变化后,路由器立即发送更新消息,其他路由器收到更新消息后立即进行路由计算,快速完成收敛。
五、OSPF安全认证
-
OSPF支持认证功能,只有通过认证的OSPF路由器才能正常建立邻居关系,交互信息。
-
两种认证方式:
-
区域认证方式。
-
接口认证方式。
-
-
支持的认证模式分为null(不认证)、simple(明文)、MD5以及HMAC-MD5。
-
当两种认证方式都存在时,优先使用接口认证方式。