OSPF 基础
OSPF(Open Shortest PathFirst,开放式最短路径优先)OSPF报文采用IP
报文封装可靠传输,在IP报文的IP头部中,协议号89
。共有两个版本。V2版本用于IPV4。V3版本用于IPV6。互相不兼容。OSPF组播地址:224.0.0.5
(所有运行ospf协议的路由器侦听的组播地址),224.0.0.6 (DR和BDR侦听的组播地址)
OSPF宣告路由时宣告的掩码为反掩码
链路状态路由协议的工作原理:
1. 建立邻居(通过Hello报文发现直连链路上的邻居)
2. 泛洪LSA,收集LSA存放在LSDB中
3. 根据SPF算法计算,以自己为根的无环的,拥有最短路径的树
> SPF --- Shortest Path First,最短路径优先
4. 将计算出来的路由存放在OSPF路由表中
Area 用于表示一个OSPF区域,表示方式:area ID
。其中Area 0表示骨干区域,其他为非骨干区域必须与骨干区域相连
Router ID : RouterID用于在自治系统中唯一标识一台运行OSPF的路由器,它是一个32位的无符号整数
选举规则:
1. 手动配置OSPF路由器的Router ID(建议手动配置)
2. 如果没有手动配置Router ID,则路由器使用Loopback接口中最大的IP地址作为Router ID
3. 如果没有配置Loopback接口,则路由器使用物理接口中最大的IP地址作为Router ID
OSPF度量值cost : 计算方法:cost=100/接口带宽 100Mbit/s 100为默认值可以更改 不足为1的置为1 一条OSPF路由的开销值计算:路由器到目的网段经过所有的出接口的cost值的和 每一个激活OSPF的接口都会维护一个接口cost值 优先走Cost小的那条路
s口速率很低只有1.544mbit/s cost常见为64或48
三张表
- 邻居表:存放邻居关系
- LSDB表:存放lsa
- OSPF路由表:存放OSPF路由
四种网络类型
网络类型 | 是否需要选举DR/BDR | |
---|---|---|
点到点(P2P) | PPP/HDLC | 不需要 |
点到多点(P2MP) | 手工指定 | 不需要 |
广播多路访问(BMA) | 以太网 | 需要 |
非广播多路访问(NBMA) | 帧中继 | 需要 |
五种报文
Type | 报文名称 | 报文功能 |
---|---|---|
1 | Hello | 发现、维护邻居关系;MA网络中选举DR和BDR |
2 | Database Description | 交互链路状态数据库摘要:携带LSA头部,在Exstart状态下选举主从 |
3 | Link State Request | 请求特定的链路状态信息:请求特定的LSA头部 |
4 | Link State Update | 发送详细的链路状态信息:更新请求LSA(完整的LSA信息) |
5 | Link State Ack | 针对LSU进行确认:确认LSA |
HELLO报文
DD报文
当两个路由器之间通过DD报文交换数据库信息的时候,首先形成一个主从关系,Router id大的一定为主
OSPF包含的报文头部
信息都是一样的
七种状态
邻居关系(使用Hello报文)
down --- 初始状态没有从邻居收到任何信息
init --- 当收到对端发过来的Hello报文,报文中没有自己的router-id
2-way --- 当收到对端发送的Hello报文,报文中有自己的router-id。表示邻居关系建立;在MA中选举DR/BDR
邻接关系(首先要建立邻居关系)
Exstart --- 通过空DD报文选举主从
Exchange --- 交互携带LSR头部的DD报文
loading --- 互相发送LSR/LSU/LSAck
1->2 发送LSR 用于向邻居请求完整的LSA
2->1 发送LSU 包含完整的LSA信息
1->2发送LSAck 确认LSU报文
两个路由均发送
Full --- 代表邻接关系的建立
OSPF建立邻居关系的原则:
- Router id 不相同
- area 相同
- 验证类型和验证口令相同
- Hello/dead时间相同(10s/40s)
- 掩码要相同
- 特殊区域相同
DR/BDR
DR:指定路由器,负责在MA网络中建立和维护邻接关系并负责LSA同步。同一网段选举一个DR和BDR。DR和BDR会其他路由器建立邻接关系,其他路由器之间不会建立邻接关系,但是会建立邻居关系,状态停留在2-way BDR:备份指定路由器。在DR失效时候快速接管DR工作。
选举规则: DR/BDR的选举是非抢占式的 DR/BDR的选举是基于接口的
- 接口的DR优先级越大越优先 (0-255) 默认为1。 0不参与选举
- 接口的DR优先级相等时,Router ID越大越优先。
优先级为0不参与选举 新设备不能直接成为DR/BDR
为什么要在MA中网络选举DR和BDR
- 减少邻接关系
- 减少LSA泛洪
- 减少设备资料的消耗
LSA
常见LSA 类型
类型 | 名称 | 描述 |
---|---|---|
1 | 路由器LSA(Router LSA) | 每个设备都会产生,描述了设备的链路状态和开销,该LSA只能在接口所属的区域内 泛洪 |
2 | 网络LSA (Network LSA) | 由DR产生,描述该DR所接入的MA网络中所有与之形成邻接关系的路由器,以及DR自己。该LSA只能在接口所属区域内 泛洪 |
3 | 网络汇总LSA (Network Summary LSA) | 由ABR产生,描述区域内某个网段的路由,该类LSA主要用于区域间 路由的传递 |
4 | ASBR汇总LSA (ASBR Summary LSA) | 由ABR产生,描述到ASBR的路由,通告给除ASBR 所在区域的其他相关区域 |
5 | AS外部LSA (AS External LSA) | 由ASBR产生,用于描述到达OSPF区域外 的路由 |
7(没有六类) | 非完全末梢区域LSA (NSSA LSA) | 由ASBR产生,用于描述到达OSPF区域外的路由。NSSALSA与AS外部LSA功能类似,但是泛洪范国不同。NSSALSA只能在始发的NSSA内 泛洪,并且不能直接进入Area0。NSSA的ABR会将7类LSA转换成5类LSA注入到Area |
优先级 LSA1>LSA3>LSA5(1)>LSA5(2)
区域划分
区域划分路由角色:
- 区域内路由器(IR ---Internal Router):路由器的所有接口都属于同一区域
- 区域边界路由器(ABR --- Area Border Router ):路由器至少有一个接口属于骨干区域,且路由的接口同时属于两个以上区域
- 自治系统边界路由器(ASBR --- AS Boundary Router):只要一台OSPF路由器引入了外部路由信息,他就成为ASBR
区域间路由计算: 通过ABR产生的三类LSA(Network Summary LSA)的Cost实现。
外部路由计算: 如果和ASBR在同一个区域,那么通过1类和2类LSA计算到达ASBR的路由信息 如果和ASBR不在同一个区域,那么通过4类的LSA去计算去往ASBR的路由信息
区域间路由防环机制:
- OSPF要求所有的非骨干区域必须和骨干区域相连,由area0中转
- ABR不会将描述到达某个区域内网段路由的3类LSA发送再次到该区域
- ABR从非骨干区域收到是3类LSA不能用于区域间路由的计算。
虚连接:
虚连接可以在任意两个ABR上建立,但是要求这两个ABR都有端口连接到一个相同的非骨干区域
虚连接的创建使得OSPF协议可以通过非骨干区域
通信,违背OSPF区域间的放环机制,因此不建议部署OSPF虚连接。
配置命令
进入area区域
vlink-peer 对端Router ID
两个需要连接的路由器上均需要配置
Router LSA
产生者:每台路由器
Link State ID:router_id
泛洪范围:区域内
Router LSA 使用Link来承载路由器直连的接口信息 每条Link都包含链路类型
链路ID
链路数据
度量值
Link Type | Link ID | Link Data |
---|---|---|
P2P 描述本路由器到邻居路由器之间的点到点链路,属于拓扑 信息 |
邻居路由器的Router ID (对端的router-id) | 宣告该RouterLSA的路由器接口的IP地址 |
TransNet 描述本路由器到Transit网段(例如MA或者NBMA网段)的连接,属于拓扑 信息 |
DR的接口IP地址 | 宣告该RouterLSA的路由器接口的IP地址 |
StubNet:描述本路由器到一Stub网段(例如Loopback接口)的连接,属于网段 信息 |
宣告该RouterLSA的路由器接口的网络IP地址 网络地址 | 该Stub网络的网络掩码, |
virtual | 对端的router-id | 连接virtual的接口IP地址 |
Network LSA
产生者:DR
Link State ID : DR的接口IP地址
泛洪范围:区域内
该LSA作用:描述MA网络的掩码信息和参与者
SPF 算法
第一阶段计算路由节点和Transit拓扑, 第二阶段计算Stub网段
- 以自己为跟检查Router LSA 将不是StubNet类型的Link加入候选列表
候选列表(Link ID) | 候选总开销(到根节点的Metric总和) | 根/父节点 |
---|
- 将开销最小的移到最短路径树上并将其从候选列表中删除
- 查询刚才移动的路由的LSA 并重复此操作直到候选列表为空
Network Summary LSA
产生者:ABR
Link State ID:目的网段IP
泛洪范围:区域间
作用:描述区域间的路由信息
ASBR Summary LSA
产生者:ABR
Link State ID:ASBR的Router-id
泛洪范围:除ASBR的其他相关区域
作用:描述ASBR的位置
AS External Router
产生者:ASBR
Link State ID: 外部路由网络号
泛洪范围:整个AS内
作用:描述外部路由(外部路由网络号掩码、度量值(默认是type2)),FA)
NSSA LSA
产生者:ASBR LS ID:外部路由网络号 泛洪范围:NSSA区域 作用:描述外部路由(外部路由网络号掩码、度量值(默认是type2)),FA)
汇总
类型 | 英文名称 | 产生者 | LINK ID | 泛洪区域 |
---|---|---|---|---|
1 | 路由器LSA(Router LSA) | 每台路由器 | 邻居的ID | 区域内 |
2 | 网络LSA(Network LSA) | DR | DR的接口IP地址 | 区域内 |
3 | 网络汇总LSA(Network Summary LSA) | ABR | 目的网段IP | 区域内 |
4 | ASBR汇总LSA(ASBR Summary LSA) | ABR | ASBR的Router ID | 区域内 |
5 | AS外部LSA(As Boundary Router) | ASBR | 外部网络地址 | 整个AS内 |
7 | 非完全末端区域LSA(NSSA LSA) | ASBR | 外部网络地址 | NSSA区域 |
特殊区域
OSPF的区域可分为两种类型(了解):
- 传输区域(Transit Area):除了承载本区域发起的流量和访问本区域的流量外,还承载了源IP和目的IP都不属于本区域的流量.
- 末端区域(Stub Area):只承载本区域发起的流量和访问本区域的流量.
如果将一个区域配置成为Stub区域,则该区域中的所有路由器都要配置Stub区域属性
配置stub
进入area 视图
输入 stub
Stub area
不允许LSA4和LSA5进入 区域里允许LSA1/LAS2/LSA3存在 同时在ABR会生成一条默认的路由到stub区域,由LSA3描述的。
Totally stub area
与Stub区域配置的区别在于,在ABR上需要追加no-summary
关键字
与末梢区域相同但是在区域内的LSA3内部路由不能存在
NSSA
NSSA区域能够引入外部路由,同时又不会学习来自OSPF网络其它区域引入的外部路由
不允许LSA4和LSA5进入 区域里允许LSA1/LSA2/LSA3存在 同时在ABR会生成一条默认的七类路由到NSSA区域和详细的七类lsa用来标识引用的外部网络。 可以引入外部路由,ABR收到LSA7会执行7转5操作,把外部路由以LSA5通告给OSPF域内的其他路由器)
Totally NSSA
与NSSA区域配置的区别在于,在ABR上需要追加no-summary
关键字
不允许LSA4和LSA5进入LSA3(域间路由)
允许LSA1/LSA2/LSA3(ABR产生的默认路由)存在 同时在ABR会生成一条默认的路由到Totally NSSA区域,由LSA7描述的。
特殊区域的作用:
- 减少特殊区域的LSA数量
- 减少特殊区域LSA计算的工作量
- 减少特殊区域的路由表的数量
- 减少特殊区域路由器的资源消耗
路由汇总
路由汇总:将一组前缀相同的路由汇聚成一条路由,从而减小路由表规模以及优化设备资源利用率
区域间路由汇总:在ABR上汇总 汇总后向其他路由通告汇总后路由
abr-summary 网段ip 掩码
外部路由:在ASBR上汇总 ;ASBR将自己所引入的外部路由进行汇总;NSSA区域的ASBR也可以对引入的区域的外部路由进行汇总 在NSSA区域中,ABR执行7类LSA转化成5类LSA动作,此时它也是ASBR
OSPF协议特性
silent-interface 不会接受和发送ospf报文
进入ospf视图
silent-interface 接口
OSPF报文认证
路由器支持两种OSPF报文认证方式,当两种认证方式都存在时,优先使用接口认证方式 区域认证方式(Simple 明文):一个OSPF区域中所有的路由器在该区域下的认证模式和口令必须一致, 接口认证方式(MD5 密文):相邻路由器直连接口下的认证模式和口令必须一致。
配置命令
配置Router-id
# 系统视图下
ospf router-id 设置的ip
配置Area
# ospf视图下
area 设置的区域ip
宣告ip
# area区域内
# 1. 宣告ip
network 接口ip 反掩码
# 2. 宣告网段
network 接口网段地址 反掩码
查看ospf路由表
display ospf routing
查看ospf邻接关系
display ospf peer
查看LSDB表
display ospf lsdb
修改OSPF网络类型
ospf network {p2p| p2mp| broadcas(默认)| nbma}
查看ospf 所有网络信息
display ospf interface all
查看LSA
display ospf router self-originate
下发默认路由
default-route-advertise always
查看ospf邻居关系建立失败原因
display ospf error
配置虚连接 在AR4与AR6之间
[Huawei-ospf-1]vlink-peer 2.2.2.2 对端routerid
Comments NOTHING