路由计算
1、Router LSA(一类LSA)
每个运行了OSPF的路由器都会产生一条描述直连接口的链路状态信息的一类LSA。一类LSA只在所属区域内泛洪。
字段解释
- Type: LSA的类型 一类LSA固定取值为Router
- Ls id:链路状态ID,值为产生这条链路的OSPF的Router ID
- Adv rtr:通告者,值为发出这条LSA路由器的OSPF的Router ID
- Ls age:老化时间
- Len:LSA的长度
- Options:如果V的置位为1表示做了虚连接,E为1表示这条LSA由ASBR产生,B为1表示这条LSA是ABR产生
- seq# :LSA的序列号
- chksum:LSA的校验和
- Link Count:表示当前LSA包含了多少条链路状态
link-type描述接口的链路状态信息
Link-type | 描述 | Link ID | data | Metric |
---|---|---|---|---|
StubNet | 直连的网络前缀 | 直连接口的IP | 直连IP的掩码 | 去往该网络的Cost值 |
P2P | 直连链路上的网络类型为P2P或P2MP的邻居 | 邻居的Router ID | 去往邻居的接口IP | 自身到邻居的Cost值 |
TransNet | 直连链路上的网络类型为广播或者NBMA的邻居 | DR在这个网段的接口IP | 自身去往DR的接口IP | 自身到达DR的Cost值 |
V-link | 虚链路上的OSPF邻居 | 虚连接链路的Router ID | 自身去往邻居的接口IP | 自身去往虚链路邻居的Cost值 |
2、Network LSA(第二类LSA)
二类LSA由DR产生,描述本网段的链路状态,在所属的区域内传播。
记录了该网段内所有与DR建立邻居的OSPF路由器,同时携带该网段的掩码。
字段解释
- Type:LSA的类型,二类固定值为Network
- Ls id:DR在本网段出接口的IP地址
- Adv rtr:通告者,值为通告者的Router ID
- Net mask:描述MA网络的子网掩码
- Attached Router 描述在MA中与DR建立邻接关系的OSPF路由器的Router ID 多个路由器用多个字段描述
3、SPF算法
- 构建SPF树。
- 路由器将自己作为最短路径树的树根,根据Router-LSA和Network-LSA中的拓扑信息,依次将Cost值最小的路由器添加到SPF树中。路由器以Router ID或者DR标识。
- 广播网络中DR和其所连接路由器的Cost值为0。
- SPF树中只有单向的最短路径,保证了OSPF区域内路由计算不会出现环路。
- 计算最优路由
- 将Router-LSA、Network-LSA中的路由信息以叶子节点形式附加在对应的OSPF路由器上,计算最优路由。
- 已经出现的路由信息不会再添加到SPF树干上。
4、多区域间路由
一系列连续的OSPF路由器构成的网络成为OSPF域。
大规模网络的问题:
- LSDB表非常臃肿,基于LSDB进行计算的负担很大,加大了路由器的性能损耗。
- 当网络拓扑发生变化时,这些变化需要扩散到整个网络,可能会造成整个网络的路由重计算。
- 单区域的设计,使OSPF无法部署路由汇总。
区域的划分
- 骨干区域:在OSPF中规定区域号0(Area 0 )为骨干区域
- 非骨干区域:在OSPF中规定区域号非零的为非骨干区域
Router LSA和Network LSA只在区域内泛洪,因此划分区域在一定程度上减低网络设备的内存和CPU消耗。
非骨干区域必须逻辑上连接骨干区域。
多区域内路由器的角色
- 区域内部路由器(IR):该类路由器的所有接口属于同一个OSPF区域
- 区域边界路由器(ABR):该类路由器的接口分别连接多个不同的OSPF区域,并且有一个活动接口连接骨干区域
- 自治系统边界路由器(ASBR):将其他路由协议进入到OSPF中的路由器
区域间路由信息传递
OSPF区域之间传递路由信息依靠Network Summary(三类 LSA)实现的。
- ABR将直连区域内的一类 LSA和二类 LSA转化成三类 LSA,传递给其他区域。
- ABR将骨干区域内的三类 LSA,转化成非骨干区域内的三类 LSA。
RTB把Area 1的链路状态信息通过三类 LSA通告给Area0
RTC再重新生成一份三类 LSA通告到Area2中
Network summary(三类LSA)
字段解释
- LS Type:表示LSA的类型,第三类LSA固定值为Sum-Net
- Link State ID:路由的目的网络地址
- Advertising Router:通告者,生成这条LSA的Router ID
- Network Mask:路由的网络掩码。
- metric:ABR路由器到达目的网络的路由开销。
区域间路由的计算
- 路由条目的计算:通告三类LSA携带的LInk State ID和Network Mask计算出网络号和掩码信息
- Cost值的计算:自身到达ABR的开销+ABR到目的网络的开销
- 下一跳的计算:自身SPF树中去往ABR的最短路径的下一跳,即为区域间路由的下一跳
区域间路由的防环机制
对于OSPF区域间路由的传递,OSPF也需要一定的防环机制。
- 要求所有的非骨干区域必须与骨干区域连接,不要求物理上的可以是逻辑上的区域间路由由骨干区域中转。
- 两个非骨干区域不能进行路由信息的传递,是得OSPF的区域框架再逻辑上形成一个类似星型的拓扑。
- ABR不会把某区域的三类LSA再重新注入回该区域。
- ABR从非骨干区域收到的三类 LSA不能用于区域间路由的计算。