IS-IS的由来
ISO开发了IS-IS,文档号10589,最早由美国政府和军方使用,现过波到了运营商。

IS-IS中的术语
SystemOSI的术语)= node(节点)(TCP/IP中的术语)
末端系统ESOSI的术语)=主机节点(TCP/IP中的术语)PC、服务器、打印机等等
中间系统ISOSI的术语)=网络节点(TCP/IP中的术语)路由器、接入服务器等等

CLNS:无连接的网络服务
CONS:面向连接的网络服务
CLNS取代了CONS

CLNSOSI开发的一个第三层协议族同,包括如下组件:
1CLNS无连接的网络协议,相当于IP协议:对应者CLNS地址和IP地址
2IS-IS中间系统到中间系统,相当于OSPFEIGRP,此为学习重点。OSI模型下广域网的解决
3ES-IS末端系统到中间系统OSI模型下局域网的解决方案

CLNP地址也可叫做CLNS地址、IS-IS地址、OSI地址
IS-IS使用以上地址标识路由器和建链路状态数据库。
即便是用在一个纯IP的环境中,IS-IS仍然使用上述地址来构建链路状态数据库

IS-IS基本概念
IS-ISLSDB中只有两种LSP:指的是路由级别或者层次
1、level 1,放在L1的链路状态数据库中
2、level 2,放在L2的链路状态数据库中

路由条目也相应的分为两种:
Level 1主内,负责存储本区域内的拓扑信息。
Level 2主外,负责存储区域间的拓扑信息。

IS-IS的路由器默认为L1-2类型的路由器(相当于OSPFABR,既能对外也能对内),还可以有L1路由器、L2路由器。IS-IS中没有常规区域与骨干区域的划分,但通常情况下是把L2当成骨干链路,L1当成接入链路。

IS-ISAD115metric有如下4种标准(EIGRP只有1种标准5个元素),其中后3种都没有实用化:
  1. defaul
  2. error
  3. expense
  4. delay
现在只有第一种在用,后三种都不可用。default标准又分为如下两种:
不论接口带宽就是供这个接口的真实带宽
1、narrow style(狭义的):每个接口不论接口带宽为多少,开销都为定值10,可改动的范围是0-63,总路径开销(接口开销之)不超过1024 ;
2、wide style(广义的):每个接口不论接口带宽为多少,开销都为定值10,可改动的范围是0-224-1,总路径开销不超过232。

ES-IS的介绍:
负责工作站与中间系统之间建立连接的协议,无需配置,自动激活。

Hello包的分类:
  1. IIH 在路由器之间工作
  2. ESH/ISH 在主机与路由器之间工作
如果IS要去找ES的话,路由器发送的是IS hello包;
如果是ES要去找IS的话,主机发送的是ES hello包;
如果IS要去找IS的话,路由器发送的是IS-IS hello包。

NSAP地址:
OSI中使用的地址叫做NSAP可以对系统进行标识,并说明其所属区域一个NSAP地址表明了一个系统,而一个IP地址仅表明一个节点上的一个接口TCP/IP下路由器不同接口的IP地址是不同的,OSI下路由器所有接口用一个NSAP地址表示。 NSAP 地址是变长的,最长只能为 20 个字节,高位表示区域,低位表示系统
IDP
DSP
AFI
IDI
High-Order DSP
System ID
NSEL
Variable-Length
Area Address(高位)
6
Bytes
1
Byte
区域ID:最短1个字节,最长13个字节
系统ID:定长6个字节
NSEL:定长1个字节,NSAP的服务标识符,指明上层服务应用
NSAP:最短8个字节,最长20个字节
49.0001.1111.1111.1111.00
49AFI,表示这是一个本地的、内网的地址;4849就是私网地址
00012个字节的区域,要求是本地唯一,但通常都规划为全局唯一;
1111.1111.11116个字节的系统ID,通常用路由器的以太接口的MAC表示;
00NSEL,通常都设为00,因为对于一个路由器来说它是个三层设备,不需要上层应用;
做实验时可将上面地址简化为0001.1111.1111.1111.00
NSEL00时,就可以把NSAP地址称之为NET-Network Entity Title:(网络实体名)

