前面我们学习了IS-IS的基础理论与相关概念,IS-IS与OSPF一样是链路状态路由协议,需要建立邻接关系,互相传递LSP信息的,因此现在开始学习IS-IS的工作原理,如何建立邻接关系、链路状态数据库同步以及路由更新计算。
IS-IS按如下原则建立邻接关系:
tips:
由于IS-IS是直接运行在数据链路层上的协议,并且最早设计是给CLNP使用的,IS-IS邻接关系的形成与IP地址无关。但在实际的部署中,在IP网络上运行IS-IS时,需要检查对方的IP地址的。如果接口配置了从IP,那么只要双方有某个IP(主IP或者从IP)在同一网段,就能建立邻接,不一定要主IP相同。
简单讲就是Level-1和Level-1建邻接,Level-2和Level-2建立邻接,Level-1-2分别和Level-1、Level-2建立对应级别的邻接关系。正常情况下相邻路由器网段一致检查,可以通过配置忽略,因为最初IS-IS不是在IP网络运行。两端网络接口类型必须一致为广播网络或者P2P类型。
IIH报文就是IS-IS的Hello报文,和OSPF的hello报文一致用于协商和保持邻接状态。IIH根据网络类型区分广播的IIH和点到点的IIH。IIH报文用于建立和维持邻接关系,广播网络中的Level-1 IS-IS路由器使用Level-1 LAN IIH;广播网络中的Level-2 IS-IS路由器使用Level-2 LAN IIH;点到点网络中则使用P2P IIH。
报文结构:
广播网络中建立邻接关系过程:
两台运行IS-IS的路由器在交互协议报文实现路由功能之前必须首先建立邻接关系。在不同类型的网络上,IS-IS的邻接建立方式并不相同。在广播网络中,使用三次握手建立邻接关系。
大概就是先发送IIH报文到组播地址,然后ISIS路由器接收到之后变更状态为初始化,如果报文中区域ID相同则标识为邻居,通过三次握手方式协商。
Level-1 IIH和Level-2 IIH发送的组播地址分别为01-80-C2-00-00-14、01-80-C2-00-00-15。
几种状态变化:
DIS与伪节点:
在广播网络中,IS-IS需要在所有的路由器中选举一个路由器作为DIS(Designated Intermediate System)。DIS用来创建和更新伪节点(Pseudonodes),并负责生成伪节点的LSP,用来描述这个网络上有哪些网络设备。 伪节点是用来模拟广播网络的一个虚拟节点,并非真实的路由器 。在IS-IS中,伪节点用DIS的System ID和Circuit ID(非0值)标识。
DIS作用:
DIS选举规则:
Level-1和Level-2的DIS是分别选举的,用户可以为不同级别的DIS选举设置不同的优先级。
DIS的选举规则如下:(优先级大优先,相等MAC地址大优先)
DIS发送Hello PDU的时间间隔是普通路由器的1/3(普通发送时间10s),这样可以确保DIS出现故障时能够被更快速地被发现。
IS-IS中DIS与OSPF协议中DR(Designated Router)的区别:
在IS-IS广播网中,优先级为0的路由器也参与DIS的选举,而在OSPF中优先级为0的路由器则不参与DR的选举。
在IS-IS广播网中,当有新的路由器加入,并符合成为DIS的条件时,这个路由器会被选中成为新的DIS,原有的伪节点被删除。此更改会引起一组新的LSP泛洪。而在OSPF中,当一台新路由器加入后,即使它的DR优先级值最大,也不会立即成为该网段中的DR。(IS-IS会抢占?因为IS-IS只有邻接关系,而且没有备选的DIS,切换影响较小,收敛较快)
在IS-IS广播网中,同一网段上的同一级别的路由器之间都会形成邻接关系,包括所有的非DIS路由器之间也会形成邻接关系。而在OSPF中,路由器只与DR和BDR建立邻接关系。
点到点网络中,邻接关系的建立使用两次握手方式:只要路由器收到对端发来的Hello报文,就单方面宣布邻接为Up状态,建立邻接关系。
两次握手机制存在明显的缺陷,华为设备在点到点网络中使用IS-IS时,默认使用三次握手建立邻接关系。此方式通过三次发送P2P IIH最终建立起邻接关系。
总结:IS-IS中相同级别路由建立同级别的邻接关系,广播网络使用Level-1 LAN IIH和Level-2 LAN IIH建立协商,点到点网络使用P2P IIH进行协商。IS-IS邻接关系通过三次握手协商,广播网络还需要选举DIS,类似与OSPF中的DR,DIS维护网络中所有的邻接关系,会抢占。
本文由 mdnice 多平台发布