OSPF路由协议:LSA1、LSA2与路由计算步骤
1、OSPF的区域
OSPF路由协议作为一种动态路由协议,其生成路由表的过程依赖于网络中每台路由器保持一致的LSDB(链路状态数据库)。随着网络中路由器的不断增多,LSDB会越来越庞大,拓扑结构的改变也容易引起网络的“动荡”。因此,动态路由协议(如OSPF、IS-IS)都提供将整个网络划分成多个区域的能力,减少LSDB的大小和维护LSDB的开销,也减少LSA泛洪的影响。在OSPF中,被划开的所有区域必须以骨干区域为中心,也即其他区域必须与骨干区域相连。
2、LSA的含义
LSA(Link-State Advertisement,链路状态通告),是OSPF路由协议的协议报文中携带的、用于进行路由计算的信息。根据用途及作用范围的不同,可以分为11类(即type1~11)。其中,用于区域内路由通告的是type1、type2,用于区域间路由通告的主要有type3、type4、type5、type7。
本文的主要内容为介绍LSA中用于区域内路由通告的LSA1和LSA2,以及路由计算的 步骤。
3、LSA type 1 (Router LSA)
每台路由器会为自己所处的每一个区域产生一份RouterLSA,该LSA包含本区域所有链路的状态信息。
LSA1消息包含的字段:
- LS Age :DoNotAge Flag和age数值(秒)
- Option位
- LS type :1
- Link State ID
- Advertising Router
- Sequence Number
- CheckSum
- Flags
- Number Of Links: OSPF有向图上的Link
- Point to point
- ID:邻居路由器的RID;Data:自己接口的IP
- TransNetwork:MA类型链路
- ID:DR的接口IP ;Data:自己接口IP
- StubNetwork:末节类型链路/网络
- ID:网络号 Data:掩码
- Virtual Link
- ID:vlink对端ABR的RID ;Data:本地Vlink的IP
- Point to point
有向图的说明
- 每个实节点外出方向的链路成本是该接口的成本(OSPF Cost值)。
- 在MA网络中,所有节点之间通过虚节点(N1)拓扑互联。虚节点N1到所连节点的距离为0,每个节点到N1的边的距离是它在至N1接口上的cost值。
- 在末节(stub)网络中,到其他节点的叶子的cost需要计算邻居间cost和对方节点到其叶子的cost的和。路由器到自身叶子节点的cost也是叶子所在链路的cost(如果叶子是链路接口的网段)。
4、LSA type2 (Network LSA)
Network LSA用于描述MA网络的拓扑关系:TransNet网络号和该网络与路由器的关系,在MA网络的DR路由器产生。
LSA2消息包含的字段:
- LS Age:同LSA1
- Option
- LSType : 2
- Link Stat ID :DR接口IP地址
- Advertising Router
- Sequence Num
- Checksum
- Netmask:和LS ID进行逻辑与运算,得出LSA2的网络号
- Attacked Router:本网络所有邻居路由器列表
与lSA1区别
LSA1由实节点(代表路由器的节点)产生,描述实节点周边的关系;LSA2由虚节点DR产生,描述虚节点周边关系。
DR的作用
- DR选举机制
- MA网络可以没有BDR,但不能没有DR。
- DR选举开始于OSPF中一个网络达到2-way状态之后,网络中的路由器通过交互hello完成选举。
- 路由器根据所有邻居的hello报文,构建接口的数据结构,其中包括以下三个集合。
- DR集合:接口刚开启时,其内容为0 。
- BDR集合:接口刚开启时,其内容为0 。
- DRother集合:即有资格成为DR/BDR的路由器,其选举规则为优先级不为0即可。
- 选举过程:
- 接口开启,hello中DR字域全0,wait timer启动;
- 若收到hello中有dr字域,wait timer停止,接受字域数值;
- 从other中选出BDR,再从这里面选出DR,如果BDR空,则再次从other中选出BDR。
5、OSPF路由计算
OSPF路由计算包含以下步骤。
- 画出网络图Graph
网络中的每台路由器会根据接收到的LSA1和LSA2画出网络图 。由于LSDB中的链路信息不能反映出路由,因此需要SPF(最短路径优先)算法,根据网络图生成路由转发的最优路径。 - 对Graph进行SPF计算
每台路由器以自身为Root执行SPF计算。华为设备初次计算过程执行全部节点的Full SPF,在此之后都执行iSPF计算。iSPF只重画受影响的节点及周边连接关系,位置不同范围不同,根节点的边发生变化则重新计算整个拓扑。 - 添加叶子节点
OSPF路由器在计算叶子节点的路由时一般使用PRC(部分路由计算),即在ISPF计算出的最短路径树基础上计算叶子节点路由。
在计算叶子链路网段的cost时,常见的是链路上的路由计算。当对端路由器和本路由器均下挂同一网段时,选择成本更小的本路由器的网段放到OSPF路由中,由于IP路由表中的直连路由更优,所以dis ip routing-table看不到OSPF这条路由.
以下几种LSA携带的信息用于计算不同“叶子”的路由:- lSA2:MA网络的网段挂在虚节点N上;
- LSA3:挂在ABR节点上(其他区域内拓扑变化不影响本区域SPF);
- LSA7:挂在ASBR节点上。
- LSA5: 挂在ASBR或ABR,依ASBR是否在当前区域而定