文章目录
- ospf的lsa
- LSA的头部信息
- 一类LSA:Router
- 二类LSA:Network
- 三类LSA:Sum-net
- 五类LSA:External
- 四类LSA:Sum-Asbr
ospf的lsa
ospf本质是通过lsa(链路状态通告)洪泛,将运行ospf域内的所有lsa存放到本地lsdb(链路状态数据库),然后通过spf(最短路径优先算法)计算出路由并加载到路由表中。ospf中有十几种lsa,其中我们需要掌握的有六种,在这些lsa中,不同的lsa携带的信息不一样,有的携带拓扑信息、有的携带路由信息。通过Type、Ls id和AdvRouter可以唯一的标识一条lsa。
类型 | LS ID | 通告者 | 传播范围 | 携带的信息 |
---|---|---|---|---|
Type - 1LSA:Router | 通告者 | ospf域内所有运行ospf的设备的RID | 单区域 | 本地接口直连的拓扑信息 |
Type - 2LSA:Network | DR的接口IP | MA网路中的DR的RID | 单区域 | 单个MA网络的拓扑信息的补充 |
Type - 3LSA:Sum-net | 路由网段 | ABR,在经由其他ABR转发时会修改为新的ABR | 单区域 | 其他区域的路由信息 |
Type - 5LSA:External(ase) | 域外路由网段 | ASBR | ospf域内 | 域外路由 |
Type - 4LSA: Sum-Asbr(summary) | ASBR的RID | 和ASBR同区域的ABR,在经由其他ABR转发时修改为新的ABR | 除ASBR所在区域外的OSPF单区域 | ASBR的位置信息 |
<r1>display ospf lsdbOSPF Process 1 with Router ID 1.1.1.1Link State Database Area: 0.0.0.0Type LinkState ID AdvRouter Age Len Sequence MetricRouter 2.2.2.2 2.2.2.2 699 72 8000000A 1Router 1.1.1.1 1.1.1.1 721 60 80000005 0Router 3.3.3.3 3.3.3.3 690 48 80000007 1Network 23.1.1.2 3.3.3.3 690 32 80000002 0Sum-Net 4.4.4.4 3.3.3.3 684 28 80000001 1Sum-Net 34.1.1.0 3.3.3.3 729 28 80000001 1Sum-Net 10.1.1.1 3.3.3.3 309 28 80000001 1Sum-Asbr 4.4.4.4 3.3.3.3 276 28 80000001 1AS External DatabaseType LinkState ID AdvRouter Age Len Sequence MetricExternal 10.1.1.0 4.4.4.4 277 36 80000001 1
LSA的头部信息
不同类型的LSA都有相同的头部字段
<r1>display ospf lsdb router 1.1.1.1OSPF Process 1 with Router ID 1.1.1.1Area: 0.0.0.0Link State Database Type : RouterLs id : 1.1.1.1Adv rtr : 1.1.1.1 Ls age : 1464 Len : 60 Options : E seq# : 80000003 chksum : 0xb2ee --- 从Type到chksum都是LSA的头部信息,每个LSA都具有的Link count: 3* Link ID: 1.1.1.1 Data : 255.255.255.255 Link Type: StubNet Metric : 0 Priority : Medium* Link ID: 2.2.2.2 Data : 12.1.1.1 Link Type: P-2-P Metric : 48* Link ID: 12.1.1.0 Data : 255.255.255.0 Link Type: StubNet Metric : 48 Priority : Low
Type:LSA的类型,在OSPFV2中,主要需要掌握6中LSA类型
LinkState ID:链路状态标识符,其主要作用是用来标记一条LSA,可以理解为一条LSA的名称,但因为不同类型的LSA获取LS ID的方式不同,可能会出现LS ID相同的情况,所以仅凭借LS ID 并不能唯一的标识一跳LSA
AdRouter:通告路由器,标识发送该LSA信息的路由器的RID
以上三个参数被称为LSA的三元组,可以用来唯一的标识一条LSA
LS AGE:老化时间,单位为s,这个老化时间是从该LSA信息从产生就开始计时,之后,该LS在网络中传播的过程中,老化时间始终累加。老化时间一般最大到1800s(因为OSPF有周期更新,每过30分钟,即将自己所有的LSA信息向外重新发一遍,还会重置自己产生的LSA的老化时间),LSA还有一个最大老化时间(MAX AGE),为3600s,如果一条LSA的老化时间达到3600s时,则将认定该LSA信息失效,直接删除
注:OSPF的周期更新为1800s,正常情况下,当一条LSA信息的老化时间达到1800s时,将进行周期更新,但每条LSA的老化时间不一定一致,如果只对老化时间达到1800s的LSA更新,就会导致多次更新,浪费资源,所以,OSPF中有一个组步调计时器,开启组步调计时器后,达到1800s时,先不进行周期更新,而是等待300s,当老化时间达到2100s时,再进行周期更新,更新时会将所有老化时间再1800s - 2100区间内的LSA信息一起更新。
SEQ:序列号,有32位二进制构成,用8位16进制来表示,每一条LSA都会携带一个序列号,每台路由器在发送相同的LSA信息时会将序列号逐次加1,序列号主要用来区分LSA的新旧。
序列号空间的分类:
直线序列号空间:序列号逐次增大,直到序列号用完。如有100个序列号,第一个产生的LSA序列号为1,后续产生相同LSA时序列号加1,直至第100次产生的相同LSA的序列号为100,后续的LSA的序列号也只能为100。使用直线序列号空间方便比较新旧,通过大小就可以直接进行比较,但序列号有限,超出数量后,就无法正常比较大小关系。
循环序列号空间:序列号逐次增大,直到最大值,在产生相同的LSA就再次从最小值开始循环。这样可以循环使用序列号,不受循环空间大小的限制,但当两条LSA携带的序列号数值相差较大时,无法判断新旧。
棒棒糖序列号空间:棒棒糖序列号结合了直线序列号和循环序列号,它是从负值开始,假设它从-100开始,最大值为100,当它达到100时,序列号就再次从0开始循环,而不是从-100开始,这样做的好处是:如果某台设备重新启动ospf后,发布的LSA的序列号都是负值,这些肯定都是最新的LSA。但棒棒糖学列号也没有完全解决新旧问题。
OSPF采用的是棒棒糖序列空间,但是为了避免循环部分造成新旧部分无法判断的情况,所以,ospf要求序列号不能进入循环。到达最大值后重置序列号。ospf序列号的取值范围为0x80000001 - 0x7FFFFFFF.
OSPF重置序列号空间的方法:当一条LSA的序列号达到最大值0x07FFFFFFF时,OSPF会将该LSA的老化时间设置为3600s,邻居收到这条LSA后,首先替换之前的LSA,之后,又因为该LSA的老化时间达到最大,将该LSA删除,紧接着,设备将再发送一条相同的LSA信息给邻居,这条LSA信息中的序列号为0x800000001,邻居会把最新的信息加入到数据库中,这些就达到了书信序列号空间的作用。
Chksum:校验和,主要任务时校验数据的完整性,这个校验和也会参与LSA的新旧比较,即当两条相同的LSA,它们的序列号也相同,则通过校验和来进行判断,校验和大的认为新。
一类LSA:Router
一类LSA是最重要的LSA,它携带着设备的直连接口的详细信息,网络内所有运行ospf的设备都需要发送并且只发送一条,它通过LINK描述接口,每一条LINK都是用来描述路由器的接口的连接情况,一个接口也可以使用多条LINK来进行描述。
[r1]display ospf lsdb router 1.1.1.1 --- 详细的查看某条LSAOSPF Process 1 with Router ID 1.1.1.1Area: 0.0.0.0Link State Database Type : RouterLs id : 1.1.1.1Adv rtr : 1.1.1.1 Ls age : 470 Len : 60 Options : E -- 注*seq# : 80000005 chksum : 0xaef0 --- 以上都是LSA的头部信息Link count: 3 --- LINK数,有3个描述接口的LINK* Link ID: 1.1.1.1 -- 网络地址 Data : 255.255.255.255 -- 掩码Link Type: StubNet -- 末梢网段Metric : 0 -- 开销Priority : Medium* Link ID: 2.2.2.2 --- 邻居的RID Data : 12.1.1.1 --- 和该邻居相连的接口IP地址Link Type: P-2-P --- 点到点网络 Metric : 48* Link ID: 12.1.1.0 -- 网路地址 Data : 255.255.255.0 -- 掩码Link Type: StubNet -- 末梢网段 Metric : 48 Priority : Low
一类LSA中有三个比较重要的标记字段:
V(virtual):该位置1,代表通告者时Vlink(虚链路)的一个端点
E:该位置1,代表该路由器时ASBR
B:改为置1,代表该路由器是ABR,该位用来标记所有区域边界设备,不一定是合法的ABR。
每一个LINK主要有Type、Link ID、Data三个条目。
Type | Link ID | Data |
---|---|---|
p-2-p | 邻居的RID | 该网段上本地接口的IP地址 |
TransNet | DR的接口的IP地址 | 该网段上本地接口的IP地址 |
StubNet | 该Stub网段的IP网络地址 | 该网段的网路掩码 |
Virtual | 虚连接邻居的RID | 去往该虚连接的本地接口IP |
Type代表着接口所连网络的类型,p-2-p即点到点网络,TransNet即MA网络,StubNet即该接口没有邻居,也被称为末梢网段。
路由器再描述环回接口时,掩码都是32位,无论环回接口的掩码
由于点到点网络两端的网段可以不同,所以在Router还会对点到点网络接口的网段进行描述(使用stubnet的Link进行二次描述)
Virtual类型在使用虚链路的时候出现
通过展开1.1.1.1发布的Router信息,我们可以画出如下的图:
二类LSA:Network
从一类LSA可以看出,一类LSA都是描述本地接口的,对于点到点网络,一类LSA可以很好的描述,而对于MA网络,一类LSA只可以描述本地在MA网络中的接口,而没有描述MA网络中其他邻居,所以就有了二类LSA。二类LSA是专门对MA网络的描述,由MA网络中的DR进行通告(一个MA网络中只需要一条2类LSA即可描述,避免重复更新)。
<r1>display ospf lsdb network 23.1.1.2 --- 展开某条详细的二类LSAOSPF Process 1 with Router ID 1.1.1.1Area: 0.0.0.0Link State Database Type : NetworkLs id : 23.1.1.2 --- DR接口的IPAdv rtr : 3.3.3.3 -- 通告着的RIDLs age : 1161 Len : 32 Options : E seq# : 80000003 chksum : 0x9686 -- 以上都为LSA头部信息Net mask : 255.255.255.0 -- MA网段的掩码Priority : LowAttached Router 3.3.3.3 -- MA网路中设备的RIDAttached Router 2.2.2.2
一类和二类都是传播拓扑信息,依靠一类和二类就可以计算单区域的路由,其他类的LSA传播的都是路由信息,OSPF规定,所有传递路由的LSA信息必须经过拓扑信息(1类和2类LSA)的验算,通过拓扑信息找到路由信息的通告者,再通过通告者找到目标
三类LSA:Sum-net
区域之间传播的就是三类LSA,三类LSA携带的是路由信息,和RIP相同,传递路由信息只需网段、掩码和开销。ABR在传递三类LSA时,会将通告者修改为自己,这样区域内的路由器就可以通过一类和二类的验算找到通告者。
<r1>display ospf lsdb summary 4.4.4.4 --- 展开详细的三类LSAOSPF Process 1 with Router ID 1.1.1.1Area: 0.0.0.0Link State Database Type : Sum-NetLs id : 4.4.4.4 --- 路由网段Adv rtr : 3.3.3.3 --- 通告者 Ls age : 1574 Len : 28 Options : E seq# : 80000002 chksum : 0x60de --- 以上都为头部信息Net mask : 255.255.255.255 --- 网络掩码Tos 0 metric: 1 --- 开销,该开销为ABR到目标网段的开销,本地在加表时还需要增加到ABR的开销值Priority : Medium
五类LSA:External
五类是用来传递域外路由信息的,将其他AS(区域自治系统)的路由信息导入到ospf域内,这些路由信息都由五类携带并进行传递,五类的通告者为ASBR(自治系统边界路由器),并在整个ospf域进行传播,经过ABR时不会修改通告者。域外导入的5类LSA生成的路由信息,在路由表中的类型为O_ASE,优先级默认为150。
[r4]display ospf lsdb ase 10.1.1.0 --- OSPF Process 1 with Router ID 4.4.4.4Link State DatabaseType : ExternalLs id : 10.1.1.0Adv rtr : 4.4.4.4 Ls age : 235 Len : 36 Options : E seq# : 80000001 chksum : 0xecc7Net mask : 255.255.255.0 TOS 0 Metric: 1 --注*E type : 2 -- 注*Forwarding Address : 0.0.0.0 -- 注*Tag : 1 -- 注*Priority : Low
TOS 0 Metric:由于不同路由协议的开销值的度量标准不同,所以在进行重发布后,不能直接使用之前的开销值,故在进行重发布时会赋予所有导入路由信息一个初始的度量值,这个初始的度量值被称为seed-metric(种子度量)。华为设备为ospf网络设计的种子度量默认为1
[r4-ospf-1]import-route rip 1 cost 2 --- 在重发布时修改种子度量
E type:这个E位标记的是使用的度量值的类型
Type 1(当E位置为0时,使用类型1):如果使用类型1的度量值,则所有域内设备到达域外目标网段的开销值等于本地到达ASBR的开销值加种子度量值
Type 2(当E位置为1时,使用类型2):如果使用类型2的度量值,则所有域内设备达到域外目标网段的开销之等于种子度量值,默认使用的是类型2.
[r4-ospf-1]import-route rip 1 type 1 --- 在重发布是修改开销值的类型
Forwarding Address:转发地址,类似RIPv2的下一跳地址,5类LSA在不存在选路不佳情况下,会携带该值,这个转发地址默认为0.0.0.0.
TAG :路由标记 , 方便对流量进行标记,之后对标记的流量进行抓取和控制。默认值为1。
四类LSA:Sum-Asbr
由于五类ASBR在传递的时候不会修改通告者,但OSPF规定,所有传递路由的LSA信息必须经过拓扑信息(1类和2类LSA)的验算,而其他区域的设备无法通过拓扑信息验算到ASBR的位置,所以就有了四类LSA。四类LSA只携带通往ASBR的路由信息,LS ID为ASBR的RID,通告者为ABR,在通过下一个ABR设备时需要修改为新的ABR,这使得其他区域的设备可以西安通过拓扑信息验算到ABR的位置,将信息交由ABR转发给ASBR。
<r1>display ospf lsdb summary 4.4.4.4OSPF Process 1 with Router ID 1.1.1.1Area: 0.0.0.0Link State Database Type : Sum-NetLs id : 4.4.4.4 --- ASBR的RID,五类的通告者为ASBR的RID,通过RID定位四类Adv rtr : 3.3.3.3 --- 本区域的ABR,将消息交由ABR转发Ls age : 434 Len : 28 Options : E seq# : 80000002 chksum : 0x60deNet mask : 255.255.255.255 Tos 0 metric: 1 Priority : Medium