OSPF 协议 1(基础)
OSPF
reset ospf process # 重新计算路由
- 核心和汇聚层部署在OSPF骨干区域。
- 接入和汇聚层部署在OSPF非骨干区域。
概述
Open Shortest Path First,开放式最短路径优先
基于链路状态 的内部网关协议
大型企业网络中通常部署OSPF实现各个楼宇的网络之间的路由可达。
OSFP 特征
- 把 AS (自治系统 或 自治域)划分成逻辑上的,一个或多个区域。
- 通过 LSA (链路状态通告)的形式发布路由。
- 依靠在 OSPF 区域内各设备间 交互 OSPF 报文 来同步路由。
- OSPF 报文封装在 IP 报文内,可采用 单播 或 组播 的形式发送。
OSFP 术语
- Router ID:自治系统中 唯一标识一台运行 OSPF 的路由设备。
- 链路:路由设备接口。
- 链路状态:接口与相邻路由设备关系的描述。链路状态的集合叫做 LSDB(链路状态数据库)。
- Cost:路由器的 度量值(开销)。
- 每个激活 OSPF 的接口都有 Cost 值。
- OSPF 的 Cost 依据接口带宽来确定,带宽越大,开销越低。
- 一条 OSPF 路由的 Cost ,是该路由从 起始 到达 本机 所有进入端口,开销的总和。
- 区域:自治域内,通过 OSFP 逻辑上划分的区域(area)。
- 一组共享状态链路信息的 路由设备。
- 同组内,LSDB 相同。
- 自治系统:使用 统一路由协议 交换路由信息 的 路由设备 和 网络 构成的系统。
- LSA:描述 路由器 和链路 状态。
- 包含 路由器接口状态、邻接状态。
- 不同类型 LSA 功能也不同。
- 邻居:两台路由设备,共享一条链路,且能协商 Hello 报文数据包中 指定的一些参数。
- 邻接:相互交换 LSA 的 OSPF 邻居,建立的关系。
- DR:指定路由器。
- area 内,由 DR 向其他 路由设备 同步LSDB。
- 新接入设备 优先级比 DR 大,也不会立即更换 DR。
- BDR:备份指定路由。
- area 内,DR 失效时,由 BDR 同步 LSDB。
OSFP 路由器类型
OSPF 按接口划分 区域。
非零区域 必须 与 0 区域 在同一个设备互联。
- BR:骨干路由。
- 至少有一个接口属于 骨干区域。
- IR:区域内路由。
- 所有接口属于同一个。
- ABR:区域边界路由。
- 同时属于 两个及以上 的区域,且必须包括 区域 0 。
- ASBR:自治区域边界路由。
- 区域内 OSPF 路由,引入 外部路由,就是 ASBR 设备。
OSPF 区域类型
- 骨干区域
- 链接其他区域的 核心区域,area 0。
- 标准区域
- 传输 区域内路由,区域间路由,外部路由。
- 非 area区域,且未配置 末节区域
- stub 区域
- 拒绝 4、5 类 LSA
- 自动下发一条 3类 LSA
- Totally stub 区域
- 拒绝 3、4、5 类 LSA
- 自动下发一条 3类 LSA
- NSSA 区域
- 拒绝 4、5 类 LSA ,引入 7类 LSA
- 自动下发一条 7类 LSA
- Totally NSSA 区域
- 拒绝 3、4、5 类 LSA ,引入 7类 LSA
- 自动下发一条 3类 和 7类 LSA
OSPF LSA 类型
报文字段
- LS Age:LSA 的老化时间,表示已生存的 时间。
- Options:每个 bit 对应 所支持的某个特性。
- LS Type:LSA 的类型。
- Link State ID:链路状态的 ID,不同LSA,对应的也不同。
- Advertising Routing:通告路由器,产生 LSA 的路由器 Router ID。
- LS Sequence Number:链路状态序号,当 LSA 产生新的实例,序号就会增加。
- LS checksum:校验,保证数据完整性。
- Length:LSA 的总长度(包含LSA的头部)。
报文类型
- LSA 1 类:Router
- 每个设备都会产生。
- 描述设备链路状态和开销。
- 在所属区域内产生。
- LSA 2 类:Network
- 由 DR 产生。
- 描述本网段的链路状态。
- 在所属区域内产生。
- LSA 3 类:Network-summary
- 由 ABR 产生。
- 描述 区域内 某个网段的路由,并通告其他区域。
- LSA 4 类:ASBR-summary
- 由 ABR 产生。
- 描述到 ASBR 的路由,通告给非此 ASBR 所在的区域。
- LSA 5 类:AS-external
- 由 ASBR 产生。
- 描述到 AS 外部的路由,通告到所有区域。
- LSA 7 类:NSSA
- 由 ASBR 产生。
- 描述到 AS 外部的路由,仅在 NSSA 区域内传播。
OSPF 数据报文类型
OSPF 使用 IP 协议 封装报文,协议号 89。
- Hello:周期性发送,发现和维持 OSPF 邻居关系。
- DD:描述本地的 LSDB 摘要信息,用于两台设备进行数据同步。
- LSR:向 对方(指定路由,DR)请求所需的 LSA。
- 只有在 DD 报文交互后才发送。
- 接收到的数据 类似对方 LSDB 数据目录。
- LSU:向对方 (指定路由,DR)请求所需(本设备没有的)的 LSA。
- 可发送多次。
- LSA:对收到的 LSA 进行确认。
- 同步完成后 发送 LSA 回复。
OSPF 路由类型
AS 区域内路由 和 区域间路由,描述的是 AS 内部的 网络结构。
AS 的 外部路由 描述了到 除 AS 以外的目的地址路由。
外部路由分为 Type1 、Type2 两类。
- Intra Area
- 区域内路由
- 区域间路由
- Transit/Stub
- 区域内部路由
- MA 网络(如以太网,传输网络的中间节点) 或 末梢网络路由(如Loopback接口)。
- ASE
- 引入外部自治系统的路由。
- NSSA
- NSSA 区域引入外部的路由。
- Type 1 (一类外部路由)
- 可信度高。
- 开销 = 本地路由到 ASBR 的开销 + ASBR 到目的地址的开销。
- 存在多个 ASBR 时,每条路径分别计算开销,得到的值 用于路由选路。
- Type 2(二类外部路由)
- 可信度较低,OSPF 认为 从 ASBR 到自治系统外的路由开销,远大于 自治系统内 到达 ASBR 的开销。
- OSPF 计算开销,只考虑 ASBR 到外部的开销,即 开销 = ASBR 到目的地址的开销。
- 多个 ASBR 转向相同地址时。
- 比较引入路由开销,选取最小值,进行路由引入。
- 开销相同,在比较 本路由 到相应的 ASBR 开销,选取最小值 进行路由引入。
- 无论选取哪条,第二类外部路由开销,都等于 ASBR 到该目的地址的开销。
OSPF 邻居关系
代表邻居状态
1、2、3:交换 Hello 报文。
4、5:确定主从关系。
6、7:交换 LSDB 数据目录,同步 LSDB 数据。
8:接收到 LSR请求,类型为 LSA;完成 区域内 LSDB 同步。
- Down:
- 邻居会话初始阶段。
- 未收到邻居 Hello 报文。
- Attenpt:
- 仅发生在 NBMA 网络中。
- 对端邻居在报文 失效前,未发送 Hello 报文。(简化:未收到 Hello 报文)
- 此时 设备还在 向对端发送 Hello 报文。
- Init:
- 收到 Hello 报文。
- 变更状态 为 Init。
- 2Way:
- 收到 Hello 报文,存在本机的 RouterID,则状态转为 2Way。
- 若不需要转为 邻接 关系,则状态定为 2Way。否则进入下一阶段 ExStart。
- ExStart:
- 协商主从关系,确定 DD 序列号。
- Exchange:
- 主从关系协商完毕后,交换 DD 报文,此时为 Exchange。
- Loading:
- DD 报文交换完成 Exchange done,进入 Loading 状态。
- Full:
- LSR 重传列表为空,进入 Full。
