重点:※IS-IS交互的地址不是单纯的NET地址 比如这里的LSDB数据库里的0000.0000.0001.00-00 是三个部分组成的: (1)System ID (2)伪节点ID (3)报文是否分片 因为很大一部分都是System ID组成的,所以很容易误解,所以要特别注意 这样设计的好处就是可以快速排错,定位LSP的产生者 1:邻接关系建立流程(交互Hello报文): 1:广播型的三次握手 1、在Down状态下,R1组播(运行IS-IS的设备才会接收到,和OSPF的逻辑一样)发送Level-1 LAN IIH,此报文中邻接列表为空。 2、R2收到此报文后,将邻接状态标识为Initial。然后,R2再向R1回复Level-1 LAN IIH ,此 报文中标识R1为R2的邻接。 3、R1收到此报文后,将自己与R2的邻接状态标识为Up。然后R1再向R2发送一个标识 R2为R1邻接的Level-1 LAN IIH 。 4、R2收到此报文后,将自己与R1的邻接状态标识为Up。这样,两个路由器成功建立了邻 接关系。 (P2P到这一步就可以开始交互其他报文了,广播型才继续选) 5、广播网络中需要选举DIS,在邻接关系建立后,路由器会等待两个Hello报文间隔,再进 行DIS的选举 IS-IS的Hello报文发送时间也是10s一次,但是死亡时间是30s,OSPF是40s 2:P2P型的两次握手 1、点到点网络中,邻接关系的建立使用两次握手方式: 只要路由器收到对端发来的Hello报文,就单方面宣布邻接为Up状态,建立邻接关系。少交互一个hello报文快一些,同时可以不选DIS,时候缩短,邻居收敛和建立速度就变快很多了 但是很危险呀,没有确认机制,现实网络当中会有单通也就是单up的问题 比如: 光模块不是有俩口嘛,一个是收光的,一个是拿来发光的,有些是需要两个都有效,但是也有只要能收光就算正常,如果这时候只有收光正常,而且只有两次握手,那就单通了 网线也会有,比如链路拥塞,发出之后,丢包了,对方没收到,但是我收到了,那又单通了 所以很不建议P2P的来建立IS-IS当中的网络,除非客户极端要求(命令在IS-IS配置当中写有) 有意思的是,可以一边两次握手,一边三次握手,邻居关系照样建立,因为三次兼容两次握手,这时候是以两次为主,一样不安全 2、两次握手机制存在明显的缺陷,华为设备在点到点网络中使用IS-IS时,默认使用三次握手建立邻接关系。此方式通过三次发送P2P IIH最终建立起邻接关系。 所以华为使用的是三次握手
2:交互数据(全都在up状态下交互) 1、广播网络中LSP的同步过程
广播网络中新加入路由器与DIS同步LSDB数据库的过程: 1、新加入的路由器R3首先发送IS-IS hello报文,与该广播域中的路由器建立邻接关系。 2、建立邻接关系之后,R3等待LSP刷新定时器超时,然后将自己的LSP发往组播地址 (Level-1:01-80-C2-00-00-14;Level-2:01-80-C2-00-00-15)。这样网络上所有的邻接(DIS 和R1)都将收到该LSP。并且将其放在LSDB当中,但是R1这种普通设备不会使用这个 LSP 3、该网段中的DIS会把收到R3的LSP加入到LSDB中,并等待CSNP报文定时器超时(10s 周期性泛洪)并发送CSNP报文。 4、设备接收的操作: (1)R3收到DIS发来的CSNP报文,对比自己的LSDB数据库,然后向DIS发送PSNP 报文请求自己没有的LSP。 (2)R1(其他IS-IS设备)收到了R3发来LSP的设备,在收到DIR发来的CSNP之 后,发现其中有那条自己之前接收但是没有使用的LSP,那就会开始使用,也不会 再发CSNP来请求了,节省带宽 5、DIS收到该PSNP报文请求后向R3发送对应的LSP进行LSDB的同步。 6、广播型网络下,PSNP只起到请求的效果,无需确认(因为广播型网络下,CSNP报 文每10S发送一个,就算这次没收到,下次也可以收到) 2、点到点网络中LSP的同步过程
、 1、R1先与R2建立邻接关系(hello报文)。 2、建立邻接关系之后,R1与R2会先发送CSNP给对端设备。 如果对端的LSDB与CSNP没有同步,则发送PSNP请求索取相应的LSP。 3、假设R2向R1索取相应的LSP。 (1)R1发送R2请求的LSP的同时启动LSP重传定时器,并等待R2发送的PSNP作为 收到LSP的确认。因为P2P不是周期性发送CSNP,所以需要确认 (2)如果在接口LSP重传定时器超时后,R1没有收到R2发送的PSNP报文作为应答。 则R1重新发送该LSP。 (3)R2收到LSP后,发送PSNP进行确认。 IS-IS的LSP处理机制: IS-IS通过交互LSP实现链路状态数据库同步 路由器收到LSP后,按照以下原则处理: 1、若收到的LSP比本地LSP的更优,或者本地没有收到的LSP: (1)在广播网络中:将其加入数据库,并组播发送新的LSP。 (2)在点到点网络中:将其加入数据库,并发送PSNP报文来确认收到此LSP,之 后将这新的LSP发送给除了发送该LSP的邻居以外的邻居。 2、若收到的LSP和本地LSP无法比较出优劣,则不处理该LSP。
在处理的情况下: 1、每发一条就会在序列号上加1,序列号越大越应该被处理 2、和OSPF的规则一样,0反而是优先级最高的,0>1200>1199>...>1,这样在收到 保活时间为0的同序列号LSP时,会立即处理,而且直接进行删除操作 3、校验这个LSP是否完整,有可能自己的LSDP的不完整,校验和越大,代表数据 越完整,所以会最后比较校验和
|