两个术语:
  1. SNPA/子网接入点,等同于TCP/IP环境中的二层编址概念;
  2. Circuit ID/电路IDNSAP表示路由器的所有接口,所以要用电路ID来对路由器的接口进行唯一的标识
TCP/IP环境下的二层编址如下:
局域网:以太网、邻牌环、802.2802.3
以太网:ATMFRHDLCPPPX.25
SNPA=Layer 2 address
    Virtual circuit ID(DLCI on Frame Relay)
    MAC address on LAN interfaces
Interfaces uniquely identifled by circuit ID:
     On point-to-point interfaces,SNPA is used.
     On LANs,circuit ID=system ID+1个字节的随机字符to from seven-octer LAN IDfor example,1921.6800.0001.01is used.
Cisco routers use host name instead of system IDfor example,R1.01”)
R1.01    R1的第一个接口
R1.02    R1的第二个接口
区域 ID 是用在不同的区域间的,而系统 ID 是用同一个区域内的。

OSI PDUs
IS-IS
Data-link header
OSI family 0xFEFE
IS-IS header
first byte is 0x83
IS-IS TLVs
ES-IS
Data-link header
OSI family 0xFEFE
ES-IS header
first byte is 0x82
ES-IS TLVs

Data-link header
OSI family 0xFEFE
IS-IS header
first byte is 0x81
CLNS
IS-IS PDUs:与OSPF进行对比
OSPFhellow/DBD/LSR/LSU/LSAck
IS-IShellowL1L2hellow/LSRL1L2的)/SNP基于序列号的PDUPSNP部分基于序列号的PDUCNSP完全或完整基于序列号的PDU
SNP=DBD/LSR/LSAck
LSP=LSU
Hellow=hellow

172548683.png

IS-IS的网络类型:
IS-IS没有NBMA网络的概念
  1. Broadcast有类似于OSPFDR概念的设备,叫做DIS,指定的中间系统,DIS的选举和DR相似,先比接口优先级,再比MAC地址、越大越优先,但没有备份DIS,当DIS设备DOWN后会立刻进行新DIS的选举,DIS是分LEVEL的,level 1有自己的DISlevel 2也有自己的DIS
  2. Point-to-point没有类似于OSPFDR概念的设备
OSPFDR/BDR的作用是为了减少邻接会话数量,从而减少LSA洪泛的量,进而减少网络带宽的占用且Drother间是无法建立邻接关系的; DIS 设备除了要与 DIS 建立邻居关系外,它彼此之间也要建立邻接关系,如此一来, DIS 存在的目的就不是为了减少邻接会话数量了。

通过DIS创建一个伪节点,或者叫做仿真节点,目的是代表整个局域网,这种理论比OSPFDR/BDR更为先进和超前,如下图:

172747239.png

172715232.png
将中间那台路由器作为DIS,它将局域网上的所有设备进行一个概括,形成一个仿真节点,简称PSN,对于这个局域网以外的广域网而言,PSN实际上就是一个节点,但PSN的本质是一个局域网。这就产生了一个结果,当广域网上洪泛LSP时,只复制一份给DISDIS将它加入自己的SDB,然后周期性的广播自己的LSDB,也就是每隔10秒发送自己的目录信息,这个目录信息就是CSNPCNSP类似于OSPFDBD,当其它路由器收到此CSNP后,检查其中的目录信息,发现自己有所缺少时,就以PSNP作为请求向DIS发送LSP的请求;如果没有DIS,那么就会洪泛五份进入这个局域网,从上图来看,存在DIS时,带宽占用就减少了80%
综上所述,PSNP=LSAck/LSRCSNP=DBD
172821655.png

IS-IS相关特性:

Broadcast

Point-to-point

Usage

LAN

Full-mesh WAN

PPP,HDLC,

Partial-mesh WAN

