前文我们了解了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报文结构和类型的更多相关文章

  1. HCNP Routing&Switching之BGP报文结构、类型和状态

    前文我们了解了BGP的邻居建立条件.优化以及BGP认证相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15395723.html:今天我们来聊一聊BGP ...

  2. HCNP Routing&Switching之IS-IS邻居建立、LSDB同步、拓扑计算和路由形成

    前文我们了解了IS-IS的报文结构和类型相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15260670.html:今天我们来聊一聊IS-IS建立邻居. ...

  3. HCNP Routing&Switching之BGP路由宣告

    前文我们了解了BGP报文结构.类型以及邻居状态相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15422924.html:今天我们来聊一聊BGP路由宣告 ...

  4. HCNP Routing&Switching之动态路由协议IS-IS基础

    前文我们了解了OSPF的特殊区域相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15236330.html:今天我们来聊一聊另一动态路由协议IS-IS相 ...

  5. HCNP Routing&Switching之组播技术-组播协议IGMP

    前文我们了解了组播地址相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15616740.html:今天我们来聊一聊组播协议中IGMP协议相关话题: 组播 ...

  6. HCNP Routing&Switching之OSPF LSA更新规则和路由汇总

    前文我们了解了OSPF外部路由类型以及forwarding address字段的作用,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15225673.html: ...

  7. HCNP Routing&Switching之IS-IS路由聚合和认证

    前文我们了解了IS-IS路由渗透和开销相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15302382.html:今天我们来聊一聊IS-IS路由聚合和认 ...

  8. HCNP Routing&Switching之路由控制、路由策略和IP-Prefix List

    前文我们了解了IS-IS路由聚合和认证相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15306645.html:今天我们来聊一聊路由控制技术中的路由策 ...

  9. HCNP Routing&Switching之路由控制-策略路由

    前文我们了解了路由策略工具Route-Policy相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15322135.html:今天我们来聊一聊策略路由相 ...

随机推荐

  1. Ghost ,博客系统代名词

    Ghost 博客系统是前 WordPress 的一些优秀员工的创业项目.项目仍然采用 100% 开源,加上官方的收费托管的商业模式,目前已经发展成为一个非常的博客系统. 为了更好的方便读者理解 Gho ...

  2. Mybatis学习笔记-配置解析

    核心配置文件 mybatis-config.xml properties(属性) settings(设置) typeAliases(类型别名) typeHandlers(类型处理器) objectFa ...

  3. Vue2中父子组件通信的几种常用方法

    源码地址 点击查看演示源码 Vue2父子传参:props 首先在父组件中引入子组件,然后以属性的方式将数据传递给子组件 父组件: <template> <div class=&quo ...

  4. Quartz部署Linux的一个坑

    前言 最近做了一个项目,使用Quartz做定时任务,然后部署到了Linux服务器上,但是竟然很惊奇的跑不起来,已经在阿里云上的Linux上验证无数次了,后来经过不懈努力,终于发现了问题,我自己的Lin ...

  5. 神奇的 SQL 之别样的写法 → 行行比较

    开心一刻 昨晚我和我爸聊天 我:"爸,你怎么把烟戒了,也不出去喝酒了,是因为我妈不让,还是自己醒悟,开始爱惜自己啦?" 爸:"儿子啊,你说的都不对,是彩礼又涨价了.&qu ...

  6. 通信协议,TCP/UDP对比:

    通信协议 协议:约定,比如在中国约定说普通话 网络通信协议:速率,传输码率,代码结构,传输控制... 问题:非常复杂 大事化小:分层 TCP/IP协议簇:实际上是一组协议 重要: TCP:用户传输协议 ...

  7. Shell-02-数据类型

    shell数据类型 shell常用的数据类型有 字符串.整数型.数组 字符串 字符串是shell编程中最常用最有用的数据类型,字符串可以用单引号,也可以用双引号,也可以不用引号 建议使用双引号,因为双 ...

  8. 【监控】Zabbix安装

    目录 一.监控目的 二.监控方式 三.主流监控系统 四.Zabbix介绍 五.Zabbix服务端安装 5.1 环境介绍 5.2 准备系统环境 5.3 安装Nginx(源码编译安装) 5.3.1 配置N ...

  9. 保护亿万数据安全,Spring有“声明式事务”绝招

    摘要:点外卖时,你只需考虑如何拼单:选择出行时,你只用想好目的地:手机支付时,你只需要保证余额充足.但你不知道这些智能的背后,是数以亿计的强大数据的支持,这就是数据库的力量.那么庞大数据的背后一定会牵 ...

  10. innodb是如何存数据的?yyds

    前言 如果你使用过mysql数据库,对它的存储引擎:innodb,一定不会感到陌生. 众所周知,在mysql8以前,默认的存储引擎是:myslam.但mysql8之后,默认的存储引擎已经变成了:inn ...