IS-IS(中间系统到中间系统协议):基于链路状态并使用最短路径优先算法进行路由计算的一种IGP协议 基于802.3封装
IS-IS最初是国际化标准组织ISO为它的无连接网络协议CLNP设计的一种动态路由协议
为了提供对IP的路由支持
IETF在RFC1195中对IS-IS进行了扩充和修改,使它能够同时应用在TCP/IP和OSI环境中,修订后的IS-IS协议被称为集成化的IS-IS
工作在数据链路层,路由收敛速度快,结构清晰,适合于大规模网络
场景应用
园区网:区域多样、策略多变、调度精细
特点:
应用型网络,主要面向企业网用户。
路由器数量偏少,动态路由的LSDB库容量相对偏少,三层路由域相对偏少。
有出口路由的概念,对内部外部路由划分敏感。
地域性跨度不大,带宽充足,链路状态协议开销对带宽占用比偏少。
路由策略和策略路由应用频繁多变,需要精细化的路由操作。
OSPF的多路由类型(内部/外部),多区域类型(骨干/普通/特殊),开销规则优良(根据带宽设定),网络类型多样(最多五种类型)的特点在园区网得到了极大的发挥
骨干网(运营商网络):区域扁平、收敛极快、承载庞大
特点:
服务型网络,由ISP(互联网服务提供商)组建,并为终端用户提供互联服务。
路由调度占据绝对统治地位,路由器数量庞大。
架构层面扁平化,要求IGP作为基础路由为上层BGP协议服务。
LSDB规模宏大,对链路收敛极度敏感,线路费用高昂。
追求简单高效,扩展性高,满足各种客户业务需求(IPV6/IPX)。
IS-IS的快速算法(PRC得到加强),简便报文结构(TLV),快速邻居关系建立,大容量路由传递(基于二层开销低)等一系列特点在骨干网有着天然的优势
IS-IS属于内部网关协议,用于自治系统内部
工作过程:
1.建立邻居关系:通过HELLO包交互并协商各种参数,包括电路类型(level-1/level-2),Hold time,网络类型,支持协议,区域号,系统ID,PDU长度,接口IP等
分为两种:两次和三次握手,P2P网络是支持两次和三次握手,MA网络仅支持三次握手
2.同步LSDB数据库(链路信息交换):与OSPF不同,ISIS交互链路状态的基本载体不是LSA,而是LSP;交互的过程没有OSPF协议那样经历了多个阶段,主要是通过CSNP和PSNP两种协议报文来同步,请求以及确认链路状态信息(承载的是链路状态信息摘要),而链路状态信息的详细拓扑和路由信息是由LSP报文传递
1)P2P网络:先描述,再同步
2)MA网络:直接同步,然后通过DIS来保障数据库同步的完整性
3.执行SPF路由计算:SPF计算和OSPF基本一样的,但ISIS算法分离了拓扑结构和IP网段,加快了网络收敛速度(ISPF算法)
ISIS内部优先级:
level-1:15
level-2:18
建立邻居需要协商的参数:掩码、MTU、sys id、area id、最大区域地址数
如何协商区域地址:只要携带的区域地址有一个相同就能建立邻居
不需要协商hold time
IDP:相当于IP地址的网络号
DSP:相对于IP地址的子网号和主机地址,由High Order DSP、System ID和SEL三个部分组成
AREA ID:区域id,标识一个区域,相当于OSPF的区域标号
SYSTEM ID:系统id,标识一台设备,固定6字节,每台设备最多3个相同的系统id
SEL:上层协议标识符
路由器分类(ISIS基于路由器划分区域):
Level-1路由器(只能创建level-1的LSDB),性能相对较差,位于Level-1区域相当于OSPF的非骨干区域,相当于IR
Level-1路由器必须通过Level-1-2路由器才能连接至其他区域
Level-2路由器(只能创建level-2的LSDB),性能较强,Level-2区域相当于OSPF的骨干区域,相当于BR
所有Level-2级别(即形成Level-2邻居关系)的路由器组成路由域的骨干网,负责在不同区域间通信。路由域中Level-2级别的路由器必须是物理连续的,以保证骨干网的连续性。只有Level-2级别的路由器才能直接与区域外的路由器交换数据报文或路由信息
Level-1-2路由器(路由器默认的类型,能同时创建level-1和level-2的LSDB ),性能强,用于连接Level-1区域和Level-2区域,类似于OSPF的ABR
默认为Level-1-2路由器,连接骨干区域的路由器
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。
• 路由表里面有整个网络的路由信息。
默认有将level-1的路由引入level-2的命令
邻居关系的建立:
Level-1路由器:只能与同一区域的Level-1路由器/Level-1-2路由器建立Level-1路由器邻居关系,维护Level-1路由器的LSDB
不能跨区域建立邻居关系
Level-2路由器:只能与同一区域/不同区域的Level-2路由器/不同区域的Level-1-2路由器建立Level-2的路由器邻居关系,维护Level-2LSDB
Level-1-2路由器:可以与同一区域的Level-1路由器/Level-1-2路由器建立Level-1邻居关系,邻居直接维护Level-1LSDB,可以与同一区域/不同区域的Level-2路由器建立Level-2邻居关系,维护Level-2LSDB,与不同区域的Level-1-2路由器建立Level-2邻居关系;
ISIS的区域划分:与OSPF不一样,OSPF是基于路由器的接口划分,ISIS是基于一台路由器划分区域
ISIS区域分两种:骨干区域(L2)
非骨干区域(L1)
ISIS的报文封装:封装于数据链路层,所以传输中可能会存在丢包现象,因为没有保障可靠协议支持,OSPF封装于IP协议,协议号89
ISIS报文:
1.Hello PDU:用于发现,建立,维护邻居关系,
与OSPF一样,周期性发送,普通路由器发送时间间隔是10s,死亡时间(hold time)30s,如果30s内没有收到邻居发送过来的hello报文,则邻居报文中断,DIS路由器(相当于OSPF的DR)发送hello报文时间间隔为10/3s(3.3333…),其他路由器连续三次没有收到来自DIS路由器的hello报文,则认为DIS故障,重新选举新的DIS
为什么DIS发送hello报文的时间间隔是10/3s?:为了快速检测出DIS故障
P2P hello PDU:用于点到点网络
LAN hello PDU:用于MA网络
level-1 LAN IIH:用于MA网络中的level-1邻居,目的组播MAC为:0180-c200-0014
level-2 LAN IIH:用于MA网络中的level-2邻居,目的组播MAC为:0180-c200-0015
2.LSP PDU:用于描述链路状态信息
实节点LSP
伪节点LSP(只在广播链路存在)
LSP的刷新间隔为15分钟;老化时间为20分钟。
但是一条LSP的老化除了要等待20分钟外,还要等待60秒的零老化时延;LSP重传时间为5秒;LSP超时后从网络中清除
以下三个标志组合起来用来唯一标识一个LSP
Source ID:产生该LSP的结点或伪结点的Sys lD ,8字节
Pseudonode ID:对普通LSP为0 ; 对 Pseudonode LSP 非 0, 这 是 区 分 一 个 LSP 是 否 是 伪 结 点 产 生 的 标 志 ;
LSP number:分 片 号 ( 产 生 的 LSP 大 于 LSP MTU 将 分 片 ) 最多256个分片
LSP id 例 子 : 00C0 . 0040 . 1234 . 01 一 00 , 其 中 :
SourcelD: 00C0 . 0040 . 1234
Pseudonode ID: 01 ( 表 明 为 伪 结 点 产 生 的 )
分 片 号 . 0
LSP Sequence Number.
Sequence Number: 每 个 LSP ( 含 LSP 分 片 ) 都 有 一 个 自 己 的 序 列 号
当 路 由 器 启 动ISIS时,自 己 产生 的 LSP 的 序 列 号 为 1
当 发 生 变 化 需 要 重 新 生 成 LSP 的 时 候 , 产 生 序 列 号 增 加 的 新 的 LSP 传 播 出 去
较 大 的 序 列 号 意 味 着 LSP 较 新
3.SNP PDU:用于维护LSDB 的完整与同步,且为摘要信息
CSNP PDU:完全序列号报文,用于描述LSDB,同步LSP,类似于OSPF中用于描述LSDB的DD报文,DIS周期性10s发送
level-1 CSNP PDU:用于level-1邻居
level-2 CSNP PDU:用于level-2邻居
PSNP PDU:部分序列号报文,用于请求或确认LSP PDU,类似于OSPF中的LSR或LSACK(确认只用于点到点网络,广播网络无需确认)
level-1 PSNP PDU:用于level-1邻居
level-2 PSNP PDU:用于level-2邻居
邻居关系建立:
1.P2P链路上,
两次握手机制:
两次握手只要路由器收到对端发来的Hello报文,就单方面宣布邻居为up状态,建立邻居关系,容易存在单通风险
三次握手机制(默认):
通过三次发送P2P的IS-IS Hello PDU最终建立起邻居关系,与广播链路邻居关系的建立情况相同
TLV:邻居状态
为了P2P网络类型使用三次握手建立邻居,P2P hello 中增加了邻居状态TLV
2.广播链路上,使用LAN IIH报文执行三次握手建立邻居关系
当收到邻居发送的Hello PDU报文里面没有自己的system ID的时候,状态机进入initialized
只有收到邻居发过来的Hello PDU有自己的system ID才会up,排除了链路单通的风险。
广播网络中邻居up后会选举DIS(虚节点),DIS的功能类似OSPF的DR(指定路由器)
DIS与伪节点:
DIS:指定中间系统(Designated IS)
伪节点:在广播网络中由DIS创建的虚拟路由器
选举DIS:在广播网络,需要选举DIS,在邻居关系建立后,路由器会等待两个Hello报文间隔再进行DIS的选举
Hello报文中包含Priority 字段(0-127,默认64)
选举规则: Priority值最大的将被选举为该广播网的DIS
优先级相同,接口MAC地址较大的被选举为DIS
MAC地址一样,比较Systerm ID,大的为DIS
DIS发送Hello时间间隔默认为10/3秒,而其他非DIS路由器发送Hello间隔为10秒
抢占性:后期有新的Router加入到链路进来,如果优先级比DIS高是可抢占的,但是DR是不可抢占的
DIS的作用:
进行SPF计算时,简化MA网络的逻辑拓扑
减少LSP/LSA的泛洪
保障LSP交互的可靠性
由DIS发送CSNP来同步链路的LSDB
P2P先交互LSP再发CSNP
不同网络类型如何同步LSDB:
P2P网络中:邻居关系建立后,立即给对端发送CSNP报文,若发现有没同步的LSP条目则发起PSNP请求,而对端则回应LSP,收到LSP更新后要回PSNP作为收到LSP的回应,本端在发送LSP时会启动重传定时器,一旦定时器归零后没收到PSNP回应则会重新发送LSP并重新设定定时器,直到收到对端的PSNP回应
MA网络中:邻居关系建立后,路由器等待LSP刷新定时器超时,然后将自己的LSP发往组播地址 (Level-1:01-80-C2-00-00-14;Level-2:01-80-C2-00-00-15)。这样网络上所有的邻居都将收到该LSP。该网段中的DIS会把收到邻居的LSP加入到LSDB中,并等待CSNP报文定时器超时 并发送CSNP报文,进行该网络内的 LSDB 同步。 邻居收到DIS发来的CSNP报文,对比自己的LSDB数据库,然后向DIS发送PSNP报 文请求自己没有的LSP。DIS收到该PSNP报文请求后向邻居发送对应的LSP进行LSDB的同步
路由算法
SPF计算过程:
• 单区域LSDB同步完成
• 生成全网拓扑结构图
• 以本节点为根生成最短路径树
• 默认跨越每个节点开销一样
IS-IS的计算特点:
• 在本区域内路由器第一次启动的时候执行的是Full-SPF算法。
• 后续收到的LSP更新,如果是部分拓扑的变化执行的iSPF计算。
• 如果只是路由信息的变化,执行的就是PRC计算。
由于采用拓扑与网络分离的算法,路由收敛速度得到了加强
ISIS开销:
采用默认开销,默认开销均为10,不管链路带宽高低,开销都为10
配置命令:接口视图下: isis cost
ISIS计算开销的方式:
1.基于抖动(默认):华为只支持默认
Narrow模式(窄)(设备默认模式开销都是10,手工配置接口开销取值范围为1~63)。不适合大型网络(默认为窄)
Wide模式(宽)(设备默认模式开销都是10,手工配置接口开销取值范围是1~16777215)。适合大型网络
宽兼容窄
2.基于延迟
修改:协议视图:cost-style + 模式
进程下加入auto-cost enable命令,Narrow模式和Wide模式都会参考接口带宽大小计算开销值,只是参考准则有少许差异
ISIS的区域与区域间的访问:
骨干区域:所有的Level-2路由器和Level-1-2路由器构成一个连续的骨干区域(level-2区域)
Level-1-2路由器会将自己连接的Level-1区域的路由信息放进Level-2的LSP中,再泛洪给骨干区域中的其他Level-1-2路由器和Level-2路由器。所以骨干区域中的Level-1-2路由器和Level-2路由器会知道整个IS-IS路由域的路由信息
非骨干区域:所有连续的并且在同一个区域ID下的Level-1路由器和Level-1-2路由器构成一个非骨干区域(Level-1区域),Level-1区域只能连接到骨干区域,和其他的Level-1区域并不相连
1.骨干区域访问非骨干区域:
level-1-2路由器将level-1路由向level-2区域传递,那么level-2路由器就会有去往所有level-1的路由
2.非骨干区域访问骨干区域并且去访问其他区域:
level-1访问level-2区域,必须获取level-2的路由,还有level-1想访问其他level-1区域的路由,其他level-1区域的路由已经将全部发往level-2了,缺省路由;
总结:
level-2区域去访问level-1区域是通过明细路由访问,因为level-1-2路由器会将level-1区域的路由向level-2区域传递,level-2区域的设备性能好,承载能力强
level-1去访问level-2/其他level-1区域是通过缺省路由访问
该缺省路由由Level-1-2路由器产生ATT比特置位为1的LSP发布给Level-1区域
缺省下,Level-1-2路由器不会将其他Level-1区域以及Level-2区域的路由信息引入到Level-1区域。这样Level-1路由器不会学习到其他区域的路由信息,只能通过指向Level-1-2路由器的缺省路由访问其他区域的目的地址。在Level-1区域中有两台或者两台以上Level-1-2路由器的时候,Level-1路由器访问其他区域的目的地址可能无法选择最佳路径)-------可做路由渗透,将level-2路由引入level-1
路由渗透:指Level-1-2路由器将其他Level-1区域以及Level-2区域的路由信息引入到Level-1区域
作用:
为了将其他Level-1区域以及Level-2区域的路由信息通过Level-1-2路由器引入到Level-1区域,使Level-1路由器访问其他区域,解决次优路径
配置:
import-route level 2 into level 1
ISIS协议视图下:attached-bit advertise never 关闭ATT比特位产生的缺省路由,配合路由渗透使用
引入的Level-2路由,路由器不在重新发布出去
TLV编码:
TLV 编 码 方 式 :
TLV 即 type-length-value. TLV 编 码 方 式 一 种 高 效 率 , 扩 展 性 好 的 协 议 报 文 编 码 方 式 。 也 称 为 CLVG 码 (code-length-value)
T–Type 采 用 不 同 的 值 定 义 不 同 类 型
L—Length : 整 个 TLV 三 元 组 的 长 度
V-Value . 本 TLV 的 实 际 内 容 , 最 車 要 的 部 分
TLV 编 码 的 优 点 :
可 扩 展 性 好 , 如 果 想 增 加 对 于 新 特 性 的 支 持 , 只 需 增 加 新 的 TLV 类 型
ATT为1的LSP:
由level-1-2路由器生成,同区域level-1收到后,生成指向level-1-2的缺省路由
ATT为1条件:level-1-2和level-2必须处于不同区域
拓扑所体现的IS-IS与OSPF不同点:
在OSPF中,每个链路只属于一个区域;而在IS-IS中,每个链路可以属于不同的区域
在IS-IS中,单个区域没有物理的骨干与非骨干区域的概念;而在OSPF中,Area0被定义为骨干区域
在IS-IS中,Level-1和Level-2级别的路由器分别采用SPF算法,分别生成最短路径树SPT;在OSPF中,只有在同一个区域内才使用SPF算法,区域之间的路由需要通过骨干区域来转发
IS-IS与OSPF差异性:
差异性 IS-IS OSPF
网络类型 少 多
开销方式 复杂 简便
区域类型 少 多
路由报文类型 简单 多样
路由收敛速度 很快 快
扩展性 强,使用TLV传递,结构简单,易于扩展 一般,本身是为IP特定开发的,支持IPv4和IPv6的OSPF协议是两个独立的版本
路由负载能力 超强 强