Hello timer

3.3 sec for DIS

Else 10 sec

10sec

Adjacencies

N(n-1)/2

n-1

Uses DIS

Yes

No

IIH type

Level 1 IIH

Level 2 IIH

Point-to-Point IIH

点对点网络上没有DIS3.3秒保证了DIS快速收敛,进而保证了整个网络的快速收敛,另一方面,当DISDOWN了后其它非DIS设备能更快的检测到并进行重新选举。
LSP 的本质就是一个包并没有,也就是一个火车头,每个 TLV 就是一节车厢。 第一节车厢是区域 ID ,第二节车厢是邻居,第三节车厢是内部路由前缀,第四节车厢是重分发进来的前缀,这些都是一个 LSP 最基本要携带的内容,不会有不带车厢的火车头在运行。 虽然 IS IS 只有两类网络,但也避免不在 NBMA 网络上运行,比如下层是 FR ATM ,此时对 FR ATM 就要进行配置,要么按 Broadcast 式运行,要么划分子接口,按点对点模式运行。 如果要按 Broadcast 模式运行, OSPF 做了 FR IP 的映射,但在 IS-IS 下,一方面要做 FR IP 的映射,另一方面还要做 FR CLNS 的映射。

OSPF与IS-IS的比较:
1、都是链路状态路由选择协议
2、对区域的认知不同,划分方式也不同:
随着规模越大,IS-IS比OSPF的扩展性更强,这个扩展性重点不是体现在能容纳的路由器更多,资源带宽占用更少,而是体现在IS-IS的TLV上:如果现在网络中出现一种新的应用,这中新应用要求与IGP进行交流和通信,如果这种IGP是OSPF的话,那么需要为此开发一种新的LSA,用来让OSPF支持这种新应用,但这样做所付出的代价巨大,且老的OSPF路由器无法识别而丢弃(就像思科路由器不支持LSA6,也就是MOSPF),也就是向后兼容性很差;但如果这种IGP是IS-IS的话,情况就简单了,它支持任何新的应用都无需开发新的LSP,因为它有TLV-T代表type(新特性的名字)、L代表length(新特性字段长度)、V代表value(新特性的具体属性),TLV相当于一节车厢,而LSP相当于一列车,当出现新应用后只需要加挂一节车厢即可,当出现和OSPF里类似的无法识别的情况时,不是作丢弃操作,而是跳过不读取而已。OSPF为了支持IPV6而专门开发了一个V3的版本,而对于IS-IS来说,无需再专门开发一个针对IPV6的版本,只要增加一个新的支持IPV6的TLV就可以了。IS-IS超强扩展性就在于此。


IS-IS和OSPF的区别
1、企业网只可能采用OSPF,运营商大多采用IS-IS。
2、 IETF开发了OSPF,只支持IP。
3、IS-IS是双栈协议DUAL,既支持TCP/IP,又能支持OSI七层模型;OSPF只支持TCP/IP。
4、OSPF的链路状态数据库当中所有承载的是否LSA1-11(有些在用,而有些还在草案阶段);IS-IS的链路状态数据库当中所承载的是LSP(链路状态包),已经是独立的第三层PDU了,而不像OSPFLSA那样还需要加上一个IP包头,可以直接向下封装成第二层的帧。
5、OSPF使用的算法是SPF;IS-IS使用的算法是SPF+PRC(部分路由计算)。
6、IS-IS中不再有区域0、常规区域、骨干区域的概念,更没有虚链路的存在,相比OSPF,它更符合同链路状态路由选择协议的定位。

IS-IS的优点
优点是先天无环路,收敛快速,不足是内存和CPU占用较多,但对网络资源链路带宽的使用率很高,因为使用的是触发更新方式,它比OSPF收敛还要快。

