第一部分:ISIS路由协议基本名称概念介绍
IS:中间系统(intermediate system),类似于网络中的路由器
IS-IS:指运行在中间系统与中间系统之间的一种路由协议,通过协议生成的路由将中间系统连接起来并实现网络数据包可达。
PDU:包数据单元(packet data unit),类似于IP包,是IS-IS协议中数据交互的包
NSAP:网络服务接入点(network service access point),类似于网络设备中的IP地址
NET:网络实体(network entity title),一个特殊的网络服务接入点,这里可以理解成IS-IS协议中用于对路由器的标识作用。
LSP:链路状态协议数据单元(link state protocol data unit)
LSDB:LSP数据库(LSP database)
IIH:中间系统到中间系统的Hello报文(IS to IS hello PDU)
PSNP:部分系列号PDU(partial sequence number PDU)
CSNP:完全序列号PDU(complete sequence number PDU)
第二部分:IS-IS路由协议基本原理介绍
IS-IS路由协议来源于OSI体系架构,在OSI体系结构中,使用OSI地址表示网络设备,OSI地址采用NSAP(network service access point 网络服务接入点)地址格式。NSAP的主要作用是提供网络层和上层应用之间的接口,相当于IP网络中的IP地址和协议号。
(1)IS-IS路由协议介绍-NSAP
NSAP由IDP(initial Domain Part)和DSP(Domain Special Part)组成。IDP相当于IP地址中的主网络号,DSP相当于IP地址中的子网号和主机地址。
IS-IS中的NASP地址由下列三部分组成:
1、 区域地址:长度可变,为1~13个字节
2、 System ID:系统ID,用来唯一标识区域内的IS,长度固定为6个字节。
3、 NSEL:服务类型选择符,长度为1个字节
当NSEL取值为00时表示IP网络,NSAP地址也可以表示为NET(Network Entity Title,网络实体名称)
(2)IS-IS路由协议介绍-NET
NET(Network Entity Title,网络实体名称)是一类特殊的NSAP,即SEL为00的NSAP地址,可以简单理解为工作在TCP/IP网络中ISIS协议的NSAP地址(标识一台网络设备地址)。NET的长度于NSAP的相同,为8~20个字节。在运行ISIS协议之前需要提前规划号NET,ISIS才能正常工作。
Area ID:如49.0001
System ID:在IP网络中为了便于管理,使用loopback地址生成对应的System ID。(IP地址只有32bit,system id有48bit,需要进行一次转换工作)
NSEL:00
(3)IS-IS路由协议介绍-报文类型
IS-IS协议共有3类专用报头(3种类型的报文实现协议不同功能),9种不同的PUD类型
(4)IS-IS路由协议介绍-分层
在IS-IS协议中,为了支持大规模的路由网络,IS-IS在路由域内采用两级的分层结构,在IS-IS路由协议里定义了3种路由器类型Level-1、Level-2、Level-1-2。
通常我们将Level-1路由器部署在区域内,Level-2路由器部署在区域间,而Level-1-2路由器部署在level-1路由器和level-2路由器的中间,Level-2与Level-1-2路由器组成骨干区域学习全网路由,Level-1路由器为普通区域,学习区域内部路由。
IS-IS采用两层的分层结构,有效管理网络路由
Level-1路由器只能和Level-1或Level-1-2路由器交换路由信息
Level-2路由器只能和Level-2或Level-1-2路由器交换路由信息
所有Level-2(包括 Level-1-2)路由器必须连续而形成骨干区域
(5)IS-IS路由协议介绍-链路类型
IS-IS协议只应用在点对点(P2P)、广播(Broadcast network)两种类型的网络中。
(6)IS-IS路由协议介绍-交互过程
动态路由协议交互一般有四个工作流程,不同流程都有不同的状态,在对路由协议问题进行排查时也可以参考这四个 步骤逐步排查。
第一步:邻居发现,Hello报文交互过程(如下图所示)
- RTA广播发送Level-2 LAN IIH,此报文中无邻居标识。
- RTB收到此报文后,将自己和RTA的邻居状态标识为Initial。然后,RTB再向RTA回复Level-2 LAN IIH,此报文中标识RTA为RTB的邻居。
- 3.RTA收到此报文后,将自己与RTB的邻居状态标 识为Up。然后RTA再向RTB发送一个标识RTB为 RTA邻居的Level-2 LAN IIH。
- RTB收到此报文后,将自己与RTA的邻居状态标 识为Up。这样,两个路由器成功建立了邻居关系
邻居发现,Hello报文参数协商,邻居建立需满足入下要求:
1、链路两端的类型必须一致;IS-IS目前只支持P2P和Broadcast 。P2P:PPP、HDLC。 Broadcast:以太网
2、 Circuit Type参数值必须一致, 01表示L1,10表示L2,11表示L1/L2。01可以与01、11建立邻居,10可以 与10、11建立邻居;如果是L1类型,会对比Area id参数,对于L1路由器只有area id一样才能建立邻居。 Level及区域的概念后面再介绍
3、system id参数值不能相同
4、非同一子网,不可以建立邻居
5、配置认证的情况下,ISIS认证类型及密钥必须一样才能建立邻居
6、MTU不一致,不可以建立邻居
第二步:路由信息交互,IS-IS协议使用LSP、CSNP、PSNP报文来完成设备链路信息的同步。
1.运行ISIS路由器后设备会产生一条LSP编号为 systemid.00-00,RTA LSP 0150.0625.5071.00-00, RTB LSP 0150.0625.5072.00-00
2.开始互相发送CSNP,在CSNP报文中包含本地LSBD中所 有LSP的摘要信息。
3.收到邻居发送的CSNP报文,需要将CSNP报文中的LSP 摘要信息和自己的LSDB做对比,查看缺少的LSP,并通过 PSNP报文请求缺少的LSP。
4.收到PSNP请求后,回复LSP报文。
5.收到LSP报文后回复PSNP确认接收到的LSP。
IS-IS路由协议-路由信息来源
LSPDU(Link State Protocol Data Unit):链路状态协议数据单元,简称LSP。在IS-IS中,每个IS都会生成LSP,此LSP包含本IS自身直连的链路状态信息,用来描述本路由器的链路状态并通告给邻居。
问题1:LSP里面携带的这些链路状态信息是怎么产生的?
接口协议使能:在一个配置了IP地址的端口使能ISIS协议后,在接口的IP地址及网段信息就会被ISIS协议捕获并将其加入到LSP当中; 接口使能ISIS有触发两个动作 (1)、该接口上会发送并侦听ISIS报文,使接口具备ISIS路由学习能力; (2)、该接口的IP及网段信息会被ISIS协议捕获并加入到LSP中。
其他协议引入:可以将其他协议已经学习到的路由信息重发布到ISIS,使其称为ISIS路由;在ISIS协议视图—》address family ipv4视图 使用import-route重发布命令(可以引入除本ISIS进程之前所有路由协议的路由,包含其他isis进程的路由)
问题2:ISIS是怎么知道哪些信息需要被加入到LSP并通告给邻居?
第三步:路由计算,更新学习到全网的LSP信息,以自己为根通过SFP算法计算路由
1、 hortest Path First最短路径优先算法, 也叫Dijkstra(荷兰数学家)算法,在链路状 态路由协议中用来计算到网络的最短路径
2、 以路由器为根,依据网络拓扑生成一棵最 短路径树(SPT),计算出到网络中所有目 的地的最短路径
3、 在IS-IS中,SPF算法分别独立的在Level1和Level-2数据库中运行
4、 COST的类型与取值
narrow:表示只可以接收和发送采用narrow方式(取值范围为0~63)的报文。
wide:表示只可以接收和发送采用wide方式(取值范围为0~16777215)的报文。
compatible:表示可以接收和发送采用narrow和wide方式的报文。 一般用wide 全网的cost类型必须统一 设备默认采用narrow
narrow-compatible:表示可以接收采用narrow和wide方式的报文,却只能发送采用narrow方式的报文。
wide-compatible:表示可以接收采用narrow和wide方式的报文,却只能发送采用wide方式的报文。
relax-spf-limit:表示允许接收到达目的地路径开销值大于1023的报文。如果不指定该参数,则在收到开销值大于 1023的报文时,将丢弃。只有当指定了compatible或narrow-compatible时该参数可选。
第四步:路由维护,通过hello报文维持邻居关系,LSP撤销、更新路由信息。