HCNP Routing&Switching之IS-IS报文结构和类型
前文我们了解了IS-IS动态路由协议基础相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15249328.html;今天我们来聊一聊IS-IS动态路由协议的报文结构和类型相关话题;
IS-IS报文结构

提示:IS-IS动态路由协议是封装在数据链路层之上,主要由IS-IS头部和IS-IS可变长字段CLVs组成;其中IS-IS头部里面又分为通用头部和专用头部;
实验:如下拓扑,配置IS-IS

R1的配置

sys
sys R1
int g0/0/0
ip add 172.16.10.1 24 isis 1
net 10.0000.0000.0001.00
is-le level-1
int g0/0/0
isis en 1

提示:在R1上g0/0/0接口上启用isis以后,对应isis进程就正常运行了;
在R1上抓包,看看ISIS数据包结构

提示:可以看到在R1上能够正常抓到ISIS L1类型的hello包,其中hello包里有通用头部和专用头部,对应专用头部里又有可变长字段;
R2的配置

sys
sys R2
int g0/0/0
ip add 172.16.10.2 24
int g0/0/1
ip add 192.168.11.2 24 isis 1
net 10.0000.0000.0002.00
is-le level-1-2
int g0/0/0
isis en 1
int g0/0/1
isis en 1

验证:在R1或R2上查看ISIS邻居信息

R3的配置

sys
sys R3
int g0/0/0
ip add 192.168.11.3 24 isis 1
net 11.0000.0000.0003.00
is-le level-2
int g0/0/0
isis en 1

在R2上抓包看看对应报文结构

提示:可以看到在R2的g0/0/0口可以抓到L1的hello包和L2的hello包,他们的专用hello包里都是leve1 and 2;
专用包头字段解释

提示:通用头部里每个字段都是1字节;Intra Domain Routing Protocol Discriminator字段用于描述动态路由协议的描述0x83表示ISIS协议,该字段的值固定不变;PDU Header Length字段用于描述PDU包头的长度(包含通用头部和专用头部),单位是字节;version/protocol id extension字段用于描述对应isis的版本或协议标识扩展,设置为1(0x01),一般这个字段都是1,固定不变;ID Length用于描述NSAP地址或NET地址中的system ID长度,值为0表示system ID的长度为6字节,值为255时,表示system ID为空(长度为0);R(Reserved)是保留字段,设置为0;PDU type 用于描述对应专用包头的类型;ISIS PDU共有9种类型;version 用于描述isis版本,设置为1,固定不变;Maximun area address字段用于描述支持的最大区域个数;设置为1-254的证书,表示该IS-IS进程实际所允许的最大区域地址数,设置为0,表示该IS-IS进程最大只支持3个区域地址数;
更改R1的g0/0/0接口网络类型为P2P,再次抓包看看对应数据包结构

提示:可以看到更改R1的g0/0/0接口网络类型为p2p以后,对应isis邻居就被情况了;其原因是R1和R2的所发送的hello包类型不同;
在R1上抓包,看看对应hello包类型是否和R2一样?

提示:现在R1的g0/0/0接口上抓包,可以看到对应R1发送的hello包类型为p2phello ;
广播网络hello包和p2p网络hello包对比

提示:通用包头基本没有变化,变化的是在专用包头里;对于广播网络中的hello包,里面主要比p2p网络中的hello包多了priority 字段和DIS ID两个字段;其主要原因是广播网络中,对应会选举DIS,所以会有优先级和dis id的信息;而p2p网络中不需要选举DIS,所以priority字段和dis id字段没有;其他字段两者几乎都有,没有太大的区别;
专有包头字段解释
Reserved/circuit:该字段占用1字节,其中高位的6比特保留,其值为0;低位的2比特用来表示路由器的类型;01表示L1,10表示L2,11表示L1/2;
Source ID:用于描述发出该hello报文的路由器system ID;
Holding Time:用于描述hello包的保持时间;在此时间内如果没有收到邻居发来的Hello报文,则终止已建立的邻居关系;
PDU Length:用于描述PDU的总长度,单位是字节;PDU是ISO网络模型里对应数据包的称呼,我们可以理解为TCP/IP里的包,段,帧,比特等术语;
Priority:用于描述选举DIS的优先级,取值范围为0-127;数值越大,优先级越高;
LAN ID:用于描述包含DIS的system ID 和1字节的伪节点ID;
Local Circuit ID:用于描述本地链路ID;
IS-IS报文类型总结

提示:ISIS报文总共就只有上述三种类型;其中IIH表示ISIS的hello PDU,主要作用是建立和维护邻居关系;LSP主要用来传输链路状态信息,类似OSPF里的LSU(LSA)包的作用;SNP主要用来描述数据库中的LSP,类似ospf中的DD包;
hello报文类型

提示:isis里hello报文类型有三种;L1 LAN IIH、L2 LAN IIH和p2p IIH这三种;其中p2p里部分L1和L2,它只有一种;L1主要是广播网络中的L1路由器发送;L2主要是广播网络中的L2路由器发送;
SNP报文类型

提示:SNP报文中分CSNP(完全SNP)和PSNP(部分SNP),完全SNP包主要作用是通告LSDB中所有摘要信息,类似OSPF里的DD包;部分SNP主要作用是请求和确认链路状态信息;类似ospf里的LSR和LSACK的作用;
IS-IS报文中的可变长字段

