ISIS是Intermediate System to Intermediate System的简称,也是一种基于SPF算法的链路状态协议,是一种内部网关协议。
OSI协议族提供两种数据通信服务模型:
(1)CONS(Connection Network Server)面向连接网络服务;
(2)CLNS(Connetionless Network Server)无连接网络服务。
CLNS由以下三个协议构成:
(1)CLNP,类似TCP/IP的IP协议。IP协议为TCP/IP提供传输层服务,CLNP为OSI提供传输层服务;
(2)IS-IS,中间系统间的路由协议,类似IP中的OSPF;
(3)ES-IS,主机系统与中间系统的协议,类似IP中的ARP、ICMP等。
ISIS是ISO为它的无连接网络协议CLNP(ConnectionLess Network Protocol)设计的一种动态路由协议。
CLNP类似IP协议,CLNP定义为独立于数据链路层;
IP是TCP/IP协议唯一的网络层协议,包括由协议和用户数据都封装在IP包内;
CLNP、ES-IS、IS-IS协议都是网络层协议,分别被封装在数据链路层的帧内。
随着TCP/IP协议的流行,为了提供对IP路由的支持,IETF(Internet Engineering Task Force )在RFC1195中对IS-IS进行了扩充和修改,使它能够同时应用在TCP/IP和OSI(Open System Interconnection)环境中,称为集成IS-IS(Integrated IS-IS或Dual IS-IS)。
ES-IS协议,同一网段或链路的ISO终端系统和路由器之间自动交换信息便于邻接点发现。路由器发送IS报文Hello(ISH),主机发送ES报文Hello(ESH)。在直连节点间发送的Hello报文包含通信节点的网络层地址和数据链路层地址。包含地址分配,网关选择等功能。等同于IP中的ICMP、ARP、DHCP协同工作。
1.2 IS-IS基本术语IS:Intermediate System中间系统,在OSPF中就叫路由器;
DIS:Designated Intermediate System指定中间系统,在OSPF中叫DR;
ES:End System,在OSPF中叫Host;
Sys ID:System ID,在OSPF中叫Router ID;
PDU:Packet Data Unit报文数据单元,在OSPF中类似IP packet;
LSP:Link State Protocol Data Unit链路状态数据单元,在OSPF中类似LSA,携带路由信息;
LSPDB:LSP Database LSP数据库,类似OSPF的LSDB。
NSAP:Network Service Access Point,网络服务访问点,是CLNP地址 服务端口,原始的IS-IS是需要配置一个CLNP地址,做集成的IS-IS时,这里CLNP是保留的,类似TCP/IP协议中要有一个IP地址一样;
NET:Network Entity Title网络实体标记,是一种特殊的NSAP,最后一个字节为0,通常是用RouterID Area生成;
ESH:End System Hello包
IIH:Intermediate System to Intermediate System Hello PDU,相当于OSPF的Hello报文;
PSNP:Partial Sequence Number Protocol Data Unit部分序列号协议数据单元,类似OSPF中的LS Request和LS ACK;
CSNP:Complete Sequence Number Protocol Data Unit全部序列号协议数据单元,类似OSPF中的DD报文;
1.3 IS-IS地址结构网络服务访问点NSAP(Network Service Access Point)是OSI协议中用于定位资源的地址。NSAP的地址结构如图所示,它由IDP(Initial Domain Part)和DSP(Domain Specific Part)组成。IDP和DSP的长度都是可变的,NSAP总长最多是20个字节,最少8个字节。
IDP和DSP中的High Order DSP一起,既能够标识路由域,也能够标识路由域中的区域,因此,它们一起被称为区域地址(Area Address),相当于OSPF中的区域编号。同一Level-1区域内的所有路由器必须具有相同的区域地址,Level-2区域内的路由器可以具有不同的区域地址。
一般情况下,一个路由器只需要配置一个区域地址,且同一区域中所有节点的区域地址都要相同。为了支持区域的平滑合并、分割及转换,在设备的实现中,一个IS-IS进程下最多可配置3个区域地址。
System ID用来在区域内唯一标识主机或路由器。在设备的实现中,它的长度固定为48bit(6字节)。
在实际应用中,一般使用Router ID与System ID进行对应。假设一台路由器使用接口Loopback0的IP地址168.10.1.1作为Router ID,则它在IS-IS中使用的System ID可通过如下方法转换得到:
实际System ID的指定可以有不同的方法,但要保证能够唯一标识主机或路由器。
SEL的作用类似IP中的“协议标识符”,不同的传输协议对应不同的SEL。在IP上SEL均为00。
网络实体名称NET(Network Entity Title)指的是设备本身的网络层信息,可以看作是一类特殊的NSAP(SEL=00)。NET的长度与NSAP的相同,最多为20个字节,最少为8个字节。在路由器上配置IS-IS时,只需要考虑NET即可,NSAP可不必去关注。
例如有NET为:ab.cdef.1234.5678.9abc.00,则其中Area Address为ab.cdef,System ID为1234.5678.9abc,SEL为00。
1.4 IS-IS区域、分类及层次IS-IS将整个路由域分为多个区域,用NET区分,例如49.0000.0000.0000.0001.00,这是代表一个区域。这里的区域和OSPF的Area表达的并不是一个意思,在IS-IS中L1/L2这个概念有点类似OSPF的Area,这里需要注意。在华为的路由器中目前一个路由器最多支持3个AreaID,思科的多一些。配置不同的区域ID是为了平滑的进行区域合并、分割、转换使用。和OSPF不同,IS-IS中,一个路由器必须整个属于某个区域,不是某个接口。
结点(Nodes):
Level-1 Router(L1路由器);
Level-2 Router(L2路由器);
Level-1 and Level-2 Router(L1/L2路由器)。
Area层次性:
Level-1 Area:包含区域内路由器;
Level-2 Area:包含L2和L1/L2路由器,骨干区,类似OSPF中的Area0。
1.5 IS-IS路由器分类详解
L1 Router:位于普通区域Area内部
只和本区域的L1或L1/L2路由器形成邻居关系;
只含有本区域的L1 LSDB,包含本区域所有L1路由器的路由信息;
通过与自己最近的L1/L2路由器的ATT BIT生成指向此设备的默认路由作为出口路由;
L1区域类似OSPF的Stub区域的状态;
目的地在本区域直接利用本区域L1 LSDB生成路由转发报文,目的地不在本区域,利用本区域最近的L1/L2路由器作为出口,类似OSPF中的ABR,但由此可能导致次优路由。
L2 Router:位于骨干区域
只和本区域的L2或L1/L2路由器形成邻居关系;
包含Level2的链路状态数据库L2 LSDB,包含所有区域间路由信息;
接收来自本区域内其他L2路由器的报文,并按照目的地将报文转交给其他区域的L2路由器(或是转发到同一区域的L2路由器);
接收来自其他区域的L2路由器的报文,并按照目的地址将报文转发。
L1/L2 Router:通常位于区域边界上
可以和本区域任何级别路由器形成邻居关系;
可能有两个级别的链路状态数据库,L1用来作为区域内路由,L2用来作为区域间路由;
完成它所在的区域和骨干之间的路由信息的交换,既承担L1的职责,也承担L2的职责。
一个L1/L2路由器如何和其他区域的路由器形成邻接关系,那么它将通告本区域内的L1路由器,它有区域的出口点。在生成本区域的L1 LSP时将报文中的ATTbit置1,发给区域内的L1邻居。
,