OSPF
1.基础概念:
OSPF协议基于IP运行,协议的数据报文直接采用IP封装,协议号为89.使用组播地址作为目的IP地址。DR、BDR监听224.0.0.6,而DROTHER监听224.0.0.5
2. 路由器类型
- 区域内路由器(Internal Router):该类设备的所有接口都属于同一个OSPF区域。
- 区域边界路由器ABR(Area Border Router):该类路由器可以同时属于两个以上的区域,但至少一个接口必须在骨干区域。ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。
- 骨干路由器(Backbone Router):该类路由器至少有一个接口属于骨干区域。所有的ABR和位于Area0的内部路由器都是骨干路由器。
- 自治系统边界路由器ASBR(AS Boundary Router):与其他AS交换路由信息的路由器称为ASBR。ASBR并不一定位于AS的边界,它可能是区域内路由器,也可能是ABR。只要一台OSPF路由器引入了外部路由的信息,它就成为ASBR。
3.OSPF支持的网络类型
- 广播多路访问(BMA)类型,数据链路层是Ethernet,GigabitEthernet等 同一条链路的掩码位数不同的话,则邻居关系不会建立。hello报文每10s发送一次,超时时间40s.
- 点对点P2P类型,数据链路层是PPP、HDLC等(Serial 口)。 同一条链路的掩码位数不同的话,不会影响邻居关系的建立。hello报文每10s发送一次,超时时间40s.
- 非广播多路访问(NBMA)类型,数据链路层是帧中继等,不支持广播、组播,支持单播,hello报文每30s发送一次,超时时间120s.
- 点到多点P2MP类型,需手工配置
4.DR/BDR的作用
DR的作用:
-
减少邻接关系
-
负责收集区域LSA信息,整理之后泛洪LSA.
BDR的作用:
-
减少邻接关系
-
负责收集LSA信息
5. DR/BDR的选举规则(基于接口)
- 选举是根据端口的路由器优先级(Router Priority)进行的,优先级越大越优先,缺省优先级为1,范围0-255(如果优先级被设置为0,那么该路由器将不允许被选举成DR或者BDR。)
- 如果优先级相同,选Router ID大者优先。
- DR/BDR不能抢占。
6.报文类型
6.1Hello报文:用于建立和维持邻居关系
6.2DD报文:描述本地LSDB的摘要信息,用于两台路由器进行数据库同步,携带LSA信息。
6.3LSR报文:用于向对方请求所需的LSA;路由器只有在OSPF邻居双方成功交换DD报文后才会向对方发出LSR报文
6.4LSU报文:用于向对方发送其所需要的LSA
6.5LSAck报文: 用来对收到的LSA进行确认
7.LSA类型
7.1 Type-1 LSA(router-LSA): 路由器产生,描述了路由器的链路状态和开销,本区域内传播.本区域内有多少台路由器,则有多少条1类
7.2 Type-2 LSA(network-LSA): DR产生,描述本网段的链路状态,本区域内传播,整个区域,有多少个DR,就有多少条2类
7.3 Type-3 LSA(Sum-Net): ABR产生,描述区域内某个网段的路由,区域间传播(除特殊区域),需要传递几条路由,则会产生几条3类
7.4 Type-4 LSA: ABR产生,描述到ASBR的路由,OSPF域内传播(除特殊区域)
7.5 Type-5 LSA: ASBR产生,描述到AS外部的路由,OSPF域内传播(除特殊区域)
7.6 Type-7 LSA: 由ASBR产生,描述到AS外部的路由,仅在NSSA区域内传播。
8.区域类型
- 骨干区域:area 0
- 常规区域(非骨干区域):area 0之外的区域,必须连接骨干区域。
- 末梢区域(Stub区域):过滤LSA 4/5 ,生成3类LSA的默认路由,访问外部路由。 骨干区域不能配置成Stub区域; Stub区域中所有路由器都要配Stub,该区域不能有虚链路。当一个区域被指定为Stub区域后,这个区域将不再允许执行外部路由引入。配置命令为stub
- 完全末梢区域(Totally Stub区域):过滤LSA 3/4/5 ,自动生成3类LSA的默认路由。在ABR上配置,命令为stub no-summary
- 次末节区域(NSSA区域):过滤LSA 4/5 ,自动生成7类LSA的默认路由,从而在一定程度上减少区域内泛洪的LSA数量,同时它还有一个特点,就是允许该区域的路由器将少量外部路由注入OSPF,命令为nssa ,同一个区域的设备都要配置NSSA。
- 完全次末梢区域(Totally NSSA):过滤LSA 3/4/5,在ABR上配置,自动生成3类和7类LSA的默认路由,命令为nssa no-summary
9.区域间防环机制:
- 非骨干区域必须围绕骨干区域设计,非骨干区域之间互通必须经过骨干区域。
- OSPF规定从骨干区域传来的三类LSA接收,但不再传回骨干区域。
-
OSPF的协议特征
- 虚链路:用于实现非骨干区域与骨干区域area 0的连接。
- 特点:①虚链路必须配置在两台ABR路由器之间 ②传送区域不能是一个stub区域
- 配置命令:link-peer 对端的router-id(两端都要配置)
- 认证(接口认证大于区域认证)
区域认证:该区域上的所有路由器都要做区域认证
-
度量值(cost=带宽参考值/实际带宽)
1)Cost值越小,则路径越优。(华为AR路由器,OSPF带宽参考值缺省为100Mbit/s )
2)配置命令:
在OSPF视图下,[R-OSPF-1]bandwidth-reference 200
在接口视图下,修改开销,[r-ethernet0/0/0]ospf cost 123
-
路由汇总
好处:减少网络震荡;缩小路由表规模
OSPF支持两种手工路由汇总,一种需要部署在ABR上,另一种则需在部署在ASBR上。在ABR上,使用命令的是abr-summary(区域视图下),在ASBR上,使用命令的是asbr-summary(进程视图下)
- OSPF中如何判断LSA的新旧?
- 比较序列号,序列号越大越新(将接收到的LSA和本地保存的LSA做比较)。
- 如果序列号一样,比较checksum值,越大越新。
- 如果checksum值一样,需要看LSA age 时间是否等于Max age。如果等于则为最新。
- 如果LSA age 不等于 max age,需要执行Maxage diff算法,比较两个LSA age 的时间差,如果时间差大于15分钟,则LSA age越小越新,如果小于15分钟,则认为一样,忽略。
-
OSPF故障排除流程
- 如果邻居关系处于Down状态:
- 检测物理接口是否正常
- 检测掩码、认证、区域ID等是否匹配
- 相应的接口是否在OSPF中宣告
- 如果邻居关系处于Init状态:
- 检测本端口和对端设备是否发生故障
- 如果邻居关系处于2-way状态:
- 查看接口优先级是否为0
- 如果邻居关系处于Exstart状态:
- MTU值是否匹配
- 如果邻居关系处于Exchange/Loading状态:
- 查看本端接口和对端设备是否发生故障
-
OSPF状态变化:
down-->init-->2-way-->Exstart-->Exchange-->loading(不一定存在此状态)-->full