提示:IS-IS报文中的变长字段部分是多个TLV(Type-Length-Value)三元组;TLV也称为CLV(Code-Length-Value);以上只是部分CLV代码和对应字段、PDU类型;可变长字段的存在主要是对IS-IS的扩展,比如我们要让IS-IS支持IPV6,我们只需要在TLV/CLV里加上对ipv6的相应字段即可,不需要像ospf专门开发一个版本支持ipv6;这也是IS-IS扩展性强的原因;
PDU类型对照表

提示:对于不同PDU类型,其类型值各有不同;比如类型代码为15则表示是L1 hello包;类型代码为17则表示对应PDU类型为P2P网络的hello 包;
HCNP Routing&Switching之IS-IS报文结构和类型的更多相关文章
- HCNP Routing&Switching之BGP报文结构、类型和状态
前文我们了解了BGP的邻居建立条件.优化以及BGP认证相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15395723.html:今天我们来聊一聊BGP ...
- HCNP Routing&Switching之IS-IS邻居建立、LSDB同步、拓扑计算和路由形成
前文我们了解了IS-IS的报文结构和类型相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15260670.html:今天我们来聊一聊IS-IS建立邻居. ...
- HCNP Routing&Switching之BGP路由宣告
前文我们了解了BGP报文结构.类型以及邻居状态相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15422924.html:今天我们来聊一聊BGP路由宣告 ...
- HCNP Routing&Switching之动态路由协议IS-IS基础
前文我们了解了OSPF的特殊区域相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15236330.html:今天我们来聊一聊另一动态路由协议IS-IS相 ...
- HCNP Routing&Switching之组播技术-组播协议IGMP
前文我们了解了组播地址相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15616740.html:今天我们来聊一聊组播协议中IGMP协议相关话题: 组播 ...
- HCNP Routing&Switching之OSPF LSA更新规则和路由汇总
前文我们了解了OSPF外部路由类型以及forwarding address字段的作用,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15225673.html: ...
- HCNP Routing&Switching之IS-IS路由聚合和认证
前文我们了解了IS-IS路由渗透和开销相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15302382.html:今天我们来聊一聊IS-IS路由聚合和认 ...
- HCNP Routing&Switching之路由控制、路由策略和IP-Prefix List
前文我们了解了IS-IS路由聚合和认证相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15306645.html:今天我们来聊一聊路由控制技术中的路由策 ...
- HCNP Routing&Switching之路由控制-策略路由
前文我们了解了路由策略工具Route-Policy相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15322135.html:今天我们来聊一聊策略路由相 ...
随机推荐
- Ghost ,博客系统代名词
Ghost 博客系统是前 WordPress 的一些优秀员工的创业项目.项目仍然采用 100% 开源,加上官方的收费托管的商业模式,目前已经发展成为一个非常的博客系统. 为了更好的方便读者理解 Gho ...
- Mybatis学习笔记-配置解析
核心配置文件 mybatis-config.xml properties(属性) settings(设置) typeAliases(类型别名) typeHandlers(类型处理器) objectFa ...
- Vue2中父子组件通信的几种常用方法
源码地址 点击查看演示源码 Vue2父子传参:props 首先在父组件中引入子组件,然后以属性的方式将数据传递给子组件 父组件: <template> <div class=&quo ...
- Quartz部署Linux的一个坑
前言 最近做了一个项目,使用Quartz做定时任务,然后部署到了Linux服务器上,但是竟然很惊奇的跑不起来,已经在阿里云上的Linux上验证无数次了,后来经过不懈努力,终于发现了问题,我自己的Lin ...
- 神奇的 SQL 之别样的写法 → 行行比较
开心一刻 昨晚我和我爸聊天 我:"爸,你怎么把烟戒了,也不出去喝酒了,是因为我妈不让,还是自己醒悟,开始爱惜自己啦?" 爸:"儿子啊,你说的都不对,是彩礼又涨价了.&qu ...
- 通信协议,TCP/UDP对比:
通信协议 协议:约定,比如在中国约定说普通话 网络通信协议:速率,传输码率,代码结构,传输控制... 问题:非常复杂 大事化小:分层 TCP/IP协议簇:实际上是一组协议 重要: TCP:用户传输协议 ...
- Shell-02-数据类型
shell数据类型 shell常用的数据类型有 字符串.整数型.数组 字符串 字符串是shell编程中最常用最有用的数据类型,字符串可以用单引号,也可以用双引号,也可以不用引号 建议使用双引号,因为双 ...
- 【监控】Zabbix安装
目录 一.监控目的 二.监控方式 三.主流监控系统 四.Zabbix介绍 五.Zabbix服务端安装 5.1 环境介绍 5.2 准备系统环境 5.3 安装Nginx(源码编译安装) 5.3.1 配置N ...
- 保护亿万数据安全,Spring有“声明式事务”绝招
摘要:点外卖时,你只需考虑如何拼单:选择出行时,你只用想好目的地:手机支付时,你只需要保证余额充足.但你不知道这些智能的背后,是数以亿计的强大数据的支持,这就是数据库的力量.那么庞大数据的背后一定会牵 ...
- innodb是如何存数据的?yyds
前言 如果你使用过mysql数据库,对它的存储引擎:innodb,一定不会感到陌生. 众所周知,在mysql8以前,默认的存储引擎是:myslam.但mysql8之后,默认的存储引擎已经变成了:inn ...