「ISIS」- LSDB

  CREATED BY JENKINSBOT

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中,只包含邻接信息而不包含路由信息。