ospf简介
ospf开放式最短路径优先。工作在ip层,协议号为89,ospf以组播方式发送协议包,使用spf最短路径优先算法计算和选择路由。
工作过程可分为:建立邻居—同步链路状态—计算路由三个阶段。其中会有八种状态机的改变,五个报文的产生、十类lsa以及五个不同区域。形成三张表(邻居表、拓扑表、路由表)。
lsdb:数据库,设备所有的链路信息集合,由lsa组成。
lsa:一条链路信息,多个可以组成lsdb数据库。
ospf工作过程
1,建立邻居
以两个直连路由器为例,两台路由器开始时他们的状态为down,R1开始发送第一个带有自己信息的hello包,当R2接收到R1的hello包时发现没有自己的路由信息,此时R2的状态转变为init,此时R2发送携带自己路由信息和R1信息的hello包。R1接收到后发现上面有自己的路由,状态转变为2way后再想R2发送最后一个hello包,携带自己和R2的路由信息。当R2收到后也将自己的状态转换为2way。
2,同步链路状态
邻居建立完成后。状态从2way转换为ex-start。开始发送dbd报文建立主从关系。rid大的为主否则为从。随后从的状态转变为exchange,向主发送一个携带拓扑描述信息的dbd报文,主收到后状态转换为exchange,并向从发送携带拓扑的dbd报文,从回复dbd做确认。
3,计算路由
当同步链路状态最后一个dbd发送后。R1状态从exchange变为loading,发送LSR请求完整拓扑信息lsa,对方R2收到消息后状态也变为loading,并发送lsu携带lsa信息回应R1的请求。R1收到后回复确认,通过多个lsr和lsu的交换,两个路由器的lsdb数据库同步完毕。形成拓扑表,这个过程中使用spf算法计算出路由表。
4,状态机总结
邻居关系的状态
down:邻居会话初始阶段,在邻居失效时间内未收到邻居路由的Hello数据包。
attempt:没有收到邻居的任何信息,但是已经周期性向邻居发送报文,发送间隔HelloInterval
init:从邻居收到hello报文,但报文中并没有自己的Router-id。
2way:收到的Hello表中有自己的Router-id。
邻接关系的状态
exstart:开始协商主从关系,并确定DD的序列号。
exchange:主从关系协商完成,交换DD报文(携带自己lsdb中的lsa)。
loading:使用LSR请求自己所需lsa信,lsu携带lsa信息对LSR做应答,lsack对lsu做确认。
ospf报文
- hello:建立和维护ospf邻居关系。
- dbd:在Exstart时协商主从关系,并确定DD的序列号链路状态数据库描述信息,(lsdb数据库中的lsa头部列表)
- lsr:链路状态请求,向ospf邻居请求链路状态信息请求发送所需的lsa头部标识。
- lsu:链路状态更新。主动时(在路由信息或拓扑信息发生变化时)。被动时(针对缺少详细lsa信息进行回应,携带详细的lsa信息)。周期更新,防止lsa老化。
- lsack:对lsu中lsa进行确认的报文。
六类lsa类型
- router-lsa(type1):每个设备都会产生,描述设备的链路状态和开销,在所属区域内传播
- network-lsa(type2):由DR产生,描述本网段的链路状态,在所属的区域内传播。
- network-summery-lsa(type3):由ABR产生,描述该区域内某个网段的路由,并通告给发布或接收此lsa的非totally stub或nssa区域。
- asbr-summary-lsa(type4):由ABR产生,描述到asbr的路由,通告给除asbr所在区域的其他相关区域。
- as-external-lsa(type5):由asbr产生,描述到AS外部的路由,通告到所有的区域(除了stub区域和nssa区域)。
- nssa lsa(type7):由asbr产生,描述到AS外部的路由,仅在nssa区域内传播。
ospf五个区域
普通区域:缺省情况下,ospf区域被定为普通区域。普通区域包括标准区域和骨干区域。
- 标准区域时最通用的区域。他传输区域内路由,区域间路由和外部路由。
- 骨干区域是连接所有其他ospf区域的中央区域。骨干区域通常用area 0 表示。
stub区域:不允许发布自治系统外部路由,只允许发送区域内路由和区域间路由。为了保证自治系统外路由可达,由该区域abr发布type3缺省路由传播到区域内。
totally stub区域:不允许发布自治系统外部路由和区域间路由,只允许发布区域间路由。为了保证自治系统和其他区域路由可达由该区域的abr发布type3缺省路由传播到区域内,所有自治系统外部和其他区域路由都必须经过abr才能发布。
nssa区域:允许引入自治系统外部路由。由asbr发布type7给本区域。type7在abr上转换为type5并泛红到整个ospf域中。所有域都必须通过abr才能发布。
totally nssa区域:允许引入自治系统外部路由。由sabr发布type7给本区域。在abr上转换成type5并泛洪到整个ospf域。该区域的abr发布type3和type7缺省路由传播到区域内。所有域间路由必须通过abr才能发布。