IS-IS的概述
- IS-IS的意思是中间系统到中间系统,是为ISO无连接网络协议CLNP设计的路由选择协议。
- 驱动该提议的观点是,即TCP/IP协议只是一个过渡的协议簇,并且最终会被OSI协议簇代替
- IS-IS只能支持广播链路和点到点链路
IS-IS原理
基本术语:
区域:
- 所有的路由器都完全处在一个区域内部,并且区域的边界是在链路上,而不是在路由器上。
- 一个中间系统可以是一台第1层的路由器(L1)、一台第2层的路由器(L2)或者两种类型皆是的路由器(L1/L2)
- L1路由器类似于OSPF协议中的非骨干内部路由器(特殊区域)
- L2路由器类似于OSPF协议中的骨干路由器
- L1/L2路由器类似于OSPF协议中的ABR(OSPF系统区域边界)路由器。
- 邻接关系
L1路由器只支持建立L1级别的邻居,并且要求区域ID一致
L2路由器只支持建立L2级别邻居,不要求区域ID一致
L1/2路由器既支持L1邻居又支持L2邻居 - 区域间的通信量都必须经过L2区域,以便防止区域间路由选择环路。
- 在一个区域内的每台L1路由器(包括区域内的L1/L2路由器)都会维护一个同样的链路状态数据库。
- 缺省情况下,L1/L2路由器不需要通告L2类型的路由给L1类型的路由器。因此,一台L1路由器无法知晓它自己所在区域之外的目的路由。一个L1区域就相当于OSPF协议中的完全末梢区域。
- 当L1/L2路由器发送它的第1层LSP进入一个区域时,它将通过在LSP中设置一个称为“区域关联位(Attached, ATT)”的二进制位来通知其他L1路由器它可以到达其他的区域。
NSAP(网络服务访问点)
- 是ISO网络层协议报文,相当于TCP/IP中的IP报文
- 在ISO模型中,NSAP用来标识一个抽象的网络层访问服务点,并描述网络地址结构。
- NSAP地址由IDP和DSP组成
IDP相当于IP地址中的主网络号
DSP相当于IP地址中的子网号和主机地址 - IDP部分由AFI与IDI组成
AFI表示地址分配机构和地址格式,IDI用来标识域 - DSP由HODSP、System ID 和SEL三个部分组成
HODSP用来分隔区域
System ID用来区分主机
SEL指示服务类型 - NSAP地址的总长度是可变的,最短为8个字节,最长为20个字节
NET(网络实体名称)
- 主要用于路由计算
- 由区域地址(Area ID)和System ID组成
- 可以看作是特殊的NSAP(SEL为00的NASP)
- 在IP网络中运行IS-IS时,只需配置NET,根据NET地址设备可以获取到Area ID以及System ID
网络类型:
- 广播型子网:和OSPF协议中的定义一样,就是支持多广播的多访问数据链路
- 点到点子网(非广播型子网):可以是永久链路,也可以是动态链路
IS-IS开销值
- IS-IS使用Cost(开销)作为路由度量值,Cost值越小,则路径越优
- IS-IS接口的Cost在缺省情况下并不与接口宽带相关,无论接口多大,缺省时Cost为10.
- 一条IS-IS路径的Cost等于本路由到达目标网段沿途的所有链路的Cost总和。
- 按照优先级由高到低确认开销值分别是:
接口开销:为单个接口设置开销
全局开销:为所有接口设置开销
自动计算开销:根据接口带宽自动计算开销
IS-IS报文类型:
直接运行在数据链路层
- IIH报文(Hello报文)
作用:hello报文用于发现,建立和维护,断开邻居关系
广播网中,Level-1 路由器 使用 Level-1的hello 报文
广播网中,Level-2 路由器 使用 Level-2 的hello报文
广播网中,Level-1-2 路由器 使用level-1和level-2两种报文
hello报文, 源地址是本设备本接口的MAC地址, 而目的地址是:
如果是Level-1的hello报文 目的组播MAC地址为 01:80:c2:00:00:14
如果是Level-2的hello报文 目的组播MAC地址为 01:80:c2:00:00:15
点到点网络中,则使用P2P IIH
- LSP PDU报文(链路状态报文)
作用:用于携带和传输ISIS数据库条目,用于交换链路状态信息
链路状态PDU -链路状态报文 【类似于OSPF中的LSU-发LSA】
【LSP 链路状态信息,里面包含的网络拓扑和网段信息,类似于OSPF中的LSA】
LSP分为两种,Level-1 LSP、Level-2 LSP
- SNP PDU报文
作用:通过描述全部或部分链路数据库中的LSP来同步各LSDB,从而维护LSDB的完整与同步
SNP包括CSNP和PSNP:
进一步又可分为Level-1 CSNP、 Level-2 CSNP、 Level-1 PSNP和Level-2 PSNP
-
- CSNP 报文:完全序列号报文
作用:CSNP包括LSDB中所有LSP的摘要信息,从而可以在相邻路由器间保持LSDB的同步。
在广播网络上,CSNP由DIS定期发送(缺省的发送周期为10秒)
在点到点链路上,CSNP只在第一次建立邻接关系时发送
【广播网络中,相当于OSPF中的DD和LSAck 】
【在点到点网络中,相当于OSPF中的DD 】
-
- PSNP 报文:部分序列号报文
【 在广播网络中,就类似于OSPF中LSR报文】
【在点到点网络中类似于OSPF中的LSR/LSACK报文】
PSNP报文能够一次对多个LSP进行确认,当发现LSDB不同步时,也用PSNP来请求邻居发送新的LSP
作用:用于请求和确认ISIS数据库中条目信息
DIS与伪节点
- 在广播网络中,IS-IS需要在所有的路由器中选举一个路由器作为DIS(指定路由器),Level-1和Level-2的DIS是分别选举的
- 选举原则:先比较优先级(默认为64),越大越优先;如果优先级一致则比较MAC地址,越大越优先。
- DIS相当于OSPF路由协议中的DR,但是IS-IS中没有备份DIS,而且OSPF中的DR不可抢占,优先级为0的不参与DR选举,但DIS可以抢占,优先级为0也可以参与选举。
- DIS用来创建和更新伪节点,并负责生成伪节点的LSP,用来描述这个网络中有哪些网络设备(包含有支持的网络协议信息,接口类型,接口地址,邻接信息,伪节点ID)
- 伪节点是用来模拟广播网络的一个虚拟节点,并非真实的路由器。在IS-IS中,伪节点用DIS的System ID 和Circuit ID(非0值)标识。
LSDB同步
- IS-IS链路状态报文LSP用于交换链路状态信息。
LSP分为两种:Level–1 LSP和Level–2 LSP。
Level–1 LSP由Level-1路由器传送,Level–2 LSP由Level-2路由器传送,Level-1-2路由器则可传送以上两种LSP。 - LSP ID:由三部分组成,System ID、伪节点ID和LSP分片后的编号。
- ATT(Attachment):由Level-1-2路由器产生,用来指明始发路由器是否与其它区域相连。
- OL(LSDB Overload,1bit):过载标志位(当路由器内存不足时,系统自动在发送的LSP报文中设置过载标志位。)。该LSP虽然还会在网络中扩散,但是其它路由器在进行SPF计算时不会考虑这台路由器。
- IS Type(2bit):生成LSP的路由器的类型。用来指明是Level-1还是Level-2路由器(01表示Level-1,11表示Level-2)。
广播网络中LSP的同步过程
- 路由器首先发送IIH报文,与广播域中的路由器建立邻接关系。建立邻接关系后,R3等待LSP刷新定时器超时,然后将自己的LSP发往组播地址。这样网络上所有的邻接都将收到该LSP
- 该网段中的DIS会把收到R3的LSP加入到LSDB中,并等待CSNP报文定时器超时并发送CSNP报文。
- R3收到DIS发来的CSNP报文,对比自己的LSDB数据库,然后向DIS发送PSNP报文请求自己没有的LSP。
- DIS收到该PSNP报文请求后向R3发送对应的LSP进行LSDB的同步。
点到点网络中LSP的同步过程
- R1先与R2建立邻接关系。
- 建立邻接关系之后,R1与R2会先发送CSNP给对端设备。如果对端的LSDB与CSNP没有同步,则发送PSNP请求索取相应的LSP。
- 假设R2向R1索取相应的LSP。
-
- R1发送R2请求的LSP的同时启动LSP重传定时器,并等待R2发送的PSNP作为收到LSP的确认。
- 如果在接口LSP重传定时器超时后,R1没有收到R2发送的PSNP报文作为应答。
- 则R1重新发送该LSP。
- R2收到LSP后,发送PSNP进行确认。
Level-1路由器的路由计算
- R1是Level-1路由器,只维护Level-1 LSDB,该LSDB中包含同属一个区域的R2及R3以及R1自己产生的Level-1 LSP。
- R1根据LSDB中的Level-1 LSP计算出Area 49.0001内的拓扑,以及到达区域内各个网段的路由信息。
- R2及R3作为Area 49.0001内的Level-1-2路由器,会在它们向该区域下发的Level-1 LSP中设置ATT标志位,用于向区域内的Level-1路由器宣布可以通过自己到达其他区域。 R1作为Level-1路由器,会根据该ATT标志位,计算出指向最近的L1/2的默认路由。
Level-1路由器的次优路径的问题
- 缺省情况下,Level-1-2路由器不会将到达其他区域的路由通告本Level-1区域中(因为L1相当于OSPF的特殊区域)。R1和R2收到置位的ATT=1时,会自动各自生成一条默认路由,指向最近的level-1-2路由器。
- 但是如上图所示,R1的默认路由指向R3且开销值为10,但是当R1访问R6时,会默认指向R3(最近的L1/2)走灰色路径的总开销值为80,但明显走红色路径的总开销值为40。此时就产生次优路径了。
- 因此需要通过路由渗透,可以将区域间路由通过Level-1-2路由器传递到Level-1区域,此时Leve-1路由器可以学习到其他区域的详细路由,从而计算出最优路径。
Level-1-2路由器的路由计算
- R2及R3都维护Level-1 LSDB,它们能够通过这些LSDB中的LSP计算出Area 49.0001的路由。
- R2及R3都维护Level-2 LSDB,它们能够通过这些LSDB中的LSP计算出Area 49.0002的路由。
- R2及R3将到达Area 49.0001的路由以Level-2 LSP的形式发送到Area 49.0002。
Level-2路由器的路由计算
- R4及R5作为Level-2路由器,只会维护Level-2 LSDB,它们能够根据该LSDB计算出到达全网各个网段的路由。
ISIS和OSPF的区别
差异性 | IS-IS | OSPF |
网络类型 | 少 | 多 |
开销方式 | 复杂 | 简便 |
区域类型 | 少 | 多 |
路由报文类型 | 简单 | 多样 |
路由收敛速度 | 很快 | 快 |
扩展性 | 强 | 一般 |
路由负载能力 | 超强 | 强 |
优先级 | 默认为64 | 默认为1 |