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

devtools/2024/9/22 15:10:12/

前面我们学习了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 多平台发布


http://www.ppmy.cn/devtools/10417.html

相关文章

如何修改NFT的元数据

引言 本文针对有一定基础的小伙伴、直接上干货。 背景:昨天接到这么一个需求,在erc721协议铸造后的基础上修改上链后的元数据。 参考 核心源码 //管理员修改tokenurifunction setTokenURI(uint256 tokenId, string calldata uri) public onlyOwner {requ…

SAM-Lighting 项目排坑

SAM-Lighting 项目排坑 任务过程呢改下载 任务 之前看到一个很有意思的工作SAM-Lighting。他用了flash attention技术。我想知道他是怎么调用flash attention的,也想看看实际效果。可惜他的权重和训练脚本都还没开源,暂时只能clone看看模型代码。如果谁…

C#版Facefusion:让你的脸与世界融为一体!-03 获取人脸特征值

C#版Facefusion:让你的脸与世界融为一体!-03 获取人脸特征值 目录 说明 效果 模型信息 项目 代码 下载 说明 C#版Facefusion一共有如下5个步骤: 1、使用yoloface_8n.onnx进行人脸检测 2、使用2dfan4.onnx获取人脸关键点 3、使用arcf…

clickhouse ttl不生效

现象: 日志保留31天, 但是发现1年前的数据还有。 表结构: CREATE TABLEads_xxxx_metrics_1m_local (static_time String COMMENT 统计时间,......) ENGINE ReplacingMergeTree (process_time) PARTITION BYtoYYYYMMDD (toDate (static_tim…

IP设置https访问

目录 但是IP地址的SSL证书和传统域名证书又有着一些区别: IP证书的原理: IP证书是如何工作的: 具体申请IP证书: 首先IP地址是可以实现https访问的,和传统的域名地址一样,需要用到数字证书部署&#xff0…

Xilinx 7系列FPGA的时钟管理

在7系列FPGA中,时钟管理单元(CMT)包含了混合模式时钟管理器(MMCM)和锁相环(PLL)。PLL是包含了MMCM功能的一个子集。CMT骨干网可用于链接CMT的时钟功能。CMT图(图3-1)展示…

GHO文件安装到Vmware的两种姿势

1、使用 Ghost11.5.1.2269 将gho转换为vmdk文件(虚拟机硬盘),Vmware新建虚拟机自定义配置,然后添加已有的虚拟硬盘文件。 注意ghost的版本,如果你是用Ghost11.5备份的gho文件,再用Ghost12把gho文件转换为vmdk,则vmdk文…

探究C++20协程(5)——基于挂起实现无阻塞的定时器

实现目标 当用传统的线程 sleep 函数来让程序等待时,实际上是在阻塞当前线程。阻塞意味着这个线程在指定的时间(例如100毫秒)内无法执行任何其他任务。这种方式虽然简单,但效率低下,因为它导致CPU资源在等待期间未被充…