ISIS报文细节,ISIS报文分为三个部分:
1、通用报文头
Intradomain Routeing Pro Dis:ISIS:域内路由协议鉴别符:0x83代表ISIS协议
Length Indicator:27 头部长度(包含了通用头部和专用头部)
Version: 协议版本,目前ISIS只有版本1
ID length:6 systeom-id报文长度
reserved: 保留字段
PDU type: 描述专用报文类型
version: 版本信息
reserved: 保留字段
Maximum Area Address:3 可以配置的区域ID最大数量
2、专用报文头:
Circuit type: 描述链路级别,用于描述这个路由器发出的报文能够建立的邻居级别。
System-ID: 系统ID,类比OSPF的router-id
Holding timer: 30 邻居保持时间(死亡时间)
PDU length: 报文长度
PRI:64 发出该hello报文接口的DIS优先级(默认缺省为64,取值范围为0~127,越大越优)
systemid{DIS}: 用来描述广播链路中DIS信息
3、变长字段
ISIS路由协议的变长字段基于TLV编码来携带各项属性。T代表type,L代表长度,V代表属性值
3.1 使用TLV来作为编码的路由协议,发送报文时只需要携带需要的属性即可,不需要的属性可以不携带。
3.2 OSPFv2不是TLV编码,所有的字段全部为固定字段,所以拓展性比较差。
3.3 基于TLV编码的路由协议还包括 BGP,LDP,EIGRP
在报文结尾的位置会存在很多padding字段,用来作为填充字段,保证MTU值为1500。
MTU隐式确认:在邻居建立之初,会用填充字段来填充报文,填充到接口默认MTU值(1500),来实现隐式确认。
1、在广播链路上,建立完邻居以后,hello报文会继续填充。
2、在P2P链路上,建立完邻居以后,hello报文将不在填充。
OSPF的hello报文中hello时间和dead时间:
10S:本接口每10秒钟发送一次hello报文。
40S:本接口在40秒钟没有收到对端发来的hello报文将判断邻居中断。
ISIS的hello报文中只有一个holding timer,没有hello时间
holding timer的意义:默认为30秒,是因为本接口的hello时间默认为10秒,hold时间为hello时间的3倍。
意义在于,告知对方路由器,在该时间内如果没有收到我给你发送的hello报文,就可以将我这个邻居老化掉。
OSPF的hello报文中40s的意义:告知对方,我给对方设置的老化时间为40秒。
ISIS的hello报文中40s的意义:告知对方,让对方给我的老化时间设置为30秒。
由于以上特点:OSPF在建立邻居时,要求双方hello时间必须一致,否则无法建立邻居。
ISIS在建立邻居时,就不要求双方hello时间必须一致。
链路状态信息的交互
P2P网络CSNP报文只发送一次,邻居建立后立即发送;MA网络CSNP报文只由DIS组播发送,时间默认为10秒。
ISIS的伪节点只能表示树干信息,不能表示叶子信息(对比OSPF的不同点)
查看ISIS协议计算出的最优路由形成的路由表——[AR4]display isis route
查看指定system-id的ISIS数据库LSDB的详细信息:[AR4]display isis lsdb 0000.0000.0004.00-00 verbose
=================
每台ISIS路由器根据路由器级别不同,会维护不同级别的LSDB:
L1级别的路由器只维护L1的LSDB
L2级别的路由器只维护L2的LSDB
L1/2级别的路由器既维护L1的LSDB又维护L2的LSDB
================
一、LSP:link state PDU,链路状态协议数据单元
1、从报文的角度来看,LSP可以分为L1级别的LSP和L2级别的LSP。
2、从用途划分
2.1 实节点LSP:用来描述路由器自身的链路状态(类比OSPF的1类LSA)
2.2 伪节点LSP:用来描述广播网络上的链路信息(类比OSPF的2类LSA)
二、LSDB
路由器在运行了OSPF时,如果没有宣告任何接口,则LSDB为空,只有宣告了接口才会出现LSA。
路由器在运行了ISIS时,只要配置了NET地址,即使没有宣告任何接口,数据库也不会为空。
三、
在OSPF中如何识别唯一的一条LSA:通过LSA的三要素(link-type ls-id adv-rtr)
在ISIS中如何识别唯一的一条LSP:通过LSP-ID来识别。
0000.0000.0004.00-00
一条LSP-ID分为三部分:区分LSP
1、system-id:用产生这条LSP的路由器的system-id来填充
2、伪节点标识符:如果取值为00则代表这是一条实节点LSP,如果取值为非00则代表这是一条伪节点LSP。
3、分片标识符:代表该LSP是否被分片。
解释:如果想查看一台路由器都直连了哪些路由和邻居,就需要查看该路由器的实节点LSP。
四、如何判断一条LSP的新旧
1、序列号seq:越大越新,16进制
2、剩余寿命:holdtime,一条LSP出生时1200秒,每隔一秒剩余寿命减1,知道减为0,该LSP老化。
如果一台路由器收到一条LSP中holdtime=0,则代表删除这条LSP。
3、校验和:越大越优,16进制。
五、ISIS的更新机制
1、触发更新:当链路发生变化时,将会触发更新自己产生的LSP。
2、周期更新:ISIS路由器会每隔900秒,周期向邻居更新自己产生的LSP。
================
-------------------------------------------------
查看指定system-id的路由器的L1级别的路由器信息——[AR1]display isis lsdb level-1 0000.0000.0001.00-00 verbose