什么是OSPF?
OSPF 是开放式最短路径,是IETF定义的一种基于链路状态的内部网关路由协议。目前针对IPv4协议使用的是OSPF Version 2针对IPv6协议使用OSPF Version 3
OSPF有以下优点:
路由信息传递与路由计算分离
基于SPF算法,以“累计链路开销”作为选路参考值
采用组播形式收发部分协议报文
支持区域划分
支持对等价路由进行负载分担
支持报文认证
OSPF基本术语
1、Router-ID:Router ID用于在自治系统中唯一标识一台运行OSPF的路由器,它是一个32位的无符号整数。
Router ID选举规则如下:
手动配置OSPF路由器的Router ID(建议手动配置)
如果没有手动配置Router ID,则路由器使用Loopback接口中最大的IP地址作为Router ID
如果没有配置Loopback接口,则路由器使用物理接口中最大的IP地址作为Router ID
2、AS:OSPF Area用于标识一个OSPF的区域。
区域是从逻辑上将设备划分为不同的组,每个组用区域号(Area ID)来标识。
OSPF的区域ID是一个32bit的非负整数,按点分十进制的形式(与IPv4地址的格式一样)呈现,例如Area0.0.0.1。为了简便起见,我们也会采用十进制的形式来表示。每台路由器都有唯一的Router ID
3、度量值:OSPF使用Cost(开销)作为路由的度量值。cost开销值计算的是到目的地的每个出接口总和
内部优先级10
引入外部路由优先级150
OSPF报文类型
- Hello报文
周期性发送,用来发现和维持OSPF邻居关系。
- DD报文
交互链路状态数据库摘要 描述本地LSDB的摘要信息,用于两台设备进行数据库同步。
- LSR报文
用于向对方请求自己没有的LSA。
设备只有在OSPF邻居双方成功交换DD报文后才会向对方发出LSR报文。
- LSU报文
用于向对方发送其所需要的详细的链路状态信息
- LSAck报文
用来对收到的LSA进行确认。
OSPF 常见LSA类型
- Router-LSA(Type1)
- Network-LSA(Type2)
- Network-summary-LSA(Type3)
- ASBR-summary-LSA(Type4)
- AS-external-LSA(Type5)
- NSSA LSA(Type7)
OSPF 路由器类型
- 区域内路由器
- 区域边界路由器ABR
- 骨干路由器
- 自治系统边界路由器ASBR
OSPF 特殊区域
- STUB区域 Stub区域的ABR不向Stub区域内传播它接收到的AS外部路由,Stub区域中路由器的LSDB、路由表规模都会大大减小。为保证Stub区域能够到达AS外部,Stub区域的ABR将生成一条缺省路由(使用3类LSA描述)。
- Totally STUB区域 Totally Stub区域既不允许AS外部路由在本区域内传播,也不允许区域间路由在本区域内传播。Totally Stub区域内的路由器通过本区域ABR下发的缺省路由(使用3类LSA描述)到达其他区域,以及AS外部。配置Totally Stub区域时需要注意:与Stub区域配置的区别在于,在ABR上需要追加no-summary关键字。
- NSSA区域 NSSA区域能够引入外部路由,同时又不会学习来自OSPF网络其它区域引入的外部路由
- Totally NSSA区域 Totally NSSA与NSSA区域的配置区别在于前者在ABR上需要追加no-summary关键字
OSPF支持的网络类型
- 广播类型(Broadcast)
- NBMA类型(Non-Broadcast Multi-Access)
- 点到多点P2MP类型(Point-to-Multipoint)
- 点到点P2P类型(point-to-point)
OSPF七个状态及建立邻接关系过程
① down 初始状态:开始发送hello包前的状态
② init:开始向外发送hello包
③ 2way:接受到了相邻路由器的hello包,并且包中有对方的路由信息,进入2way状态,这个状态中需要做DR/BDR选举,选出DR、BDR
④ ExSTART:开始进行fisrtDBD包的交换,进行主从选举
⑤ Exchange:主从选举完毕之后,进行DBD包的传送,直到最后一个发完
⑥ loading:路由器使用request请求自己所描述的条目的具体信息,对方使用update发送完整的LSA具体信息
⑦ Full:没有需要求的条件,将进行full状态。邻接关系完全建立。