目录
一、OSPF定义
ospf全称开放最短路径优先,是一种链路状态路由协议,工作在ip层,协议号为89,是可靠的动态路由协议,具有收敛速度快、路由无环、可扩展等优点。
二、OSPF特点
1、收敛速度快
2、路由无环
3、支持区域划分
4、支持认证
5、适用于中、大型企业网络
三、OSPF报文
1、Hello报文
hello报文用于发现、建立和维护邻居关系,周期性发送:
(1)在MA和P2P网络中,hello报文发送间隔为10秒,老化时间为40秒
(2)在NBMA和P2MP网络中,hello报文发送间隔为30秒,老化时间为120秒
hello报文的内容有:1.始发路由器的router-id 2.始发路由器的area-id 3.始发路由器的接口地址和掩码 4.认证信息和类型 5.hello时间和dead时间 6.路由器优先级 7.指定的DR和BDR。
2、DD报文
DD报文用于同步LSDB的摘要信息。
3、LSR报文
LSR报文用于请求本地没有的LSA信息。
4、LSU报文
LSU报文用于更新自己的LSA或泛洪LSA。
5、LSACK报文
LSACK报文用于对收到的LSU报文进行确认。
四、OSPF网络类型
1、MA网络:组播发送hello、LSU、LSACK报文,单播发送DD、LSR报文
2、NBMA网络:单播发送ospf协议报文
3、P2P网络:组播发送ospf协议报文
4、P2MP网络:组播发送hello报文,单播发送其他ospf协议报文
五、OSPF状态机
1、down
路由器初始状态,该状态已发送hello报文,但是没有收到任何回应。
2、attempt
只有nmba网络下才有的状态,该状态已发送hello报文,但是没有收到回应。
3、init
该状态下收到了邻居发送来的hello报文,但是自己的router-id不在报文的邻居列表中,只建立了单向邻居关系。
4、2way
该状态表示已经建立双向邻居关系。
5、exstart
该状态下路由器开始发送第一份DD报文,为空的dd报文(主要用于1、确定主从关系2、确定初始dd报文的序列号 3、选择接口mtu值),DD报文中的I、M、MS字段,其中I置位1表示第一份DD报文,M置位1表示后面还有dd报文,MS置位1表示为master设备。
选举master设备是为了1.保证DD报文传输的可靠性 2.确定初始dd报文的序列号
6、exchange
该状态下路由器开始发送携带链路状态数据库摘要信息的DD报文,路由器之间开始同步摘要信息。
7、loading
该状态下路由器开始同步LSDB,同步完成后就到达了full状态。
8、full
该状态表示邻居路由器的LSDB已经同步完成,达到full状态。
六、OSPF邻接关系建立过程
(1)设R1和R2的router-id分别为1.1.1.1和2.2.2.2,当R1和R2启动ospf进程时,双方相互发送第一份hello报文,该报文中邻居列表均为空,此时双方邻居状态均为down,当双方收到对方发送的hello报文时邻居状态置为init状态。
(2)双方开始发送携带对端router-id的hello报文,对方发现自己的router-id在在收到的hello报文中时就把邻居状态置为2-way,此时双方邻居关系已经建立。
(3)接下来双方开始发送第一份DD报文(空的dd报文,I、M、MS 位均置位1),用于确定主从关系(初都认为自己是master,ms置位1,比较router-id值,越大越优)、确定初始DD报文的序列号和选择接口mtu,邻居状态为exstart
(4)选举出master设备后,双方开始同步链路摘要信息,邻居状态为exchange(DD报文的交付可实现可靠交付,通过序列号回应,直到M置位0说明交付完成)
(5)链路摘要信息同步完成后,双方开始同步LSA信息,双方向对方发送LSR报文请求本地没有的LSA,对端收到后回应LSU报文(包含完整的LSA信息,同时LSU报文也是对收到LSA报文的隐式确认),路由器在收到LSU报文后回应LSAck报文进行确认,邻居状态为loading
(6)双方的LSDB完成同步后,已经建立邻接关系,状态为full
七、OSPF邻接关系建立条件
1、区域类型必须一致
2、区域id必须一致
3、hello、dead时间间隔必须一致
4、router-id不能冲突
5、认证密钥要一致
6、接口MTU值要一致
7、接口两端主网络和掩码要一致
八、OSPF的区域类型
1、普通区域:区域id不为0的区域
2、骨干区域:区域ID为0的区域
3、特殊区域
(1)stub区域
特殊区域,不能引入外部路由,没有ASBR,区域中有LSA1、LSA2、LSA3和缺省LSA3,访问外部网络通过ABR自动下发的缺省路由。
(2)Totally-stub区域
特殊区域,不能引入外部路由,没有ASBR,区域中有LSA1、LSA2和缺省LSA3,访问外部网络通过ABR自动下发的缺省路由。
(3)nssa区域
特殊区域,可以引入外部路由,区域中有LSA1、LSA2、LSA3、LSA7和缺省LSA7,访问外部网络需要通过命令nssa default-router Advertise,并且要求路由器必须存在默认路由才生效。
(4)Totally-nssa区域
特殊区域,可以引入外部路由,区域中有LSA1、LSA2、缺省LSA3、LSA7和缺省LSA7,访问外部网络通过ABR自动下发的缺省路由。
4、特殊区域的作用
(1)减少LSA的数量和路由表的规模
(2)降低路由器的压力和负担
九、OSPF的路由器类型
1、内部路由器:路由器所有接口均在同一ospf区域下
2、骨干路由器:路由器至少有一个接口在area0中
3、边界路由器:路由器有两个以上接口在不同的ospf区域中
4、自治系统边界路由器:路由器至少有一个接口在不同的AS中
十、OSPF的router-id
1、作用
(1)唯一标识一台路由器
(2)在OSPF中,用于选举DR和BDR
2、Router-ID的选举
(1)手工指定
(2)若未手工指定,则看系统下指定的router-id,如果系统下也未指定,则自动选举
(3)比较环回口IP地址,越大越优
(4)比较物理接口IP地址,越大越优
Router-id选举出来后不会被抢占,不管接口状态如何,接口或地址被删除也不影响,地址被删除的情况下重启OSPF进程会重新进行选举。
十一、OSPF的DR、BDR
1、作用
(1)减少邻接关系数量和LSA条目
(2)减轻路由器负担
2、DR、BDR的选举
(1)比较接口优先级,越大越优,默认为1,取值为0-255
(2)若接口优先级相同,则比较router-id,越大越优
DR、BDR选举出来后不会抢占,保持网络稳定性,防止网络出现震荡
十二、OSPF的LSA
1、LSA1
router-lsa,所有路由器都会产生,用于描述路由器所在区域的链路状态类型和开销,只在本区域传播。
LSA1的四种链路类型:
(1)transnet
互联网段,描述DR的接口地址
(2)stubnet
末梢网络,如环回口地址
(3)p2p
点对点网络
(4)virtual link
虚连接,描述了虚连接路由器的router-id
2、LSA2
network-lsa,由DR产生,描述了所在网络中所连接的所有路由器和接口掩码信息,只在本区域传播。
3、LSA3
network-summary-lsa,由ABR产生,描述了去往其他区域的路由信息,在区域间传播。
ABR路由器会为区域内每条OSPF路由各产生一条LSA3,通告到其他区域,如果ABR路由器的某条路由不可达,会立即产生一条age为3600秒的LSA3通告到区域,告知区域内路由器撤销该路由。
4、LSA4
asbr-summary-lsa,由ABR产生,用于描述到ASBR的最优路由,在除特殊区域和本区域外的其他区域传播。
LSA4是用于辅助其他区域计算到ASBR的最优路由,和ASBR在同一区域的路由器通过LSA1和LSA2计算到达ASBR的路由,不会产生LSA4。
LSA4的产生依赖于ASBR置位的LSA1,不一定由LSA5触发。
在多区域网络中,在ASBR路由器上引入其他协议的路由,但是没有实际的路由条目产生的话,不会产生LSA5。
在单区域中,路由器通过LSA1和LSA2计算到达ASBR的路由,不会产生LSA4。
5、LSA5
As-external-LSA,由ASBR产生,用于描述到AS外部的路由,在除特殊区域外的其他区域传播。
6、LSA7
NSSA-LSA,由ASBR产生,用于描述到AS外部的路由,只在NSSA区域传播。
十三、OSPF的防环原则
1、区域内防环:SPF算法
2、区域间防环:
(1)非骨干区域必须和骨干区域连接
(2)非骨干区域的通信必须经过骨干区域
(3)非骨干区域传递的LSA3骨干区域不会接收
(4)骨干区域传递的路由不会再传回骨干区域
十四、OSPF的选路原则
1、区域内路由>区域间路由>第一类外部路由>第二类外部路由
2、第一类外部路由开销计算方式=本设备到ASBR的开销+ASBR到外部网络的开销
3、第二类外部路由开销计算方式=ASBR到目的网络的开销,默认为1,默认采用该类方式计算
十五、OSPF的过滤
1、filter export
在ABR上,对进入该区域的LSA3进行过滤。
2、filter import
在ABR上,对离开该区域的LSA3进行过滤。
3、filter-policy import
在任何路由器上,对进入该路由表条目的路由进行过滤,不会过滤LSA3。
4、filter-policy export
在ASBR上,对引入的外部路由做过滤。
5、abr-summary not-Advertise
在ABR上,对聚合的路由进行过滤。
6、asbr-summary not-Advertise
在ASBR上,对聚合的路由进行过滤。
过滤路由和过滤LSA的区别?
答:过滤路由是指计算出来的路由进入路由表条目时进行过滤,不会加入到路由表中,但是这条LSA还是可以传递给邻居,而过滤LSA后,就不会发布给邻居了。
filter和filter-policy有什么区别?
答:通常情况下,filter-policy是在ospf协议视图下配置,从LSDB计算出来的路由加入到IP路由表时进行过滤(filter-policy import),本地有效。 特殊情况,filter-policy export,在ASBR的出方向上,对引入的外部路由进行过滤,会过滤LSA。
filter是在ospf区域视图下配置,分为filter export和filter import两种,对进入该区域或离开该区域的路由做过滤,可直接过滤LSA3。
十六、OSPF的缺省路由的配置
1、default-router-Advertise:命令用于下发缺省路由
2、always参数:如果本地没有配置默认路由则使用always参数用于强制下发默认路由,注意在nssa区域下发缺省路由时,只有设备存在默认路由时才能下发缺省路由。
十七、OSPF的LSDB的更新过程
1、设备收到一条LSA更新报文时,会首选在自己的LSDB中进行查找,若本地没有查找到这条LSA则会直接加入到LSDB中。
2、若本地存在该LSA,则会将收到的LSA跟自己的LSA的序列号进行比较,序列号大的保留到LSDB中。
3、若LSA的序列号也相同,则比较LSA的校验和,选择校验和大的。
十八、OSPF的vlink技术
1、作用
(1)解决骨干区域被分割的问题
(2)解决非骨干区域不能和骨干区域连通的问题
2、配置命令:vlink-peer router-id
vlink-peer邻居时,为何指对方的router-id?
答:因为虚连接是单播建立邻居,单播发包,而单播地址是根据LSA1计算来的,而LSA1的通告者为路由器的router-id,所以需要通过router-id来寻找最优接口地址来建立邻居。
十九、OSPF路由聚合
1、ABR聚合
abr summary命令用于对LSA3进行聚合,只发布聚合的路由,抑制明细路由,会生成一条黑洞路由,用于防止环路;abr summary not-adver命令用于过滤LSA3,聚合不发布。
abr聚合只能在始发区域做聚合,在其他区域做聚合不生效。
2、ASBR聚合
asbr summary命令用于对引入的外部路由进行聚合,只发布聚合的路由,不发布明细路由,也会生成一条黑洞路由,用于防止环路。
ASBR聚合只能在始发路由器上做聚合。
二十、OSPF的安全特性
1、ospf的验证
(1)区域验证
(2)接口验证
如果同时做了区域验证和接口验证,接口验证优先区域验证,只要接口验证通过了ospf邻居关系就能正常建立。
2、ospf的静默接口
(1)特点:1.只收hello报文,不发hello报文 2.防止协议报文冲击业务网段,保证内网的可靠性。
RIP的静默接口和OSPF的静默接口有什么区别?
答:RIP的静默接口是不会发送路由信息,而OSPF的静默接口是不会发送hello报文。
二十一、OSPF的FA地址
1、作用:用于解决次优路径和防止出现环路
2、LSA5中FA地址不为0的条件
(1)下一跳网络类型不是p2p或p2mp
(2)下一跳接口所在网段必须宣告进ospf进程
(3)下一跳接口不能是静默接口