ISIS路由协议详解
1、基本概念
IS-IS,即中间系统(Intermediate System)到中间系统的域内路由信息交换协议,它最初是由国际标准化组织ISO为它的无连接网络协议设计的一种动态路由协议。为了提供对IP 的路由支持,IETF对IS-IS进行了扩充和修改,使它能够同时应用在TCP/IP和OSI环境中,称为集成化IS-IS。IS-IS属于内部网关协议(IGP),是一种链路状态协议,使用最短路径优先算法进行路由计算。
在IS-IS系统中,IS相当于TCP/IP系统中的路由器,是IS-IS协议中生成路由和传播路由信息的基本单元;ES相当于TCP/IP中的主机系统。ES不参与路由协议的处理,在ISO中使用专门的ES-IS协议定义终端系统与中间系统间的通信,而在TCP/IP网络中,使用ARP、DHCP 等协议取代ES-IS协议;RD(路由域)相当于TCP/IP中的自治系统;Area是路由域的细分单元,与OSPF概念相同。
OSI给IS-IS定义了4个路由级别,即level-0到level-3。Level-0存在于ES与IS之间,由ES-IS协议来完成,在TCP/IP网络中,这个级别由ARP协议完成;Level-1路由存在于同一个区域内的不同IS间,又称为区域内路由。当IS要发送报文到另外一个IS时,查看报文中的目的地址,发现其位于区域内的不同子网,则IS会选择最优的路径进行转发;如果目的地址不在同一个区域,则IS把数据转发到本区域内最近的Level-1-2路由器上,然后由Level-1-2路由器负责数据转发;Level-2路由存在于同一路由域内的区域间,又称域间路由。Level-3路由存在于路由域间,每个路由域相当于一个自治系统。在TCP/IP系统中,Level-3由BGP 协议来完成。
Level-1路由器负责区域内的路由,它只维护一个Level-1的LSDB,该LSDB包含本区域的路由信息,到区域外的报文转发给最近的Level-1-2路由器;Level-2路由器负责区域间的路由,它维护一个Level-2r LSDB,该LSDB包含区域间的路由信息,所有Level-2路由器和Level-1-2路由器组成路由域的骨干网,负责不同区域间通信,骨干网必须是物理连续的;同时属于Level-1和Level-2的路由器称为Level-1-2路由器,Level-1-2路由器维护两个LSDB,Level-1的LSDB用于区域内路由,Level-2的LSDB用于区域间路由。
2、IS-IS中的NET
在IS-IS协议中,IS间建立邻居、交换路由信息所使用的Hello、LSP等协议报文,均直接承载在OSI数据链路帧中,而不像其他IGP由IP来承载。这些协议报文的格式是OSI报文格式,报文中包含有OSI地址。在OSI体系结构中,使用OSI地址标识网络设备,建立拓扑信息,OSI地址采用NSAP地址格式。NSAP由IDP(Initial Domain Part)和DSP(Domain Specific Part)组成。IDP相当于IP地址中的主网络号,DSP相当于IP地址中的子网号和主机地址。
IDP部分是ISO规定的,它由AFI(地址分配机构和地址格式)与IDI(内部域标识)组成。DSP由HO-DSP(用来分割区域)、System ID(用来区分主机)和NSEL(用来指示服务类型)组成。
在集成IS-IS中,将NSAP地址划分成三部分:区域地址、System ID和NSEL。IDP的DSP 中的HO-DSP一起用来标识路由域中的区域,因此将(IDP、HO-DSP)一起称为区域地址。一般情况下,一台路由器只需要配置一个区域地址,且同一区域中所有节点的区域地址都相同。为支持区域的平滑合并、分裂、迁移,一台路由器最多可配置3个区域地址。
System ID用来在区域内唯一标识终端系统或路由器,它的长度固定为6字节。System ID 的指定可以有不同的方法,但要保证能够唯一标识终端系统或路由器,一般System ID由Router ID或者MAC地址转换而成。
NESL的作用类似于IP中的协议标识符,不同的传输对应不同的NSEL。在IP中,NSEL 均为00。
NET(Network Entity Title,网络实体名称)指的是IS本身的网络层信息,不包括传输层信息,可以看作是一类特殊的NSAP,即NSEL为0的NSAP地址。NET的长度与NSAP相同,最多为20个字节,最少为8个字节。
例如,若NET为ab.cdef.1234.5678.9abc.00,则Area为ab.cdef,System ID为1234.5678.9abc,NSEL为00。
下图为根据Router ID来生成对应的System ID:
3、IS-IS协议原理
IS-IS协议只支持两种类型的网络:广播型网络(Broadcast)与点到点网络(P2P)。IS-IS 邻居关系有Level-1和Level-2两种。在P2P网络上,只要IS能够收到对端的P2P IIH报文,
就认为邻居能够建立,邻居状态为UP。在广播网络上,邻居建立需要三方握手过程。
在IS-IS中,只要邻居关系建立,则意味着邻接关系同时建立了,邻居之间可以进行LSP 的交换,达到LSDB的同步。
邻接关系建立后,邻居IS间进行LSDB的同步,同步过程主要由邻居间交互LSP和SNP 协议报文来完成的。LSP用于描述链路状态信息。每个IS产生一个或多个LSP来描述它与周围邻居IS的连接;LSP报文中包含了发送者的System ID的序列号。SNP用于描述LSDB中LSB 的摘要信息,并对邻居之间最新接收的LSP进行确认。SNP包括CSNP和PSNP,CSNP包括LSDB中所有LSP的摘要信息,从而可以在相邻路由器间保持LSDB的同步。在广播网络上,CSNP由DIS(指定IS)定期发送,在P2P链路上,CSNP只在第一次建立邻接关系时发送。PSNP只列举最近收到的一个或多个LSP的序号,它能够一次对多个LSP进行确认。
IS-IS路由器接口启动IP协议后,相关的IP路由信息作为CLV附在LSP中,以叶节点的方式传递。IP信息的变化不会影响到网络拓扑。
4、IS-IS配置举例
RTA的配置信息:
[RTA] isis 1
[RTA-isis-1] network-entity 10.0001.0001.0001.00
[RTA-isis-1] is-level level-1
[RTA-GigaEthernet0/0/0] isis enable 1
[RTA-GigaEthernet0/0/0] isis cost 5
[RTA-GigaEthernet0/0/0] ip add 10.216.0.1 30
[RTA-GigaEthernet0/0/1] isis enable 1
[RTA-GigaEthernet0/0/1] isis cost 10
[RTA-GigaEthernet0/0/1] ip add 10.216.1.1 30
[RTA-Ethernet0/0/0] ip 192.168.1.1 24
[RTA-Ethernet0/0/0] isis enable 1
RTB的配置信息:
[RTB] isis 1
[RTB-isis-1] network-entity 10.0001.0001.0002.00
[RTB-GigaEthernet0/0/0] isis enable 1
[RTB-GigaEthernet0/0/0] isis circuit-level level-1
[RTB-GigaEthernet0/0/0] ip add 10.216.0.2 30
[RTB-GigaEthernet0/0/1] isis enable 1
[RTB-GigaEthernet0/0/1] isis circuit-level level-2