IS-IS报文详情
IS-IS(Intermediate System to Intermediate System)协议是一种链路状态路由协议,主要用于自治系统内部的路由选择。其报文交互过程涉及多种协议数据单元(PDU),以下是详细的报文交互流程:
1. 报文类型
IS-IS协议主要使用以下三种报文类型:
- Hello PDU(IIH):用于邻居发现和邻接关系维护。
- LSP(Link State PDU):携带链路状态信息(如邻居、接口、度量值)。
- SNP(Sequence Number PDU):分为CSNP和PSNP,用于同步链路状态数据库(LSDB)。
- CSNP(Complete SNP):摘要所有LSP的列表,用于广播网络的数据库同步。
- PSNP(Partial SNP):用于请求或确认特定LSP,常见于点对点网络。
2. 报文交互流程
步骤1:邻居发现(Hello报文交互)
- 作用:发现直连的IS-IS邻居并协商参数(如区域ID、层级、认证等)。
- 过程:
- 路由器周期性发送IIH报文(广播网络分Level 1和Level 2 Hello,点到点网络使用通用Hello)。
- 收到Hello的邻居检查参数(如System ID、区域地址、层级)。若匹配,则建立邻居关系。
- 定时器:
HelloInterval
(默认10秒)和HoldTime
(默认30秒)。
步骤2:邻接关系建立
- 条件:参数匹配后,邻居进入
UP
状态,形成邻接关系。 - 广播网络特殊处理:选举DIS(Designated IS),负责生成伪节点LSP并周期发送CSNP。
步骤3:数据库同步(LSP与SNP交互)
-
LSP泛洪:
- 每个路由器生成自身LSP(含链路状态信息),发送给所有邻居。
- 邻居收到LSP后,检查序列号。若更新,则存储并继续泛洪,同时发送PSNP确认(点到点网络)或等待DIS的CSNP(广播网络)。
-
SNP机制:
- 广播网络:
- DIS周期发送CSNP(包含所有LSP的摘要),非DIS路由器对比自身LSDB,通过PSNP请求缺失的LSP。
- 点到点网络:
- 直接使用PSNP确认收到的LSP或请求缺失的LSP。
- 广播网络:
步骤4:链路状态数据库维护
- LSP更新:当拓扑变化时,路由器生成新LSP(序列号+1),触发泛洪。
- 老化机制:LSP生存时间(默认为20分钟)超时后,通过发送携带相同序列号的LSP进行刷新。
3. 网络类型差异
-
广播网络(如以太网):
- 使用Level 1或Level 2 IIH报文。
- 选举DIS(无备份DIS),DIS负责周期发送CSNP(默认10秒)。
- 非DIS路由器通过PSNP请求缺失的LSP。
-
点到点网络(如PPP链路):
- 使用通用IIH报文。
- 直接使用PSNP确认LSP,无需CSNP。
- 双方周期性发送Hello维护邻接。
4. 层级划分(Level 1和Level 2)
- Level 1(L1):区域内路由,维护本区域的LSDB。
- Level 2(L2):骨干区域路由,负责区域间通信。
- L1/L2路由器:作为区域边界路由器,同时维护L1和L2的LSDB。
5. 报文结构(TLV字段)
IS-IS报文通过TLV(Type-Length-Value)扩展灵活性,常见TLV包括:
- Hello报文:区域地址TLV(Area Address)、认证TLV(Authentication)。
- LSP报文:IS邻居TLV(IS Neighbors)、IP接口地址TLV(IP Interface Address)。
- SNP报文:LSP条目摘要(LSP Entries)。
6. 关键定时器
- HelloInterval:默认10秒(广播)/3秒(点到点)。
- HoldTime:默认30秒(广播)/9秒(点到点)。
- LSP刷新间隔:默认15分钟。
- CSNP发送间隔:默认10秒(由DIS在广播网络发送)。
总结流程图
邻居发现(Hello) → 邻接建立 → LSP泛洪 + SNP同步 → 维护LSDB一致性
- 在广播网络中,DIS通过CSNP驱动同步;在点到点网络中,PSNP直接用于确认和请求。
通过上述流程,IS-IS确保所有路由器的链路状态数据库一致,最终通过SPF算法计算出最短路径树。