datacom-ISIS

ISIS

  • 概述
    • 前言
      • lISIS协议是IP网络中重要的内部网关协议,同时因为ISIS协议的TLV特性,使其具有很强的扩展性和生命力。
      • ISIS作为一种高扩展性的IGP协议,其使用场景已不局限于传统IP网络,还包括数据中心,IPv6等各种lP场景。
      • 本章将围绕ISIS协议重点介绍其高级特性和IPv6下的ISIS特性与配置,并且围绕现网介绍双栈ISIS在现网的部署与实现。
    • 目标
      • 掌握ISIS的高级特性
      • 掌握ISISv6特性及配置
      • 了解ISIS的应用
    • ISIS高级特性
      • ISIS快速收敛
        • ISIS收敛步骤
          • IGP的收敛可以总体描述为如下状态D+O+F+SPT+RIB+DD

 

  • D状态为从链路出现故障以后到路由器发现链路故障所用的时间。
  • O状态为生成LSP,用来描述新的网络拓扑结构所需要的时间。
  • F状态为从发现链路故障一直到向邻居发布FIB更新的时间。
  • SPT状态为运行SPF算法,计算最短路径树的时间。
  • RIB状态为用主CPU更新RIB表象和FIB表象的时间
  • DD状态为从主控板向线卡上发布更新路由信息的延迟
  • RIB状态和DD状态一般与路由器的硬件有关,如主CPU、线卡CPU、内存、网络处理器有关,这两个状态人为无法对收敛时间做出很大的改变。所以本文基本上以讨论前四个状态为主。
  • 链路故障检测
    • 正常情况下IS-IS链路故障检测
      • 正常情况下IS-IS的链路状态检测仅仅依赖于IS-IS协议本身,即IS-IS的IIH报文,IIH报文检测时间为秒级,不适合收敛要求高的网络
      • 将IIH的发送间隔改小,可以缩短检测时间。
    • 用其他协议辅助IS-IS链路故障检测
      • 用SDH/SONET (POS) 、光口以太做链路检测收敛速度比较快,为毫秒级,但是对接口类型有依赖性。
      • BFD技术被通常应用于IP网络中做链路状态检测,BFD为毫秒级,对接口类型没有依赖性。
      • 现有的故障检测方法
        • 硬件检测
          • 例如通过SDH(Synchronous Digital Hierarchy,同步数字体系)告警检测链路故障。
          • 硬件检测的优点是可以很快发现故障,但并不是所有介质都能提供硬件检测。
        • 慢Hello机制
          • 通常是指路由协议的Hello机制。
          • 这种机制检测到故障所需时间为秒级。
          • 对于高速数据传输,例如吉比特速率级,超过1秒的检测时间将导致大量数据丢失。
          • 对于时延敏感的业务,例如语音业务,超过1秒的延迟也是不能接受的。
          • 并且,这种机制依赖于路由协议。
          • IS-IS协议一般通过IIH报文,用来做邻居发现和失效性检测,这个检测的速度是秒级的。
        • 其他检测机制
          • 不同的协议或设备制造商有时会提供专用的检测机制,但在系统间互联互通时,这样的专用检测机制通常难以部署,如BFD
        • 生成LSP的间隔时间
          • 生成LSP的间隔时间

 

  • IS-IS协议中,当本地路由信息发生变化时,路由器需要产生新的LSP来通告这种变化。
  • 如果产生LSP的延迟时间过长,则会导致本地路由信息的变化无法及时通告给邻居路由器,使网络的收敛速度变慢。
  • l在IS-IS协议中,当LSP生成定时器到期时,系统会根据当前拓扑重新生成一个自己的LSP。
  • 原有的实现机制是采用间隔时间定长的定时器,不能同时满足快速收敛和低CPU占用率的需要。
  • 为了加快网络的收敛速度,同时又不影响系统性能,因此在产生LSP时使用了智能定时器,它可以根据路由信息的变化频率自动调整延迟时间。
  • 使其可以对于突发事件(如接口Up/Down)快速响应,加快网络的收敛速度。
  • 同时,当网络变化频繁时,智能定时器的间隔时间会自动延长,避免过度占用CPU资源。
  • 加快泛洪LSP的时间
    • LSP快速扩散

 

  • 为了加快整个网络的收敛速度,当IS-IS收到其它路由器发来的LSP时,如果此LSP比自己LSDB中的要新,按原来RFC协议的实现,则是用一个定时器,定时将LSDB内的LSP扩散出去,所以LSDB的同步会比较缓慢。
  • LSP快速扩散特性改进了这种方式,配置此特性的路由器收到一个或多个比较新的LSP时,在路由计算之前,先将小于指定数目的LSP扩散出去,加快LSDB的同步过程。这种方式在很大程度上可以提高整个网络的收敛速度。
  • 用户可以指定每次扩散的LSP数量,这个数量是针对所有接口的。
  • 如果需要发送的LSP的数量大于这个数,则就发送lsp-count个LSP。
  • 如果配置了定时器,在路由计算之前如果这个定时器未超时,则立即扩散;否则在该定时器超时时发送。
  • 如果命令中没有指定级别,则缺省同时在Level-1和Level-2中使能此功能。
  • 加快SPF的计算时间
    • SPF智能定时器

 

  • 改进了路由算法后,如果触发路由计算的间隔较长,同样会影响网路的收敛速度。
  • 使用毫秒级定时器可以缩短这个间隔时间,但如果网络变化比较频繁,又会造成过度占用CPU资源。
  • SPF智能定时器既可以对少量的外界突发事件进行快速响应,又可以避免过度的占用CPU。
  • 通常情况下,一个正常运行的IS-IS网络是稳定的,发生大量的网络变动的几率很小,IS-IS路由器不会频繁的进行路由计算,所以第一次触发的时间可以设置的非常短(毫秒级)。
  • 如果拓扑变化比较频繁,智能定时器会随着计算次数的增加,间隔时间也会逐渐延长,避免占用大量的CPU资源。
  • 改进SPF的计算方法
    • I-SPF 增量路由计算
      • I-SPF是指增量路由计算,顾名思义它每次只对变化的一部分拓扑进行计算,而不是对全部拓扑重新计算。

 

  • 在ISO-10589中定义使用Dijkstra算法进行路由计算。
    • 当网络拓扑中有一个节点发生变化时,这种算法需要重新计算网络中的所有节点。
    • 计算时间长。
    • 占用过多的CPU资源。
    • 影响整个网络的收敛速度。
  • I-SPF除了第一次计算时需要计算全部节点外,每次只计算影响的节点。
    • I-SPF改进了Dijkstra算法,除了第一次计算时需要计算全部节点外,每次只计算影响的节点,而最后生成的最短路径树SPT与原来的算法所计算的结果相同,大大降低了CPU的占用率,提高了网络收敛速度。
  • 部分路由计算PRC的原理与I-SPF相似,都是只计算变化的那一部分。但PRC不需要计算节点路径,而是根据I-SPF算出来的SPT来更新叶子(路由)。
    • 在路由计算中,路由代表叶子,路由器则代表节点。
    • 如果I-SPF计算后的SPT改变,PRC会只处理那个变化的节点上的所有叶子。
    • 如果经过I-SPF计算后的SPT并没有变化,则PRC只处理变化的叶子信息。
    • 比如一个IS接口,则整个网络拓扑的SPT是不变的,这时PRC只更新这个节点的接口路由,从而节省CPU占用率。
    • PRC和I-SPF节点使能一个IS-配合使用可以将网络的收敛性能进一步提高,它是原始SPF算法的改进,所以已经代替了原有的算法。
  • 修改广播网络为点到点可以减少网络中伪节点的数量,从而减少SPF的计算时间。
  • 默认情况下华为路由器采用I-SPF和PRC进行计算,不需要命令配置。
  • ISIS快收敛配置
    • R1和R2两台路由器互连,并且两个路由器之间通过IS-IS协议实现互通。现要求通过BFD提高两台路由器的收敛速度。

 

  • ISIS 管理标记
    • 基本特性
      • 管理标记特性允许在IS-IS域中通过管理标记对IP地址前缀进行控制,可以达到简化管理。
      • 其用途包括
        • 控制不同级别和不同区域间的路由引入。
        • 以及在同一路由器上运行的IS-IS多实例。
      • 管理标记值与某些属性相关联。
        • 当cost-sytle为wide、wide-compatible或compatible时,如果发布可达的IP地址前缀具有该属性,IS-IS会将管理标记加入到该前缀的IP可达信息TLV中。
        • 这样,管理标记就会随着前缀发布到整个路由域。
      • 工作原理
        • R1需要与处于area2区域的R2相互通信,且为了保证信息安全,area2区域内的路由器不能收到R1发送的报文信息。

 

  • 首先,可以给R1、R2使能了IS-IS的接口配置相同的管理标记值tag。
  • 然后在area1的Level-1-2路由器做从Level-2到Level-1区域的路由渗透时,应用匹配指定的tag。
  • 这样就可以满足R1在与area2区域通信时,仅与R2进行通信。
  • Tag管理标记应用以后,area1内的R1路由器的仅能看到area2内的R2路由器

 

  • ISIS LSP分片
    • 基本概念
      • 初始系统(Originating System)
        • 初始系统是实际运行IS-IS协议的路由器。
        • 允许一个单独的IS-IS进程像多个虚拟路由器一样发布LSP。
        • 而“Originating System”指的是那个“真正”的IS-IS进程。
      • 系统ID(Normal System-ID)
        • 初始系统的系统ID。
      • 虚拟系统(Virtual System)
        • 由附加系统ID标识的系统,用来生成扩展LSP分片。
        • 这些分片在其LSP ID中携带附加系统ID。
      • 附加系统ID(Additional System-ID)
        • 虚拟系统的系统ID。
        • 由网络管理器统一分配。
        • 每个附加系统ID都允许生成256个扩展的LSP分片。
      • 工作原理
        • 在IS-IS中,每个系统ID都标识一个系统,每个系统都最多可生成256个LSP分片。
          • 在IS-IS中,每个系统ID都标识一个系统,每个系统都最多可生成256个LSP分片。
            • IS-IS LSP分片由LSP ID中的LSP Number字段进行标识,这个字段的长度是1字节。
            • 一个IS-IS进程最多可产生256个LSP分片,携带的信息量有限。
            • 在RFC3786中规定,IS-IS可以配置虚拟的System ID ,并生成虚拟IS-IS的LSP报文来携带路由等信息
          • 通过增加附加系统ID,可以最多配置50个虚拟系统,从而使得IS-IS进程最多可生成13056个LSP分片。
          • 当IS-IS要发布的链路状态协议数据报文PDU(Protocol Data Unit)中的信息量太大时,IS-IS路由器将会生成多个LSP分片,用来携带更多的IS-IS信息。
        • 使能分片扩展功能之后,如果存在由于报文装满而丢失的信息,系统会提醒重启IS-IS。
          • 使能分片扩展功能之后,如果存在由于报文装满而丢失的信息,系统会提醒重启IS-IS。
          • 重启之后,初始系统会尽最大能力装载路由信息,装不下的信息将放入虚拟系统的LSP中发送出去,并通过24号TLV来告知其他路由器此虚拟系统和自己的关系。
        • 工作模式
          • Mode-1(用于网络中的部分路由器不支持LSP分片扩展特性的情况)
            • Mode-1应用场景
              • 用于网络中的部分路由器不支持LSP分片扩展特性的情况。
            • Mode-1工作原理
              • 虚拟系统参与路由SPF计算。
              • 初始系统发布的LSP中携带了到每个虚拟系统的链路信息。
              • 类似地,虚拟系统发布的LSP也包含到初始系统的链路信息。
              • 这样,在网络中虚拟系统看起来与初始系统相连的真实路由器是一样的。
              • 这种方式是为了兼容不支持分片扩展的老版本所做的一个过渡模式。
              • 在老版本中,IS-IS无法识别IS Alias ID TLV,所以虚拟系统的LSP必须表现的像一个普通IS-IS发出的报文。
            • Mode-2(用于网络中所有路由器都支持LSP分片扩展特性的情况)
              • Mode-2应用场景
                • 用于网络中所有路由器都支持LSP分片扩展特性的情况。
              • Mode-2工作原理
                • 虚拟系统不参与路由SPF计算。
                • 网络中所有路由器都知道虚拟系统生成的LSP实际属于初始系统。
                • 在该模式下工作的IS-IS,可以识别IS Alias ID TLV的内容,并作为计算树和路由的依据。
              • 说明
                • 无论在哪种方式下,初始系统和虚拟系统的LSP零分片中,都必须包含IS Alias ID TLV来表示初始系统是谁。
              • ISIS 路由过滤
                • IS-IS对LSDB计算为路由信息时进行过滤
                  • 通过配置IS-IS LSDB中的信息是否加入IP路由表,来控制加入IP路由表的IS-IS路由数量,减少IP路由表的规模。
                  • 配置ACL规则
                    • acl { name basic-acl-name { basic | [ basic ] number basic-acl-number } |[ number ] basic-acl-number } [ match-order { config | auto } ]
                    • rule[ rule-id] [ namerule-name] { deny| permit} [ fragment-type{ fragment| non-fragment| non-subseq| fragment-subseq| fragment-spe-first} | source{ source-ip-address{ source-wildcard| 0| src-netmask} | any} | time-rangetime-name| vpn-instancevpn-instance-name]
                  • 配置过滤器
                    • filter-policy { acl-number | acl-name acl-name } import
                  • 举例说明
                    • 过滤前
                      • RouterA与RouterB建立ISIS邻居,通过ISIS,RouterA可学习到RouterB的loopback1路由。

 

  • 配置过滤
    • RouterA与RouterB建立ISIS邻居,通过ISIS部署流策略使RouterA的路由表中没有RouterB的loopback1路由,而RouterB的loopback1信息会存在于RouterA的ISIS LSDB中。

 

  • 配置过滤后
    • 配置过滤后,RouterA的路由表中没有RouterB的loopback1路由,而RouterB的loopback1信息会存在于RouterA的ISIS LSDB中。

 

  • IS-IS对引入的路由信息进行过滤
    • 通过配置IS-IS在引入外部路由时进行过滤,有效控制网络中IS-IS路由信息的数量。
    • 配置地址前缀列表
      • ip ip-prefix ip-prefix-name [ index index-number ] { permit | deny } ip-address mask-length [ greater-equal greater-equal-value ] [ less-equal less-equal-value ]
    • 配置路由策略
      • route-policy route-policy-name { permit | deny } node node
      • if-match acl { acl-number | acl-name }
      • if-match ip-prefix ip-prefix-name
    • 举例说明
      • 过滤前
        • RouterA与RouterB建立ISIS邻居,RouterB可以引入loopback1的直连路由到RouterB的ISIS LSDB,并通告给RouterA。

 

  • 配置过滤
    • RouterA与RouterB建立ISIS邻居,RouterB在引入loopback1的直连路由到RouterB的ISIS LSDB时,配置引入的过滤。

 

  • 配置过滤后
    • 配置过滤后,RouterB的loopback1的直连路由没有引入到RouterB的ISIS LSDB。从而RouterA不会学到RouterB的loopback1路由。

 

  • IS-IS对外部路由信息在发布时进行过滤
    • IS-IS对已引入的外部路由在向外发布时进行过滤的策略。
    • 配置外部路由的发布过滤策略
      • filter-policy { acl-number | acl-name acl-name | ip-prefix ip-prefix-name | route-policy route-policy-name } export [ protocol [ process-id ] ]
    • 举例说明
      • 过滤前
        • RouterA与RouterB建立ISIS邻居,RouterB可以引入loopback1的直连路由到RouterB的ISIS LSDB,并正常通告给RouterA。从而RouterA学习到RouterB的loopback1路由。

 

  • 配置过滤
    • RouterA与RouterB建立ISIS邻居,RouterB的loopback1直连路由正常引入到RouterB的ISIS LSDB。 RouterB在向RouterA通告LSP时,配置针对RouterB的loopback1的过滤。

 

  • 配置过滤后
    • 配置过滤后,RouterA的ISIS LSDB中没有RouterB的loopback1的信息,从而RouterA不会学到RouterB的loopback1路由。

 

  • ISIS 路由渗透
    • Level-1区域内的路由信息通过Level-1-2路由器通报给Level-2区域,因此,Level-1-2和Level-2路由器知道整个IS-IS路由域的路由信息。
    • 但是,在缺省情况下,Level-2路由器并不将自己知道的其他Level-1区域以及骨干区域的路由信息通报给Level-1区域。
    • 这样,Level-1路由器将不了解本区域以外的路由信息,可能导致对本区域之外的目的地址无法选择最佳的路由。
    • 为解决上述问题,IS-IS提供了路由渗透功能。
    • 注意:Level 1路由器在收到两条相同的路由的时候,会优选本区域的路由,不会优选L2区域过来的路由,尽管L2的路由cost较小。
    • 配置命令
      • 在L1-2路由器上执行

 

  • [RTB]isis
  • [RTB-isis-1]import-routeisislevel-2 into level-1
  • ISISv6基本原理与配置
    • ISIS 协议扩展
      • ISIS协议概述
        • lSIS是一种IGP协议。
        • ISIS使用SPF算法计算路由。
        • ISIS的报文采用TLV结构,因此扩展性很好。
          • 为支持新的协议和特性,只需要扩展新的TLV或子TLV。
          • 可以轻松扩展支持IPv6,TE,MT等协议和特性。
          • IS-IS对IPv6的支持不需要对协议做大的改动,因此协议的继承性很好;不像OSPF,为支持IPv6需要开发全新的协议OSPFv3。
        • 扩展的TLV类型
          • IPv6 Reachability TLV [Type 236] [0xEC]
            • 定义
              • IPv6 Reachability。
              • 类型值为236(0xEC)。
              • 通过前缀、度量、标记等来描述可达的IPv6前缀信息。
              • 在IPv4中有IPv4内部可达性TLV和IPv4外部可达性TLV,在IPv6的扩展当中使用一个“X”bit来区分“内部”和“外部”。
            • 报文结构

 

  • U:up/downbit ,标识这个前缀是否是从高level通告下来的(用来防环路)。
  • X:externaloriginal bit ,标识这个前缀是否是从其他路由协议中引入过来的。
  • S:subtlvpresent bit,子TLV标识位。(可选)
  • 其他说明
    • 这个数据结构可能会重复多次(当有多个路由前缀的时候)。
    • Metric字段已经被重新定义了,MAX_PATH_METRIC(1023) 变成了 MAX_V6_PATH_METRIC(0xFE000000)。
    • 如果一个前缀的METRIC大于MAX_V6_PATH_METRIC,那么它不是用来构建路由表的,而是用于一些特殊的目的。
    • TLV128:IP内部可达性信息。
    • TLV130:IP外部可达性信息。
    • 在TLV236中,“外部”和“内部”用“X”比特表示。
  • IPv6 Interface Address TLV [Type 232] [0xE8]
    • 定义
      • IPv6 Interface Address。
      • 类型值为232(0xE8),TLV 232 跟 TLV 132相似。
      • 它相当于IPv4中的“IP Interface Address” TLV,只不过把原来的32比特的IPv4地址改为128比特的IPv6地址。
    • 报文结构

 

  • 这个TLV结构是直接从TLV132映射过来的,因此,原来TLV132最多可以64个IP地址(32位),在TLV232中,最多只能有16个IPv6地址(128位)。
  • 在不同的PDU中,这个字段的内容是不同的。
    • 在hello PDU中,“接口地址TLV”只能包含发送hello包的接口的Link-local地址。
    • 对于LSP,“接口地址TLV”只能包含IS的non-link-local IPv6
  • ISIS ST和MT
    • IS-IS ST单拓扑
      • 定义

 

  • IS-IS为所有协议维护相同的SPT(Shortest Path Tree)
  • IPv4和IPv6的拓扑必须一致
  • 缺陷
    • 不足
      • 网络可维护性的需求在目前的运营商中越来越被重视,独立拓扑的维护网络,即带内维护网络的需求开始出现。
      • IS-IS为所有协议维护相同的SPT,这意味着IPv4和IPv6的拓扑必须一致。
    • 问题
      • 不适合分离拓扑的网络部署。
      • 为维护相同的拓扑,所有接口都必须同时运行IS-ISIPv4和IS-ISIPv6,部署不灵活。
      • 不能使用IPv4区域来链接不同的IPv6区域,否则IPv4区域会丢弃IPv6的流量。
    • IS-IS MT多拓扑
      • IS-IS 对MT多拓扑的支持
        • IS-IS 对MT多拓扑的支持

 

  • MT可以使IS-IS在一个路由域中维护多个拓扑。
  • 如果支持MT,IS-IS可以为IPv4和IPv6维护分离的拓扑。
  • 重要的是,使用MT,IPv4和IPv6的拓扑就不需要一样了。
  • MT(多拓扑):分离的拓扑
    • ISIS路由协议主要可以分为以下几个方面:
      • 邻居的建立,
      • 路由可达(PrefixReachable)与路由器可达(ISReachable)的发布,
      • SPF计算以及路由计算。
    • 为了达到多拓扑的相互隔离,以上几个方面均要求携带MT参数以满足这一要求(SPF计算与路由计算在路由器内识别完成)。
    • 于是,draft-ietf-isis-wg-multi-topology-11中定义了四种新的TLV分别满足以上过程,实现了通用环境下的ISISMT的交互过程。
      • TLV229 – Multi-Topology Identifier
      • TLV222 – Multi-Topologies Intermediate System
      • TLV235 – Multi-Topologies Reachable IPv4 Prefixes
      • TLV237 – Multi-Topologies Reachable IPv6 Prefixes
    • ISISv6配置
      • 使能ISIS进程多拓扑
        • [Huawei-isis-1]ipv6  enable topology ipv6
      • 接口上使能ISIS
        • [Huawei-GigabitEthernetX/Y/Z]isis ipv6 enable
      • 查看ISIS邻居关系
        • [Huawei]dis isis peer
      • 查看ISIS路由
        • [Huawei]dis isis route
      • 双栈ISIS应用案例
        • NET(Network Entity Title)规划
          • NET格式:AA.BBBB.CCCC.DDDD.SSSS.SSSS.SSSS.00
          • Area ID = AA.BBBB.CCCC.DDDD
            • AA:49,地址格式标识符AFI(AFI=49的地址为OSI协议的私有地址)
            • BBBB:可以是国家编码,例如中国0086
            • CCCC:可以是省编码,自己定义,例如辽宁省0003
            • DDDD:可以是设备所在站点编码,自己定义,例如辽宁省大连站点3821
          • System ID = SSSS.SSSS.SSSS
            • 业界通行的做法是通过设备Loopback0地址演绎,生成System ID
          • NSEL始终为00
        • 分层分区域规划
          • 所有ISIS路由器都工作在Backbone,Level-2模式;(首选)
          • 所有ISIS路由器都工作在同一个Area,Level-1模式;
        • Cost规划
          • ISIS Cost设计比较灵活
            • 可以根据链路物理带宽设计
            • Cost的设计决定网络流量的走向
            • 所以除了考虑上述2个因素外,更重要的是考虑客户对网络流量走向的需求。
            • 这就要求在Cost设计前,要清楚不同端到端场景的流量走向。
          • ISIS有三种设置链路Cost值的方法:
            • 在接口视图下设置接口的Cost值
            • 在系统视图下设置ISIS实例下所有接口Cost值
            • 在系统视图下根据带宽自动计算Cost值
          • 可靠性规划
            • ISIS快速收敛设计
              • BFD For ISIS:链路故障快速检测
              • ISPF(Incremental SPF):加快路由收敛(缺省支持)
              • PRC(Partial Route Calculation):加快路由收敛(缺省支持)
              • LSP Fast Flooding:加快LSDB同步
              • 智能定时器:加快路由收敛,增强网络稳定性

 

  • 安全性规划
    • ISIS支持三种认证方式:接口认证;区域认证;域认证;
    • 上述三种认证都支持简单密码和高密的MD5方式认证。
    • 高密的MD5认证方式具有更高的安全性,推荐高密的MD5。
  • 现网配置

 

  • 总结
    • ISIS高级特性
    • ISISv6基本原理与配置
    • 双栈ISIS应用案例

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注