略作整理,待校。
SRM 和 SSN 标志的作用
SRM 标志
- 功能:SRM 标志用于跟踪路由器从一个接口向邻居发送链路状态协议数据单元(LSP)的状态。
- 作用:确保 LSP 的正确传输和状态跟踪。
SSN 标志
广播网络
- 功能:SSN 标志用于跟踪向邻居请求完整的 LSP 状态。
- 作用:帮助路由器获取完整的链路状态信息。
点对点网络
- 功能:SSN 标志用于跟踪对 LSP 的确认状态。
- 作用:确保 LSP 的传输确认,避免重复发送。
优化与效率
SRM 和 SSN 标志可以帮助路由器以更优化的方式发送 LSP 和部分序列号协议数据单元(PSNP)。其优势包括:
- 减少带宽和 CPU 的开销。
- 提高链路状态数据库的同步效率。
LSP 传输与 CSNP 发送间隔
LSP 传输时间间隔
在 IS-IS 协议中,LSP(链路状态报文)的传输时间间隔默认为 50 ms。当邻居路由器资源有限时,若其他路由器向其传递 LSP 后,该路由器无法按时确认,其他路由器会重传 LSP。这可能会进一步加重网络负担。为了避免这种情况,可以适当增大 LSP 的传输间隔,以保护资源受限的邻居路由器。
CSNP 发送间隔
在广播网络中,为确保链路状态数据库的完整性,DIS(指定中间系统)会周期性地发送 CSNP(链路状态数据库摘要报文)。默认情况下,CSNP 的发送间隔为 10 秒。华为 VRP 系统允许通过接口命令 isis timer csnp
修改该默认值。
- 调整建议:
- 缩短该值有利于网络的快速收敛,但会增加带宽开销。
- 在网络较为稳定的情况下,适当增大该值可以减少对带宽的占用。
这些计时器提供了一些优化和控制链路状态信息泛洪的方法。一般情况下,不建议修改这些计时器的默认值,除非能够预测相应的结果。如果网络规模较大,可以通过升级路由器来加快收敛速度。此外,在网络规划时,应确保网络的高可用性。
链路状态数据库同步过程
广播网络中的同步过程
在广播网络中,路由器在邻接关系初始化后,会首先泛洪自己的 LSP。L1 的 LSP 发送到组播地址 01-80-C2-00-00-14
(L1 IS),而 L2 的 LSP 发送到组播地址 01-80-C2-00-00-15
(L2 IS)。其他 L1 或 L2 邻居接收 LSP 后无需确认,因此广播网络中的 LSP 泛洪是不可靠的。
那么,LSP 的始发路由器如何确保所有邻居都接收到自己的 LSP 呢?IS-IS 协议通过 DIS 周期性地发送 CSNP 来保证广播网络中链路状态数据库的同步。
DIS 的作用
DIS 是 IS-IS 协议中用于在广播网络中控制数据库信息泛洪和同步的关键组件。在广播网络中,所有路由器均与 DIS 建立了邻接关系,这意味着 DIS 的数据库包含了其他所有路由器的数据库信息。基于此,DIS 使用一个或多个 CSNP 描述其整个链路状态数据库信息,并周期性地(每隔 10 秒)将其扩散到网络中。
同步机制
其他路由器接收到 DIS 的 CSNP 后,会将其与自己数据库中的内容进行比较。如果发现缺失或较新的 LSP,它们会发送 PSNP(部分序列号报文)来请求相应的 LSP。网络中的 DIS 或拥有该 LSP 的邻居路由器收到请求后,会回应相应的 LSP。
在广播链路上,发送 LSP 之前会在接口上设置一个 SRM(发送请求标志),待 LSP 发送完成后,该标志会立即清除。如果路由器发现自己的 LSP 在 DIS 的 CSNP 中缺失,或者自己的 LSP 更新,则会主动将该 LSP 泛洪出去。通过上述过程,确保了广播网络中所有路由器的数据库保持一致。
带宽与效率
虽然 DIS 周期性泛洪 CSNP 会带来一定的带宽开销,但这种方法相对简单,避免了对每条接收的 LSP 进行确认的复杂性。
广播网络链路状态信息的同步过程示例
下图展示了广播网络中链路状态信息同步的完整过程。
广播网络链路状态信息的同步过程如下:
-
R3 发送 LSP:R3 与 R1 和 R2 建立邻居关系后,它将自己的链路状态报文(LSP)R3.00-00 发送到组播地址。这样,R1 和 R2 都将收到该 LSP。
-
R2(DIS)处理 LSP:作为指定中间系统(DIS),R2 收到 R3 的 LSP 后,将其加入到链路状态数据库(LSDB)中。
-
R2 发送 CSNP:R2 等待 CSNP 报文定时器超时(DIS 每隔 10 秒发送一次 CSNP 报文),然后发送 CSNP 报文,以同步该网络内的 LSDB。
-
R3 请求缺失的 LSP:R3 收到 DIS 发来的 CSNP 报文,该报文描述了网络中所有路由器的 LSP(R1 00-00、R2 00-00、R2 01-00 和 R3 00-00)。R3 将自己的 LSDB 与 CSNP 报文中的信息进行比较,发现自己缺少 R1 和 R2 的 LSP。于是,R3 向 DIS 发送 PSNP 报文,请求这些缺失的 LSP。
-
DIS 响应 PSNP 请求:DIS(R2)收到 R3 的 PSNP 报文请求后,向 R3 发送对应的 LSP。
通过这一过程,确保了广播网络中所有路由器的数据库都是一致的,从而实现了链路状态信息的有效同步。
点对点(P2P)网络中的同步过程
与广播网络不同,IS-IS 协议在 P2P 网络中的数据库同步过程中,接收到邻居的 LSP 后需要给予确认(采用可靠方式)。因为在 P2P 链路上,每台路由器只有一个邻居,确认过程不会带来过多的资源开销。
同步机制
在 P2P 网络中,当两台路由器建立邻接关系后,会首先交换 CSNP。与前文所述类似,路由器通过比较接收到的 CSNP 内容,确定本地数据库中缺失的 LSP,并根据 LSP 的新旧比较规则,比较自身数据库和邻居数据库中的 LSP。
对于缺少或过时的 LSP,路由器会发送 PSNP 进行请求,并在收到邻居回应的 LSP 后使用 PSNP 进行确认。如果路由器发现邻居路由器缺失或拥有更旧的 LSP,它会主动将 LSP 发送给邻居。
如果发送的 LSP 未得到邻居的 PSNP 确认,且重传间隔时间超时,路由器会重传先前的 LSP,直至收到邻居的 PSNP 确认为止。
标志的作用
在 P2P 链路上,接收到 LSP 后,接口上会设置一个 SSN(序列号通知)标志,表示需要向该接口发送 PSNP 确认。收到确认后,SSN 标志将被清除。同时,如果需要将 LSP 拷贝从一个接口发送出去,也会在该接口上设置 SRM 标志,发送完成后标志将立即清除。
P2P 网络链路状态信息的同步过程示例
图展示了 P2P 网络中的同步过程。
如图所示,R2 与 R1、R3 通过点对点链路建立连接,以 R1 先发送自己的 CSNP 为例,同步过程如下:
- R2 收到 R1 的 CSNP(描述了一条 LSP:R1.00-00)后,发送 PSNP 进行请求。
- R1 收到请求后,将相应的 LSP 拷贝发送到网络中。
- R2 收到请求的 LSP 后,将其拷贝存入数据库中,并在接口 2 设置 SSN 标志,在接口 3 设置 SRM 标志。
- R2 向 R3 转发该 LSP 的拷贝,并向 R1 发送 PSNP 进行确认。
- R2 清除接口 2 上的 SSN 标志。
- R3 从 R2 收到该 LSP 后,存入数据库中,并在接口 4 上设置 SSN 标志。
- R3 向 R2 发送 PSNP 确认,并清除接口 4 上的 SSN 标志。
- R2 收到 R3 的 PSNP 确认后,清除接口 3 上的 SRM 标志。
- CSNP 中的 LSP:作为 IS-IS 协议中 LSDB 的“索引目录”,由 DIS 周期性发送,仅包含 LSP 的关键状态字段,用于邻居间快速比对数据库差异,无需可靠传输机制。
- LSDB 中的 LSP:作为链路状态数据库的实体内容,包含全网拓扑细节,通过泛洪机制在网络中传播,依赖 PSNP 确认和重传机制保证完整性,是路由计算的核心数据。
CSNP 中的 LSP 描述(索引信息) | LSDB 中的 LSP(完整链路状态报文) | |
---|---|---|
内容详细程度 | 仅包含 LSP 标识符(LSP ID)、序列号(Seq)、校验和(Checksum)等状态字段,无拓扑细节 | 包含完整链路状态信息,如邻居关系、链路开销(Cost)、接口状态、IP 地址等拓扑数据 |
作用 | 作为数据库摘要,供邻居路由器比对本地 LSDB,识别需要更新、删除或请求的 LSP | 存储全网链路状态实体,为 SPF 算法计算路由提供基础数据 |
数据大小 | 较小(仅索引字段),通常为几十到几百字节 | 较大(包含完整拓扑),根据网络规模可达数千字节 |
发送频率 | 由 DIS 周期性发送(IS-IS 协议默认周期为 10 秒),邻居关系建立后 DIS 会立即开始发送 CSNP 以实现数据库同步。 | 触发式泛洪(如链路状态变化时),或响应邻居 PSNP 请求时发送 |
确认机制 | 无需确认,仅用于数据库状态同步通知 | 通过 PSNP(部分序列号分组)请求缺失 LSP,并通过虚拟重传队列(VRQ)确保可靠传输 |
是否包含拓扑细节 | 不包含,仅为 LSP 的“目录索引” | 完整包含网络拓扑结构、链路属性等细节 |
作用对象 | 向邻居路由器提供本地 LSDB 的索引快照,用于数据库同步 | 供本地路由计算(SPF 算法)及邻居路由器构建完整 LSDB |
via: HCIE