IS-IS的基本概念
isis(中间系统到中间路由协议)
链路状态路由协议、IGP、无类路由协议;
IS-IS是一种链路状态路由协议,IS-IS与OSPF在许多方面非常相似:运行IS-IS协议的直连设备之间通过发送Hello报文发现彼此,然后建立邻接关系,并交互链路状态信息。
IS-IS是ISO定义的OSI协议栈中的CLNS(ConnectionLess Network Service,无连接网络服务)的一部分。
CLNS由以下三个部分组成:
ES:End System,终端系统,类似于IP网络环境中的主机。
ES-IS:End System to Intermediate System,终端系统到中间系统。
ISIS工作过程
1、建立isis邻居关系
2、同步LSDB(isis没有证书邻接关系的状态机,同步LSDB时无状态变化)
LSDB:所有运行isis的路由器都有,存放LSP;
LSP(链路状态协议数据单元):携带isis路由的链路状态信息(包含路由信息以及拓扑信息)
3、isis设备会根据同步完成的LSDB进行spf计算,得出网络拓扑,得出最优路由放进路由表
isis报文
结构:isis层——数据链路层头部(802.3)
发送方式:组播发送
dmac:01-80-C2-00-00-14(针对所有level-1路由器,此地址为组播地址)
01-80-C2-00-00-15 (针对所有level-2路由器)
isis报文通过TLV的格式携带关键信息:
T:类型 L:长度 V:值
好处:1、提高报文承载能力,只携带需要的东西;
2、增强扩展性,如支持ipv6时,只需要新增TLV即可;
报文分类:
1、hello报文(IIH)
作用:发现、建立、维护isis邻居,感知isis邻居的离开(周期10s/次,超时时间为hello的三倍:默认30s);
2、CSNP报文(全序列号报文)
携带自身LSDB中所有的lsp的摘要信息,用于告知邻居,自身的LSDB中包含哪些LSP
3、PSNP报文(部分序列号报文)
携带自身需要请求的LSP以及在收到LSP后,携带收到的LSP的摘要信息,用于确认收到;
4、LSP(链路状态报文)
携带isis路由器的链路状态信息,在收到PSNP请求时,用于回应;
区域划分
分类:level-1(非骨干区域)、level-2(骨干区域)
基于路由器划分;
划分原则:骨干区域有且仅有一个,非骨干区域需要围绕骨干区域建立(非骨干区域的通信,需要经过骨干区域)
区域id:不用于区分骨干以及非骨干区域,一台isis路由器可以配置三个;
isis路由器类型
1、level-1路由器:只属于level-1区域,只维护level-1区域的LSDB;(L1)
2、level-2路由器:只属于level-2区域,只维护level-2区域的LSDB;(L2)
3、level-1-2:同属属于level-1区域以及level-2区域,同时维护level-1以及level-2区域的LSDB;(L1-2)
默认属于L1-2
level-1路由器:可以跟level-1路由器以及level-1-2路由器建立level-1邻居;
level-2路由器:可以跟level-2路由器以及level-1-2路由器建立level-2邻居;
level-1以及level-2路由器之间无法建立isis邻居;
level-1-2路由器之间可以建立level-1以及level-2邻居;
NSAP地址
NSAP(Network Service Access Point,网络服务访问点)是OSI协议栈中用于定位资源的地址,主要用于提供网络层和上层应用之间的接口。NSAP包括IDP及DSP,如下图所示:
NET
NET(Network Entity Title,网络实体名称)是OSI协议栈中设备的网络层信息,主要用于路由计算,由区域地址(Area ID)和System ID组成,可以看作是特殊的NSAP(SEL为00的NSAP)。
每台运行IS-IS的网络设备至少需拥有一个NET,当然,一台设备也可以同时配置多个NET,但是这些NET的System ID必须相同。
唯一标识一台isis路由器;
组成:区域id+sys id+SEL
大小:8~20B
区域id(1~13B):一般使用格式为xx.xxxx,用于标识一个区域;
建立L1邻居时,要求区域id一致;
建立L2邻居时,区域id可以不一致;
system id(6B):用于唯一标识路由器,一台设备只能配置一个;
格式:xxxx.xxxx.xxxx
SEL(1B):代表isis工作在什么网络环境之下;
00——代表ip网络
非00——非ip网络
NET地址:特殊的NSAP地址,其中SEL值固定为00;
EG:49.0001.0000.0000.0001.00——R1工作在区域49.0001中;
49.0003.0000.0000.0005.00——R5工作在区域49.0003中;
isis基础配置
isis 1 //创建isis进程
is-level level-1 //修改isis路由器类型为L1,默认为L1-2
network-entity 49.0001.0000.0000.0001.00 //设置NET地址
interface GigabitEthernet0/0/0
isis enable 1 //进入接口使能该接口进isis进程1;
display isis peer //查看isis邻居
interface GigabitEthernet0/0/1
isis circuit-level level-2
//修改接口等级,一般在L1-2上做,可以使该接口只发送某个等级的hello报文,可以节省链路资源;
IS-IS和OSPF区域划分的区别
在IS-IS中,每个路由器都只属于一个区域;而在OSPF中,一个路由器的不同接口可以属于不同的区域。
在IS-IS中,单个区域没有骨干与非骨干区域的概念(整个骨干区域不仅包括Area49.0002中的所有路由器,还包括其它区域的Level2和Level-1-2路由器);而在OSPF中,Area0被定义为骨干区域。
在IS-IS中,Level-1和Level-2级别的路由都采用SPF算法,分别生成最短路径树SPT(可以不在一个区域)(Shortest Path Tree);而在OSPF中,只有在同一个区域内才使用SPF算法,区域之间的路由需要通过骨干区域来转发。
网络类型
底层链路 | 是否选举DIS | 报文发送方式 | |
p2p | 点到点链路 | 不选 | 09-00-2B-00-00-05 |
广播型网络 | 以太网链路 | 选 | 01-80-C2-00-00-14/15 |
在接口下:isis circuit-type p2p //修改接口网络类型为P2P
IS-IS开销值
IS-IS使用Cost(开销)作为路由度量值,Cost值越小,则路径越优。IS-IS链路的Cost与设备的接口有关,与OSPF类似,每一个激活了IS-IS的接口都会维护接口Cost。然而与OSPF不同的是,IS-IS接口的Cost在缺省情况下并不与接口带宽相关(在实际部署时,IS-IS也支持根据带宽调整Cost值),无论接口带宽多大,缺省时Cost为10。
一条IS-IS路径的Cost等于本路由器到达目标网段沿途的所有链路出接口的Cost总和。
IS-IS有三种方式来确定接口的开销,按照优先级由高到低分别是:
接口开销:为单个接口设置开销。
全局开销:为所有接口设置开销。
自动计算开销:根据接口带宽自动计算开销。
缺省时,华为路由器采用的开销类型是narrow。
narrow类型下使用的TLV:
128号TLV(IP Internal Reachability TLV):用来携带路由域内的IS-IS路由信息。
130号TLV(IP External Reachability TLV):用来携带路由域外的IS-IS路由信息。
2号TLV(IS Neighbors TLV):用来携带邻居信息。
wide类型下使用的TLV:
135号TLV(Extended IP Reachability TLV):用来替换原有的IP reachability TLV,携带IS-IS路由信息,它扩展了路由开销值的范围,并可以携带sub TLV。
22号TLV(IS Extended Neighbors TLV):用来携带邻居信息。
isis详细工作过程(邻居状态机)
一、建立isis邻居
1、P2P网络
(1)3-way(默认模式)
down:isis路由器运行的初始状态,处于该状态的设备说明没有收到任何的isis报文,可以向外发送hello报文发现邻居;
init:当isis路由器收到hello报文,并且其中TLV-240中不携带自身的sys id则进入该状态;
TLV-240:携带邻居的sys id,属于P2P网络专属;
up:当isis路由器收到hello报文,并且其中TLV-240中携带自身的sys id则进入该状态;
当双方进入up状态时,isis邻居关系建立完成;
(2)2-way模式
down:isis路由器运行的初始状态,处于该状态的设备说明没有收到任何的isis报文,可以向外发送hello报文发现邻居;
up:只要isis路由器收到hello报文,即可进入up状态
优势:收敛速度快;
缺陷:不可靠,如果网路中出现单通故障时,会导致一边up、一边down,进一步会导致up那一边尝试同步LSDB,会导致链路资源浪费;
如果一边为2-way,一边为3-way,可以正常建立isis邻居;
如果一边为2-way,一边为3-way only,无法正常建立isis邻居;
配置
interface GigabitEthernet0/0/0
isis circuit-type p2p
isis ppp-negotiation 2-way //将接口的建立isis邻居的模式修改为2-way
isis ppp-negotiation 3-way only //修改接口建立isis邻居的方式为3-way only,只接受通过3-way建立,不向2-way兼容;
2、广播型网络
(1)只有3-way模式
down:isis路由器运行的初始状态,处于该状态的设备说明没有收到任何的isis报文,可以向外发送hello报文发现邻居;
init:当isis路由器收到hello报文,并且其中TLV-6中不携带自身的mac地址则进入该状态;
TLV-6:携带邻居的mac地址,属于广播型网络专属;
up:当isis路由器收到hello报文,并且其中TLV-6中携带自身的mac地址则进入该状态;
当双方进入up状态时,isis邻居关系建立完成;
广播网络中的邻接关系建立过程
两台运行IS-IS的路由器在交互协议报文实现路由功能之前必须首先建立邻接关系。在不同类型的网络上,IS-IS的邻接建立方式并不相同。在广播网络中,使用三次握手建立邻接关系。
二、同步LSDB
在同步LSDB的过程中,邻居状态不会发生改变;
1、P2P网络
(1)邻居建立完成后,双方会相互发送一次CSNP报文,用于告知对端自身LSDB中包含那些LSP;
(2)双方各自根据收到的CSNP,对比自身的LSDB,根据自身缺少的LSP,发送PSNP进行请求;
(3)收到PSNP后,回应LSP;
(4)收到LSP后,发送PSNP进行确认;
2、广播型网络
(1)广播型网路邻居建立完成后,会先进行dis选举;
选举规则:先比dis优先级,越大越优;(默认为64,可调范围0~127,其中0没有特殊含义)
再比mac地址,越大越优;
特点:hello时间会变为3.3s;
每10s向外发送一次CSNP报文;
(2)选举完dis后,isis路由器会把自身LSDB中的LSP向外发送,再各自按需接收自身没有的;
(3)dis会每10s向外发送一次CSNP报文,用于确保广播型网路中的isis设备LSDB同步完成;
(4)如果其他设备收到DIS的CSNP后,发现自身有缺少的LSP,则向DIS发送PSNP,报文进行请求,DIS收到后回应LSP,无需确认;
(5)如果其他设备收到DIS的CSNP后,发现DIS缺少了自身的LSP,则直接向DIS发送该LSP,DIS收到后无需确认;
广播型网络与P2P网络同步LSDB过程中的区别
1、P2P网络中收到LSP需要发送PSNP进行确认,广播型网络不需要;
2、P2P网络只会在同步LSDBS时发送一次CSNP,广播型网络中会由DIS周期发送;
3、P2P网络所有设备均能发送CSNP,广播型网络只有DIS可以发送
DIS(指定中间系统)
作用:用于周期性发送CSNP,确保广播型网络中,LSDB能同步成功;
无法减少邻接关系的数目;
充当广播型网络中的伪节点(SPF计算时)
hello时间:3.3s
是否存在备份:没有
抢占:支持
选举时间:邻居建立好就能选;
interface GigabitEthernet0/0/0
isis dis-priority 65 //修改接口的dis优先级
dis isis int //查看接口的isis信息,其中可以查看是否为dis;
DR
作用:减少邻接关系数目
充当广播型网络中的伪节点(SPF计算时)
hello时间:10s
是否存在备份:BDR作为备份
抢占:不支持
选举时间:120s
LSP(链路状态报文)
作用:携带isis路由器的拓扑以及路由信息;
唯一标识:LSP -ID(8B);
LSP-ID:system id+伪节点号+分片号;
xxxx.xxxx.xxxx(6B).xx(1B).xx(1B)
system id:标识产生该LSP的设备;
伪节点号:标识该LSP是否为伪节点LSP;
=/=0——伪节点LSP;
=0——实节点LSP;
LSP分类
(1)根据传递范围分类:L1 LSP、L2 LSP
(2)根据携带的内容分类:
a、伪节点LSP
只有DIS会产生,描述广播型网络的拓扑信息;
b、非伪节点LSP(实节点LSP)
所有isis路由器均会产生,描述P2P网络的路由以及拓扑信息和广播型网络的路由信息;
配置命令
dis isis LSDB //查看isis的LSDB;
dis isis LSDB {LSP id} verbose //查看某一份LSP的详细信息
isis开销:
默认情况下,isis中所有的接口开销均为10;
interface GigabitEthernet0/0/1
isis cost 5 //修改接口开销
CSNP
CSNP包含该设备LSDB中所有的LSP摘要,路由器通过交互 CSNP来判断是否需要同步LSDB。
Source ID:发出CSNP报文的路由器的System ID。
Start LSP:CSNP报文中第一个LSP的ID值。
End LSP ID:CSNP报文中最后一个LSP的ID值
PSNP
PSNP只包含部分LSP的摘要信息(与CSNP不同):
在点到的网络中,当收到LSP时,使用PSNP对收到的LSP进行确认
开销计算方式
(1)窄度量(默认)
开销的调整范围:1~63
可以区分内外部路由:
内部路由:通过TLV128携带;
外部路由:通过TLV130携带;
(2)宽度量
开销的调整范围:无限大
无法区分内外部路由;
所有路由均通过TLV-135携带;
配置命令
isis 1
cost-style wide //修改开销度量方式为宽度量
注意事项:一边为宽度量,一边为窄度量时,无法正常计算路由(使用的TLV不一致,无法相互识别)
因此,如果修改一台设备的开销度量方式,整个进程的设备均需要调整;
ospf与isis的区域
ospf isis
TCP/IP 网络 数据链路
综合实验
1、按照题目要求配置ip地址
2、如图所示,R1\R2\R3\R5\R6间运行isis进程1
所有路由器均属于level-2路由器,均属于49.0005区域;
system id要求如下:
R1:0000.0000.0001
R2:0000.0000.0002
R3:0000.0000.0003
R5:0000.0000.0005
R6:0000.0000.0006
并且使能图中的接口
3、R3/R4/R7之间运行ospf进程1,并且按照图中要求划分区域,宣告网段
4、在ospf进程中部署vlink,实现R3可以访问到R7的loopback接口;
5、在R4与R3之间配置接口认证,要求认证类型为明文认证,密码为huawei
6、修改网络类型使R2与R3之间、R5与R6之间不存在DIS;
7、在R3上进行双向引入,使R6与R7可以互访;
8、通过路由汇总技术,ospf进程中只学习到192.168.1.0/24路由
9、通过修改R5的G0/0/2的接口开销为100,使R6访问R7时,走R5-R2-R3-R4-R7
1、配置ip地址
sy
sysname R1
interface GigabitEthernet0/0/1
ip address 10.1.13.2 255.255.255.0
其他路由都类似
2.配置isis
R1
isis 1
is-level level-2
network-entity 49.0005.0000.0000.0001.00
interface GigabitEthernet0/0/0
isis enable 1 //进入接口使能该接口进isis进程1;
display isis peer //查看isis邻居
配置loopback接口
interface LoopBack0
ip address 192.168.1.1 255.255.255.255
其他路由都类似,只需要按题意修改49.0005.0000.0000.0002.00
3.