目录
1、协议概述
ISIS,翻译过来就是中央系统到中央系统;和OSPF一样,ISIS也是一种基于链路状态并使用最短路径优先算法进行路由计算的一种IGP协议。ISIS最初是国际标准化组织ISO为它的无连接网络协议CLNP设计的一种动态路由协议。为了提供对IP的路由支持,IETF在RFC1195中对ISIS进行了扩充和修改使它能够同时应用在TCP/IP和OSI环境中,修订后的IS-IS协议被称为集成化的IS-IS。由于IS-IS的简便性及扩展性强的特点,目前在大型ISP的网络中被广泛的应用。
1.1 应用场景
园区网特点:
- 应用型网络,主要面向企业网用户。
- 路由器数量偏少,动态路由的LSDB库容量相对偏少,三层路由域偏少。
- 有出口路由的概念,对内外部路由划分敏感。
- 地域性跨度不大,带宽充足,链路状态协议开销对带宽占用比较偏少。
- 路由策略和策略路由应用频繁多变,需要精细化的路由操作。
- OSPF的多路由类型(内部/外部),多区域类型(骨干/普通/特殊),开销规则优良(根据带宽设定),网络类型多样(最多五种类型)的特点在园区网得到极大的发挥。
骨干网特点:
- 服务型网络,有ISP(互联网服务提供商)组建,并为终端用户提供互联服务。
- 路由调度占据绝对统治地位,路由器数量庞大。
- 架构层面扁平化,要求IGP作为基础路由为上层BGP服务协议服务。
- LSDB规模宏大,对链路收敛极度敏感,线路费用高昂。
- 追求简单高效,扩展性高,满足各种客户业务需求(IPV6/IPX)。
- IS-IS的快速算法,(PRC得到加强),简便报文结构(TLV),快速邻居关系的建立,大容量路由传递(基于二层开销低)等一系列特点在骨干网有着天然的优势。
1.2 历史起源
OSI模型的网络层:
1、CLNS——无连接的网络服务
2、CONS——面向连接的网络服务
CLNS存在子协议:(这里用TCP/IP中的协议来类比)
- CLNP----类似TCP/IP中的IP协议
- ISIS----类似TCP/IP中的RIP/OSPF/EIGRP......
- ESIS---类似TCP/IP中的ICMP/ARP/IGMP......
IETF在RFC1195中对IS-IS进行了扩充和修改,使它能够同时应用在TCP/IP和OSI环境中,称为集成化IS-IS(Integrated IS-IS),后面如果没有特别说明,提到的IS-IS都是指集成IS-IS。IS-IS属于内部网关协议,用于自治系统内部。IS-IS是一种链路状态协议,使用最短路径优先算法进行路由计算。
1.3 路由计算过程
邻居关系建立:
- 邻居关系建立主要通过Hello包交互并协商各种参数,包括电路类型(level-1/level-2),Hold time,网络类型,支持协议,区域号,系统ID,PDU长度,接口IP等。
链路信息交换:
- 与OSPF不同,ISIS交互链路状态的基本载体不是LSA(link state advertisement),而是LSP(Link State PDU);交互的过程没有OSPF协议那样经历了多个阶段,主要是通过CSNP和PSNP两种协议报文来同步,请求以及确认链路状态信息(承载的是链路状态信息摘要),而链路状态状态信息的详细拓扑和路由信息是由LSP报文传递。
路由计算:
- SPF计算和OSPF基本一样,但ISIS算法分离了拓扑结构和IP网段,加快了网路收敛速度。
1.4 地址结构
在配置ISIS时,由于ISIS主要基于OSI模型开发,而OSI模型中除IP地址外,还存在NSAP地址;虽然集成的ISIS可以基于TCP/IP工作,但依然保留了该地址。
NSAP地址:
- IDP相当与IP地址IDP相当于IP地址中的主网络号。它是由ISO规定,并由AFI与IDI两部分组成。AFI表示地址分配机构和地址格式,固定一个字节长度,16进制数表示,需付费购买(49为私有);IDI用来标识域,可变长。
- DSP相当于IP地址中的子网号和主机地址。它由High Order DSP、System ID和SEL三个部分组成。High Order DSP用来分割区域,System ID用来区分主机,SEL用来指示服务类型。
- Area Address(Area ID)由IDP和DSP中的High Order DSP组成,既能够标识路由域,也能够标识路由域中的区域。因此,它们一起被称为区域地址,相当于OSPF中的区域编号。
- System ID用来在区域内唯一标识主机或路由器。在设备的实现中,它的长度固定为48bit(6字节)。
- SEL的作用类似IP中的“协议标识符”,不同的传输协议对应不同的SEL。在IP上SEL均为00。
我们可以把地址按照如下理解:
49.0001.1111.1111.1111.00
理解:
49 0001 1111.1111.1111 00
AS号 区域ID (可变长) RID 不关注,全0即可
NET:
- 网络实体名称NET指的是设备本身的网络层信息,可以看作是一类特殊的NSAP(SEL=00),NET的长度与NSAP的相同,最多为20个字节,最少为8个字节。在路由器上配置IS-IS时,只需要考虑NET即可,NSAP可不必去关注。
- 在配置IS-IS过程中,NET最多也只能配3个。在配置多个NET时,必须保证它们的System ID都相同。
1.5 路由器分类
IS-IS路由器的三种类型
- Level-1路由器(只能创建level-1的LSDB )
- Level-2路由器(只能创建level-2的LSDB )
- Level-1-2路由器(路由器默认的类型,能同时创建level-1和level-2的LSDB )
Level-1路由器:Level-1路由器只能与属于同一区域的Level-1和Level-1-2路由器形成邻居关系,只负责维护Level-1链路状态数据库,该LSDB包含本区域的路由信息,到本区域外的报文转发给最近的Level-1-2路由器。Level-1路由器只能建立Level-1的邻居关系。
Level-2路由器:Level-2路由器负责区域间的路由,它可以与相同或者不同区域的Level-2路由器或者Level-1-2路由器形成邻居关系。Level-2路由器维护一个Level-2的LSDB,该LSDB包含区域间的路由信息。Level-2路由器只能可能建立Level的邻居关系。
Level-1-2路由器:同时属于Level-1和Level-2的路由器称为Level-1-2路由器。Level-1-2路由器维护两个LSDB;Level-1的LSDB由于区域内路由,Level-2的LSDB用于区域间的路由。Level-1-2路由器可以与同一区域的Level-1路由器建立Level-1邻居关系,也可以与其他区域的Level-2路由器和Level-1-2路由器建立Level-2的邻居关系。
不同区域间,只能建立Level-2邻居关系:
- Level-2路由器可以与Level-2路由器建立邻居关系。
- Level-1-2路由器可以与Level-2路由器建立邻居关系。
- Level-1-2路由器可以与Level-1-2路由器建立邻居关系。
2、工作原理
2.1 工作过程
ISIS协议为了让拓扑更加灵活,它没有可配置的区域0,只有在配置完成后会有一个逻辑的骨干0,所有连续的L2和L1-2路由器的集合。工作于L1-2和L2的路由器存在L2数据库,该数据库装载全网所有路由;L1和L1-2路由器存在L1数据库,L1数据库仅装载所在区域路由。L1-2路由器将本地L1数据复制到本地L2数据库中,因为L1数据库仅在本区域共享,L2数据库在逻辑0中所有设备上工作;而纯L2设备大多配置在区域内设备极少的时候,主要用于网络拓扑的稳定,备份链路,默认所有设备初始工作与L1-模式下。
L1-2路由器若是连接了其他区域那么将向本区域的L1路由器下方缺省路由;L1-2路由器可以与L1/L1-2/L-2路由器建立邻居关系,但是若和L1路由器建立邻居关系,那么它们必须在同一区域内;L1和L2不能建立邻居关系;L1和L1若不在同一区域不能建立邻居关系;不同区域的L1-2路由器只能建立L2邻居关系。
选路规则:
- L1路由器访问某个目标时,先查看目标是否在本区域,若在,使用L1数据库记录访问;若不在将流量传递到离本地最近的同一区域L1-2路由器处(通过缺省路由实现);该L1-2路由器连接了其他的区域,才能发布缺省路由。
- L2路由器访问某个目标时,直接通过L2数据访问;因为L2为骨干设备,拥有全网路由。
- L1-2路由器访问某个目标时,先查看目标是否在本区域,若在,使用L1数据库记录访问;若不在使用L2数据库。
2.2 邻居hello报文
Hello报文的作用是邻居发现,协商参数并建立邻居关系,后期充当保活报文。IS-IS建立邻居关系和OSPF一样,通过hello报文的交互来完成。但是会根据场景分为三种类型的hello报文。目前ISIS只支持点对点和广播网络类型。ISIS目前支持的网络类型:
- 点对点网络类型(P2P)。
- 广播多路访问网络类型(Broadcast Multiple Access)。
- 在帧中继等特殊环境下,可以通过创建子接口支持P2P的网络类型。
![](https://img-blog.csdnimg.cn/20201123185703558.png)
(虚节点)的相关字段。
- 广播网中的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。
- IIH报文需要通过填充字段用于邻居两端协商发送报文的大小。
2.3 邻居关系建立
在P2P链路上,分为2次握手机制和3次握手机制。
- 两次握手只要路由器收到对端发来的hello包,就单方面宣布邻居为UP状态,建立邻居关系,不过容易存在单通风险。
-
通过三次发送P2P的IS-IS Hello PDU最终建立起邻居关系,与广播链路邻居关系的建立情况相同。
在广播链路上,使用LAN IIH报文执行三次握手建立邻居关系。
- 当收到邻居发来的hello报文里面没有自己的system ID的时候状态机进入InitIalised。
- 只有收到邻居发来的hello包中有自己的system ID时才会UP,排除了邻居单通的风险。
- 广播网络中邻居UP后,会选举DIS(指定中间系统),DIS的功能类似OSPF的DR(指定路由器)。
2.4 DIS与DR的对比
![](https://img-blog.csdnimg.cn/20201123191752815.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzk5NzUzMA==,size_16,color_FFFFFF,t_70)
类比点 | ISIS-DIS | OSPF-DR |
选举优先级 | 所有优先级都参与选举 | 0优先级不参与选举 |
选举等待时间 | 2个hello报文间隔 | 40s |
备份 | 无 | BDR |
邻接关系 | 所有路由器都相互是邻接关系 | DRother之间是2-way关系 |
抢占性 | 抢占 | 不会抢占 |
作用 | 周期法CSNP,保障MA网络LSDB同步 | 主要为减少LSA洪泛 |
- DIS与伪节点:DIS是指指定中间系统(Designated IS);伪节点是指在广播网络中由DIS创建的虚拟路由器。
- DIS特点:在广播网络,需要选举DIS,所以在邻居关系建立后,路由器会等待两个Hello报文间隔再进行DIS的选举。Hello报文中包含Priority 字段,Priority值最大的将被选举为该广播网的DIS。若优先级相同,接口MAC地址较大的被选举为DIS。IS-IS中DIS发送Hello时间间隔默认为10/3秒,而其他非DIS路由器发送Hello间隔为10秒。
DIS与DR类比:
- 选举时优选级的比较,DIS的优先级为0也可以参与选举。OSPF中优先级为0不参与选举DR。
- 选举的过程需要一定的时间,OSPF选举DR/BDR需要waiting time达40秒,过程也较为复杂,而ISIS选举DIS等待两个Hello报文间隔就可以,简单快捷。
- 选举结果ISIS只有一个DIS,但是OSPF除了有DR,还有一个BDR用做备份。
- 选举结束后,后期有新的Router加入到链路进来,如果优先级比DIS高是可抢占的,但是DR是不可抢占的。
- 选举完成后,ISIS网络链路内所有的路由器之间都建立的是邻接关系,虽然非DIS间建立了邻接关系,但不交互路由,仅hello保活;。OSPF中DRothers只与DR/BDR形成Full邻接关系, DRothers之间只有2-way的关系。
- 相同点:进行SPF计算时,都把它当做虚节点来计算,简化MA网络拓扑;都是为了减少LSP/LSA的洪泛。不同点在于ISIS中还可以由DIS发送CSNP来同步链路的LSDB(ISIS的扩展作用)。
2.5 数据包类型
ISIS存在9种包;集成的ISIS基于TCP/IP工作时,数据包被跨层封装于2层;在以太网中(MA),目标MAC地址为:Level-1地址为:0180-C200-0014Level-2地址为:0180-C200-0015。
- Hello包:---邻居的发现、建立、保活;周期10s,dead time 30s;在存在DIS时hello time为3.3s dead time 为10s;
- LSP(LSA)
- PSNP(部分序列号的PDU)--类似OSPF协议中的LSR或ACK
- CSNP(完整序列号的PDU)--类似OSPF的DBD报文
PSNP | CSNP | |
广播型网络 | LSR或ACK | DBD包,默认DIS周期10s发送一次 |
点到点网络 | LSR或ACK | DBD,邻接建立时发送一次 |
LSDB同步:
P2P网络:
- 建立邻居关系之后,RTA与RTB会先发送CSNP给对端设备。如果对端的LSDB与CSNP没有同步,则发送PSNP请求索取相应的LSP。
- 假定RTB向RTA索取相应的LSP,此时向RTA发送PSNP。RTA发送RTB请求的LSP的同时启动LSP重传定时器,并等待RTB发送PSNP作为收到LSP的确认。
- 如果在接口LSP重传定时器超时后,RTA还没有收到RTB发送的PSNP报文作为应答,则重新发送该LSP直至收到RTB的PSNP报文作为确认。
MA网络新加入路由器交互:
- 假设新加入的路由器RTC已经与RTB(DIS)和RTA建立了邻居关系。
- 建立邻居关系之后,RTC将自己的LSP发往组播地址(Level-1:01-80-C2-00-00-14;Level-2:01-80-C2-00-00-15)。这样网络上所有的邻居都将收到该LSP。
- 该网段中的DIS会把收到RTC的LSP加入到LSDB中,并等待CSNP报文定时器超时(DIS每隔10秒发送CSNP报文)并发送CSNP 报文,进行该网络内的LSDB同步。
- RTC收到DIS发来的CSNP报文,对比自己的LSDB数据库,然后向DIS发送PSNP报文请求自己没有的LSP(如RTA和RTB的LSP就没有)。
- RTB作为DIS收到该PSNP报文请求后向RTC发送对应的LSP进行LSDB 的同步。
2.6 路由算法
ISIS的路由算法与OSPF一致都是SPF算法,这里就不做过多概述。但是ISIS计算路由开销默认接口开销都为10,这就导致选路会不佳,手工配置接口开销取值范围为1~63。
SPF算法:https://blog.csdn.net/weixin_43997530/article/details/89385854
3、ISIS的区域问题
![](https://img-blog.csdnimg.cn/20201123212307978.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzk5NzUzMA==,size_16,color_FFFFFF,t_70)
- 为了支持大规模的路由网络,IS-IS在自治系统内采用骨干区域与非骨干区域两级的分层结构。一般来说,将Level-1路由器部署在非骨干区域,Level-2路由器和Level-1-2路由器部署在骨干区域。每一个非骨干区域都通过Level-1-2路由器与骨干区域相连。
- 拓扑中为一个运行IS-IS协议的网络,它与OSPF的多区域网络拓扑结构非常相似。整个骨干区域不仅包括Level-2的所有路由器,还包括Level-1-2路由器。
- Level-1-2级别的路由器可以属于不同的区域,在Level-1区域,维护Level-1的LSDB,在Level-2区域,维护Level-2的LSDB。
- Level-1路由器的路由特点:只拥有Level-1的链路状态数据库。其链路状态数据库中只有本区域路由器LSP。 其路由表里没有其他区域的路由信息,只有一条默认路由,下一条是指向到Level-1-2路由器。
- Level-2路由器的路由特点:Level-2路由器只有Level-2的链路状态数据库。其LSDB中有骨干区域路由器的LSP,但是没有Level-1路由器产生的LSP。路由表里面有整个网络的路由信息。
- Level-1-2路由器的路由特点:Level-1-2路由器同时拥有Level-2和Level-1的链路状态数据库。Level-1数据库包含本区域的LSP,Level-2数据库包含骨干区域LSP。在自己产生的Level-1的LSP中设置了ATT比特位为1。路由表里面有整个网络的路由信息。
4、IS-IS与OSPF的区别
差异性 | IS-IS | OSPF |
网络类型 | 少 | 多 |
开销 | 复杂 | 简便 |
区域类型 | 少 | 多 |
路由报文类型 | 简单 | 多样 |
路由收敛速度 | 很快 | 快 |
扩展性 | 强 | 一般 |
路由负载能力 | 超强 | 强 |
- IS-IS协议只支持两种网络类型,且所有带宽默认开销值都是一样的,OSPF协议支持四种网络类型,且会根据不同的带宽设定相应的开销值,对帧中继,按需链路等网络类型有很好的支持。
- IS-IS协议分L1/L2区域,L2区域是骨干区域有全部明细路由。L1去往L2只有默认路由。OSPF协议分骨干区域,普通区域,特殊区域。普通区域和特殊区域跨区域访问需要经过骨干区域。
- IS-IS协议路由承载报文类型只有LSP报文且里面路由信息是不区分内部与外部的,简单高效,无需递归计算。OSPF协议路由承载报文LSA类型多样,有1/2/3/4/5/7类等。路由级别等级森严,且需要递归计算,适合精细化调度计算。
- ISIS协议区域内某个节点上的网段发生变化时,触发的是PRC算法,收敛比较快,计算路由的报文开销也比较小。OSPF协议由于网络地址参与了拓扑的构建,在区域内当网段地址改变触发的是i-spf算法,相对来说过程繁琐复杂些。
- ISIS协议任何路由信息都使用TLV传递,结构简单,易于扩展,如对IPv6的支持只增加2个TLV就解决了。且ISIS本身对IPX等协议是支持的。OSPF协议本身是为IP特定开发的,支持IPv4和IPv6的OSPF协议是两个独立的版本(OSPFv2和OSPFv3)。