1. 域内LSA
1.1 一类LSA
一类LSA: 路由器直连状态,Router LSA。
串口需要两端配置好IP,才会产生一类LSA; 以太网口只需要一端配置了IP就会直接产生一类LSA。
LSA通用头部
- Type: Router 直连路由
- LS id: 12.1.1.1 路由器router id
- Adv rtr: 12.1.1.1 通告的路由器,就是产生这条LSA的路由器的router id
上面这三条构成了一条LSA的唯一标识信息。
通用头部的其他部分不再赘述。
直连网络的一类LSA
- Link Type: stubnet 叶子区域
- Link ID: 12.1.1.0 直连的网络号
- Data: 255.255.255.0 子网掩码
- Metric: 1 开销值
P2P邻居的一类LSA
- Link Type: P2P
- Link ID: 2.2.2.2 邻居路由器的router-id
- Data: 12.1.1.1 与邻居路由器连接的接口IP
- Metric: 1562 本路由器到达邻居的开销值
广播邻居的一类LSA
- Link Type: Transnet
- Link ID: 192.168.1.4 用于描述伪节点信息,使用DR的接口IP
- Data: 192.168.1.2 自身连接伪节点的接口IP
- Metric 1 本路由器到达伪节点开销
OSPF中P2P的域内路由计算:
(1)以自身为中心划出连接的树干信息
(2)再对非自身的树干划其他的树干信息
(3)补充各个树干的叶子信息
(4)对重复的叶子计算它的路径开销
查看路由器上的LSA信息
dis ospf lsdb
查看一类LSA
dis ospf lsdb router 1.1.1.1
dis ospf lsdb router 2.2.2.2
根据上面两条LSA就可以画出网络拓扑图了
路由器1形成三条ospf的拓扑
最终加表的只有2.2.2.2/32 48这条路由。
1.2 二类LSA
- Attacheced Router: 伪节点直连的(树干)网络
- LS id: 192.168.1.2 # DR接口的IP地址
- Network mask: 255.255.255.0 #子网掩码
二类LSA不仅描述树干信息(Attached Router),还描述叶子信息(LS id + NetMask)。
在广播网络中,会产生一个伪节点来计算SPF;伪节点使用DR的接口IP。
根据上面的图就可以划出相应的拓扑信息。
最终添加到路由表项中的路由为
3. 总结
ospf路由器计算路由的流程
(1) 把根节点 R R R放入堆中
(2) 每次从堆中取出离树根最近的节点 n e a r near near,取出 n e a r near near的所有直连树干节点 m i m_i mi,将它的权值更新为 n e a r . w e i g h + w e i g h [ n e a r ] [ m i ] near.weigh+weigh[near][m_i] near.weigh+weigh[near][mi]; 将这个新生成的节点 M i M_i Mi放入堆中;最后丢弃节点 n e a r near near。
(3) 重复过程2直到堆中没有节点
(4) 添加上相关的叶子,删除更远的。
其实就是Dijstra算法。
例子:
最终划出来的拓扑图:
对应的osfp路由表项: