前面我们又复习了一遍OSPF概述,在OSPF建立关系后有几种交互报文,通过LSU类型报文包含LSA信息实现路由信息传递,常见了1、2、3、4、5、7类LSA,分别对应不同功能使用。这里先看下1类LSA-Router LSA。
一、LSA概述
LSA,全称为Link State Advertisement,即链路状态通告,是OSPF(Open Shortest Path First)路由协议中的一个关键组成部分。
LSA记录了OSPF路由器所了解到的网络拓扑信息,包括连接的网络设备、路由器之间的连接信息、链路状态、度量值等。在OSPF协议中,网络被划分成了不同的区域,每个区域内部的路由器会收集各自所连接的网络的信息,并将这些信息记录在LSA中。当一个OSPF路由器收到其他路由器发送的LSA时,会通过比较这些LSA来计算最短路径,从而确定数据包的传输路径。
LSA类似于一条数据记录或者说原材料,然后路由器将这些LSA存放在LSDB数据库里面,正常情况下区域内的LSDB保持一致,然后路由器根据这些LSA通过SPF算法计算到达各个目的网络的路径,这样子保证区域内无环路。
LSA是OSPF进行路由计算的关键依据。OSPF的LSU报文可以携带多种不同类型的LSA。各种类型的LSA拥有相同的报文头部。
相关字段说明:
-
LS Age(链路状态老化时间):此字段表示LSA已经生存的时间,单位是秒。 -
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的新旧。
二、Router LSA(1类LSA)详解
2.1 报文结构
Router LSA(1类LSA):每台OSPF路由器都会产生。它描述了该路由器直连接口的信息。Router LSA只能在所属的区域内泛洪。
-
Router LSA使用Link来承载路由器直连接口的信息。 -
每条Link均包含“链路类型”、“链路ID”、“链路数据”以及“度量值”这几个关键信息。 -
路由器可能会采用一个或者多个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网络的网络掩码 |
报文抓包:
2.2 LSA描述的链路类型
关系说明:OSPF LSU报文-->LSA(1、2、3、5、7)-->一条LSA可以多条链路的描述-->描述的类型有(P2P、TransNet、StubNet)
Router LSA描述P2P网络: 如图所示:这是一条Router LSA,LS id 为10.0.1.1,发布者是10.0.1.1;里面包含两条link描述,第一条的Link Type类型为P2P,因此这里的Link ID是对端的路由器ID,data就是自身的接口IP;第二个link类似为stubnet,描述一个从本路由器到一个Stub网段(例如Loopback接口)的连接,属于网段信息,因此这里link id 是接口的网段,data是掩码,说明这个接口的所属网段为10.0.13.0/24。
Router LSA描述TransNet:
描述一个从本路由器到一个Transit网段(例如MA或者NBMA网段)的连接,属于拓扑信息。这里link id 表示DR地址,data表示DR发送接口的IP地址。
正常情况下OSPF描述网络需要拓扑信息和网段信息,能够知道对端是什么地址?DR是谁?连接网段和掩码是多少?
2.3 LSA的产生形成
OSPF是有自己产生LSA进行通告和学习其它邻居发布的LSA组成LSDB,然后进行计算最优路径的。
以下图为例:
# 检查OSPF状态
[AR1]dis ospf peer brief
OSPF Process 1 with Router ID 10.0.0.1
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.0 GigabitEthernet0/0/0 10.0.0.2 Full
----------------------------------------------------------------------------
[AR1]dis ospf peer
OSPF Process 1 with Router ID 10.0.0.1
Neighbors
Area 0.0.0.0 interface 10.0.0.1(GigabitEthernet0/0/0)'s neighbors
Router ID: 10.0.0.2 Address: 10.0.0.2
State: Full Mode:Nbr is Master Priority: 1
DR: 10.0.0.1 BDR: 10.0.0.2 MTU: 0
Dead timer due in 40 sec
Retrans timer interval: 5
Neighbor is up for 05:15:57
Authentication Sequence: [ 0 ]
# AR2
[AR2]DIS OSPF PEER brief
OSPF Process 1 with Router ID 10.0.0.2
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.0 GigabitEthernet0/0/0 10.0.0.1 Full
----------------------------------------------------------------------------
[AR2]DIS OSPF PEER
OSPF Process 1 with Router ID 10.0.0.2
Neighbors
Area 0.0.0.0 interface 10.0.0.2(GigabitEthernet0/0/0)'s neighbors
Router ID: 10.0.0.1 Address: 10.0.0.1
State: Full Mode:Nbr is Slave Priority: 1
DR: 10.0.0.1 BDR: 10.0.0.2 MTU: 0
Dead timer due in 35 sec
Retrans timer interval: 5
Neighbor is up for 05:17:18
Authentication Sequence: [ 0 ]
# 从上面知道邻居已经建立,DR是10.0.0.1,BDR是10.0.0.2
AR1的LSA信息:
# 查看LSDB数据库
[AR1]dis ospf lsdb
OSPF Process 1 with Router ID 10.0.0.1
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 10.0.0.2 10.0.0.2 1281 48 8000000E 1
Router 10.0.0.1 10.0.0.1 1278 48 80000010 1
Network 10.0.0.1 10.0.0.1 1278 32 8000000C 0
# 先看一类LSA,能够发现有两条一类LSA,然后通告者分别是10.0.0.1和10.0.0.2。
AR2的LSA信息:
[AR2]dis ospf lsdb router
OSPF Process 1 with Router ID 10.0.0.2
Area: 0.0.0.0
Link State Database
Type : Router
Ls id : 10.0.0.2
Adv rtr : 10.0.0.2
Ls age : 1698
Len : 48
Options : E
seq# : 8000000e
chksum : 0x2920
Link count: 2
* Link ID: 10.0.0.1
Data : 10.0.0.2
Link Type: TransNet
Metric : 1
* Link ID: 172.16.0.1
Data : 255.255.255.255
Link Type: StubNet
Metric : 0
Priority : Medium
Type : Router
Ls id : 10.0.0.1
Adv rtr : 10.0.0.1
Ls age : 1697
Len : 48
Options : E
seq# : 80000010
chksum : 0xa5f6
Link count: 2
* Link ID: 10.0.0.1
Data : 10.0.0.1
Link Type: TransNet
Metric : 1
* Link ID: 192.168.1.1
Data : 255.255.255.255
Link Type: StubNet
Metric : 0
Priority : Medium
从上面信息我们能够知道有AR1和AR2两个路由器,AR1是DR,连接了一个192.168.1.0网段,AR2与AR1相连,角色是BDR,连接了一个172.16.0.0网段,简单说就是transnet和p2p描述了网络拓扑,然后stubnet描述连接的网段信息构成整个完整网络。当然这里我们只学习了Router LSA,只能在区域内Area0内通告泛洪。
总结:OSPF邻接关系完成后通过LSU请求报文和学习路由信息,每个路由器会通告自己的拓扑信息和网段信息保存在区域内的LSDB,一般区域内的LSDB数据库是一致的,然后路由器根据这个LSDB进行路由计算保证区域内无环路,Router LSA头部相同,可以携带多条link链路信息,只能在区域内进行泛洪通告。
本文由 mdnice 多平台发布