计算机网络-IS-IS链路状态数据库同步

在建立IS-IS邻接关系之后,路由器开始发送LSP报文进行链路状态数据库进行同步。

一、链路状态数据库同步

LSP( Link State PDU,链路状态报文) 用于交换链路状态信息。LSP分为两种:Level--1 LSP和Level--2 LSP。Level--1 LSP由Level-1路由器传送,Level--2 LSP由Level-2路由器传送,Level-1-2路由器则可传送以上两种LSP。两类LSP有相同的报文格式。

报文格式:

  • Remaining Lifetime : LSP的生存时间,以秒为单位。
  • LSP ID:由三部分组成,System ID、伪节点ID和LSP分片后的编号。
  • Sequence Number: LSP的序列号。在路由器启动时所发送的第一个LSP报文中的序列号为1,以后当需要生成新的LSP时,新LSP的序列号在前一个LSP序列号的基础上加1。更高的序列号意味着更新的LSP。
  • Checksum : LSP的校验和。
  • ATT(Attachment):由Level-1-2路由器产生,用来指明始发路由器是否与其它区域相连。虽然此标志位也存在于Level-1和Level-2的LSP中,但实际上此字段只和Level-1-2路由器始发的L1 LSP有关。
  • OL(LSDB Overload,1bit):过载标志位。设置了过载标志位的LSP虽然还会在网络中扩散,但是在计算通过超载路由器的路由时不会被采用。即对路由器设置过载位后,其它路由器在进行SPF计算时不会考虑这台路由器。当路由器内存不足时,系统自动在发送的LSP报文中设置过载标志位。
  • IS Type(2bit):生成LSP的路由器的类型。用来指明是Level-1还是Level-2路由器(01表示Level-1,11表示Level-2)。

LSDB:链路状态数据库:
LSDB 自身产生的LSP

  • *表示自身生成的LSP.

  • 伪节点ID:当该参数不为零时,表示该LSP为伪节点生成。用于描述区域内IS信息。

  • 分片号:当IS-IS要发布的链路状态协议数据报文PDU(Protocol Data Unit)中的信息量太大时,IS-IS路由器将会生成多个LSP分片,用来携带更多的IS-IS信息。分片号用来区分不同的LSP分片。

    因为AR1是L1的路由器只能看到L1的LSDB,如果是L1-2路由器会有两个级别的LSDB信息

    <AR1>dis isis lsdb

                          Database information for ISIS(1)
                          --------------------------------
    
                            Level-1 Link State Database
    

    LSPID Seq Num Checksum Holdtime Length ATT/P/OL

    0010.0100.1001.00-00* 0x00000005 0xcf76 688 97 0/0/0
    0010.0100.1001.01-00* 0x00000002 0xcf38 688 55 0/0/0
    0010.0100.1001.02-00* 0x00000002 0x31b3 688 55 0/0/0
    0020.0200.2002.00-00 0x00000008 0xc8f0 706 86 1/0/0
    0030.0300.3003.00-00 0x00000007 0x27b 654 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

可以查看LSP的详细信息:

# 查看非伪节点00的LSP
<AR1>dis isis lsdb 0010.0100.1001.00-00 verbose 

                        Database information for ISIS(1)
                        --------------------------------

                          Level-1 Link State Database

LSPID                 Seq Num      Checksum      Holdtime      Length  ATT/P/OL
-------------------------------------------------------------------------------
0010.0100.1001.00-00* 0x00000006   0xcd77        1126          97      0/0/0   
 SOURCE       0010.0100.1001.00
 NLPID        IPV4
 AREA ADDR    49.0001 
 INTF ADDR    12.1.1.1
 INTF ADDR    13.1.1.1
 NBR  ID      0010.0100.1001.02  COST: 10        
 NBR  ID      0010.0100.1001.01  COST: 10        
 IP-Internal  12.1.1.0        255.255.255.0    COST: 10        
 IP-Internal  13.1.1.0        255.255.255.0    COST: 10        

Total LSP(s): 1
    *(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended), 
           ATT-Attached, P-Partition, OL-Overload
  • AREA ADDR:该LSP来源的区域号INTF
  • ADDR:该LSP中描述的接口地址
  • NBR ID:该LSP中描述的邻接信息
  • IP-Internal:该LSP中描述的网段信息

在伪节点LSP中,只包含邻接信息而不包含路由信息。

<AR1>dis isis lsdb 0010.0100.1001.01-00 verbose

                        Database information for ISIS(1)
                        --------------------------------

                          Level-1 Link State Database

LSPID                 Seq Num      Checksum      Holdtime      Length  ATT/P/OL
-------------------------------------------------------------------------------
0010.0100.1001.01-00* 0x00000003   0xcd39        1011          55      0/0/0   
 SOURCE       0010.0100.1001.01
 NLPID        IPV4
 NBR  ID      0010.0100.1001.00  COST: 0         
 NBR  ID      0020.0200.2002.00  COST: 0         

