一、前期回顾
之前讲过运行ospf的路由器之间是通过lsa进行消息传递,且建立邻接关系时,两端接口的网络类型必须一致,如果在MA类型网络中接口的掩码也要一致,p2p网络掩码可以不一致,只有MA网络中才有DR与BDR角色等约束条件,之所以有这些要求,从另一个维度讲都是因为lsa需要满足这些条件,本章就来详细介绍下ospf中的lsa种类及作用。
二、拓扑介绍
area1是一个MA网络类型,area0是p2p网络类型,R1,R2,R3处于一个广播域,交换机上未作任何设备,只当一个纯二层设备,R3的g0/0/0口作为本area的DR,其余信息如图上所示。
三、lsa的种类级使用场景
lsa根据种类共分为7种,即1~7类lsa,每一种lsa的出现都需要满足特定的条件,本章重点介绍前3种lsa的特点及功能,其余lsa后续介绍。
1类lsa
每一个运行ospf的路由器都会产生1类lsa,1类lsa自己(本路由器)直连接口的信息在本area内进行泛洪,类似于广播终结于网关,1类lsa终结于ABR,1类lsa主要的两个特点:
- 通过lsa中相关的V、B、E位是否置1,描述路由器的virtual-link,ABR,ASBR等特殊角色。
- 描述本路由器在某个区域内部的直连链路接口及接口cost值。
通过查看R1的lsdb可以看到R1上有3条标表项为router的1类路由,R2上的lsdb与R1一致,印证了同一area内的lsdb完全一样
[R1]display ospf lsdb
OSPF Process 1 with Router ID 1.1.1.1
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 6 48 8000000B 1
Router 1.1.1.1 1.1.1.1 13 48 80000007 1
Router 3.3.3.3 3.3.3.3 6 36 8000000B 1
Network 123.0.0.3 3.3.3.3 6 36 80000008 0
Sum-Net 34.0.0.0 3.3.3.3 1194 28 80000005 48
仔细看下MA网络区域area1中router id为1.1.1.1路由器的lsdb
[R1]display ospf lsdb router 1.1.1.1
OSPF Process 1 with Router ID 1.1.1.1
Area: 0.0.0.1
Link State Database
Type : Router
Ls id : 1.1.1.1
Adv rtr : 1.1.1.1
Ls age : 263
Len : 48
Options : E
seq# : 80000007
chksum : 0x49c4
Link count: 2 #lsa包含2个链路描述
* Link ID: 123.0.0.3 #DR的ip地址
Data : 123.0.0.1 #始发路由接口地址
Link Type: TransNet #传输区域网络
Metric : 1 #接口cost=1
* Link ID: 11.11.11.11
Data : 255.255.255.255
Link Type: StubNet #末梢网络
Metric : 0
Priority : Medium
总结一下,不同链路类型的1类lsa中包含的link id及link data字段内容有所不同,具体为:
序号 | 链路类型 | link id | link data |
---|---|---|---|
1 | 点到点链接另一台路由 | 邻接路由器route id | 和网络相连的本地路由器始发接口ip地址 |
2 | 传输区域网络(MA) | dr路由器的接口ip地址 | 和网络相连的本地路由器始发接口ip地址 |
3 | 末梢网络 | ip或子网地址 | 网络的ip地址或子网掩码 |
4 | 虚链路 | 邻接路由器route id | 和网络相连的本地路由器始发接口MIB-II iflndex值 |
在R1的lsdb中除了代表1leilsa的router表项,还有network跟sum-net表项,这分别代表了2类和3类lsa,下面就这两种lsa进行介绍。
2类lsa
首先需要说明的是,2类lsa只存在于MA类型的网络中,在右边p2p网络区域area0中route id为4.4.4.4路由器lsdb中就没有network表项
[R4]dis ospf lsdb
OSPF Process 1 with Router ID 4.4.4.4
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 4.4.4.4 4.4.4.4 552 48 80000007 48
Router 3.3.3.3 3.3.3.3 552 48 80000007 48
Sum-Net 123.0.0.0 3.3.3.3 672 28 80000001 1
Sum-Net 11.11.11.11 3.3.3.3 629 28 80000001 1
Sum-Net 22.22.22.22 3.3.3.3 631 28 80000001 1
还记得介绍lsa建立邻接关系的条件时有一条是:MA网络类型下,接口的子网掩码位数要一致,而p2p网络就没有这个要求,原因是在1类lsa中p2p类型的网络使用2条描述信息来进行说明
[R4]display ospf lsdb router 4.4.4.4
OSPF Process 1 with Router ID 4.4.4.4
Area: 0.0.0.0
Link State Database
Type : Router
Ls id : 4.4.4.4
Adv rtr : 4.4.4.4
Ls age : 603
Len : 48
Options : E
seq# : 80000007
chksum : 0x6a02
Link count: 2
* Link ID: 3.3.3.3 #邻接路由器router id
Data : 34.0.0.2 #与router id为3.3.3.3路由器相连的的本地接口ip
Link Type: P-2-P
Metric : 48
* Link ID: 34.0.0.0 #与router id为3.3.3.3路由器相连使用的网段
Data : 255.255.255.0 #该网段掩码
Link Type: StubNet
Metric : 48
Priority : Low
而MA网络中只是介绍了dr的接口ip跟接入该网络本地ip地址与cost值,但光凭这一点还没发准确描述一个网络地址,还需要知道这ip所对应的掩码
Link count: 2
* Link ID: 123.0.0.3
Data : 123.0.0.1
Link Type: TransNet
Metric : 1
而network表项,就是弥补1类lsa中所缺少的掩码信息,且2类lsa只由DR产生,其掩码是dr接口的掩码信息,但该信息不包含cost值,所以在MA网络中需要通过1类和2类lsa一起才能准确的描述出网络信息
[R1]display ospf lsdb network
OSPF Process 1 with Router ID 1.1.1.1
Area: 0.0.0.1
Link State Database
Type : Network
Ls id : 123.0.0.3 #dr接口ip地址
Adv rtr : 3.3.3.3 #通告路由器
Ls age : 402
Len : 36
Options : E
seq# : 8000000c
chksum : 0xd2d5
Net mask : 255.255.255.0 #子网掩码
Priority : Low
Attached Router 3.3.3.3 #该MA网络中包含的路由器route id
Attached Router 1.1.1.1 #该MA网络中包含的路由器route id
Attached Router 2.2.2.2 #该MA网络中包含的路由器route id
通过上图中Adv rtr: 3.3.3.3可以看出,2类lsa是由本area中的dr路由器产生,并通过224.0.0.5这个组播地址发送给area内所有的路由器,还记得224.0.0.6这个组播地址么,之前介绍ospf在MA网络中的时候提到过,所有的drother相互间不通信,停留在2way阶段,只能与dr与bdr通信,原因就是dr与bdr同时又侦听了224.0.0.6地址接收lsa,再通过224.0.0.5这个组播将lsa下发到本区域内所有的路由器。总结一下,2类lsa的特点:
- 2类lsa由dr产生,描述所有连接到该MA网络的路由器route id及该MA网络的掩码地址(dr接口掩码地址)
- 2类lsa只在本area泛洪,终结于abr
- 2类lsa没有cost字段
-
1类lsa结合2类lsa才能完整提供一个MA网络所需要的信息
3类lsa
从拓扑图中,我们能够看到,无论是area1中的MA网络还是area0中的p2p网络,其内部的1类、2类lsa都无法传递到对方区域,这样无法计算出到达11.11.11.11/24等ip地址路由,3类lsa就是解决此类问题。3类lsa由abr路由器产生,其表项为Sum-Net,其功能是收集本区域的1类2类lsa,再将他们以3类lsa发送到其他区域泛洪,这样计算路由的问题就解决了
以上图中R3将area0中的1类lsa收集后发送到area1为例,此时在R1上看到的3类lsa是由R3产生,并且cost值为48,此处cost值是R4计算到R3的开销(p2p网络开销为48),而R3只是将此信息直接泛洪到了area1[R1]display ospf lsdb OSPF Process 1 with Router ID 1.1.1.1 Link State Database Area: 0.0.0.1 Type LinkState ID AdvRouter Age Len Sequence Metric Router 2.2.2.2 2.2.2.2 656 48 8000000D 1 Router 1.1.1.1 1.1.1.1 662 48 8000000D 1 Router 3.3.3.3 3.3.3.3 656 36 80000009 1 Network 123.0.0.3 3.3.3.3 656 36 80000006 0 Sum-Net 34.0.0.0 3.3.3.3 821 28 80000002 48
在R1上详细看下3类lsa所包含的信息,能够看到area0中的网段、掩码、cost值都包含在本信息中,所以可以直接计算路由
[R1]display ospf lsdb summary OSPF Process 1 with Router ID 1.1.1.1 Area: 0.0.0.1 Link State Database Type : Sum-Net Ls id : 34.0.0.0 Adv rtr : 3.3.3.3 Ls age : 1009 Len : 28 Options : E seq# : 80000002 chksum : 0x35c8 Net mask : 255.255.255.0 Tos 0 metric: 48 Priority : Low
总结一下3类lsa的特点:
- 由abr产生,将本区域的1,2类lsa进行收集并在其他区域泛洪,以解决不同区域见路由计算问题
- cost是直接将本区域内到达abr的开销泛洪到其他区域
- 3类lsa这种自身不参与链路状态计算,只是收集1,2类lsa并泛洪到其他区域的工作特点与距离矢量协议特别类似