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
- ISIS收敛步骤
- ISIS快速收敛
- 前言
- 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链路故障检测
- 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是指增量路由计算,顾名思义它每次只对变化的一部分拓扑进行计算,而不是对全部拓扑重新计算。
- 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提高两台路由器的收敛速度。
- 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中,每个系统ID都标识一个系统,每个系统都最多可生成256个LSP分片。
- 使能分片扩展功能之后,如果存在由于报文装满而丢失的信息,系统会提醒重启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路由。
- 过滤前
- IS-IS对LSDB计算为路由信息时进行过滤
- Mode-2应用场景
- Mode-1应用场景
- Mode-1(用于网络中的部分路由器不支持LSP分片扩展特性的情况)
- 在IS-IS中,每个系统ID都标识一个系统,每个系统都最多可生成256个LSP分片。
- 初始系统(Originating System)
- 基本概念
- 配置过滤
- 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来区分“内部”和“外部”。
- 报文结构
- 定义
- IPv6 Reachability TLV [Type 236] [0xEC]
- ISIS协议概述
- ISIS 协议扩展
- 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 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多拓扑的支持
- 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快速收敛设计
- ISIS Cost设计比较灵活
- NET(Network Entity Title)规划
- 使能ISIS进程多拓扑
- ISIS路由协议主要可以分为以下几个方面:
- 安全性规划
- ISIS支持三种认证方式:接口认证;区域认证;域认证;
- 上述三种认证都支持简单密码和高密的MD5方式认证。
- 高密的MD5认证方式具有更高的安全性,推荐高密的MD5。
- 现网配置
- 总结
- ISIS高级特性
- ISISv6基本原理与配置
- 双栈ISIS应用案例