上一章我们介绍了ISIS的邻居建立关系以及ISIS的路由器角色有哪些,在不同的网络类型当中建立邻居关系有什么不同,并且以实验案例抓包的形式给大家进一步介绍了建立的过程。
这一章我们来介绍ISIS中是如何实现链路状态数据库同步的,与OSPF的链路状态同步有什么不同,在不同网络类型中的同步过程是否一致。
一、概述
我们在第一章说过ISIS一共有9个报文,分别为L1/L2/P2P的IIH报文,L1/L2的LSP报文,L1/L2的CSNP和L1/L2的PSNP,我们现在来说一下这几个报文的作用是什么
IIH报文在上一章已经介绍过这里不过多赘述
LSP报文
(ISIS中的LSP有点类似于OSPF中的LSA)
- IS-IS链路状态报文LSP用于交换链路状态信息的。LSP分为两种分别为:Level-1 LSP与Level-2 LSP。Level-1 LSP由Level-1路由器传送,Level-2 LSP由Level-2路由器传送,Level1-2路由器则可传送以上两种LSP。
- 两类LSP有相同的报文格式。

CSNP报文
CSNP包含了该设备LSDB中所有的LSP摘要,路由器通过交互CSNP来判断是否需要同步LSDB。
- 在MA广播型网络类型当中,CSNP由DIS定期发送(缺省的发送周期为10秒)。
- 在P2P点到点网络类型当中,CSNP只在第一次建立邻接关系时发送,对方接收到这个CSNP后查看当中的LSP摘要,如果自己的数据库当中没有的话就发送PSNP去请求对方。

PSNP报文
PSNP只包含了部分LSP的摘要信息(与CSNP不同)
- 当发现LSDB不同步时,PSNP来请求邻居发送新的LSP。
- 在P2P点到点网络类型当中,当收到LSP时,会使用PSNP对收到的LSP进行确认(这就对应了我们第一章所说的PSNP报文不仅可以用来当作请求报文也可以用来当作确认报文)

ISIS的LSDB链路状态数据库

查看非伪节点的LSP

查看伪节点LSP

LSDB同步

在这张拓扑当中区域5中的L1路由器只能与同区域的L1/L2建立L1的邻居关系
区域5中的L1/L2路由器只能与同区域的L1建立邻居关系,与不同区域的L1/L2只能够建立L2的邻居关系,那么L1/L2怎么学习到区域3中的L1的链路信息呢?
在ISIS中L1/L2会对L2的邻居做一个引入的操作,这个操作是默认的类似于OSPF中ABR将区域间的路由转发给区域内的路由器,当然这里转发的是L1的链路信息所以区域5中的L1/L2路由器就可以通过L2的邻居关系学习到不同区域中的链路信息
那么L1/L2学习到了不同区域的L1链路信息但L1并没有学习到因为只有L2邻居关系会引入L1的链路信息而L1邻居关系并不会引入L2的链路信息,那区域5中的L1路由器怎么去访问区域3中的L1路由器呢?
L1/L2路由器会在它们该区域下发的Level-1中设置ATT标志位,用于向区域内的Level01路与其宣告可以通过自己到达其他区域。L1路由器会根据ATT标志位计算出指向L1/L2路由器的默认路由用于访问不同区域之间的网段。(非常类似于OSPF中的Stub区域)

LSP的更新时间
- LSP的刷新间隔为15分钟;老化时间为20分钟
- 一条LSP的老化除了要等待20分钟外,还要等待60秒的零老化时延
- LSP重传时间为5秒
LSP的比较规则
- 序列号:越大越新
- Remaining Lifetime:越小越新
- Checksum:越打越新

P2P网络类型同步LSDB过程
1、在P2P点到点网络当中我们前面说了只有在第一次建立邻居关系时才会发送CSNP报文,这个报文中包含了本路由设备所有的LSDB的摘要信息
2、当对方收到我的CSNP报文后会查看与自己的链路状态数据库中的链路数据是否一致,如果有自己没有的链路信息,那就发送PSNP来请求对方
3、当对方收到了来自邻居的PSNP请求报文时,会查看PSNP中的LSP的摘要信息并发送相应的LSP给对方,如果一段时间内没有收到对方发来的PSNP的确认报文则重新发送一份LSP报文给对方
4、这里的确认是隐式的确认通过PSNP报文中LSP entries(t=9,l=16)的LSP的校验和以及序列号和LSP-ID来做相应的确认
5、如果后面链路数据发生变化了就直接发送LSP给对方,告诉邻居我们的链路信息变化了,对方会做相应的撤销和请求

