1. IS-IS历史原因
这个协议其实也是历史原因,不过也有它的优势。
我们现在所使用的网络体系叫作TCP/IP,不过早期OSI自己也搞了一套
CLNP相当于IP,而IS-IS就类似OSPF。
IS-IS(Intermediate System to Intermediate System)就是从中间系统到中间系统的意思。
属于内部网关协议IGP(Interior Gateway Protocol),用于自治系统内部。IS-IS也是一种链路状态协议,使用最短路径优先SPF(Shortest Path First)算法进行路由计算。
它主要用于运营商之间的路由器。
企业里主要用的则是OSPF。
2. IS-IS的地址结构

由三部分组成:
- Area Address: 区域地址,相当于OSPF中的区域编号。
同一
Level-1区域内的所有路由器必须具有相同的区域地址,
Level-2区域内的路由器可以具有不同的区域地址。
一般情况下,一个路由器只需要配置一个区域地址,且同一区域中所有节点的区域地址都要相同。
为了支持区域的平滑合并、分割及转换,在设备的实现中,一个IS-IS进程下最多可配置3个区域地址。
2.1 考点
一台设备区域号为49.0001,system-id为10.0.0.1,则其对应的NET地址为多少?
system-ID是6个字节的,我们可以将system-id扩充一下:010.000.000.001
再四个一组进行分割成三组得到:0100.0000.0001,
最后再将三部分缝合起来就是:49.0001.0100.0000.0001.00。
这个缝合方法我也不知道是为什么,反正华为技术支持里的文档是这么写的。
3. IS-IS区域划分
IS-IS和OSPF一样都是链路状态协议,IS-IS中的链路状态是叫LSP(Link state Protocol Data Unit),同样在lsdb中存放。
为了支持大规模的路由网络,IS-IS在自治系统内采用骨干区域与非骨干区域两级的分层结构。
一般来说,将Level-1路由器部署在非骨干区域,Level-2路由器和Level-1-2路由器部署在骨干区域。
每一个非骨干区域都通过Level-1-2路由器与骨干区域相连。

骨干区域:由连续的L2或者L1-2路由器组成的逻辑区域
非骨干区域:由连续的L1或者L1-2路由器组成的逻辑区域
4. IS-IS路由器级别
一共有三个级别:L1 、L2、L1-2,默认情况是路由器是L1-2级别。
总体来说:L1邻居关系只有在同一区域才能建立,L2邻居关系在相同区域或者不同区域都能建立。
4.1 L1路由器
Level-1路由器负责区域内的路由,它只与属于同一区域的Level-1和Level-1-2路由器形成邻居关系,
属于不同区域的Level-1路由器不能形成邻居关系。
Level-1路由器只负责维护Level-1的链路状态数据库LSDB(Link State Database),
该LSDB包含本区域的路由信息,
到本区域外的报文转发给最近的Level-1-2路由器。
4.2 L2路由器
Level-2路由器负责区域间的路由,
它可以与同一或者不同区域的Level-2路由器或者同一区域其它区域的Level-1-2路由器形成邻居关系。
Level-2路由器维护一个Level-2的LSDB,该LSDB包含区域间的路由信息。
所有Level-2级别(即形成Level-2邻居关系)的路由器组成路由域的骨干网,负责在不同区域间通信。
路由域中Level-2级别的路由器必须是物理连续的,以保证骨干网的连性。
只有Level-2级别的路由器才能直接与区域外的路由器交换数据报文或路由信息。
4.3 L1-2路由器
同时属于Level-1和Level-2的路由器称为Level-1-2路由器,
它可以与同一区域的Level-1和Level-1-2路由器形成Level-1邻居关系,
也可以与同一区域或其他区域的Level-2和Level-1-2路由器形成Level-2的邻居关系。
Level-1路由器必须通过Level-1-2路由器才能连接至其他区域。
Level-1-2路由器维护两个LSDB,Level-1的LSDB用于区域内路由,
Level-2的LSDB用于区域间路由。
4.4 路由器级别设置
可以在isis视图下,敲
sh
is-level Level-1
实现;
默认级别level 2
5. IS-IS网络类型
分为两类:
- 广播:当数据链路层协议为以太网时,IS-IS链路类型默认为广播
- 点到点:当数据链路层协议为
P2P/HDLC时,ISIS链路类型默认为P2P
6. DIS和伪节点

