LSP产生的原因
IS-IS路由域内的所有路由器都会产生LSP,以下事件会触发一个新的LSP:
邻接Up或Down
IS-IS相关接口Up或Down
引入的IP路由发生变化
区域间的IP路由发生变化
接口被赋了新的metric值
周期性更新(刷新间隔15min)
在广播网络中,LSP 的同步过程
针对初始设备的同步……
// 对于网络拓扑,初时仅有 R1 R2 两台设备 R1 <<<==== (MA) ====>>> R2 // 建立邻居关系,三次握手 ======>>> <<<====== ======>>> // 互相发送 LSP 进行同步 <<<==== LSP ====>>> // DIS 周期发送 CSNP 报文 ======= CSNP ====>>> // 其他设备通过 PSNP 请求 <<<==== PSNP ======= // 最后 DIS 回复 LSP 报文 ======= LSP ====>>>
针对新增设备的同步……
// 对于网络拓扑,R3 为新增设备 R1 <<<====(MA)====>>> R2 (DIS) || || VV R3
1)R3 向通过 IIH 与其他设备建立邻接关系;
2)R3 直接发送 LSP 进行广播,以发送给网络的其他设备;
3)R1/R2 会将 R3 的 LSP 进行保存;
4)DIS 每 10s 发送 CSNP 报文;
5)R3 根据 CSNP 来组播发送 PSNP 来请求数据;
6)DIS 对其进行响应;
在点到点网络中,LSP 的同步过程
// 对于网络拓扑,初时仅有 R1 R2 两台设备 R1 <<<==== (P2P) ====>>> R2 // 建立邻居关系,三次握手(或两次握手) ======>>> <<<====== ======>>> // 互相发送 CSNP/PSNP 进行同步 <<<==== CSNP ====>>> <<<==== PSNP ====>>> // 请求 <<<==== LSP ====>>> // 响应 <<<==== PSNP ====>>> // 确认
若未收到 PSNP 确认报文,则进行超时重传。
Q:如果在初时 CSNP 未收到,会出现什么情况?
A:WIP
Q:PSNP 的请求与确认结构是相同的,那是如何区分请求与确认呢?
A:WIP
实际设备抓包(华为)
厂商的实现方式是不同的,在华为中,交互过程如下:
1)通过 ISIS Hello 报文,建立邻接关系;
1)设备 LSP 交互,开始同步 LSDB 数据;
2)通过 PSNP 确认,确认数据已经收到;
3)互相发送 CSNP 报文 ⇒ 我们猜测为了确认已完成同步;
LSP 的处理机制
IS-IS通过交互LSP实现链路状态数据库同步,路由器收到LSP后,按照以下原则处理:
1)若收到的LSP比本地LSP的更优,或者本地没有收到的LSP:
—- 在广播网络中:将其加入数据库,并组播发送新的 LSP 以传播给其他邻接路由器。
—- 在点到点网络中:将其加入数据库,并发送PSNP报文来确认收到此LSP,然后将这新的 LSP 发送给其他的邻接路由器。
2)若收到的LSP和本地LSP无法比较出优劣,则不处理该LSP。
查看 LSDB 信息
<R1> display isis lsdb Database information for ISIS(1) Level-1 Link State Database LSPID Seq Num Checksum Holdtime Length ATT/P/OL -------------------------------------------------------------------------------------- 0100.0000.1001.00-00* 0x00000005 0x13a8 1187 97 0/0/0 0100.0000.1001.01-00* 0x00000001 0xda2e 1185 55 0/0/0 0100.0000.2002.00-00 0x00000004 0x94e9 1188 86 1/0/0 Total LSP(s): 5 *(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended), ATT-Attached, P-Partition, OL-Overload Fragment Number | -- 0100.0000.1001.00-00* -------------- -- - | | | System ID | | | | | 自己产生的 LSP | PseudoNode ID
分片号:当 IS-IS 要发布的链路状态协议数据报文PDU(Protocol Data Unit)中的信息量太大时,IS-IS Router 将会生成多个LSP分片,用来携带更多的IS-IS信息。分片号用来区分不同的LSP分片。
ATT:Attachment 位,指导是否产生路由;
P:修复位,类似于 OSPF 的 Virtual Link 功能,但目前没有厂商实现该功能;
PseudoNode ID:当该参数不为零时,表示该LSP为伪节点生成。比如 第二条,就表示该 LSP 是 DIS 产生,其 System ID 为 0100.0000.1001,即当前设备为 DIS。
Q:PseudoNode 使用 DIS 的 System ID 的原因?
A:PseudoNode 需要产生 LSP 来宣告网络拓扑,所以需要具有 System ID 标识,因此借用 DIS 的 System ID 属性。但是为了与 DIS 设备区分,所以新增 PseudoNode ID 来标识该 LSP 是 PseudoNode 来产生的。
Q:PseudoNode ID 的取值范围是什么?
A:在 MA Netwrok 中,都会产生 DIS 设备,因此衔接多个 MA Network 的 Router 极有可能是多个链路的 DIS 设备,所以需要不同 PseudoNode ID 取值。其取值范围 XXX 字节。
Non-PseudoNode LSP
<R1> display isis lsdb 0100.0000.1001.00-00 verbose Database information for ISIS(1) Level-1 Link State Database LSPID Seq Num Checksum Holdtime Length ATT/P/OL -------------------------------------------------------------------------------------------------- 0100.0000.1001.00-00* 0x0000000e 0x9a75 1072 113 0/0/0 SOURCE 0100.0000.1001.00 NLPID IPV4 AREA ADDR 49.0123 INTF ADDR 10.1.12.1 //描述接口信息 INTF ADDR 10.1.13.1 NBR ID 0100.0000.1001.01 COST: 10 //描述邻接关系 NBR ID 0100.0000.3003.01 COST: 10 IP-Internal 10.1.12.0 255.255.255.0 COST: 10 IP-Internal 10.1.13.0 255.255.255.0 COST: 10 //描述路由信息 IP-Internal 1.1.1.0 255.255.255.0 COST: 10 Total LSP(s): 1
AREA ADDR:该LSP来源的区域号
INTF ADDR:该LSP中描述的接口地址
NBR ID:该LSP中描述的邻接信息
IP-Internal:该LSP中描述的网段信息
PseudoNode LSP
<R1> display isis lsdb 0100.0000.1001.01-00 verbose Database information for ISIS(1) Level-1 Link State Database LSPID Seq Num Checksum Holdtime Length ATT/P/OL ---------------------------------------------------------------------------------------------------- 0100.0000.1001.01-00* 0x00000009 0xca36 431 55 0/0/0 SOURCE 0100.0000.1001.01 NLPID IPV4 NBR ID 0100.0000.1001.00 COST: 0 //描述该广播网络中所有IS-IS路由器 NBR ID 0100.0000.2002.00 COST: 0 //伪节点到达其他路由器的Cost值为0 Total LSP(s): 1 *(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended), ATT-Attached, P-Partition, OL-Overload
在伪节点LSP中,只包含邻接信息而不包含路由信息。