IS-IS的由来
ISO开发了IS-IS,文档号10589,最早由美国政府和军方使用,现过波到了运营商。
IS-IS中的术语
System(OSI的术语)= node(节点)(TCP/IP中的术语)
末端系统ES(OSI的术语)=主机节点(TCP/IP中的术语)PC、服务器、打印机等等
中间系统IS(OSI的术语)=网络节点(TCP/IP中的术语)路由器、接入服务器等等
CLNS:无连接的网络服务
CONS:面向连接的网络服务
CLNS取代了CONS
CLNS是OSI开发的一个第三层协议族同,包括如下组件:
1.CLNS无连接的网络协议,相当于IP协议:对应者CLNS地址和IP地址
2.IS-IS中间系统到中间系统,相当于OSPF或EIGRP,此为学习重点。OSI模型下广域网的解决
3.ES-IS末端系统到中间系统。OSI模型下局域网的解决方案
CLNP地址也可叫做CLNS地址、IS-IS地址、OSI地址
IS-IS使用以上地址标识路由器和建链路状态数据库。
即便是用在一个纯IP的环境中,IS-IS仍然使用上述地址来构建链路状态数据库
IS-IS基本概念
IS-IS的LSDB中只有两种LSP:指的是路由级别或者层次
1、level 1,放在L1的链路状态数据库中
2、level 2,放在L2的链路状态数据库中
路由条目也相应的分为两种:
Level 1主内,负责存储本区域内的拓扑信息。
Level 2主外,负责存储区域间的拓扑信息。
IS-IS的路由器默认为L1-2类型的路由器(相当于OSPF的ABR,既能对外也能对内),还可以有L1路由器、L2路由器。IS-IS中没有常规区域与骨干区域的划分,但通常情况下是把L2当成骨干链路,L1当成接入链路。
IS-IS的AD是115,metric有如下4种标准(EIGRP只有1种标准5个元素),其中后3种都没有实用化:
-
defaul
-
error
-
expense
-
delay
现在只有第一种在用,后三种都不可用。而default标准又分为如下两种:
不论接口带宽就是供这个接口的真实带宽
1、narrow style(狭义的):每个接口不论接口带宽为多少,开销都为定值10,可改动的范围是0-63,总路径开销(接口开销之)不超过1024 ;
2、wide style(广义的):每个接口不论接口带宽为多少,开销都为定值10,可改动的范围是0-224-1,总路径开销不超过232。
ES-IS的介绍:
负责工作站与中间系统之间建立连接的协议,无需配置,自动激活。
Hello包的分类:
-
IIH 在路由器之间工作
-
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
49:AFI,表示这是一个本地的、内网的地址;48、49就是私网地址
0001:2个字节的区域,要求是本地唯一,但通常都规划为全局唯一;
1111.1111.1111:6个字节的系统ID,通常用路由器的以太接口的MAC表示;
00:NSEL,通常都设为00,因为对于一个路由器来说它是个三层设备,不需要上层应用;
做实验时可将上面地址简化为0001.1111.1111.1111.00
当NSEL为00时,就可以把NSAP地址称之为NET-Network Entity Title:(网络实体名)
两个术语:
-
SNPA/子网接入点,等同于TCP/IP环境中的二层编址概念;
-
Circuit ID/电路ID,NSAP表示路由器的所有接口,所以要用电路ID来对路由器的接口进行唯一的标识
TCP/IP环境下的二层编址如下:
局域网:以太网、邻牌环、802.2、802.3
以太网:ATM、FR、HDLC、PPP、X.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 ID(for example,1921.6800.0001.01)is used.
Cisco routers use host name instead of system ID(for 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进行对比
OSPF:hellow/DBD/LSR/LSU/LSAck
IS-IS:hellow(L1和L2的hellow)/LSR(L1和L2的)/SNP基于序列号的PDU(PSNP部分基于序列号的PDU、CNSP完全或完整基于序列号的PDU)
SNP=DBD/LSR/LSAck
LSP=LSU
Hellow=hellow
IS-IS的网络类型:
IS-IS没有NBMA网络的概念
-
Broadcast有类似于OSPF的DR概念的设备,叫做DIS,指定的中间系统,DIS的选举和DR相似,先比接口优先级,再比MAC地址、越大越优先,但没有备份DIS,当DIS设备DOWN后会立刻进行新DIS的选举,DIS是分LEVEL的,level 1有自己的DIS,level 2也有自己的DIS
-
Point-to-point没有类似于OSPF的DR概念的设备
OSPF中DR/BDR的作用是为了减少邻接会话数量,从而减少LSA洪泛的量,进而减少网络带宽的占用且Drother间是无法建立邻接关系的;
非
DIS
设备除了要与
DIS
建立邻居关系外,它彼此之间也要建立邻接关系,如此一来,
DIS
存在的目的就不是为了减少邻接会话数量了。
通过DIS创建一个伪节点,或者叫做仿真节点,目的是代表整个局域网,这种理论比OSPF的DR/BDR更为先进和超前,如下图:
将中间那台路由器作为DIS,它将局域网上的所有设备进行一个概括,形成一个仿真节点,简称PSN,对于这个局域网以外的广域网而言,PSN实际上就是一个节点,但PSN的本质是一个局域网。这就产生了一个结果,当广域网上洪泛LSP时,只复制一份给DIS,DIS将它加入自己的SDB,然后周期性的广播自己的LSDB,也就是每隔10秒发送自己的目录信息,这个目录信息就是CSNP,CNSP类似于OSPF的DBD,当其它路由器收到此CSNP后,检查其中的目录信息,发现自己有所缺少时,就以PSNP作为请求向DIS发送LSP的请求;如果没有DIS,那么就会洪泛五份进入这个局域网,从上图来看,存在DIS时,带宽占用就减少了80%。
综上所述,PSNP=LSAck/LSR,CSNP=DBD
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 |
点对点网络上没有DIS,3.3秒保证了DIS快速收敛,进而保证了整个网络的快速收敛,另一方面,当DIS备DOWN了后其它非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超强扩展性就在于此。
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了,而不像OSPF的LSA那样还需要加上一个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把关于X的L2的路由信息引入自己的L1的链路状态数据库中,这样Y就能以全局的高度考虑如何去往X了。
IS-IS基本配置
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上还有一个IP14:172.16.3.1/24
IS-IS LAB
两个区域
在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 neighbors与sh isis neighbors结果一样
转载于:https://blog.51cto.com/power1990/1338488