咱们先看 1 类的:
路由器产生的 1 个 1 类 LSA 中会包含多个路由条目,这些所有属于一个 LSA 的路由条目只有一个序列号,故当 1 类似 LSA 进行更新和撤销的时候都为完整的触发更新。比如一台路由器 A 有三个环回口,此时都宣告到同一个区域,这时候此路由器产生的 1 个 1 类 LSA 中包含三条路由条目,假设序列号为 01,当你接下来将其中一个 loopback 口删除后,此时路由器 A 会立马触发更新,只将剩余的两条路由通过 1 个 1 类 LSA 通过出去,并且序列号为02.这样其他路由器收到后会更新该 LSA,此时在其他路由器中关于路由器 A 的 1 类 LSA 中只有两条路由,以此实现路由撤销。
下图 1 是路由器 A 宣告三个环回口路由时的抓包
下图 2 是路由器 A 将 10.0.5.0 这条路由删除后的触发更新;
下图 3 是紧接着再次将 10.1.5.0 的路由宣告到 ospf 时的更新;
接下来再看一下3类和5类:
3 类和 5 类 LSA 都是每条路由单独存在的,也就是一条路由一个 LSA 对应一个序列号;图 1 是区域 0 中一台设备的 LSA
此时我在将区域 1 中的路由 10.0.5.0 进行删除宣告,路由撤销抓包情况如下
紧接着我在区域 1 中将 10.0.5.0 重新宣告,路由更新情况如下;
5 类也是如此:
4 类LAS 依附 5 类 LSA 的产生和撤销。如果路由器 A 有三个外部路由,此时即使你撤销了两条,此时额 4 类不会撤销,只有三条外部路由都全部撤销 4 类才会撤销,撤销的方式与 3、5 类一致。
ISIS 路由更新及撤销
ISIS 是定期完整更新,同时也支持触发完整更新,假设一开始有 3 条路由,这时 isis 更新出去这三条都在,比如序列号是 01(并且三条路由都在一个 LSP 中,序列号一样),然后在下一次定期更新未到之前你要撤销其中一条,此时这台设备会立马触发更新出去另外两条,少一条被你撤销的路由,序列号是 02。
通过宣告方式通告的isis 路由情况如下;
下图 是路由器 A 宣告了三个 loopback 和一个直连的抓包(三个路由条目和直连都是宣告方式进入 ISIS);
下图 是路由器 A 将 10.1.7.7 删除宣告的抓包;
通过 isis 引入方式的通过方式如下;
下图将其中两条路由以直连方式引入的抓包情况;
下图另外一条以直连方式引入的抓包情况;
下图有全部撤销的效果;(通过相同序列号及 0 秒的remaining lifetime 来更新)
既有宣告的方式又有引入方式的路由情况;
在路由器A 上先讲 10.1.7.7 进行宣告抓包情况如下;
在将路由器 A 上其他路由通过引入直连方式引入如下;
会发现为两个不同的 LSP 产生,序列号不一致,同时 LSP-ID 不一致,引入的外部路由的 LSP-ID 增加了分片号加以区分。
所以在其他设备上会看到路由器 A 产生了两个 LSP 如下;
所以 ISIS 的更新也是按一条 LSP 更新的,也会是完整触发更新,不过对于直接宣告的路由和引入的路由使用的是不同的 LSP,此时各自更新各自的。
BGP 路由更新及撤销
BGP 稳定后是采用增量更新,产生新的路由后只需要将新的路由进行更新,一些路由删除后也会发送 update 进行撤销。
BGP的后面单独做一个实验发给大家。