IS-IS的缺点
一、不灵活,大多要手动的分配接口开销,不适合企业使用(IS-IS好是好,但没有必要去用,因为OSPF已经能够完成胜任在企业网中的工作),但对运营商来说不是太大的问题,因为运营商考虑更多的是路由策略的实施控制,所以相对于OSPF的自动metric生成,他们更倾向于手工配置,运营商的核心网通常都使用IS-IS。 运营商的核心网的接口带宽种类很少: 2.5G 10G 40G ,所以分配起来也方便,比如对应分为: 15 5 1 就可以了。
二、 IS-IS的一条运行规则-----如果将某个路由器的L2数据库删除掉、或者说将某个路由器配置成L1路由器,那么高它最近的L1-2路由器会自动的向它宣告一条默认路由,用于引导该L1路由器去往外部区域,这会一口咬定来一个比较严重的问题:路由次优化(走的不是最佳路径)和非对称路由(去程回程路径不一致)。上图所示,Y不是站在全局的高度而是站在本区域的高度考虑如何去X的问题。
解决方案:route leaking路由泄露IS-IS内置的一个技术)
使用TLV中的“上、下”位,原理是Y把关于XL2的路由信息引入自己的L1的链路状态数据库中,这样Y就能以全局的高度考虑如何去往X了。

IS-IS基本配置
172904833.png
R1(config)#clns routing既要路由IP流量,又要路由CLNS流量就要配置此命令,纯IP环境中不用
R1(config)#router isis启动IS-IS路由进程,如有多个进程就要加上进程号,只有一个进程可省略该进程字段

R2(config)#clns routing
R2(config)#router isis
R2(config-router)#net 49.0002.2222.2222.2222.00
R2(config-router)#exit
R2(config)#int s0/1
R2(config-if)#ip router isis
R2(config-if)#int lo0
R2(config-if)#ip router isis
R2(config-if)#exit
R1(config)#clns routin
R1(config)#clns routing
R1(config)#router isis
R1(config-router)#net 49.0001.1111.1111.1111.00
R1(config-router)#exit
R1(config)#int s0/1
R1(config-if)#ip router isis
R1(config-if)#int lo0
R1(config-if)#ip router isis
R1(config-if)#exit
R1(config)#end
查看邻居关系:
R1#sh isis neighbors

System Id      Type Interface IP Address      State Holdtime Circuit Id
R2             L2   Se0/0     12.1.1.2        UP    22       01
R1#
查看isis的数据库
R1#sh isis database

IS-IS Level-1 Link State Database:
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime      ATT/P/OL
R1.00-00            * 0x00000005   0x90F6        1157              1/0/0
IS-IS Level-2 Link State Database:
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime      ATT/P/OL
R1.00-00            * 0x00000004   0xBE6E        1150              0/0/0
R2.00-00              0x00000005   0x60C1        1149              0/0/0
R1#
*号的是自己直连的。
查看路由表:
R1#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
      D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
      N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
      E1 - OSPF external type 1, E2 - OSPF external type 2
      i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
      ia - IS-IS inter area, * - candidate default, U - per-user static route
      o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

    1.0.0.0/32 is subnetted, 1 subnets
C       1.1.1.1 is directly connected, Loopback0
    2.0.0.0/32 is subnetted, 1 subnets
i L2    2.2.2.2 [115/20] via 12.1.1.2, Serial0/0
    12.0.0.0/24 is subnetted, 1 subnets
C       12.1.1.0 is directly connected, Serial0/0
R1#
修改路由level:
方法一:在路由进程下修改,且全局生效,也就是该路由器的所有接口上生效。
R1(config)#router isis
R1(config-router)#is-type level-2-only
方法二:在接口下修改,只对该接口生效,但接口配置超越全局配置
R2(config)#int s0/0
R2(config-if)#isis circuit-type level-2-only
METRIC的修改
方法一:在路由进程下修改,且全局生效,也就是该路由器的所有接口上生效。
R1(config)#router isis
R1(config-router)#metric 20 level-2
方法二:在接口下修改,只对该接口生效,但接口配置超越全局配置
R2(config)#int s0/0
R2(config-if)#isis metric 30