Total LSP(s): 1
    *(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended), 
           ATT-Attached, P-Partition, OL-Overload

查询命令:

# 查询DIS
dis isis interface

# 查询lsdb信息
dis isis lsdb

# 查询详细数据库信息
dis isis lsdb verbose

# 查询isis邻接关系
dis isis peer

# 查询isis路由
dis isis route

# 查询isis概述,进程,接口开销,链路类型等信息
dis isis brief

简单说就是AR1产生了3条LSP,伪节点标识00是AR1产生的,里面包含了邻接关系和路由,伪节点标识01和02是DIS产生的,里面只有邻接关系而没有路由信息。以及AR2和AR3的L1的LSP,在LSDB上还能看到ATT/P/OL的置位信息。

1.1 CSNP

CSNP包含该设备LSDB中所有的LSP摘要,路由器通过交互 CSNP来判断是否需要同步LSDB。

  • 在广播网络上,CSNP由DIS定期发送(缺省的发送周期为10秒)。
  • 在点到点网络上,CSNP只在第一次建立邻接关系时发送。

CSNP报文

1.2 PSNP

PSNP只包含部分LSP的摘要信息(与CSNP不同,类型LSR,请求没有的LSR):

当发现LSDB不同步时,PSNP来请求邻居发送新的LSP。

在点到的网络中,当收到LSP时,使用PSNP对收到的LSP进行确认。(LSACK)
PSNP报文

1.3 广播网络LSP同步过程

LSP同步

  1. 新加入的路由器R3首先发送IIH报文,与该广播域中的路由器建立邻接关系。建立邻接关系之后,R3等待LSP刷新定时器超时,然后将自己的LSP发往组播地址(Level-1:01-80-C2-00-00-14;Level-2:01-80-C2-00-00-15)。这样网络上所有的邻接都将收到该LSP。
  2. 该网段中的DIS会把收到R3的LSP加入到LSDB中,并等待CSNP报文定时器超时并发送CSNP报文。
  3. R3收到DIS发来的CSNP报文,对比自己的LSDB数据库,然后向DIS发送PSNP报文请求自己没有的LSP。
  4. DIS收到该PSNP报文请求后向R3发送对应的LSP进行LSDB的同步。

简单如下:

  • DIS同步更新邻接关系和维护LSDB,每10S发送CSNP(全量数据库信息)
  • 新加入邻居对比本地的LSDB,发现缺少的LSP,发送PSNP(缺少的部分LSP)

1.4 点到点网络LSP同步

P2P同步

简单就是建立邻接关系时发送CSNP,如果不全则请求PSNP。

LSP处理机制:
LSP处理机制

IS-IS通过交互LSP实现链路状态数据库同步,路由器收到LSP后,按照以下原则处理:

若收到的LSP比本地LSP的更优,或者本地没有收到的LSP:

  • 在广播网络中:将其加入数据库,并组播发送新的LSP。
  • 在点到点网络中:将其加入数据库,并发送PSNP报文来确认收到此LSP,之后将这新的LSP发送给除了发送该LSP的邻居以外的邻居。

若收到的LSP和本地LSP无法比较出优劣,则不处理该LSP。

简单说就是根据序列号判断新旧,序列号大的优先,如果相同则不处理更新。

总结:IS-IS路由器建立邻接关系后通过LSP( Link State PDU,链路状态报文) 交换链路状态信息。在广播网络中由DIS伪节点每10S发送全量CSNP ,如果IS-IS路由器本地没有对应的LSP则发送PSNP 请求更新。LSP的处理机制:根据序列号判断新旧,序列号大的优先,如果相同则不处理更新。

本文由mdnice多平台发布

相关推荐
大模型八哥1 天前
大模型扫盲系列——大模型实用技术介绍(上)
人工智能·程序人生·ai·大模型·llm·llama·ai大模型
HHHTTY-3 天前
开启AI新篇章:探索GPT-4与大模型!订阅方案!简单支付!
人工智能·经验分享·python·深度学习·程序人生·机器学习·课程设计
龙之叶4 天前
文字的力量
程序人生
影雀4 天前
爬虫设计思考之一
程序人生
mysqloffice5 天前
[大象快讯]:PostgreSQL 17 重磅发布!
程序人生
哲伦贼稳妥5 天前
面试经验分享
经验分享·程序人生·其他·职场和发展·电脑
web_learning_3215 天前
python开源代码自学问题解决(requests+openpyxl+pymysql)
开发语言·python·程序人生·学习方法
独泪了无痕6 天前
帝都程序猿十二时辰
程序人生
微刻时光6 天前
影刀RPA实战:Excel拆分与合并工作表
笔记·程序人生·自动化·excel·rpa·影刀
Y_3_76 天前
RabbitMQ 概述及安装 : 程序之间沟通的桥梁
开发语言·分布式·后端·程序人生·中间件·rabbitmq·学习方法