在广播网络中,IS-IS需要在所有的路由器中选举一个路由器作为DIS(Designated Intermediate System)。
DIS用来创建和更新伪节点(Pseudonode),并负责生成伪节点的链路状态协议数据单元LSP(Link state Protocol Data Unit),用来描述这个网络上有哪些网络设备。
伪节点是用来模拟广播网络的一个虚拟节点,并非真实的路由器。在IS-IS中,伪节点用DIS的System ID和一个字节的Circuit ID(非0值)标识。
| IS-IS | OSPF |
|---|---|
| DR | DIS |
| 优先级+router-id, 优先级默认为0不参加选举 | 优先级+mac地址,0也要参与选举 |
| 不支持抢占 | 支持抢占 |
| 有备份-BDR | 无备份 |
| DR、BDR与其他这间形成Full关系,DRother之间形成2-way关系 | 所有设备都是邻接关系 |
| 选举DR作用:减少多余LSA泛洪 | 选举DIS作用:周期性发送CSNP报文同步 |
7. IS-IS报文
一共有三大类:HELLO 、LSP、SNP
7.1 HELLO
Hello报文用于建立和维持邻居关系,也称为IIH(IS-to-IS Hello PDUs)。其中,广播网中的Level-1 IS-IS使用Level-1 LAN IIH;广播网中的Level-2 IS-IS使用Level-2 LAN IIH;非广播网络中则使用P2P IIH。
它们的报文格式有所不同。P2P IIH中相对于LAN IIH来说,多了一个表示本地链路ID的Local Circuit ID字段,缺少了表示广播网中DIS的优先级的
Priority字段以及表示DIS和伪节点System ID的LAN ID字段。
7.2 LSP
相当于OSPF中的LSU报文
链路状态报文LSP(Link State PDUs)用于交换链路状态信息。LSP分为两种:Level-1 LSP和Level-2 LSP。Level-1 LSP由Level-1 IS-IS传送,Level-2 LSP由Level-2 IS-IS传送,Level-1-2 IS-IS则可传送以上两种LSP。
LSP报文中主要字段的解释如下:
ATT字段:当Level-1-2 IS-IS在Level-1区域内传送Level-1 LSP时,如果Level-1 LSP中设置了ATT位,则表示该区域中的Level-1 IS-IS可以通过此Level-1-2 IS-IS通往外部区域。
OL(LSDB Overload)字段:过载标志位。
设置了过载标志位的LSP虽然还会在网络中扩散,但是在计算通过过载路由器的路由时不会被采用。即对路由器设置过载位后,其它路由器在进行SPF计算时不会使用这台路由器做转发,只计算该节点上的直连路由。更多内容请参见《原理描述-IS-IS过载位》。
IS Type字段:用来指明生成此LSP的IS-IS类型是Level-1还是Level-2 IS-IS(01表示Level-1,11表示Level-2)。
7.3 SNP
序列号报文SNP(Sequence Number PDUs)通过描述全部或部分数据库中的LSP来同步各LSDB(Link-State DataBase),从而维护LSDB的完整与同步。
SNP包括全序列号报文CSNP(Complete SNP)和部分序列号报文PSNP(Partial SNP),进一步又可分为Level-1 CSNP、Level-2 CSNP、Level-1 PSNP和Level-2 PSNP。
CSNP包括LSDB中所有LSP的摘要信息,从而可以在相邻路由器间保持LSDB的同步。在广播网络上,CSNP由DIS定期发送(缺省的发送周期为10秒);在点到点链路上,CSNP只在第一次建立邻接关系时发送。
PSNP只列举最近收到的一个或多个LSP的序号,它能够一次对多个LSP进行确认,当发现LSDB不同步时,也用PSNP来请求邻居发送新的LSP。
CSNP报文相当于OSPF中的DD摘要报文,PSNP报文则相当于LSR LSACK报文。
7.4 报文组播地址
广播链路上L1的报文发送目的组播报文:01:80:c2:00:00:14
广播链路上L2的报文发送目的组播报文:01:80:c2:00:00:15
如果在广播链路上将链路类型改为P2P,发送报文的目的mac为:
09:00:2b:00:00:05
7.5 MTU隐式确认
IS-IS没有专门的字段确认,通过填充到1500进行隐式确认。
8. 简单配置
- 创建IS-IS进程
sh
isis 1
- 创建
NET地址
sh
network-entity 49.0001.0000.0000.0001.00
- 把接口宣告到
IS-IS中
有点像OSPF接口下宣告
sh
isis enable 1