与OSPF协议非常的相似,IS-IS协议也是基于链路状态并使用最短路径优先算法进行路由的一种 IGP 协议。
IS-IS(Intermediate System-to-Intermediate System,中间系统到中间系统)路由协议最初是ISO(the International Organization for Standardization,国际标准化组织)为CLNP(Connection Less Network Protocol,无连接网络协议)设计的一种动态路由协议。现在CLNP网络已经基本不再别使用,但是IS-IS协议由于其优秀性,被保留了下来。
为了提供对IP路由的支持,通过对IS-IS进行扩充和修改,使IS-IS能够同时应用在TCP/IP和OSI环境中,形成了集成化IS-IS(Integrated IS-IS或Dual IS-IS)。现在提到的IS-IS协议都是指集成化的IS-IS协议,主要用于城域网和承载网。
由于IS-IS与OSPF协议有许多的相同之处,但是也有一些差别,所以本文在讲解IS-IS时,会用OSPF协议来作比较。
OSPF的多路由类型(内部/外部),多区域类型(骨干/普通/特殊),开销规则优良(根据带宽设定),网络类型多样(最多五种类型)的特点在园区网得到了极大的发挥。
骨干网特点:
IS-IS的快速算法(PRC得到加强),简便报文结构(TLV),快速邻居关系建立,大容量路由传递(基于二层开销低)等一系列特点在骨干网有着天然的优势。
原始的IS-IS协议主要是针对OSI七层模型设计的,也是就用于CLNP网络。但是现在我们不再使用CLNP网络,所有我们将IS-IS进行扩充和修改,使他能够被用于IP网络。现在我们提到的IS-IS都是重新设计之后的集成IS-IS。
注意:IS-IS工作在数据链路层
工作在数据链路层的好处:在网络层我们会面临各种各样的攻击手段,但是在数据链路层所遭受的攻击就会少的多。
首先我们来了解一些IS-IS中的基本概念。
略语 | OSI术语 | IETF术语 |
---|---|---|
IS | Intermediate System | Router |
ES | End System | Host |
DIS | Designated Intermediate System | OSPF中的DR |
SysID | System ID | OSPF中的Router ID |
LSP | Link State PDU | OSPF中的LSA |
IIH | IS-IS Hello PDU | OSPF中的Hello报文 |
PSNP | Partial Sequence Number PDU | OSPF中的LSR或LSAck报文 |
CSNP | Complete Sequence Number PDU | OSPF中的DD报文 |
解释:
IS是指运行IS-IS协议的路由设备。它是IS-IS协议中生成路由和传播路由信息的基本单元。就是指路由器
RD是指由多个使用IS-IS协议的路由器所组成的范围。
Area是IS-IS路由域的细分单元。IS-IS与OSPF一样,允许将整个路由域分为多个区域,且总体上也分为普通区域和骨干区域两类,但 IS-IS 的普通区域必须与骨干区域直接连接(没有OSPF中的“虚连接”),普通区域之间不能直接连接。
Area又可根据网络中路由器的类型划分为Level-1区域(全由Level-1路由器组成)和Level2区域(由Level-2和Level-1-2路由器组成)
在IS-IS 协议中使用Sys ID 唯一标识一台路由器,必须保证在整个IS-IS 路由域中每台路由器的系统ID 都是唯一的,与OSPF 中的路由器ID(Router ID)一样。
LSP是IS-IS网络中的设备用来通过泛洪方式向所有邻居通告自己的链路状态信息的报文,类似于OSPF 中的 LSA(链路状态通告)。网络中每台路由器都会产生带有自己系统ID标识的LSP报文,可以通过发送LSP不断更新自己的链路状态信息。
路由器的每个区域都有一个专门存放该区域所接收的所有 LSP 报文的数据库。通过LSP的泛洪,最终使整个区域内的所有路由器拥有相同的LSDB。
在IS-IS广播网络类型中需要选举一个指定IS(DIS),以便周期性地向区域内其他路由器进行区域LSDB 数据库的泛洪(区域内的非DIS 仅与DIS 之间进行LSDB 交互,非DIS之间不能直接进行LSDB交互),使整个区域中各路由器的LSDB同步。类似于OSPF中的DR。
由于IS-IS原来是为CLNP设计的。CLNP网络不是使用IP地址来进行通信的,而是使用NSAP地址来进行通信。即便现在是集成IS-IS,但是使用NSAP地址这项还是保留了下来。
NSAP地址相较于IP地址复杂一些。但是我们可以对比IP地址来理解NSAP地址。
NSAP地址由IDP与DSP组成。
IDP
IDP相当于IP地址中的主网络号(网段)。它是由ISO规定,并由AFI与IDI两部分组成。AFI表示地址分配机构和地址格式,IDI用来标识域。
DSP
DSP相当于IP地址中的子网号和主机地址。它由High Order DSP、System ID和SEL三个部分组成。High Order DSP用来分割区域,System ID用来区分主机,SEL用来指示服务类型。
Area Address
Area Address(Area ID)由IDP和DSP中的High Order DSP组成,既能够标识路由域,也能够标识路由域中的区域。因此,它们一起被称为区域地址,相当于OSPF中的区域编号。
System ID
System ID用来在区域内唯一标识主机或路由器。在设备的实现中,它的长度固定为48bit(6字节)。相当于OSPF中的Router ID
SEL
SEL的作用类似IP中的“协议标识符”,不同的传输协议对应不同的SEL。在IP上SEL均为00。
NET
我们将支持IP网络的,也就是SEL=00的NSAP地址,叫做NET
网络实体名称NET指的是设备本身的网络层信息,可以看作是一类特殊的NSAP(SEL=00),NET的长度与NSAP的相同,最多为20个字节,最少为8个字节。
在路由器上配置IS-IS时,只需要考虑NET即可,NSAP可不必去关注。
注意:在配置IS-IS过程中,NET最多也只能配3个。在配置多个NET时,必须保证它们的System ID都相同。
在IS-IS中,路由器可以分为三种类型
1. Level-1路由器(只能创建Level-1的LSDB)
2. Level-2路由器(只能创建Level-2的LSDB)
3. Level-1-2路由器(路由器默认类型,能同时创建Level-1和Level-2的LSDB)
Level-1路由器:
L1路由器是一个IS-IS普通区域内部的路由器,类似于OSPF网络中的普通区域内部路由器(IR),只能在非骨干区域中存在。
L1路由器只能与属于同一区域的L1和L1/2路由器建立L1邻接关系(不能与L2路由器建立邻接关系),交换路由信息,并维护和管理本区域内部的一个L1 LSDB。
L1 路由器的邻居都在同一个区域中,其 LSDB 包含本区域的路由信息以及到达同一区域中最近L1/2路由器(相当于OSPF中的ABR)的缺省路由,但到区域外的数据需由最近的L1/2路由器进行转发。
也就是说,L1路由器只能转发区域内的报文,或者将到达其他区域的报文转发到距离它最近,且在同一区域的L1/2路由器。
Level-2路由器:
L2路由器是骨干区域中的路由器,主要用于通过与普通区域中的L1/2路由器(下面将介绍)连接,连接骨干区域和非骨干区域,类似于OSPF网络中的BR(骨干路由器),并负责在不同区域间的通信。L2路由器负责区域间的路由,它可以与相同或者不同区域的L2路由器或者不同区域的L1/2路由器形成邻居关系。L2路由器维护一个L2的LSDB,该LSDB包含区域间的路由信息。L2路由器只可能建立L2的邻接关系。
网络中的所有L2路由器和所有L1/2路由器连接在一起共同构成IS-IS网络的骨干网(注意,不是骨干区域),也称L2区域。IS-IS中的L2区域不是一个特定的区域,是由连接网络中各个区域的一部分路由器组成的,但必须物理是连续。
如下图:黄色圆圈中的路由器是L2路由器还是L1路由器,还是L1/2路由器?
答案是:L1/2路由器。
若是L1路由器,则整个网络中由L2路由器和L1/2路由器形成的骨干网(粗线部分)在物理上就是断开的,不连续,最终导致的结果就是不同区域间的L2 路由无法传递。也不可能是L2路由器,因为Area 2不是骨干区域。
不同区域间,只能建立Level-2的邻接关系:
Level-1-2路由器:
L1/2路由器类似于OSPF网络中的ABR(区域边界路由器),用于区域间的连接,缺省所有IS-IS路由器都是L1/2类型的。L1/2路由器既可以与同一普通区域的L1路由器以及其他L1/2路由器建立L1邻接关系,也可以与骨干区域L2路由器建立L2邻接关系。L1路由器必须通过L1/2路由器才能与其他区域通信。L1/2路由器必须维护以下两个LSDB:L1 LSDB 用于区域内路由,L2 LSDB用于区域间路由。但要注意的是,L1/2路由器不一定要位于区域边界,在区域内部也有可能存在L1/2路由器,如上图黄色圆圈中的路由器。
为了支持大规模的路由网络,IS-IS在自治系统内采用骨干区域与非骨干区域两级的分层结构。一般来说,将Level-1路由器部署在非骨干区域,Level-2路由器和Level-1-2路由器部署在骨干区域。每一个非骨干区域都通过Level-1-2路由器与骨干区域相连。
在OSPF中,骨干区域固定为Area 0,且非骨干区域要和骨干区域相连(没有通过物理连接的话则要进行虚连接)。但是在IS-IS中:
1. 可以有多个骨干区域,且区域ID不固定
2. 非骨干区域必须和骨干区域物理相连(通过L1/2路由器)
3. 非骨干区域之间不能直接连接
Level-1-2级别的路由器可以属于不同的区域,在Level-1区域,维护Level-1的LSDB,在Level-2区域,维护Level-2的LSDB。
下图为多个骨干区域的拓扑:
此时有两个骨干区域:Area 1和Area 3。非骨干区域中的L1/2 路由器同时与两个骨干区域的L2 路由器连接,同时两个骨干区域之间也彼此连接(可以把它们看成一个大的虚拟骨干区域)
拓扑所体现的IS-IS与OSPF不同点:
在OSPF中,每个链路只属于一个区域;而在IS-IS中,每个链路可以属于不同的区域;
在IS-IS中,单个区域没有物理的骨干与非骨干区域的概念;而在OSPF中,Area0被定义为骨干区域;
在IS-IS中,Level-1和Level-2级别的路由器分别采用SPF算法,分别生成最短路径树SPT;在OSPF中,只有在同一个区域内才使用SPF算法,区域之间的路由需要通过骨干区域来转发。
只拥有Level-1的链路状态数据库。
其链路状态数据库中只有本区域路由器LSP。
其路由表里没有其他区域的路由信息。
其路由表里都有一条默认路由,下一条是指向到Level-1-2路由器。(缺省路由,发送数据到其他区域,直接发送给L1/2)
Level-2路由器的路由特点:
Level-2路由器只有Level-2的链路状态数据库。
其LSDB中有骨干区域路由器的LSP,但是没有Level-1路由器产生的LSP。
路由表里面有整个网络的路由信息。
Level-1-2路由器的路由特点:
Level-1-2路由器同时拥有Level-2和Level-1的链路状态数据库。
Level-1数据库包含本区域的LSP,Level-2数据库包含骨干区域LSP。
在自己产生的Level-1的LSP中设置了ATT比特位为1。
路由表里面有整个网络的路由信息。
OSPF协议可阅读本人博客。
差异性 | IS-IS | OSPF |
---|---|---|
网络类型 | 少 (2种) | 多 (4种) |
开销方式 | 复杂 | 简便 |
区域类型 | 少 (L1、L2区域) | 多 (骨干、非骨干、特殊) |
路由报文类型 | 简单 (LSP报文) | 多样 (多种LSA报文) |
路由收敛速度 | 很快 | 快 |
扩展性 | 强 (任何路由信息都用TVL传递) | 一般 |
路由负载能力 | 超强 | 强 |