[TOC]
OSPF和IS-IS的高级特性,包括:快速收敛机制、路由控制
OSPF快速收敛是为了提高路由的收敛速度而做的扩展特性,包括:**PRC:[Partial Route Calculation]**——部分路由计算和智能定时器。 同时,OSPF支持故障恢复快速收敛,例如通过OSPF IP FRR[Fast reroute,快速重路由]实现备份链路的快速切换,也可以与BFD联动实现对故障的快速感知
PRC的工作原理:当网络上路由发生变化的时候,只对发生变化的路由进行重新计算
格式:[Huawei-ospf] lsa-originate-interval { 0 | { intelligent-timer max-interval start-interval hold-interval | other-type interval } }
# 0:指定LSA更新的时间间隔为0,即取消LSA的5秒的更新时间间隔。
# intelligent-timer:指定通过智能定时器设置OSPF Router LSA和Network LSA的更新间隔时间
# max-interval:指定更新OSPF LSA的最长间隔时间。整数形式,取值范围是1~120000,单位是毫秒。缺省值是5000
# start-interval:指定更新OSPF LSA的初始间隔时间。整数形式,取值范围是0~60000,单位是毫秒。缺省值是500
# hold-interval:指定更新OSPF LSA的基数间隔时间。整数形式,取值范围是1~60000,单位是毫秒。缺省值是1000
# other-type:指定设置除OSPF Router LSA和Network LSA外LSA的更新间隔时间
# interval:指定LSA更新的时间间隔。整数形式,取值范围是0~10,单位是秒。缺省值是5
缺省情况下,使能智能定时器intelligent-timer,更新LSA的最长间隔时间max-interval为5000毫秒、初始间隔时间start-interval为500毫秒、基数间隔时间hold-interval为1000毫秒
start-interval
参数指定hold-interval×2^[n-2]
hold-interval×2[n-2]
达到指定的最长间隔时间max-interval
时,OSPF连续三次更新LSA的时间间隔都是最长间隔时间,之后,再次返回步骤1,按照初始间隔时间start-interval
更新LSA接收端配置:
命令:[Huawei-ospf-1] lsa-arrival-interval { interval | intelligent-timer max-interval start-interval hold-interval }
缺省情况下,使能智能定时器
intelligent-timer
,SPF计算的最长间隔时间max-interval
为10000毫秒、初始间隔时间start-interval
为500毫秒、基数间隔时间hold-interval
为1000毫秒
设置OSPF路由计算时间间隔:**
命令:[Huawei-ospf-1] spf-schedule-interval { interval1 | intelligent-timer max-interval start-interval hold-interval | millisecond interval2 }
缺省情况下,使能智能定时器intelligent-timer,SPF计算的最长间隔时间max-interval为10000毫秒、初始间隔时间start-interval为500毫秒、基数间隔时间hold-interval为1000毫秒
使用智能定时器后,SPF计算的时间间隔如下:
# interval1:指定OSPF SPF计算间隔时间。整数形式,取值范围是1~10,单位是秒
# intelligent-timer:指定通过智能定时器设置OSPF SPF计算的间隔时间
# max-interval:指定OSPF SPF计算的最长间隔时间,取值范围是1~120000毫秒。缺省值是10000
# start-interval:指定OSPF SPF计算的初始间隔时间,取值范围是1~60000毫秒。缺省值是500
# hold-interval:指定OSPF SPF计算的基数间隔时间,取值范围是1~60000毫秒。缺省值是1000
# millisecond interval2:指定OSPF SPF计算间隔时间,取值范围是1~10000毫秒
OSPF IP FRR(Fast reroute,快速重路由)是动态IP FRR,利用LFA(Loop-Free Alternates)算法预先计算出备份路径,保存在转发表中,以备在故障时将流量快速切换到备份链路上,保证流量不中断,从而达到流量保护的目的,该功能可将故障恢复时间降低到50ms以内
LFA计算备份链路的基本思路是:
OSPF IP FRR的流量保护分为链路保护和节点链路双保护
使能OSPF IP FRR
[Huawei-ospf-1] frr
[Huawei-ospf-1-frr]
# 创建并进入OSPF FRR视图。
[Huawei-ospf-1-frr] loop-free-alternate
# 使能OSPF IP FRR功能,利用LFA算法计算备份下一跳和备份出接口。
阻止OSPF接口的FRR能力
[Huawei-GigabitEthernet0/0/1] ospf frr block
# 对于承载重要业务的节点设备,通过该命令在指定接口上禁止OSPF IP FRR功能,从而使此接口相连的对端设备不成为备份链路上的节点设备,避免使能OSPF IP FRR功能后对节点设备上运行的重要业务造成影响。
OSPF与BFD联动就是将BFD和OSPF关联起来,一旦与邻居之间的链路出现故障,BFD对链路故障的快速感应能够加快OSPF对于网络拓扑变化的响应
1、配置OSPF的BFD特性
如果需要使用BFD功能快速检测链路故障,则必须在系统视图下执行bfd命令,使能全局BFD功能
[Huawei-ospf-1] bfd all-interfaces enable
# 在OSPF进程下使能BFD特性
[Huawei-ospf-1] bfd all-interfaces {min-rx-interval receive-interval | min-tx-interval transmit-interval | detect-multiplier multiplier-value | frr-binding }
# 配置BFD会话的参数值
2、配置指定接口的BFD特性
[Huawei-GigabitEthernet0/0/1] ospf bfd enable
# 在使能OSPF的特定接口下使能BFD特性
[Huawei-GigabitEthernet0/0/1] ospf bfd { min-rx-interval receive-interval | min-tx-interval transmit-interval | detect-multiplier multiplier-value | frr-binding }
# 在使能OSPF的特定接口下配置BFD会话的参数值
可以配置OSPF IP FRR与BFD联动:
路由表中存在到达同一目的地址,且同一路由协议发现的多条路由时,若这几条路由的开销值也相同,那么这些路由就是等价路由,可以实现负载分担
# 设置进行负载分担的等价路由的最大数量:
[Huawei-ospf-1] maximum load-balancing number
区域边界和自治系统边界通常都是由多个路由器组成的多出口冗余备份或者负载分担。配置缺省路由,可以减少路由表的容量,保证网络的高可用性
OSPF缺省路由通常应用于下面两种情况:
缺省路由是指目的地址和掩码都是0的路由。当设备无精确匹配的路由时,就可以通过缺省路由进行报文转发。由于OSPF路由的分级管理,Type3缺省路由的优先级高于Type5或Type7路由
1、将缺省路由通告到普通OSPF区域:
[Huawei-ospf-1] default-route-advertise [ [ always | permit-calculate-other ] | cost cost | type type | route-policy route-policy-name [ match-any ] ]
# 缺省情况下,在普通OSPF区域内的OSPF设备不产生缺省路由
2、指定Type3 Summary-LSA的缺省开销值
[Huawei-ospf-1] default-route-advertise summary cost cost
命令:[Huawei-ospf-1] default-route-advertise summary cost cost
always参数:
ASBR已经有缺省路由,执行default-route-advertise命令,将在整个OSPF区域中通告缺省路由0.0.0.0。
ASBR没有缺省路由,执行default-route-advertise命令时按照以下需求选择是否配置always参数。
如果配置always参数,无论ASBR是否有缺省路由都将在整个OSPF区域中通告缺省路由0.0.0.0,并且不再计算来自其他设备的缺省路由
如果没有配置always参数,ASBR的路由表中必须有激活的非OSPF(BGP除外)缺省路由时才生成缺省路由的LSA
match-any参数:
使用带match-any参数的路由策略时,如果有多条路由通过策略,选取最优者来生成缺省LSA。路由通过策略时,选取最优者的原则按照优先级从高到低的顺序如下:
路由设置了type的优先于未设置的,如果都设置了type,值越小越优先
路由设置了cost的优先于未设置的,如果都设置了cost,值越小越优先
路由设置了tag的优先于未设置的, 如果都设置了tag,值越小越优先
import-route命令不能引入外部路由的缺省路由。当需要引入其他协议产生的缺省路由时,必须在ASBR上配置default-route-advertise命令,发布缺省路由到整个普通OSPF区域
OSPF路由域中在通告缺省路由前,会比较缺省路由的优先级。如果在某OSPF设备上同时配置了静态缺省路由,要使OSPF通告的缺省路由加入到当前的路由表中,则必须保证所配置的静态缺省路由的优先级比OSPF通告的缺省路由的优先级低
在某些链路上通过对发送的LSA进行过滤,减少不必要的重传,节省带宽资源
通过对OSPF接口出方向的LSA进行过滤可以不向邻居发送无用的LSA,从而减少邻居LSDB的大小,提高网络收敛速度
# 配置对OSPF接口出方向的LSA进行过滤:
[Huawei-GigabitEthernet0/0/1] ospf filter-lsa-out { all | { summary [ acl { acl-number | acl-name } ] | ase [ acl { acl-number | acl-name } ] | nssa [ acl { acl-number | acl-name } ] } }
# 对于已经发送的LSA,要到3600秒才能达到老化时间
# all:对除Grace LSA外的所有LSA进行过滤
# summary:对Network Summary LSA(Type3 LSA)进行过滤
# ase:对AS External LSA(Type5 LSA)进行过滤
# nssa:对NSSA LSA(Type7 LSA)进行过滤
# acl acl-number:指定基本访问控制列表编号。整数形式,取值范围是2000~2999
# acl acl-name:指定访问控制列表名称。不支持空格,长度范围是1~32,以英文字母a~z或A~Z开始
对区域内出、入方向ABR Type3 LSA[Summary LSA]设置过滤条件,只有通过过滤的LSA才能被发布和接收
通过对区域内的LSA进行过滤可以不向邻居发送无用的LSA,从而减少LSDB的大小,提高网络收敛速度
# 配置对区域内出方向的Type3 LSA进行过滤:
[Huawei-ospf-1-area-0.0.0.1] filter { acl-number | acl-name acl-name | ip-prefix ip-prefix-name | route-policy route-policy-name } export
# 配置对区域内入方向的Type3 LSA进行过滤
[Huawei-ospf-1-area-0.0.0.1] filter { acl-number | acl-name acl-name | ip-prefix ip-prefix-name | route-policy route-policy-name } import
OSPF要求同一个区域中的路由器保存相同的LSDB,一些路由器由于系统资源有限,不能再承载如此多的路由信息,这种状态就被称为数据库超限 [OSPF Database Overflow]
# 对于路由信息不断增加导致路由器系统资源耗尽而失效的问题,可以通过配置Stub或NSSA区域来解决,但Stub或NSSA区域的方案不能解决动态路由增长导致的数据库超限问题
# 为了解决数据库超限引发的问题,通过设置LSDB中External LSA的最大条目数,可以动态限制链路数据库的规模
[Huawei-ospf-1] lsdb-overflow-limit number
- number:指定LSDB中External LSA的最大条目数。整数形式,取值范围是1~1000000。
为了避免数据库超限,可以设置路由器上非缺省外部路由数量的上限
OSPF网络中所有路由器都配置相同的上限值,只要路由器上外部路由的数量达到该上限,路由器就进入Overflow状态,并同时启动Overflow状态定时器,路由器在定时器超过5秒后自动退出Overflow状态
OSPF支持多进程,在同一台路由器上可以运行多个不同的OSPF进程,它们之间互不影响,彼此独立。不同OSPF进程之间的路由交互相当于不同路由协议之间的路由交互
路由器的一个接口只能属于某一个OSPF进程
当有新的设备加入到网络中,或者设备重启时,可能会出现在BGP收敛期间内网络流量丢失的现象。这是由于IGP收敛速度比BGP快而造成的
命令:[Huawei-ospf-1] stub-router [ on-startup [ interval ] ]
FA[Forwarding Address,转发地址]:到达所通告的目的地的数据包应该被转发到的地址,如果转发地址为0.0.0.0,那么数据包将被转发到始发ASBR上
NSSA区域Type7 LSA转化为Type5 LSA:
区域边界路由器产生的Type7 LSA缺省路由不会置位P-bit
IS-IS快速收敛是为了提高路由的收敛速度而做的扩展特性,包括:I-SPF [ Incremental SPF,增量最短路径优先算法 ]、PRC、智能定时器、LSP快速扩散
I-SPF的工作原理:当网络拓扑改变的时候,只对受影响的节点进行路由计算,而不是对全部节点重新进行路由计算,从而加快了路由的计算
# 配置LSP快速扩散
[Huawei-isis-1] flash-flood [ lsp-count | max-timer-interval interval | [ level-1 | level-2 ] ]
# lsp-count:指定每个接口一次扩散LSP的最大数量。整数形式,取值范围是1~15。缺省值是5。
# max-timer-interval interval:指定LSP扩散的最大间隔时间。取值范围是10~50000毫秒。缺省值是10毫秒
# level-1:表示在Level-1中使能此特性。如果命令中没有指定级别,则缺省同时在Level-1和Level-2中使能此功能
# level-2:表示在Level-2中使能此特性。同上
当IS-IS网络中有多条冗余链路时,可能会出现多条等价路由,此时可以采取两种方式:
注意:配置等价路由优先级后,IS-IS设备在转发到达目的网段的流量时,将不采用负载分担方式,而是将流量转发到优先级最高的下一跳
1、配置IS-IS路由负载分担
[Huawei-isis-1] maximum load-balancing number
# 配置在负载分担方式下的等价路由的最大数量。
# number:指定在负载分担方式下等价路由的最大数量。不同设备型号取值不同
2、配置IS-IS等价路由的优先级
[Huawei-isis-1] nexthop ip-address weight value
# 缺省情况下,不设置IS-IS等价路由的优先级。value值越小,表示优先级越高。
# ip-address:指定下一跳的IP地址
# weight value:指定下一跳权重。value越小则优先级越高。value是整数形式,取值范围是1~254
当组网中存在的等价路由数量大于maximum load-balancing命令配置的等价路由数量时,按照下面原则选取有效路由进行负载分担:
在IS-IS中,主要通过以下3种方式控制缺省路由的生成和发布。
**ATT [Attachment]**:由Level-1-2路由器产生,用来指明始发路由器是否与其它区域相连。此字段有4bit,华为数通产品只使用了其中1bit
在实际应用中,可以根据需要对ATT比特位进行手动配置以更好地为网络服务:
1、[Level-1-2设备] 设置IS-IS LSP报文的ATT比特位置位规则
[Huawei-isis-1] attached-bit advertise { always | never }
# 缺省情况下,Level-1-2设备发布的LSP的ATT位根据缺省置位规则来决定置位情况。
-always:指定ATT位永远置位,收到该LSP的Level-1设备会生成缺省路由
-never:指定ATT位永不置位,可以避免Level-1设备生成缺省路由,减小路由表的规模
# 虽然ATT位同时在Level-1 LSP和Level-2 LSP中进行了定义,但是它只会在Level-1 LSP中被置位,并且只有Level-1-2设备会设置这个字段,因此,该命令仅对Level-1-2设备生效
2、[Level-1设备] 控制Level-1设备不因为ATT位下发缺省路由到路由表
[Huawei-isis-1] attached-bit avoid-learning
# 缺省情况下,IS-IS按ATT位缺省使用规则生成缺省路由
# 配置Level-1设备不将缺省路由下发到路由表,有以下两种方式可以实现:
-在Level-1-2设备上配置attached-bit advertise never命令,使得其不会发布ATT位置位的LSP
-在与Level-1-2设备相连的Level-1设备上配置attached-bit avoid-learning命令
# attached-bit avoid-learning命令适用于需要针对指定设备配置的情况
具有外部路由的边界设备上配置IS-IS发布缺省路由可以使该设备在IS-IS路由域内发布一条0.0.0.0/0的缺省路由
在执行此配置后,IS-IS域内的其他设备在转发流量时,将所有去往外部路由域的流量首先转发到该设备,然后通过该设备去往外部路由域
配置运行IS-IS的设备生成缺省路由:
[Huawei-isis-1] default-route-advertise [ always | match default | route-policy route-policy-name ] [ cost cost | tag tag | [ level-1 | level-1-2 | level-2 ] ] [ avoid-learning ]
# 缺省情况下,运行IS-IS协议的设备不生成缺省路由
-always:指定设备无条件的发布缺省路由,且发布的缺省路由中将自己作为下一跳
-match default:如果路由表中存在其他路由协议或其它IS-IS进程生成的缺省路由,则在LSP中发布该缺省路由
-route-policy route-policy-name:指定路由策略名称。当该边界设备的路由表中存在满足路由策略的外部路由时,才向IS-IS域发布缺省路由,避免由于链路故障等原因造成该设备已经不存在某些重要的外部路由时,仍然发布缺省路由从而造成路由黑洞。此处的路由策略不影响IS-IS引入外部路由
-cost cost:指定缺省路由的开销值。整数形式。取值范围根据cost-style而定:当cost-style为narrow、narrow-compatible或compatible时,取值范围是0~63;当cost-style为wide或wide-compatible时,取值范围是0~4261412864
-tag tag:指定发布的缺省路由的标记值。只有当IS-IS的开销类型为wide、wide-compatible或compatible时,发布的LSP中才会携带tag值。取值范围为1~4294967295
-level-1:指定发布的缺省路由级别为Level-1。如果不指定级别,则默认为生成Level-2级别的缺省路由
-level-2:指定发布的缺省路由级别为Level-2。如果不指定级别,则默认为生成Level-2级别的缺省路由
-level-1-2:指定发布的缺省路由级别为Level-1-2。如果不指定级别,则默认为生成Level-2级别的缺省路由
-avoid-learning:避免IS-IS进程学到其他路由协议或其它IS-IS进程生成的缺省路由并添加到路由表。如果路由表中已存在学到的缺省路由为活跃状态,则将此路由置为不活跃状态
IS-IS多实例是指在同一台路由器上,可以配置多个VPN实例与多个IS-IS进程相关联
IS-IS多进程指在同一个VPN下 [或者同在公网下],可以创建多个IS-IS进程,每个进程之间互不影响,彼此独立。不同进程之间的路由交互相当于不同路由协议之间的路由交互
网络中可能需要同时承载不同的业务,为保证各业务的安全性,需要将业务进行隔离,此时,可以配置与VPN实例绑定
[Huawei] isis [ process-id ] [ vpn-instance vpn-instance-name ]
-process-id:指定IS-IS进程号。如果不指定进程,则启动进程号为1的IS-IS进程,取值范围是1~65535。缺省值是1
-vpn-instance vpn-instance-name:指定VPN实例名。如果不指定此参数,则就不会配置VPN实例与相应的IS-IS进程相关联
当IS-IS要发布的PDU中信息量太大时,IS-IS路由器将会生成多个LSP分片,用来携带更多的IS-IS信息
IS-IS LSP分片由LSP ID中的分片号 [LSP Number]字段进行标识,这个字段的长度是1Byte。因此,一个IS-IS进程最多可产生256个LSP分片,携带的信息量有限
在IS-IS中,每个系统ID都标识一个系统,每个系统都最多可生成256个LSP分片。通过增加附加系统ID,可以最多配置50个虚拟系统,从而使得IS-IS进程最多可生成13056个LSP分片
IS-IS路由器可以在两种模式下运行LSP分片扩展特性:
1、使能IS-IS进程的LSP分片扩展:
[Huawei-isis-1]lsp-fragments-extend [[ level-1 | level-2| level-1-2 ]|[mode-1 |mode-2] ]
# 缺省情况下,设备未使能IS-IS进程的LSP分片扩展功能
# 配置LSP分片扩展时,如果不指定mode和level级别,则默认为mode-1和level-1-2
-level-1:指定在Level-1级别使能分片扩展
-level-2:指定在Level-2级别使能分片扩展
-level-1-2:指定在Level-1-2级别使能分片扩展
-mode-1:该模式可以兼容以前老版本不支持LSP分片扩展特性的情况
-mode-2:该模式要求所有路由器都支持LSP分片扩展特性
2、配置一个虚拟系统:
[Huawei-isis-1] virtual-system virtual-system-id
# 缺省情况下,设备没有配置虚拟系统
# 为了使设备生成扩展LSP分片,应至少配置一个虚拟系统的系统ID。这个虚拟系统的系统ID在整个路由域中必须唯一
# 一个IS-IS进程最多可配置50个虚拟系统的System ID
-virtual-system-id:指定IS-IS进程的虚拟系统ID。长度是6字节(48比特),格式是XXXX.XXXX.XXXX
以上两条命令是配合使用的,只有使能了LSP分片扩展,并用reset isis all命令重启了IS-IS进程后,配置的虚拟系统ID才会生效