哈喽,大家好!我是艺博东 ,是一个思科出身、专注于华为的网工;好了,话不多说,我们直接进入正题。
一、拓扑
二、配置与分析
2.1 握手机制
广播型链路通过IS NEI TLV实现3次握手建立邻居。 P2P的链路通过P2P ADJ Stata TLV实现3次握手建立邻居。 P2P的链路上可以通过2次握手建立邻居关系。
isis ppp-negotiation 3-way P2P链路上启用3次握手机制,但不要求接收的hello包携带p2p adj state tlv。 isis ppp-negotiation 3-way only P2P链路上只采用3次握手建立邻居,不兼容2次握手。 isis ppp-negotiation 2-way P2P链路上只采用2次握手建立邻居,忽略不处理p2p adj state tlv。
AR1
[Huawei]sysname AR1 [AR1]int g0/0/0 [AR1-GigabitEthernet0/0/0]ip address 10.1.12.1 24 [AR1-GigabitEthernet0/0/0]q [AR1]isis [AR1-isis-1]network-entity 49.0001.0000.0000.0001.00 [AR1-isis-1]is-level level-2 [AR1-isis-1]int g0/0/0 [AR1-GigabitEthernet0/0/0]isis enable [AR1-GigabitEthernet0/0/0]isis circuit-type p2pAR2
[Huawei]sysname AR2 [AR2]int g0/0/0 [AR2-GigabitEthernet0/0/0]ip address 10.1.12.2 24 [AR2-GigabitEthernet0/0/0]q [AR2]isis [AR2-isis-1]network-entity 49.0001.0000.0000.0002.00 [AR2-isis-1]is-level level-2 [AR2-isis-1]int g0/0/0 [AR2-GigabitEthernet0/0/0]isis enable [AR2-GigabitEthernet0/0/0]isis circuit-type p2p2.2 P2P
2.2.1 P2P 3-way(默认)邻居建立过程
P2P的链路通过邻接状态 Point-to-point Adjacency state来建立邻居。
在AR1的G0/0/0接口进行抓包
两端都会发DOWN状态的ISIS HELLO报文
P2P:R1发送ISIS HELLO报文(DOWN状态) 携带了自己的systemID:0000.0000.0001, TLV240、本地的链路ID。
P2P:R2发送ISIS HELLO报文(DOWN状态) 携带了自己的systemID:0000.0000.0002, TLV240、本地的链路ID。
R2收到第一份的ISIS HELLO报文,状态进入Initializing。
R1收到了R2的ISIS HELLO报文(systemID:0000.0000.0002),TLV240中邻居的包含了自己的systemID:0000.0000.0001、状态进入up。 R2收到了R1的ISIS HELLO报文(systemID:0000.0000.0001),TLV240中邻居的包含了自己的systemID:0000.0000.0002、状态进入up。
2.2.2 P2P 2-way 邻居建立过程
只要收到ISIS HELLO报文,就会单方向建立起邻居。
ISIS HELLO报文中不携带TLV的。
P2P 3-way可向下兼容2-way(可以建立起邻居)。
[AR1]dis isis peer
P2P 3-way only不兼容2-way,建立不起邻居。
AR1有邻居(单向邻居),AR2没有邻居。
2.3 MA
收到第一份ISIS HELLO报文,状态变为init;
如果收到了TLV6中包含了自己的MAC地址,则状态进入UP。
10.1.12.1 00e0-fc48-15a2 10.1.12.2 00e0-fc65-4e39
R1收到R2的ISIS HELLO报文,发现TLV6里包含了自己的MAC地址00e0-fc48-15a2,所以状态变为UP。
R2收到R1的ISIS HELLO报文,发现TLV6里包含了自己的MAC地址00e0-fc65-4e39,所以状态变为UP。
2.4 常见的TLV
TLV1:区域ID TLV132:接口IP地址 TLV129:协议支持,如果支持IPv6的话,NLPID的值等于142
TLV240:描述的是邻居状态 TLV229:多拓扑 TLV8:padding
TLV6:MA网络描述的是邻居的MAC地址
三、简单概述
3.1 IS-IS协议背景
ISIS——–OSI 7层模型——用于支持CLNP的网络环境—-中间系统—-终端(End System) OSPF——TCP/IP————-用于IP的网络环境—–路由器—————–终端
CLNP(无连的接网络层协议) 是OSI模型中的网络层协议,ISIS最初是为了支持CLNP而被开发。
由于 CLNP 没有被流行,所以ISIS在早期发展比较缓慢,比较沉寂。后来由于ISIS比较灵活,它自身一种工作上链路层之上的网络层协议,扩展性比较强。
ISIS工程小组后续对ISIS协议进行扩展,让它能支持IPv4,IPv6,CLNP所以现在ISIS协议被称为集成ISIS协议。由于扩展性强,收敛快,工作机制简单,被ISP大量的部署。
3.2 OSPF协议与IS-IS协议
OSPF协议默认情况下根据接口的链路层封装协议来确定网络类型。
ISIS类似,如果是以太网接口则默认认为是广播型,如果是PPP,HDLC则默认是P2P,不支持NBMA,P2NP网络类型。
DIS:指定中间系统
3.3 IP协议、CLNP协议
IP协议使用IP地址对接口进行编址。
CLNP协议使用NSAP(网络服务访问点)地址对设备进行编址。
3.4 NET地址
NET(网络实体标识)地址是一种特殊的NSAP地址,即SEL=0的NSAP地址,在ISIS协议由NET地址标识一台路由器。 SEL 网络服务鉴别器,1个字节长度,类似于IP报文中的协议号,用于区分上层协议类型。
由三部分组成:Area ID,System ID,SEL;
——-Area ID——–System ID——SEL
—–(1-13B)——-(6B)———-(1B)
所以最小是8B,最大是20B。
3.5 报文
HELLO的用途建立和维护邻居关系。
L1 Hello用于在广播型链路上建立L1的邻居; L2 Hello用于在广播型链路上建立L2的邻居; P2P hello用于在P2P链路上建立ISIS的邻居。
LSP用于描述携带LSA信息
L1 LSP描述非骨干区域的链路状态,对应于OSPF协议非骨干区域中的1类/2类LSA; L2 LSP 描述骨干区域的链路状态,对应于OSPF协议骨干区域中的1类/2类LSA。
SNP序列号PDU
CSNP完全序列号PDU,类似OSPF的DD报文,分为L1 CSNP,L2 CSNP; PSNP部分序列号PDU,类似OSPF的LSR/LSACK,分为L1 PSNP,L2 PSNP。
3.6 ISIS定义路由器级
ISIS协议的骨干区域和非骨干区域由路由器的邻居级别来确定。
ISIS定义路由器级别有3种 level-1 level-2 level-1-2 华为/思科路由器默认L1/2的路由器
3.7 ISIS邻居级别
ISIS邻居级别有2种 L1的邻居:要求区域号一致 L2的邻居:不要求区域号一致。
L1的路由器只能建立L1的邻居 L2的路由器只能建立L2的邻居
L1/2的路由器:和同区域的L1的路由器建立L1邻居, 和L2的路由器建立L2邻居 和L1/2的同区域路由器即建立L1的邻居,又建立L2的邻居。 和L1/2的不同区域的路由器只能建立L2的邻居。
3.8 骨干区域、非骨干区域
ISIS骨干区域就是由L2的邻居组成逻辑区域 ISIS非骨干区域就是由L1的邻居组成的逻辑区域
骨干和非骨干的边界在L1/2的路由器上。
四、小结
4.1 ISIS协议邻居的状态
(1)down没有收到邻居的hello (2)init收到邻居的hello包,但没发现自身的mac地址,也称为one-way (3)up收到邻居的hello包,并发现自己的接口的mac地址
4.2 DMAC地址
广播型链路上所有L1的ISIS报文使用的DMAC地址为:01:80:C2:00:00:14 广播型链路上所有L2的ISIS报文使用的DMAC地址为:01:80:C2:00:00:15
在以太网链路上如果链路类型被改为P2P的类型,则发送P2P的HELLO包,LSP,CSNP,PSNP均还是分L1/L2的,均使用DMAC地址为09:00:2b:00:00:05 .
4.3 广播型链路
默认情况下L1/2的路由器在广播型链路上即发L1的hello,也发L2的hello
L1/2的路由器在广播型链路上发送hello包的级别与接口的级别相关,和接口级别取交集。isis circuit-level设置链路的级别。
L1的路由器在广播型链路上只发L1的hello,跟链路级别无关。 L2的路由器在广播型链路上只发L2的hello,跟链路级别无关。
4.4 DIS
isis.hello.priority 用于DIS的选举,取值范围0-127,越大越优先,0也可以参与DIS的选举。如果优先级相同,则比较接口的MAC地址,越大越优先。
4.5 DIS选举
(1)接口优先级越大越优 (2)优先级相同,则比较mac地址,越大越优 (3)默认优先级64 (4)DIS具有抢夺性 (5)DIS分级别,L1的邻居选举L1_DIS,L2的邻居选举L2 DIS (6)DIS优先级等于e的路由器也可以进行DIS的选举 (7)没有备份DIS
OSPF的DR, BDR为什么不抢夺,主要原因是广播型链路的邻居状态不一致。如果DR能够抢夺,将导致邻居状态发生大面积变化,会影响很多设备。 ISIS抢夺,不会导致邻居状态发生变化,稳定性更高。但是伪结点LSP会发生变化,对SPF算法有一定的影响。稳定网络中可以忽略该问题。
4.6 TLV
ISIS协议是基于TLV机制来协议各项属性的。 T:属性类型 L:长度取值 V:取值
TLV机制运行路由协议只携带需要的属性,不需要属性可以不携带,扩展性强,如果协议需要支持新的特性,则只需要开发新TLV属性即可支持。
OSPFv2不是基于TLV机制路由协议,报文字段都是固定的,所以扩展性比较差。
4.7 LSP-ID
0000.0000.0004.00-00 LSP-ID 8个字节长度 由3个部分组成 LSP-ID =system id(6字节).伪结点标识符(1字节)–分片标识符(1字节)
system id标识产生该LSP的路由器的system id。
伪结点标识符取值0或者非0 如果等于0,则代表该LSP是实结点LSP 如果非0,则代表该LSP是伪结点LSP,此时system id为 DIS 的system id
分片标识符,用于描述同一台路由器产生的不同的LSP。
PSNP,CSNP携带的LSP的摘要信息,包括LSP ID , remaning lifetimer,seq,checksum。
PSNP包中携带的LSP ID的序列号非0,则PSNP是确认的功能 PSNP包中携带的LSP ID的序列号是0,则PSNP是请求的功能
L1的路由器只通过L1的LSP描述直连链路信息,跟链路级别无关。 L2的路由器只通过L2的LSP描述直连链路信息,跟链路级别无关。
L1/2的路由器通过L1的LSP也通过L2的LSP描述自身L1/2的直连链路; L1/2的路由器只通过L2的LSP描述自身L2的直连链路; L1/2的路由器通过L1的LSP和L2的LSP描述自身L1的直连链路。
骨干区域如何访问非骨干区域? L1/2的路由器将L1的路由作为自身直连的叶子进行描述,并通过L2的LSP携带再骨干。
OK 名言警句时刻: 不急于表现自己,也不急于纠正旁人,再听一听,再看一看,再琢>磨琢磨。
好了这期就到这里了,如果你喜欢这篇文章的话,请点赞评论分享收藏,如果你还能点击关注,那真的是对我最大的鼓励。谢谢大家,下期见!
免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:华为 IS-IS协议总结之笔记 https://www.yhzz.com.cn/a/13180.html