路由汇总:R2就为S1/0,且R2上还有一个IP14172.16.3.1/24
IS-IS LAB
两个区域
172920394.png
R2上配置回环口的IP地址:
R2(config)#int lo11
R2(config-if)#ip add 172.16.0.1 255.255.255.0
R2(config-if)#ip router isis
R2(config-if)#int lo12
R2(config-if)#ip add 172.16.1.1 255.255.255.0
R2(config-if)#ip router isis
R2(config-if)#int lo13
R2(config-if)#ip add 172.16.2.1 255.255.255.0
R2(config-if)#ip router isis
R2(config-if)#int lo14
R2(config-if)#ip add 172.16.3.1 255.255.255.0
R2(config-if)#ip router isis
R2(config-if)#exit
R2(config)#
R1上面验证:
R1#sh ip rout
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
      D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
      N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
      E1 - OSPF external type 1, E2 - OSPF external type 2
      i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
      ia - IS-IS inter area, * - candidate default, U - per-user static route
      o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

    1.0.0.0/24 is subnetted, 1 subnets
C       1.1.1.0 is directly connected, Loopback0
    2.0.0.0/24 is subnetted, 1 subnets
i L2    2.2.2.0 [115/30] via 12.1.1.2, Serial0/0
    172.16.0.0/24 is subnetted, 4 subnets
i L2    172.16.0.0 [115/30] via 12.1.1.2, Serial0/0
i L2    172.16.1.0 [115/30] via 12.1.1.2, Serial0/0
i L2    172.16.2.0 [115/30] via 12.1.1.2, Serial0/0
i L2    172.16.3.0 [115/30] via 12.1.1.2, Serial0/0
    12.0.0.0/24 is subnetted, 1 subnets
C       12.1.1.0 is directly connected, Serial0/0
R1#

R2上面做汇总:
R2(config)#router isis
R2(config-router)#summary-address 172.16.0.0 255.255.252.0 level-2
R1上面验证:
R1#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
      D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
      N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
      E1 - OSPF external type 1, E2 - OSPF external type 2
      i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
      ia - IS-IS inter area, * - candidate default, U - per-user static route
      o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

    1.0.0.0/24 is subnetted, 1 subnets
C       1.1.1.0 is directly connected, Loopback0
    2.0.0.0/24 is subnetted, 1 subnets
i L2    2.2.2.0 [115/30] via 12.1.1.2, Serial0/0
    172.16.0.0/22 is subnetted, 1 subnets
i L2    172.16.0.0 [115/30] via 12.1.1.2, Serial0/0
    12.0.0.0/24 is subnetted, 1 subnets
C       12.1.1.0 is directly connected, Serial0/0
R1#
上面就将172.16.0.0给汇总了。
R2#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
      D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
      N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
      E1 - OSPF external type 1, E2 - OSPF external type 2
      i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
      ia - IS-IS inter area, * - candidate default, U - per-user static route
      o - ODR, P - periodic downloaded static route
Gateway of last resort is not set

    1.0.0.0/24 is subnetted, 1 subnets
i L2    1.1.1.0 [115/50] via 12.1.1.1, Serial0/0
    2.0.0.0/24 is subnetted, 1 subnets
C       2.2.2.0 is directly connected, Loopback0
    172.16.0.0/16 is variably subnetted, 5 subnets, 2 masks
C       172.16.0.0/24 is directly connected, Loopback11
i su    172.16.0.0/22 [115/10] via 0.0.0.0, Null0
C       172.16.1.0/24 is directly connected, Loopback12
C       172.16.2.0/24 is directly connected, Loopback13
C       172.16.3.0/24 is directly connected, Loopback14
    12.0.0.0/24 is subnetted, 1 subnets
C       12.1.1.0 is directly connected, Serial0/0
R2#
R2的路由表上面会生成一条汇总出来的路由指向空链接。 i su
查关命令:
Clear isis *清楚isis的进程
Sh clns
Sh clns protocol
Sh clns interface
Sh isis database
Sh clns neighborssh isis neighbors结果一样