基本概念
起源和发展
中间系统到中间系统IS-IS,Intermediate System to Intermediate System
是国际标准组织ISO为它的无连接网络协议CLNP设计的一种动态路由协议,属于内部网关协议
后来随着TCP/IP协议的流行,为了提供对IP路由的支持,IETF对ISIS进行了扩充和修改,使它能够同时应用在TCP/IP和OSI环境中,被称为集成ISIS
协议原理
OSI地址
使用OSI地址格式原因
- IS-IS是ISO定义的路由协议,工作在OSI网络中
作用
- 标识支持OSI协议的网络设备
NSAP格式
- 是OSI协议栈中用于定位资源的地址,主要用于提供网络层和上层应用之间的接口
- 组成
• IDP+DSP
• IDP相当于IP地址中的主网络号,由ISO规定
• IDP
• AFI
• AFI表示地址分配机构和地址格式
• IDI
• IDI用来标识域
• DSP由High Order DSP,System ID和SEL三部分组成,相当于IP地址中的子网号和主机地址
• High Order DSP用来分割区域
• 默认49为私网
• System ID用来唯一的标识区域内某台主机或者路由器,类似于OSPF中的Router ID
• 长度固定为6字节,区域内唯一存在
• SEL用来指明服务类型(网络类型)
• 00标识工作为IP网络,长度固定为1字节
NET格式
- Network Entity Title,网络实体名称
- 组成
• Area ID
• Area ID由IDP和DSP中的High Order DSP组成,既能够标识路由域,也能够标识路由域中的区域。因此,它们一起被称为区域地址,相当于OSPF中的区域编号
• System ID
• 用来唯一的标识区域内某台主机或者路由器,类似于OSPF中的Router ID
• SEL
- 是一种特殊的NSAP,SEl的值为00
注意
- 同一区域中IS的区域地址需要一致,System ID必须唯一,不同区域的路由器区域地址不一致
- IS-IS可能存在区域合并和区域迁移的情况。实验中不同区域的System ID建议尽量不相同,避免冲突
ISIS网络类型
广播网络(broadcast)
P2P网络
默认情况下,物理介质是以太网链路,则对应的ISIS网络类型为广播网络;如果是串行链路(如PPP,HDLC),则对应的ISIS网络类型为P2P网络
ISIS在这两种网络下的工作机制不一样
- 广播网络中需要选举DIS,而P2P不需要
- 两种网络的链路状态数据库的同步过程也有些区别
- 在NBMA网络中,需要配置子接口,并且是点对点的子接口才能支持ISIS协议,ISIS协议不支持点到多点子接口
[AR1-GigabitEthernet0/0/0]isis circuit-type p2p
ISIS开销值
OSPF的开销与带宽有关,cost=100M/带宽,100M网络开销是1,最小值为1,当有小数时,直接舍弃
IS-IS的开销与设备的接口有关,但缺省情况下与带宽无关,无论带宽多大,缺省情况下开销默认是10
- 环回口没有带宽,所以没有开销
IS-IS开销设置(优先级从高到低)
- 1.接口开销
• [AR5-GigabitEthernet0/0/0]isis cost 3
• 为单个接口设置开销
- 2.全局开销
• [AR5-isis-1]circuit-cost 3
• 为某个路由器所有接口设置开销
- 3.根据接口带宽自动计算开销
• [AR5-isis-1]auto-cost enable
• 若改为此种方法,整个IS网络中所有路由器都需要更改
IS-IS报文格式
报文头IS-IS Header
- 通用头部PDU Common Header,前8Byte
• 域内路由协议标识符
• ISIS的网络层标识,值为0x83,固定
• 头长度
• 数据包报头的字节数,包括通用头部和专用头部
• 版本或协议号扩展名
• 当前设置为1,固定
• System ID长度
• 标识源路由器的System ID长度
• 值为0表示长度为6Byte,值为255表示长度为0Byte。
• 长度范围为1-8Byte
• 华为的VRP系统使用6Byte
• PDU Type
• PDU类型,表示ISIS报文类型
• ISIS有3种数据包:Hello,LSP(链路状态数据包)、SNP(序列号报文),其中,SNP包括PSNP(部分序列号报文)和CSNP(完全序列号报文)
• 版本
• 当前值为1,固定
• 预留位
• 没有使用的比特位,值为0,固定
• 最多区域地址数
• 支持的最多区域地址数量
• 设置为1~254的整数,表示该IS-IS进程实际所允许的最大区域地址数;设置为0,表示该IS-IS进程最大只支持3个区域地址数。
- 专用头部PDU Specific Header,根据报文的不同而不同
• Attachment
• 区域关联位,用于表明源路由器是否与多个区域相连,L1/2路由器连接了多个区域,所以会在它的L1 LSP中设置该位为1。L1路由器利用该位来判断本区域的L1/2路由器
• 用来指明始发路由器是否与其它区域相连
变长字段部分Variable Length Fields(TLV),每种报文所支持的TLV不同
总
IS-IS协议报文类型
IIH
- IS-IS Hello报文
• 广播网络
• Level -1 LAN IIH
• 用于广播网络Level-1邻接
• Level -2 LAN IIH
• 用于广播网络Level-2邻接
• 点到点网络
• P2P IIH
• 用于点到点
• LAN Hello和P2P Hello携带的信息及TLV略有不同
• LAN Hello
•
• 划分Hello Header部分和TLV部分(TLV为从Area Address往后部分)
• Circuit Type
• 接口类型,标识发送端接口的层次
• System ID
• 系统ID,标识发送端路由器的系统ID
• Holding Timer
• 保持计时器,表示发送端路由器宣告邻接关系失败的超时时间,默认是发送Hello间隔时间的3倍
• PDU Length
• 报文长度,表示整个ISIS报文的长度
• Priotity
• 优先级,表示发送端接口的优先级,用来在LAN中选举DIS,默认值为64
• System ID{DIS}
• 标识了发送端接口对应的链路上的DIS的系统ID
• Area Address
• 区域地址,标识了发送端路由器的区域,使用类型1的TLV
• IS Neighbor
• 邻居列表,标识 了发送端路由器的邻居,使用类型6的TLV
• IP Interface Address(es)
• 接口IP地址,标识了发送端路由器所有已经启动了ISIS进程的接口IP地址,使用类型为132的TLV
• Protocols Supported
• 支持的协议,表示发送端路由器所支持的网络层协议,使用类型为129的TLV
• Restart Signaling
• 重启信令,表示发送端路由器是否支持GR
• Multi Topology
• 多拓扑,表示发送端路由器是否支持多拓扑
• Padding
• 填充,填充字段,用于将Hello包填充至MTU大小,使用类型8的TLV
• P2P Hello
• P2P Hello报头中没有Priority和System ID{DIS}字段
• 因为P2P网络中不需要DIS
• P2P Hello报头中新增Local Circuit ID(本地电路ID)字段
• 标识发送端接口
• TLV字段中,新增Point toPoint Adjacency State(点对点邻接状态)
• 该字段携带了发送端路由器所有邻居System ID及其邻接状态,用来保证建立邻接关系的可靠性,使用类型240的TLV来承载信息
• 在LAN Hello报头中,等价的字段是IS Neighbor字段,这个字段只表明了发送端路由器的所有邻居的MAC地址
• 默认发送Hello的时间间隔为10S,邻接关系的超时时间为Hello间隔的3倍,但在广播链路上,DIS发送Hello的频率是普通路由器的1/3倍(每3.3333秒发送一次Hello)。接口下可以修改Hello间隔时间及超时时间
- 发现邻居并建立和维持邻接关系
- 除了包含发送路由器的System ID之外,还包含了发送端全局和接口的一系列参数,这些参数如果被邻居路由器接收了,就形成邻接关系,否则不建立邻接关系
LSP
- Link State PDU
• Level -1 LSP
• Level -2 LSP
- 链路状态报文
- 描述路由器的接口及所连网络的信息,包括接口所连网络的子网、类型、开销等信息
- 传播交换链路状态信息
SNP
- CSNP
• Complete Sequence Numbers PDU
• 全序列号报文
• 携带当前路由器的链路状态数据库(LSDB)中所有的LSP摘要信息,类似于DD报文
• Level -1 CSNP
• Level -2 CSNP
- PSNP
• Partial Sequence Numbers PDU
• 部分序列号报文
• 请求和确认链路状态信息,类似于LSU报文和LSAck报文(携带数据库中部分的摘要信息)
• 在广播网络和点对点网络中请求缺失或最新的LSP
• 在点对点网络中确认收到的LSP
• Level -1 PSNP
• Level -2 PSNP
- SNP是用来跟踪和维护链路状态数据库的同步的报文