• 计算机网络-IS-IS工作原理之邻接关系建立


    前面我们学习了IS-IS的基础理论与相关概念,IS-IS与OSPF一样是链路状态路由协议,需要建立邻接关系,互相传递LSP信息的,因此现在开始学习IS-IS的工作原理,如何建立邻接关系、链路状态数据库同步以及路由更新计算。

    一、邻接关系建立

    1.1 邻接关系建立原则

    IS-IS按如下原则建立邻接关系:

    • 只有同一层次的相邻路由器才有可能成为邻接。
    • 对于Level-1路由器来说,Area ID必须一致。
    • 链路两端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类型。

    1.2 IIH报文

    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

    报文结构:

    IIH报文
    IIH报文
    • Reserved/Circuit Type:表示路由器的类型(01表示L1,10表示L2,11表示L1/L2)。
    • Source ID :发出Hello报文的路由器的System ID。
    • Holding Time : 保持时间。在此时间内如果没有收到邻接发来的Hello报文,则中止已建立的邻接关系。 默认9秒。
    • Priority :选举DIS的优先级,取值范围为0~127。 数值越大,优先级越高。该字段只在广播网中的Hello消息(LAN IIH消息)携带;点到点网络的Hello消息(P2P IIH消息)没有此字段,也没有此字段之前的R保留位。
    • LAN ID : 包括DIS的System ID和伪节点ID。该字段只在广播网中的Hello消息(LAN IIH消息)携带;点到点网络的Hello消息(P2P IIH消息)没有此字段。
    • Local Circuit ID :本地链路ID。该字段 只在点到点网络的Hello消息(P2P IIH消息)携带;广播网中的Hello消息(LAN IIH消息)没有此字段。

    1.3 广播网络邻接关系建立

    广播网络中建立邻接关系过程:

    两台运行IS-IS的路由器在交互协议报文实现路由功能之前必须首先建立邻接关系。在不同类型的网络上,IS-IS的邻接建立方式并不相同。在广播网络中,使用三次握手建立邻接关系。

    广播网络邻接关系
    广播网络邻接关系
    1. 在Down状态下,R1组播发送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。这样,两个路由器成功建立了邻接关系。
    5. 广播网络中需要选举DIS,在邻接关系建立后,路由器会等待两个Hello报文间隔,再进行DIS的选举。

    大概就是先发送IIH报文到组播地址,然后ISIS路由器接收到之后变更状态为初始化,如果报文中区域ID相同则标识为邻居,通过三次握手方式协商。

    Level-1 IIH和Level-2 IIH发送的组播地址分别为01-80-C2-00-00-14、01-80-C2-00-00-15。

    几种状态变化:

    • Down:邻接关系的初始状态。
    • Initial:收到IIH,但是报文中的邻接列表未包含路由器自身的System ID。
    • UP:收到IIS,且邻接列表中包含路由器自身的System ID。

    DIS与伪节点:

    在广播网络中,IS-IS需要在所有的路由器中选举一个路由器作为DIS(Designated Intermediate System)。DIS用来创建和更新伪节点(Pseudonodes),并负责生成伪节点的LSP,用来描述这个网络上有哪些网络设备。 伪节点是用来模拟广播网络的一个虚拟节点,并非真实的路由器 。在IS-IS中,伪节点用DIS的System ID和Circuit ID(非0值)标识。

    DIS与伪节点
    DIS与伪节点

    DIS作用:

    • 创建伪节点,生成伪节点的LSP
    • 发送CSNP同步LSDB,维护数据库,维护邻接关系。

    DIS选举规则:

    Level-1和Level-2的DIS是分别选举的,用户可以为不同级别的DIS选举设置不同的优先级。

    DIS的选举规则如下:(优先级大优先,相等MAC地址大优先)

    • DIS优先级数值最大的被选为DIS。
    • 如果优先级数值最大的路由器有多台,则其中MAC地址最大的路由器会成为DIS。

    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建立邻接关系。

    1.4 点到点网络中的邻接关系建立过程

    点到点网络中,邻接关系的建立使用两次握手方式:只要路由器收到对端发来的Hello报文,就单方面宣布邻接为Up状态,建立邻接关系。

    两次握手机制存在明显的缺陷,华为设备在点到点网络中使用IS-IS时,默认使用三次握手建立邻接关系。此方式通过三次发送P2P IIH最终建立起邻接关系。

    P2P邻接关系建立
    P2P邻接关系建立

    总结:IS-IS中相同级别路由建立同级别的邻接关系,广播网络使用Level-1 LAN IIH和Level-2 LAN IIH建立协商,点到点网络使用P2P IIH进行协商。IS-IS邻接关系通过三次握手协商,广播网络还需要选举DIS,类似与OSPF中的DR,DIS维护网络中所有的邻接关系,会抢占。

    本文由 mdnice 多平台发布

  • 相关阅读:
    JavaScript函数七重关之函数定义
    牛客Leetcode高频题解(下)
    【HarmonyOS】低代码平台组件拖拽使用技巧之页签容器
    说说UE5中的几种字符串类
    Jenkins 如何玩转接口自动化测试?
    [CISCN 2019初赛]Love Math
    【Java面试小短文】HashMap中的hash方法为什么要右移16位并异或?
    IntelliJ IDEA、.NET 工具变贵,JetBrains 宣布全家桶涨价!
    个人数学建模算法库之图的最短路径模型
    第三届阿里云磐久智维算法大赛——GRU BaseLine
  • 原文地址:https://blog.csdn.net/weixin_43483442/article/details/138060918