MA网络类型同步LSDB过程
在MA广播网络类型当中,所有的CSNP报文都由我们选举出来的DIS来周期性发送,当邻居收到DIS发送的CSNP时会比较自己的链路状态数据库,发现自己没有的链路信息时会发送PSNP的请求报文给DIS
当DIS收到来自邻居的请求报文时会发送相应的LSP给对方,这里是不会有请求报文的,如果没收到或者丢包了,则下次DIS发送CSNP时在发出PSNP的请求相应的LSP即可。
假如这时新加入一台路由器设备,它会发送IIH报文先建立邻居关系随后发送自己的LSP信息,当DIS收到这个LSP时会将LSP中的内容加入到自己的LSDB中,在发送新的CSNP报文,新加入的路由器就会根据DIS的CSNP报文来请求响应的LSP信息

二、实验
拓扑

(1)基础配置
AR1
system
sysname AR1
interface g0/0/0
ip add 10.0.12.1 24
AR2
system
sysname AR2
interface g0/0/0
ip add 10.0.12.2 24
interface g0/0/1
ip add 10.0.23.2 24
interface g0/0/2
ip add 10.0.24.2 24
AR3
system
sysname AR3
interface g0/0/0
ip add 10.0.23.3 24
interface g0/0/1
ip add 10.0.35.3 24
AR4
system
sysname AR4
interface g0/0/0
ip add 10.0.24.4 24
interfacae g0/0/1
ip add 10.0.45.4 24
AR5
system
sysname AR5
interface g0/0/0
ip add 10.0.35.5 24
interface g0/0/1
ip add 10.0.45.5 24
(2)ISIS配置
AR1
isis 1
is-level level-1
network-entity 48.0001.0000.0001.00
q
interface g0/0/0
isis enable 1
AR2
isis 1
network-entity 48.0001.0000.0002.00
q
interface g0/0/0
isis enable 1
interface g0/0/1
isis enable 1
interface g0/0/2
isis enable 1
AR3
isis 1
network-entity 49.0001.0000.0003.00
q
interface g0/0/0
isis enable 1
interface g0/0/1
isis enable 1
AR4
isis 1
network-entity 49.0001.0000.0004.00
q
interface g0/0/0
isis enable 1
interface g0/0/1
isis enable 1
AR5
isis 1
is-level level-1
network-entity 49.0001.0000.0005.00
q
interface g0/0/0
isis enable 1
interface g0/0/1
isis enable 1
这里我们将AR1与AR5配置为Level-1的路由器,所以它们只能建立Level-1的邻居状态,并且只维护本区域的LSDB数据库,他们是没有其他区域LSDB数据的,而AR2/3/4他们为L1/2路由器设备,他们的LSDB数据库中会存在完整的链路数据信息

我们可以看到AR1上只有自己与AR2的链路数据,并且AR2的链路数据中ATT置为了,说明AR2连着其他外部区域,如果我们AR1想要去访问外部区域网段的话就需要通过AR2来访问,所以AR1会计算生成一条指向AR2的默认路由。


我们可以看到AR2上拥有L1的LSDB和L2的LSDB,并且通过L2中的链路信息学习到了R5的网段信息
这时我们在AR5上创建一个Loopback接口设置IP为1.1.1.1并且使能ISIS
这时AR3就会收到来自AR5的LSP的更新报文

AR3会把其中自己没有LSP加入到自己的L1与L2的链路数据库当中


由于AR3的L2的链路状态数据库发生了变化所以AR3会把自己更新的L2的LSP发送出去,当AR2收到这条LSP时也会将其中自己没有的LSP放入到自己的L2的LSDB当中


当然AR1还是通过AR2下发的LSP中ATT置位所生成的默认路由去访问AR5的1.1.1.1网段


到这里本章内容就到此结束了如果有疑问可以关注博主私聊,如果有问题欢迎私聊博主及时更改谢谢大家的观看学习!!!