OSPF的区域概念
同一区域内的OSPF路由器拥有完全一致的LSDB,在区域内部,OSPF采用SPF算法完成路由计算
LSA的基本概念
- LSA是OSPF进行路由计算的关键依据
- OSPF的LSU报文可以携带多种不同类型的LSA
- 各种类型的LSA拥有相同的报文头部
LSA Header
| IP Header | OSPF Header | LSU Payload | |
|---|---|---|---|
| LSA Header | Payload |
| LSA Header | ||
|---|---|---|
| LS Age | Options | LS Type |
| Link State ID | ||
| Advertising Router | ||
| LS sequence number | ||
| LS checksum | length |
LSA Header重要字段解释:
- LS Age(链路状态老化时间):此字段表示LSA已经生存的时间,最长3600秒
- Options(可选项):每一个bit都对应了OSPF所支持的某种特性
- LS Type(链路状态类型):指示本LSA的类型
- Link State ID(链路状态ID):不同的LSA,对该字段的定义不同
- Advertising Router(通告路由器):产生该LSA的路由器的Router ID
- LS Sequence Number(链路状态序列号):当LSA每次有新的实例产生时,序列号就会增加
- LS Checksum(校验和):用于保证数据的完整性和准确性
- Length:是一个包含LSA头部在内的LSA的总长度值
- 链路状态类型、链路状态ID、通告路由器三元组唯一地标识了一个LSA
- 链路状态老化时间、链路状态序列号、校验和用于判断LSA的新旧
常见LSA的类型
| 类型 | 名称 | 描述 |
|---|---|---|
| 1 | 路由器LSA(Router LSA) | 每个运行了OSPF的接口都会产生,描述了设备的链路状态和开销。该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域外的路由。NSSA LSA与AS外部LSA功能类似,但是泛洪范围不同。NSSA LSA只能在始发的NSSA内泛洪,并且不能直接进入area0。NSSA的ABR会将7类LSA转换成5类LSA注入到area0 |
LSA详解
1-LSA
- Router LSA(1-LSA):每台OSPF路由器都会产生。它描述了该路由器直连接口的信息
- Router LSA只能在所属的区域内泛洪
| LSA Header | |||
|---|---|---|---|
| LS Age | Options | LS Type | |
| Link State ID | |||
| Advertising Router | |||
| LS sequence number | |||
| LS checksum | length | ||
| Payload | |||
| 0 | V E B | 0 | #links |
| Link ID | |||
| Link Data | |||
| link type | #TOS | metric | |
| ... |
Payload重要字段解释:
- V(Virtual Link):如果产生此LSA的路由器是虚连接的端点,则置为1
- E(External):如果产生此LSA的路由器是ASBR,则置为1
- B(Border):如果产生此LSA的路由器是ABR,则置为1
- links:LSA中的Link(链路)数量。Router LSA使用Link来承载路由器直连接口的信息
| Link Type | Link ID | Link Data |
|---|---|---|
| Point-to-point(P2P):描述一个从本路由到邻居路由器之间的点到点链路,属于拓扑信息 | 邻居路由器的Router ID | 宣告该Router LSA的路由器接口的IP地址 |
| TransNet:描述一个从本路由器到一个Transit网段(例如MA或者NBMA网段)的连接,属于拓扑信息 | DR的接口IP地址 | 宣告该Router LSA的路由器接口的IP地址 |
| StubNet:描述一个从本路由器到一个Stub网段(例如Loopback接口)的连接,属于网段信息 | 宣告该Router LSA的路由器接口的网络IP地址段 | 该Stub网络的网络掩码 |
- metric:cost值
Router LSA描述P2P网络
R1向R3发送Router-LSA,携带拓扑和网段信息
R1(routerid 10.0.1.1,g0/0/0 10.0.13.1/24)---------serial---------> R3(routerid 10.0.3.3,g0/0/0 10.0.13.3/24)
| LSA头部 | |||
|---|---|---|---|
| LS Type | Link State ID | Advertising Router | |
| Router | 10.0.1.1 | 10.0.1.1 | |
| Router LSA中包含的第一个link:描述拓扑信息 | |||
| Link Type | Link ID | Link Data | Metric |
| P-2-P | 10.0.3.3 | 10.0.13.1 | 48 |
| Router LSA中包含的第二个link:描述网段信息 | |||
| Link Type | Link ID | Link Data | Metric |
| StubNet | 10.0.13.0 | 255.255.255.0 | 48 |
Router LSA描述TransNet网络
2-LSA
- Network LSA(2类LSA):由DR产生,描述本网段的链路状态,在所属的区域内传播
- Network LSA记录了该网段内所有与DR建立了邻接关系的OSPF路由器,同时携带了该网段的网络掩码
| LSA Header | ||
|---|---|---|
| LS Age | Options | LS Type |
| Link State ID | ||
| Advertising Router | ||
| LS sequence number | ||
| LS checksum | length | |
| Payload | ||
| Network Mask | ||
| Attached Router | ||
| ... |
Payload重要字段解释:
- Link State ID:DR的接口IP地址
- Network Mask:MA网络的子网掩码
- Attached Router:连接到该MA网络的路由器的Router ID(与该DR建立了邻接关系的邻居的Router ID,以及DR自己的Router ID),如果有多台路由器接入该MA网络,则使用多个字段描述
Network LSA描述MA网络
SPF算法
- 构建SPF树
- 路由器将自己作为最短路径树的树根,根据Router-LSA和Network-LSA中的拓扑信息,依次将cost值最小的路由器添加到SPF树中。路由器以Router ID或者DR标识
- 计算最优路由
- 将Router-LSA、Network-LSA中的路由信息以叶子节点形式附加在对应的OSPF路由器上,计算最优路由
R1(1.1/24)<---------serial--------->R2(1.100/29)
例:R1与R2,P2P连接,R1的接口为1.1/24,R2的接口为1.100/29,那么R1到达1.100的cost值为48+48=96,R2到达1.1的cost值为48+48=96;若修改R2的1.100接口的cost值为20,那么R1到达1.100的cost值为48+20,R2到达1.1的cost值为20+48
相关配置命令
display ospf lsdb router self-originate//查看自己产生的1类LSA
display ospf lsdb network self-originate//查看自己产生的2类LSA