| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 2021-09-04 -> 正文阅读 |
|
[网络协议]2021-09-04 |
ISIS ISO(国际标准化组织) OSI地址 IDP(初始域标识符)相当于IP地址中的主网络号,由AFI和IDI两部分组成 DSP(域指定部分)相当于IP地址中的子网号和主机地址,由High Order DSP、System ID、SEL组成 NET(网络实体名称) 用于在网络层标识一台设备,可以简单看作NSEL为0x00的NSAP,NSEL为0x00 则表示不标识任何上层协议或服务类型,只表示该设备本身 IS-IS基本概念 IS-IS路由器分类 Level-2 路由器 Level-1-2 路由器 度量值 IS-IS Cost类型为Narrow,只能接收和发送Cost类型为Narrow的路由 IS-IS Cost类型为Wide,只能接收和发送Cost类型为Wide的路由须确保ISIS域内所有路由器配置一致的ISIS Cost类型 在ISIS视图下,执行auto-cost enable,可激活自动计算接口Cost功能 缺省100Mbps,可在ISIS视图下使用bandwidth-reference命令修改 Cost类型为Narrow、Narrow-compatible或Compatible 手工指定接口Cost值,在接口视图下使用isis cost命令,在命令中可加Level-1 Level-2关键字 协议报文 LSP(Link-State Packet) CSNP(Complete Sequence Number PDU,完全序列号报文) CSDN存在Level-1 Level-2 之分 PSNP(Partial Sequence Number PDU,部分序列号报文)存在Level-1 Level-2 之分,只包含部分LSP摘要信息 TLV(Type-Length-Value,类型-长度-值) LSP PDU长度(PDU Length):指示该PDU的总长度(单位为字节)。 剩余生存时间(Remaining Lifetime):指示该LSP的剩余存活时间(单位为秒) LSP标识符(LSP ID): LSP ID由三部分组成:该设备的系统ID、伪节点ID以及分片编号。 序列号(Sequence Number):该LSP的序列号。在IS-IS 中,LSP序列号的作用与OSPF 中LSA序列号的作用类似,主要用于区分LSP的新旧校验和 (Checksum):校验和。 P(Partition Repair):如果设备支持区域划分修复特性,则其产生的LSP中该比特位将被设置为1 ATT (Attached bits):也即关联位,实际上该字段共包含四个比特位(分别对应四种度量值类型),但是华为数通产品只使用了其中一个比特位
OL (Overload bit):也即过载位,通常情况下,IS-IS设备产生的LSP中该比特位被设置为0;如果该比特位被设置为1,则意味着该LSP的始发设备希望通过该比特位声明自己已经“过载”,而收到该LSP的其他IS-IS设备在进行路由计算时,只会计算到达该LSP始发设备的直连路由,而不会计算穿越该设备、到达远端目的网段的路由 IS 类型(IS Type):用于指示产生该LSP的路由器是Level-1还是Level-2类型,如果该字段的值为二进制的 01,则表示Level-1路由器;如果为二进制的11,则表示Level-2路由器 网络类型 2)IS-IS在 Broadcast类型的接口上使用两种 IH PDU: Level-1 LAN IIH(目的MAC地址为组播地址0180-c200-0014) Level-2 LAN IIH(目的MAC地址为组播地址0180-c200-0015) 具体使用哪种 PDU,取决于设备接口的Level(级别) Level-2 LAN IH。如果Level-1-2设备的接口连接了一台Level-1设备,那么该接口发送Level-2 LAN IIH是没有意义的,此时可通过命令修改接口的 Level,在华为数通产品上,在设备的接口视图下使用isis circuit-level 命令可修改该接口的IS-IS Level。该命令可以关联level-1、level-2或 level-1-2关键字,例如执行isis circuit-level level-2命令,可以将接口的Level修改为Level-2。该命令只在Level-1-2设备上有效。 3)DIS会周期性泛洪CSNP,确保该网络中IS-IS设备拥有着一致的LSDB。 CSNP中包含该DIS 的LSDB中所有LSP的摘要信息。CSNP使用LSP条目TLV来承载这些LSP摘要。同一个 Broadcast网络中的其他IS-IS设备收到该CSNP 后,将其中包含的LSP摘要与本地LSDB进行对比,如果发现两者一致,则忽略该CSNP;如果发现本地LSDB中缺少了某条或某些LSP,则向DIS发送PSNP来请求这些LSP的完整信息(PSNP 也使用LSP条目TLV来承载这些被请求的LSP 的摘要信息)。而后者收到该PSNP后,从该PSNP的LSP条目TLV中解析出被请求的LSP,然后将相应的LSP发送给对方。收到该LSP的一方将该LSP更新到自己的LSDB中,并且无需向LSP发送方进行确认 p2p 2)使用P2P IIH 发现及维护IS-IS邻居关系。缺省时,Hello报文的发送间隔为10秒 3)在P2P网络中,当IS-IS设备之间完成邻居关系建立后,便开始交互LSP。设备从邻居收到LSP后,需使用PSNP进行确认,以便告知对方自己已经收到了该LSP。如果一段时间后,对方没有收到用于确认的PSNP,则它会对LSP 进行重传。另外,CSNP只在邻居关系建立完成后,双方进行一次交互,此后不会周期性地发送。IS-IS设备收到邻居发送的CSNP后,将其中包含的 DIS与伪节点 伪节点不是真实的物理设备,是DIS产生的一台虚拟设备 如果IS-IS没有引入伪节点概念,那么接入同一个LAN中的每台IS-IS设备都需要在其泛洪的LSP中描述在该LAN中与自己建立邻居关系的所有其他IS-IS设备,当这些设备的数量特别多时,每台设备所产生的LSP的体积势必较大。而引入了伪节点后,设备仅需在其泛洪的LSP中描述自己与伪节点的邻居关系即可,无需再描述自己与其他非伪节点的邻居关系。伪节点LSP用于描述伪节点与LAN中所有设备(包括 DIS)的邻居关系,从而区域内的其他IS-IS 设备能够根据伪节点LSP计算出该LAN 内的拓扑。DIS负责产生伪节点LSP 伪节点LSP的功能与OSPF 中的Type-2 LSA的功能非常相似。伪节点及伪节点LSP的引入减小了网络中所泛洪的LSP的体积,当拓扑发生变更时,网络中需要泛洪的LSP数量减少,对设备造成的负担也相应减小 为了确保LSDB的同步,DIS 会在LAN内周期性地泛洪 CSNP,LAN中的其他设备收到该CSNP后,会执行一致性检查,以确保本地LSDB与 DIS同步 缺省情况下,在 Broadcast网络中,DIS周期性发送CSNP的时间间隔为10秒,可以在DIS相应的接口上使用isis timer csnp命令修改 例如将接口的Level-1 CSNP的周期性发送间隔修改为15秒,则可使用isis timer csnp 15 leve-1命令。而如果该命令中并未指定level-1或 level-2关键字,则所配置的时间间隔将对当前级别的IS-IS进程生效 IS-IS使用如下顺序在一个LAN中选举DIS:
在华为路由器上运行IS-IS 时,Broadcast类型接口的缺省DIS优先级为64,可以在接口视图下执行isis dis-priority命令修改接口的DIS优先级,DIS优先级的取值范围是0-127,如需修改接口的Level-1 DIS 优先级,则需在该命令中增加level-1关键字 例如,在接口视图下执行isis dis-priority 100 level-1,则可将接口的Level-1 DIS优先级设置为100。如果isisdis-priority命令未指定level-1或level-2关键字, 则视为同时配置Level-1及Level-2 DIS优先级 即使设备的接口DIS优先级为0,该设备依然会参与DIS竞选
邻居关系建立过程 Broadcast 网络中的邻居关系建立过程
P2P网络中的邻居关系建立过程 如果采用两次握手方式建立IS-IS 邻居关系,那么邻居关系的建立过程是不存在确认机制的,只要设备在其接口上收到P2P IIH,并且对PDU中的内容检查通过后,便单方面将该邻居的状态视为Up,这显然是不可靠的,因为即使双方的互联链路存在单通故障,也依然会有一方认为邻居关系已经建立,此时网络就必然会出现问题. 三次握手 当设备的P2P接口启动三次握手机制,设备将在P2P IIH中增加一个特殊的TLV—P2P三向邻接
在华为路由器上,IS-IS在P2P类型的接口上缺省采用三次握手方式建立邻接关系,如需修改为两次握手方式,可在P2P接口上执行isis pppnegotiation 2-way命令(直连链路两端的接口上均需配置该命令). 邻居关系建立须知 Level-1路由器只能与相同区域的Level-1或者Level-1-2路由器建立 Level-1邻居关系 Level-2路由器可以与Level-2或Level-1-2路由器建立Level-2邻居关系;此时该Level-2路由器可以与邻居路由器处于相同的区域,也可以处于不同的区域 Level-1路由器不能与Level-2路由器建立邻居关系 在华为路由器上运行IS-IS 时,缺省时设备的全局Level为 Level-1-2,如需修改设备的全局 Level,可以在其IS-IS 配置视图下执行 is-level 命令:level-1、level-1-2及level-2 2.两台直连设备如需建立Level-1邻居关系,则两者的区域ID必须相同 一个Level-1区域是由一系列连续的Level-1或Level-1-2路由器构成的,两台直连的Level-1设备必须配置相同的区域ID,才能够正确地建立Level-1 邻居关系。例如,如果A设备的 NET为49.0019.1928.a042.0211,而其直连的B设备的 NET为49.0020.3308.0002.0aOa,那么两者是无法建立Level-1 邻居关系的,因为它们的区域ID并不相同。对于Level-1设备与Level-1-2 设备之间的邻居关系,或者两台Level-1-2设备之间的Level-1邻居关系,同样需满足上述要求 3.建立IS-IS邻居关系的两台IS-IS设备,直连接口需使用相同的网络类型 协议特性 网络中的设备已经运行了IS-IS,所有设备的接口的IS-IS Cost值都是相等的。R4及R7都连接着8.8.8.0/24网段,并且都将到达该网段的路由发布到了IS-IS中。缺省时,Level-1路由器R3是无法学习到8.8.8.0/24路由的, 完成IS-IS部署后,R1及R2能够学习到去往 Area 49.0045中的X业务网段的路由,然而它们并不会在自己向Area 49.0123下发的Level-1 LSP中描述关于这些网段的可达性信息。R3通过产生指向R1及R2的默认路由来到达这些网段 该网络要求实现这样的需求:R3转发到达10.1.1.0/24、10.1.2.0/24及 在Level-1-2路由器的IS-IS配置视图中,执行 import-route isis level2 into level-1命令,可以将Level-2区域中的路由信息渗透到本地Level1区域中。在该命令中可以增加filter-policy关键字,从而对渗透的路由进行筛选或过滤,也可以增加 tag关键字,从而对渗透的路由进行标记 Level-1-2路由器缺省时将自己从 Level-1区域中学习到的路由信息全部通告到Level-2区域,在这个过程中,部署路由渗透,使得Level-1-2路由器只将特定的Level-1区域路由通告到Level-2区域。在IS-IS配置视图中使用 import-route isis level-1 into level-2命令,可部署Level-1区域到 Level-2区域的路由渗透 路由汇总 在R1的IS-IS配置视图下使用summary 192.168.0.0 255.255.252.0 level-1 在Level-1-2路由器上部署路由汇总 此时可以在R2上部署路由汇总,将其通告给R3的Level-2路由 在Level-2路由器上部署路由汇总 在R1的IS-IS配置视图下使用summary 192.168.0.0 255.255.252.0 level2,完成上述配置后,R1产生的Level-2 LSP不再描述这三条路由明细,而是描述汇总路由,因此R2及R3能够根据该LSP计算出汇总路由 Slient-Interface 当一台设备的接口激活IS-IS后,该接口将会周期性地发送IIH PDU,在某些场景下,可能只是希望将该接口的网段发布到IS-IS,而无需在这个接口上建立IS-IS邻居关系,那么就可以使用Silent-Interface特性,来优化IS-IS 配置 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/29 10:40:42- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |