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
   
    地址结构:2位为1B
    
     
   
    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
   
    DIS与DR的类比
    
     
   
    链路状态信息的交互:
    
     
   
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协议是两个独立的版本
    
    路由负载能力 超强 强
   
    
    
     
   
 
