HCIP学习记录(一)[IS-IS协议详解]
一、前言
IS-IS
(Intermediate System-to-Intermediate System,中间系统到中间系统)路由协议最初是ISO
(the International Organization for Standardization,国际标准化组织)为CLNP
(Connection Less Network Protocol,无连接网络协议)设计的一种动态路由协议。现在CLNP
网络已经基本不再别使用,但是IS-IS
协议由于其优秀性,被保留了下来。
为了提供对IP路由的支持,通过对IS-IS
进行扩充和修改,使其能够同时应用在TCP/IP和OSI环境中,形成了 集成化IS-IS
(Integrated IS-IS或Dual IS-IS)。现在提到的IS-IS协议都是指集成化的IS-IS协议,主要用于城域网和承载网(运营商骨干网)。
1. 基本特性
- 与
OSPF
协议非常的相似,IS-IS
协议也是基于链路状态并使用最短路径优先算法进行路由的IGP
协议 - 是一种链路状态协议。使用最短路径优先SPF(Shortest Path First)算法进行路由计算。
IS-IS
是一种基于 TLV 结构的协议,IS-IS
协议任何路由信息都是使用TLV
进行传递的,结构简单,便于扩展- 同样是基于
TLV
结构的协议还有OSPFv3
@注:
IGP
(Interior Gateway Protocol)内部网关协议,是在一个自治网络内网关(主机和路由器)间交换路由信息的协议。路由信息能用于网间协议(IP)或者其它网络协议来说明路由传送是如何进行的。
IGP协议包括RIP、OSPF、IS-IS、IGRP、EIGRP。
2.园区网和骨干网对比
2.1、园区网特点
- 应用型网络,主要面向企业网用户。
- 路由器数量偏少,动态路由的LSDB库容量相对偏少,三层路由域相对偏少。
- 有出口路由的概念,对内部外部路由划分敏感。
- 地域性跨度不大,带宽充足,链路状态协议开销对带宽占用比偏少。
- 路由策略和策略路由应用频繁多变,需要精细化的路由操作。
- OSPF的多路由类型(内部/外部),多区域类型(骨干/普通/特殊),开销规则优良(根据带宽设定),网络类型多样(最多五种类型)的特点在园区网得到了极大的发挥。
2.2、骨干网特点
- 服务型网络,由ISP(互联网服务提供商)组建,并为终端用户提供互联服务。
- 路由调度占据绝对统治地位,路由器数量庞大。
- 架构层面扁平化,要求IGP作为基础路由为上层BGP协议服务。
- LSDB规模宏大,对链路收敛极度敏感,线路费用高昂。
- 追求简单高效,扩展性高,满足各种客户业务需求(IPV6/IPX)。
- IS-IS的快速算法(PRC得到加强),简便报文结构(TLV),快速邻居关系建立,大容量路由传递(基于二层开销低)等一系列特点在骨干网有着天然的优势。
二、基础内容
1. IS-IS基础术语及名词解释
缩写 | OSI术语 | IETF术语 |
---|---|---|
IS | Intermediate System | Router |
ES | End System | Host |
DIS | Designated Intermediate System | OSPF中的DR |
PDU | Packet data unit | 报文数据单元 (IP packet) |
SysID | System ID | OSPF中的Router ID |
LSP | Link State PDU | OSPF中的LSA,带路由信息 |
IIH | IS-IS Hello PDU | OSPF中的Hello报文 |
PSNP | Partial Sequence Number PDU | OSPF中的LSR或LSAck报文 |
CSNP | Complete Sequence Number PDU | OSPF中的DD报文 |
名词解释:
-
IS(Intermediate System,中间系统)
IS是指运行IS-IS协议的路由设备。它是IS-IS协议中生成路由和传播路由信息的基本单元。就是指路由器
-
RD(Routing Domain,路由域)
RD是指由多个使用IS-IS协议的路由器所组成的范围。
-
Area(区域)
Area是IS-IS路由域的细分单元。IS-IS与OSPF一样,允许将整个路由域分为多个区域,且总体上也分为普通区域和骨干区域两类,但 IS-IS 的普通区域必须与骨干区域直接连接(没有OSPF中的“虚连接”),普通区域之间不能直接连接。
Area又可根据网络中路由器的类型划分为Level-1区域(全由Level-1路由器组成)和Level-2区域(由Level-2和Level-1-2路由器组成)ISIS
允许将整个路由域分为多个区域.- 一个路由器目前最多有254个Area ID. 配置不同的区域ID是为了平滑的进行区域合并,分割,转换使用.
- 和
OSPF
不同的是,一个路由必须整个属于某个区域,而不能是某些接口属于一个区域, 其他的接口属于另外一个区域.(和BGP
有点类似)
-
Sys ID(System ID,系统ID)
在IS-IS 协议中使用Sys ID 唯一标识一台路由器,必须保证在整个IS-IS 路由域中每台路由器的系统ID 都是唯一的,与OSPF 中的路由器ID(Router ID)一样。
-
LSP(Link-State Packet,链路状态报文)
LSP是IS-IS网络中的设备用来通过泛洪方式向所有邻居通告自己的链路状态信息的报文,类似于OSPF 中的 LSA(链路状态通告)。网络中每台路由器都会产生带有自己系统ID标识的LSP报文,可以通过发送LSP不断更新自己的链路状态信息。
-
LSDB(Link State DataBase,链路状态数据库)
路由器的每个区域都有一个专门存放该区域所接收的所有 LSP 报文的数据库。通过LSP的泛洪,最终使整个区域内的所有路由器拥有相同的LSDB。
-
DIS(Designated IS,指定IS)
在IS-IS广播网络类型中需要选举一个指定IS(DIS),以便周期性地向区域内其他路由器进行区域LSDB 数据库的泛洪(区域内的非DIS 仅与DIS 之间进行LSDB 交互,非DIS之间不能直接进行LSDB交互),使整个区域中各路由器的LSDB同步。类似于OSPF中的DR。
2. 地址结构
由于IS-IS
原来是为CLNP
设计的。CLNP
网络不是使用IP地址来进行通信的,而是使用NSAP
地址来进行通信。即便现在是集成IS-IS
,但是使用NSAP
地址这项还是保留了下来。
-
NSAP地址
NSAP地址相较于IP地址复杂一些。但是我们可以对比IP地址来理解NSAP地址。
NSAP地址由
IDP
与DSP
组成。 -
IDP
IDP相当于IP地址中的主网络号(网段)。它是由ISO规定,并由AFI与IDI两部分组成。AFI表示地址分配机构和地址格式,IDI用来标识域。
-
DSP
DSP相当于IP地址中的子网号和主机地址。它由High Order DSP、System ID和SEL三个部分组成。
High Order DSP
用来分割区域,System ID
用来区分主机,SEL用来指示服务类型。 -
Area Address
Area Address(Area ID)
由IDP和DSP中的High Order DSP
组成,既能够标识路由域,也能够标识路由域中的区域。因此,它们一起被称为区域地址相当于OSPF中的区域编号。
-
System ID
System ID
用来在区域内唯一标识主机或路由器。在设备的实现中,它的长度固定为48bit(6字节)。相当于OSPF中的Router ID
-
SEL
SEL的作用类似IP中的“协议标识符”,不同的传输协议对应不同的SEL。
在HCIP课程中,SEL均为00。
-
NET
Network Entity title(特殊NSAP,最后一个字节为0)我们将支持IP网络的,也就是SEL=00的NSAP地址,叫做NET
网络实体名称NET指的是设备本身的网络层信息,可以看作是一类特殊的NSAP(SEL=00),最后一个字节为0,router ID
+AreaNET
的长度与NSAP的相同,最多为20个字节,最少为8个字节。最后一个字节永远为0.在IP中是没有任何应用的.
在路由器上配置IS-IS时,只需要考虑NET即可,NSAP可不必去关注。
注意:在配置IS-IS过程中,NET最多也只能配3个。在配置多个NET时,必须保证它们的System ID都相同。
-
NSAP
Network Service Access Point (网络层地址+服务端口号)
如何在支持IP的IS上面设置system ID(便于管理的推荐)
使用loopback 接口IP地址: 192.168.3.25
路由器所在区域Area : 49.0001
建立IP地址到systemID的对应关系:
3. 路由器分类
在IS-IS
中,路由器可以分为三种类型
3.1、Level-1路由器(只能创建Level-1的LSDB)
Level-1路由器:
- L1路由器是一个IS-IS普通区域内部的路由器,类似于OSPF网络中的普通区域内部路由器(IR),只能在非骨干区域中存在。
- L1路由器只能与属于同一区域的L1和L1/2路由器建立L1邻接关系(不能与L2路由器建立邻接关系),交换路由信息,并维护和管理本区域内部的一个L1 LSDB。
- L1 路由器的邻居都在同一个区域中,其 LSDB 包含本区域的路由信息以及到达同一区域中最近L1/2路由器(相当于OSPF中的ABR)的缺省路由,但到区域外的数据需由最近的L1/2路由器进行转发。也就是说,L1路由器只能转发区域内的报文,或者将到达其他区域的报文转发到距离它最近,且在同一区域的L1/2路由器。
Level-1路由器的路由特点:
- 只拥有Level-1的链路状态数据库。
- 其链路状态数据库中只有本区域路由器LSP。
- 其路由表里没有其他区域的路由信息。
- 其路由表里都有一条默认路由,下一条是指向到Level-1-2路由器。(缺省路由,发送数据到其他区域,直接发送给L1/2)
3.2、Level-2路由器(只能创建Level-2的LSDB)
Level-2路由器:
L2路由器是骨干区域中的路由器,主要用于通过与普通区域中的L1/2路由器(下面将介绍)连接,连接骨干区域和非骨干区域,类似于OSPF网络中的BR(骨干路由器),并负责在不同区域间的通信。
L2路由器负责区域间的路由,它可以与相同或者不同区域的L2路由器或者不同区域的L1/2路由器形成邻居关系。L2路由器维护一个L2的LSDB,该LSDB包含区域间的路由信息。L2路由器只可能建立L2的邻接关系。
网络中的所有L2路由器和所有L1/2路由器连接在一起共同构成IS-IS网络的骨干网(注意,不是骨干区域),也称L2区域。IS-IS中的L2区域不是一个特定的区域,是由连接网络中各个区域的一部分路由器组成的,但必须物理是连续。
Level-2路由器的路由特点:
- Level-2路由器只有Level-2的链路状态数据库。
- 其LSDB中有骨干区域路由器的LSP,但是没有Level-1路由器产生的LSP。
*路由表里面有整个网络的路由信息。TIP:
如下图:黄色圆圈中的路由器是L2路由器还是L1路由器,还是L1/2路由器?
答案是:L1/2路由器。
若是L1路由器,则整个网络中由L2路由器和L1/2路由器形成的骨干网(粗线部分)在物理上就是断开的,不连续,最终导致的结果就是不同区域间的L2 路由无法传递。也不可能是L2路由器,因为Area 2不是骨干区域。
3.3、Level-(1-2)路由器(路由器默认类型,能同时创建Level-1和Level-2的LSDB)
L1/2路由器类似于OSPF网络中的ABR(区域边界路由器),用于区域间的连接,缺省所有IS-IS路由器都是L1/2类型的。
L1/2路由器既可以与同一普通区域的L1路由器以及其他L1/2路由器建立L1邻接关系,也可以与骨干区域L2路由器建立L2邻接关系。
L1路由器必须通过L1/2路由器才能与其他区域通信。
L1/2路由器必须维护以下两个LSDB:
L1 LSDB
用于区域内路由,L2 LSDB
用于区域间路由。但要注意的是,L1/2路由器不一定要位于区域边界,在区域内部也有可能存在L1/2路由器,如上图黄色圆圈中的路由器。Level-1-2路由器的路由特点:
- Level-1-2路由器同时拥有Level-2和Level-1的链路状态数据库。
- Level-1数据库包含本区域的LSP,Level-2数据库包含骨干区域LSP。
- 在自己产生的Level-1的LSP中设置了ATT比特位为1。
- 路由表里面有整个网络的路由信息。
小结
-
L1的邻居:区域号一致
-
L2的邻居:不要求区域号一致
-
L1的路由器只能建立L1的邻居
-
L2的路由器只能建立L2的邻居
-
L1/2的路由器:和同区域的路由器建立L1的邻居,和L2的路由器建立L2邻居,和L1/2的同区域路由器即建立L1的邻居,又建立L2的邻居,和L1/2的不同区域路由器只能建立L2的邻居。
-
不同区域间,只能建立与Level-2有关的邻接关系:
- Level-2 路由器可以与Level-2 路由器建立邻接关系。
- Level-(1-2) 路由器可以与Level-2 路由器建立邻接关系。
- Level-(1-2) 路由器可以与Level-(1-2) 路由器建立邻接关系。
-
在IS-IS中,定义区域不再是区域号了,而是以L1/L2为网络边界
4. 网络分层路由域
IS-IS由两个层次组成:
IS-IS在自治系统内采用骨干区域与非骨干区域两级的分层结构。
一般来说,将Level-1路由器部署在非骨干区域,Level-2路由器和Level-(1-2)路由器部署在骨干区域。每一个非骨干区域都通过Level-(1-2)路由器与骨干区域相连。
TIP:
在IS-IS中与OSPF有些不同:
- 可以有多个骨干区域,且区域ID不固定
- 非骨干区域必须和骨干区域物理相连(通过L1/2路由器)
- 由于IS-IS没有类似于OSPF的Vlink机制,因此IS-IS的骨干区域必须是连续的
- 非骨干区域之间不能直接连接
下图为多个骨干区域的拓扑:
此时有两个骨干区域:Area 1和Area 3。非骨干区域中的L1/2 路由器同时与两个骨干区域的L2 路由器连接,同时两个骨干区域之间也彼此连接(可以把它们看成一个大的虚拟骨干区域)
上图拓扑中体现的:
- 在OSPF中,每个链路只属于一个区域;而在IS-IS中,每个链路可以属于不同的区域;
- 在IS-IS中,单个区域没有物理的骨干与非骨干区域的概念;而在OSPF中,Area0被定义为骨干区域;
- 在IS-IS中,Level-1和Level-2级别的路由器分别采用SPF算法,分别生成最短路径树SPT;在OSPF中,只有在同一个区域内才使用SPF算法,区域之间的路由需要通过骨干区域来转发。
5. IS-IS的网络类型
IS-IS只支持两种类型的网络,根据物理链路不同可分为:
广播链路:如Ethernet、Token-Ring等。
点到点链路:如PPP、HDLC等。
IS-IS支持的网络类型:
- 点对点网络类型(P2P)
- 广播多路访问网络类型(Broadcast Multiple Access)
- 在帧中继等特殊环境下,可以通过创建子接口支持P2P的网络类型。
TIP:
对于NBMA
(Non-Broadcast Multi-Access)网络,如ATM,需对其配置子接口,并注意子接口类型应配置为P2P。IS-IS不能在点到多点链路
P2MP(Point to MultiPoint)
上运行。
6. IS-IS与OSPF对比总结
差异性 | IS-IS | OSPF |
---|---|---|
算法 | SPF | SPF |
协议类型 | 链路状态路由协议 | 链路状态路由协议 |
网络模型 | OSI | TCP/IP |
网络协议 | CLNP | IP |
网络类型 | 少 (2种 brocast和p2p) | 多 (4种 额外加NBMA和P2MP) |
开销方式 | 复杂 | 简便 |
区域类型 | 少 (L1、L2区域) | 多 (骨干、非骨干、特殊) |
路由报文类型 | 简单 (LSP报文,hello、DBD、LSR、LSU、LSACK 5种报文类型) | 多样 (多种LSA报文,三大类9种报文) |
路由收敛速度 | 很快 | 快 |
扩展性 | 强 (任何路由信息都用TVL传递) | 一般 |
路由负载能力 | 超强 | 强 |
三、IS-IS工作原理
3.1、邻接关系建立
IS-IS按如下原则建立邻接关系:
- 只有同一层次的相邻路由器才有可能成为邻接。
- 对于Level-1路由器来说,Area ID必须一致。
- 链路两端IS-IS接口的网络类型必须一致。
- 链路两端IS-IS接口的地址必须处于同一网段(默认情况下)。
3.2 IS-IS 报文
3.2.1 Hello 报文
IS-IS中的Hello报文,缩写即IIH
用来确认 DIS 的(10S 发送一次报文,DIS 是 十分之三秒发送一次)
HELLO报文的作用是邻居发现,协商参数并建立邻居关系,后期充当保活报文。
三种类型的Hello报文
IS-IS建立邻居关系和OSPF一样,通过hello报文的交互来完成。但是会根据场景分为三种类型的hello报文。
-
广播网络中的Level-1 IS-IS使用
Level-1 LAN IIH
(Level-1 LAN IS-IS Hello),目的组播MAC为:0180-c200-0014。 -
广播网络中的Level-2 IS-IS使用
Level-2 LAN IIH
(Level-2 LAN IS-IS Hello),目的组播MAC为:0180-c200-0015。 -
非广播网络中则使用
P2P IIH
(point to point IS-IS Hello)。但是其没有表示DIS(虚节点)的相关字段。IIH报文需要通过填充字段用于邻居两端协商发送报文的大小。
邻居关系建立过程
- 在P2P链路上,分为两次握手机制和三次握手机制。
两次握手只要路由器收到对端发来的Hello报文,就单方面宣布邻居为up状态,建立邻居关系,不过容易存在单通风险
三次握手机制通过三次发送P2P的IS-IS
Hello PDU
最终建立起邻居关系,与广播链路邻居关系的建立情况相同
在广播链路上,使用
LAN IIH
报文执行三次握手建立邻居关系。当收到邻居发送的
Hello PDU
报文里面没有自己的system ID
的时候,状态机进入initialized。只有收到邻居发过来的
Hello PDU
有自己的system ID
才会up,排除了链路单通的风险。广播网络中邻接关系建立进入up状态,路由器会等待两个Hello报文间隔后会选举
DIS
指定中间系统(Designated IS)(虚节点),DIS
的功能类似OSPF的DR
(指定路由器)。
TIP:
在广播网络,需要选举DIS,所以在邻居关系建立后,路由器会等待两个Hello报文间隔再进行DIS的选举。
- Hello报文中包含Priority 字段,Priority值最大的将被选举为该广播网的DIS。
- 若优先级相同,接口MAC地址较大的被选举为DIS。
- IS-IS中DIS发送Hello时间间隔默认为10/3秒,而其他非DIS路由器发送Hello间隔为10秒。
IS-IS中DIS与OSPF协议中DR的区别:
类比点 | ISIS-DIS | OSPF-DR |
---|---|---|
选举优先级 | 所有优先级都参与选举 | 0优先级不参与选举 |
选举等待时间 | 2个HELLO报文间隔 | 40s |
备份 | 无 | 有(BDR) |
邻接关系 | 所有路由器互相都是邻接关系 | DRother之间是2-way关系 |
抢占性 | 会抢占 | 不会抢占 |
作用 | 周期发送CSNP,保障MA网络LSDB同步 | 主要为了减少LSA泛洪 |
DIS与伪节点
DIS
是指指定中间系统(Designated IS)
伪节点
是指在广播网络中由DIS创建的虚拟路由器
3.2.2 SNP 报文
SNP
报文分为 CSNP
报文和 PSNP
报文
CSNP
类似于 OSPF 中的 DD 报文
CSNP
报文在两种网络类型中的作用:
- 广播网络:周期性的发送
CSNP
报文,保证数据库的同步(由 DIS 每十分之三秒发送一次),可以作为一种确认机制- 点到点网络:只发送一次
CSNP
报文到对端(描述的是本地的信息)
PSNP
类似于 OSPF 中的 LSR 报文
PSNP 报文在两种网络类型中的作用
广播网络:广播网络中
PSNP
可以作为LSR
请求点到点网络:点到点网络中
PSNP
可以作为LSACK
来使用
3.2.3 LSP 报文
IS-IS链路状态报文
LSP
用于交换链路状态信息。
LSP
报文类似于 OSPF 中的LSU
报文;level-1 、level-2 各有自己的
LSP
报文, Level–1 LSP由Level-1路由器传送,Level–2 LSP由Level-2路由器传送,Level-1-2路由器则可传送以上两种LSP,两类LSP有相同的报文格式。两类LSP有相同的报文格式。
3.3、链路状态数据库同步
3.3.1 广播网络中LSP的同步过程
- 广播网络需要选举 DIS
- 所以当设备加入的时候,设备会发送 LSP 到组播地址(Level-1:01-80-C2-00-00-14;Level-2:01-80-C2-00-00-15),此时所有的设备都会收到
- 所有的设备都会把
LSP
加入到自己的LSDB
数据库中 - DIS 会周期性的发送
CSNP
报文进行LSDB
的更新,可以作为隐式确认(在广播网络中的确认信息靠的是CSNP
报文),广播网络CSNP
报文只由DIS组播发送。 - 当某一台设备发现自己缺少的信息,则会发送
PSNP
报文到 DIS 设备 - DIS 设备会发送
LSP
给需要的设备
3.3.2 点到点网络的 LSP 报文交互
- 在此类型中
CSNP
报文只会发送一次,不会定期的发送CSNP
报文,两端发送的CSNP
报文描述的是自己的信息 - 之后发现自己缺少的
LSP
之后就会发送PSNP
报文向对端发出请求 - 当收到对端的
PSNP
请求后,发送相应的LSP
给对端 - 发送
LSP
的时候,启动重传定时器,并等待对方发送 PSNP 确认 - 如果重传定时器超时后,依然没有收到对端发送的
PSNP
确认,之后则会重新发送直到收到PSNP
确认消息为止 -
3.3.3 LSP的处理机制
IS-IS通过交互LSP实现链路状态数据库同步,路由器收到LSP后,按照以下原则处理:
- 若收到的LSP比本地LSP的更优,或者本地没有收到的LSP:在广播网络中:将其加入数据库,并组播发送新的LSP。
- 在点到点网络中:将其加入数据库,并发送PSNP报文来确认收到此LSP,之后将这新的LSP发送给除了发送该LSP的邻居以外的邻居(通过邻居扩散发送)。
- 若收到的LSP和本地LSP无法比较出优劣,则不处理该LSP。
发表评论