IS-IS基本功能配置与管理

只有配置了IS-IS基本功能,才可组建IS-IS网络。IS-IS基本功能包括以下几项配置任务:创建IS-IS进程是配置网络实体名称、配置全局Level级别以及建立IS-IS邻居的前提。在配置IS-IS基本功能之前,还需要配置接口IP地址,使相邻节点的网络层可达。

①创建IS-IS进程。
②配置网络实体名称。
③配置全局Level级别。
④建立IS-IS邻居
⑤(可选)配置IS-IS主机名映射。

一、创建IS-IS进程

创建IS-IS进程是进行所有IS-IS配置的前提。IS-IS支持多进程,它是指在同一个VPN下(或者同在公网下)可以创建多个IS-IS进程,每个进程之间互不影响,彼此独立。不同进程之间的路由信息交互相当于不同路由协议之间的路由交互。但IS-IS进程也仅针对本地路由器而言,链路两端的IS-IS进程号可以一样,也可以不一样。

IS-IS多进程允许为一个指定的IS-IS进程关联一组接口,从而保证该进程的所有协议操作都仅限于这一组接口。这样,就可以使一台路由器有多个IS-IS协议进程,每个进程负责唯一的一组接口。

system-view
isis
[process-id] [vpn-instance vpn-instance-name]     创建IS-IS进程,使能IS-IS协议。
description description    配置IS-IS进程 的描述信息。

二、配置网络实体名称

网络实体名称NET是NSAP的特殊形式,由三部分组成:区域ID(Area ID),区域ID的长度可以是变化的(1~13个字节);系统ID(System ID),长度为固定值6个字节;最后一个字节SEL,其值必须为00。其中的系统ID用于识别不同的IS-IS路由器。

通常情况下,一个IS-IS进程下配置一个NET即可。当需要重新划分区域时,如要将多个区域合并,或者将一个区域划分为多个区域,这种情况下配置多个NET可以在重新配置时仍然能够保证路由的正确性,由于在一个IS-IS进程中一台路由器的区域地址最多可配置3个,所以一台路由器在一个进程中的NET最多也只能配3个。在一个IS-IS路由器上配置多个NET时,必须保证它们的System ID部分都相同。只有在完成IS-IS进程的NET配置后,IS-IS协议才能真正启动。

配置网络实体名的方法,只需在对应的IS-IS进程视图下使用network-entity net命令配置即可。参数net用来指定本地路由器在对应进程下的网络实体名称,格式为:X…X.XXXX.XXXX.XXXX.00(都是十六进制数),前面的“X…X”(1~13个字节)是区域地址,中间的12个“X”(共代表6个字节)是路由器的System ID,最后的“00”(1个字节)是SEL。

区域ID用来唯一标识路由域中的不同区域,同一L1区域内所有路由器必须具有相同的区域地址,L2区域内的路由器可以具有不同的区域地址,具体要根据对应路由器所位于的区域。但在整个L1区域和L2区域中,每台路由器的系统ID必须保持唯一。IS-IS在建立L2邻居时,不检查区域地址是否相同,而在建立L1邻居时,区域地址必须相同,否则无法建立邻居

为了避免冲突,可将路由器上的一个Loopback接口的IP地址转化为NET中的系统ID部分,以保证NET在整个IS-IS进程下网络中的唯一性。

示例:指定IS-IS进程1的NET为10.0001.1010.1020.1030.00,其中系统ID是1010.1020.1030,区域ID是10.0001。

[Huawei]isis 1
[Huawei-isis-1]network-entity10.0001.1010.1020.1030.00

三、配置全局Level级别

建议在设计IS-IS网络之初就全局规划好各路由器的Level级别,也就是配置IS-IS路由器类型。要考虑以下几个方面:

①当Level级别为L1时,设备只与属于同一区域的L1和L1/2设备形成邻居关系,并且只负责维护L1的链路状态数据库LSDB。

②当Level级别为L2时,设备可以与同一或者不同区域的L2设备或者其他区域的L1/2设备形成邻居关系,并且只维护一个L2的LSDB。

③当Level级别为L1/2时,设备会为L1和L2分别建立邻居,分别维护L1和L2两份LSDB

一般来说,将L1路由器部署在区域内,L2路由器部署在区域间,L1/2路由器部署在L1和L2路由器的中间。IS-IS路由器的Level级别和接口的Level级别共同决定了建立邻居关系的Level级别。两台L1/2路由器建立邻居关系时,缺省情况下,会分别建立L1和L2邻居关系。如果只希望建立L1或者L2的邻居关系,可以通过执行isis circuit-level [level-1 | level-1-2 | level-2]命令修改接口的Level级别来实现。

如只有一个区域,建议将所有路由器的Level全部设置为L1或者全部设置为L2,因为没有必要让所有路由器同时维护两个完全相同的数据库。在IP网络中使用时,建议将所有的路由器都设置为L2,这样有利于以后的扩展。

配置设备的Level级别的方法,只需在对应的IS-IS进程下使用is-level{level-1 | level-1-2 | level-2}命令配置即可。缺省IS-IS设备级别为L1/2,即同时参与L1和L2的路由计算。

四、建立IS-IS邻居

由于IS-IS在广播网中和P2P网络中建立邻居的方式不同,针对不同类型的接口,可以配置不同的IS-IS属性。

①在广播网中,IS-IS需要选择DIS,因此通过配置IS-IS接口的DIS优先级,可以使拥有接口优先级最高的设备优选为DIS。

②在P2P网络中,IS-IS不需要选择DIS,无需配置接口的DIS优先级。但为了保证P2P链路的可靠性,可配置IS-IS使用P2P接口在建立邻居时采用3-way(即三次握手)模式,以检测单向链路故障。

在P2P网络中,通常IS-IS会对收到的Hello报文进行IP地址检查,只有当收到的Hello报文的源地址和本地接收报文的接口地址在同一网段时,才会建立邻居。但当两端接口IP地址不在同一网段时,如果均配置了isis peer-ip-ignore命令,就会忽略对对端IP地址的检查,此时链路两端的IS-IS接口间仍可以建立正常的邻居关系。

广播网络中IS-IS邻居建立配置

system-view
interface
interface-type interface-number    进入要建立IS-IS邻居的广播类型IS-IS接口
isis enable [process-id]      在接口上使能IS-IS功能,并指定要关联的IS-IS进程号。一个接口只能与一个IS-IS进程相关联。在全局使能IS-IS功能后,还必须在对应的IS-IS接口上使能IS-IS功能,否则接口仍然无法使用IS-IS协议。
isis circuit-level [level-1 | level-1-2 | level-2]     配置IS-IS路由器的接口链路类型。
isis dis-priority priority [level-1 | level-2]     设置接口在进行DIS选举时的优先级。
isis silent [advertise-zero-cost]     配置IS-IS接口为抑制状态,即抑制该接口接收和发送IS-IS报文,但此接口所在网段的直连路由仍可以通过IS-IS被发布出去。当IS-IS网络与其他自治系统连接时,为了让区域内的路由器学到出口路由,需要在该出口上使能IS-IS协议。但这同时会让该出接口向其所在网段发布IS-ISHello报文,使其他自治系统也可以学习到IS-IS网络的路由,为避免IS-IS引入其他系统的流量,可启用IS-IS接口抑制功能,使该接口仅使能IS-IS功能,但不接收和发布IS-IS报文。

P2P网络中IS-IS邻居建立配置

system-view
interface
interface-type interface-number    进入要建立P2P邻居的 P2P IS-IS接口
isis enable [process-id]      在接口上使能IS-IS功能,并指定要关联的IS-IS进程号。
isis circuit-level [level-1 | level-1-2 | level-2]     配置IS-IS路由器的接口链路类型。
isis circuit-type p2p      将IS-IS广播网接口的网络类型模拟为P2P类型。
isis ppp-negotiation {2-way| 3-way [ only ] }      指定在建立邻接关系时采用的PPP协商类型。
isis peer-ip-ignore      配置对接收的Hello报文不作IP地址检查。
isis ppp-osicp-check      配置PPP链路协议的接口检查OSICP(开放系统互联控制协议,相当于TCP/IP网络中的TCP)协商状态。本命令仅适用于OSI网络。

五、配置IS-IS主机名映射

通常在运行IS-IS协议的设备上,查看IS-IS邻居和链路状态数据库等信息时,IS-IS域中的各设备都是用由12位十六进制数组成的SystemID来表示的,比较繁琐。为此IS-IS协议引入了动态和静态主机名映射机制。配置IS-IS主机名映射后,在使用display命令查看IS-IS的相关信息时,会以配置的动态名称代替设备的SystemID,提高可维护性。

下列三种情况下会将SystemID替换为主机名显示。

①显示IS-IS邻居时,将IS-IS邻居的SystemID替换为主机名。如该邻居为DIS,则DIS的SystemID也替换为该邻居的主机名。

②显示IS-IS链路状态数据库中的LSP时,将LSP ID中的SystemID替换为发布该LSP的设备的主机名。

③显示IS-IS LSDB的详细信息时,对于使能可动态主机名交换的设备发送的LSP报文会增加显示Host Name字段,而此字段显示内容中的SystemID也将替换为发送此LSP的设备的动态主机名。

IS-IS主机名映射机制包括动态主机名映射和静态主机名映射。动态主机名映射的优先级高于静态主机名映射。两者同时存在时,由动态主机名代替静态主机名。

1、配置动态主机名映射

在使能了动态主机名映射的设备上,IS-IS动态主机名的信息在LSP中以137号TLV(Dynamic Host name TLV)的形式发布给其他IS-IS设备。在其他设备上使用IS-IS相关显示命令查看IS-IS信息时,本地设备的SystemID将被设置的主机名所代替。动态主机名的TLV是可选的,且可以存在于LSP的任何位置,其中的value值不能为空。设备在发送LSP的时候可以决定是否携带该TLV,接收端的设备也可以决定是否忽略该TLV,或者提取该TLV的内容放在自己的映射表中。

配置动态主机名映射的方法,是在IS-IS进程下使用is-name symbolic-name命令进行,使能识别LSP报文中主机名称的能力,同时为本地路由器上IS-IS系统配置动态主机名,并以LSP报文的方式发布出去。参数symbolic-name用来指定动态主机名。配置成功后,可通过display isis name-table命令查看到所配置的主机名称。

示例:为本地IS-IS系统配置名称为RUTA。

[Huawei]isis
[Huawei-isis-1]is-name RUTA

2、配置静态主机名映射

在IS-IS进程下执行is-name map system-id symbolic-name命令,使能本地路由器识别LSP报文中主机名称的功能,并在本端为远端IS-IS路由器配置一个静态主机名。该配置属于静态配置,仅对本地设备生效,配置的主机名称symbolic-name不会通过LSP报文发送出去。因此,如果网络中的对应IS-IS设备配置了动态主机名映射,那么该映射将覆盖本地设备的静态映射。

示例:为远端路由器的IS-IS系统(0000.0000.0041)配置静态名称RUTB映射。

[Huawei]isis
[Huawei-isis-1]is-name map 0000.0000.0041 RUTB

六、IS-IS基本功能管理

①display isis peer[verbose] [process-id | vpn-instance vpn-instance-name]:查看指定或所有IS-IS进程中的邻居信息。
②display isis interface [verbose] [process-id | vpn-isntance vpn-instance-name]:产看指定或所有IS-IS进程中使能了IS-IS的接口信息。
③display isis route[process-id | vpn-instance vpn-instance-name] [ipv4] [verbose | [level-1 |level-2 ] | ip-address [mask | mask-length]]*:查看指定或所有IS-IS进程中的路由信息。
④display isis process-id lsdb [ [level-1 | level-2] | verbose | [local | lsp-id | is-namesymbolic-name]]*查看指定进程下符合条件的IS-IS的链路状态数据库信息。
⑤display isis name-table:查看本地和远端IS-IS设备主机名到系统ID的映射关系表。
⑥reset isis all [ [process-id| vpn-instance vpn-instance-name] | graceful-restart ]*:复位指定或所有IS-IS进程的数据结构。
⑦reset isis peer system-id [process-id | vpn-instance vpn-instance-name]:复位指定或所有IS-IS进程的特定邻居。当IS-IS路由策略或协议发生变化后,需要通过复位IS-IS特定邻居使新的配置生效。

七、IS-IS基本功能配置示例

如上图拓扑,现网中有4台路由器。用户希望利用这4台路由器通过IS-IS协议实现网络互联,并且因为RouterA和RouterB性能较低,所以要使这两台路由器处理的数据信息相对较少。

1、基本配置思路

通过配置基本的IS-IS功能就可以实现各路由器网络的互通了。要注意A和B配置成普通区域中的L1路由器,在一定程度上类似于OSPF中的Stub区域中的内部路由器。当然首先配置各路由器接口的IP地址,使三层可达。

同时与A和B相连的C成了L1/2路由器。而一个IS-IS网络中,至少得有一个骨干区域,所以D自然要单独划为骨干区域,为L2路由器。但它不能与A和B同处于一个区域,因为A和B已确定是位于普通区域中的。

eNSP实验:

配置接口IP




配置各路由器的IS-IS基本功能,包括启动IS-IS进程(同样进程号只对本地设备有意义),配置全局路由器级别、网络实体名称,并要在各IS-IS接口上使能IS-IS功能。把这四台路由器的SystemID分别配置为0000.0000.0001、0000.0000.0002、0000.0000.0003、0000.0000.0004(每个必须是12位十六进制数)。




在各路由器上执行display isis lsdb显示IS-IS LSDB信息。其中“*(In TLV)”表示渗透路由,“*(By LSPID)”表示本地生成的LSP,“+”表示本地生成的扩展LSP。在L1路由器中有L1 LSDB,在L1/2路由器中同时有L1 LSDB和L2 LSDB,在L2路由器只有L2 LSDB。从中可以看出,同处于区域10的A、B和C的L1 LSDB完全一样,而位于L2区域的C和D的L2 LSDB完全一样。




还可通过display isis route显示各路由器的IS-IS路由信息。L1路由器的路由表中应该有一条缺省路由,且下一跳为L1/2路由器,L2路由器应该有所有L1和L2的路由。输出信息中的“IntCost”为IS-IS路由的开销值,“ExtCost”为由外部引入的其他协议路由的开销值,“ExitInterface”为路由的出接口,“NextHop”为路由的下一跳地址。当目的网段为设备直连网段时,显示为Direct,“Flags”为路由信息标记,不同路由标记具体如下:

①D:表示直连路由
②A:表示此路由被加入单播路由表中。
③L:表示此路由通过LSP发布出去。




同样的配置,形成的LSDB可能也不同,上面是第一次配置后的LSDB,后来,用eNSP又重新做了一遍,结果如下(配置完全相同):

抓包:Hello报文

LSP PDU:

CSNP:

IS-IS路由聚合

配置路由聚合,可减少路由表的规模,提高网络的稳定性。

一、配置IS-IS路由聚合

IS-IS的路由聚合是在IS-IS L1/2路由器上配置的,就是为了减少所连区域内L1路由器,或所引入的其他协议路由器向区域外通告的路由数量,使区域外路由器可以通过一条聚合路由与区域内L1路由器进行通信。要注意,路由器只对本地生成,并向IS-IS邻居路由器发布的LSP中的路由进行聚合,不对从邻居IS-IS路由器接收的LSP中的路由进行聚合。即配置路由聚合后不会影响L1和L1/2路由器上本地设备的路由表,仍然会显示每一条具体路由,只是会减少通过L1/2路由器向区域外部扩展的LSP报文数

被聚合的路由可以是IS-IS路由,也可以是被引入的其他协议路由。聚合后路由的开销值取所有被聚合路由中学习到的最小开销值。配置方法是在对应IS-IS进程下使用summary ip-address mask [avoid-feedback | generate_null0_route | tag tag | [level-1 | level-1-2 | level-2]]*命令进行设置。

①ip-address mask:指定聚合路由的网络IP地址和子网掩码。IS-IS聚合路由的子网掩码前缀长度也必须小于所有被聚合路由的子网掩码长度,可以是对应的自然网段路由,甚至超网路由。

②avoid-feedback:可多选选项,为避免本地路由器通过路由SPF计算再次学习到这条聚合路由。因为聚合路由主要是向外发布的,不需要在本地路由表中存在。

③generate_null0_route:可多选选项,为防止路由环路,在本地路由器上为配置的聚合路由生成一条下一跳为Null 0的黑洞路由。

④tag tag:可多选选项,表示为发布的聚合路由分配管理标记,取值范围为1~4294967295的整数。

⑤level-1:多选一选项,表示只对引入到本地路由器L1区域的路由进行聚合。如果没有指定Level级别,缺省为L2。

⑥level-1-2:多选一选项,表示对引入到本地路由器的L1区域和L2区域的路由进行聚合。如果没有指定Level级别,缺省为L2。

⑦level-2:多选一选项,表示只对引入到本地路由器L2区域的路由进行聚合。如果没有指定Level级别,缺省为L2。

示例:在一个L1/2路由器中配置一条202.0.0.0/8的IS-IS聚合路由。

[Huawei]isis
[Huawei-isis-1]summary 202.0.0.0 255.0.0.0

二、IS-IS路由聚合配置示例

如上拓扑,网络中有3台路由器通过IS-IS路由协议实现互联,且RouterA为L2路由器,RouterB为L1/2路由器,RouterC为L1路由器。由于IS-IS网络的路由条目过多造成RouterA负载过重,现要求降低RouterA的系统资源消耗。

1、基本配置思路

①配置各路由器的接口IP地址,以便它们之间三层可达。

②在各路由器上配置基本的IS-IS功能,实现网络互联。

③在B上配置路由聚合,对所连接的Network1(172.1.1.0/24)、Network2(172.1.2.0/24)、Network3(172.1.3.0/24)以及172.1.4.0/24这4个连续子网的路由在B上以一条聚合路由向A发布。



配置好后,可在A上通过display isis route查看IS-IS路由表信息。

在B上配置路由聚合,将172.1.0.0/24、172.1.1.0/24、172.1.2.0/24、172.1.3.0/24、172.1.4.0/24这5个连续子网的路由聚合成172.1.0.0/16。注意因为这4个子网都属于L1区域,所以仅需对引入L1区域中的路由进行聚合。

注意summary命令参数mask不能使用mask-length。

不知为何,配置后,RA的路由没有变化:(上面的配置是错误的,原因参见下面)

对配置的路由聚合命令进行修改:

上面命令等价于summary 172.1.0.0 255.255.0.0 level-2

然后,RA上的路由聚合了:

对于命令summary,其后的level-1 | level-1-2 | level-2选项,如果没有选择,默认为level-2,意思是只对引入到本地路由器L?区域的路由进行聚合,这里RB是level-1-2路由器,其内有level-1 LSDB和level-2 LSDB,我们要减少RA的路由条数,就应该汇聚RB上level-2的LSDB中的路由,因为只有这里的信息发送给RA,聚合level-2的路由,才能减少RA的路由条数。反之,如果RA上有很多路由项,其传导到RB后又传导到level-1中的路由器,为减少level-1中路由器上路由的条数,就应该汇聚RB上level-1的路由。

控制IS-IS的路由信息交互

在网络中同时部署了IS-IS和其他路由协议时,需要配置IS-IS与其他路由协议的路由交互,才能使运行不同协议的网络正常通信。控制IS-IS的路由信息交互所涉及的配置任务如下:

①配置IS-IS发布缺省路由。
②配置IS-IS引入外部路由。
③配置IS-IS发布外部路由过滤。
④配置IS-IS路由下发IP路由表过滤。

    一、配置IS-IS发布缺省路由

当网络中部署了IS-IS和其他路由协议时,为了实现IS-IS域内的流量可以到达IS-IS域外,通常有如下两种方式。

①在边界设备上配置IS-IS设备向IS-IS域发布缺省路由。
②在边界设备上将其他路由域的路由引入IS-IS中。

配置发布缺省路由的方式较为简单,不需学习外部路由。在具有外部路由的边界设备上配置IS-IS发布缺省路由可以使该设备在IS-IS路由域内发布一条0.0.0.0/0的缺省路由,这样,IS-IS域内的其他设备在转发流量时,将所有去往外部路由域的流量首先通过这条缺省路由转发到该设备,然后通过该设备去往外部路由域。

IS-IS发布缺省路由的方法是在IS-IS进程下执行default-route-advertise [always| match default | route-policy route-policy-name] [cost cost |tag tag | [level-1 | level-1-2 |level-2]]* [avoid-learning]命令。

①always:指定设备无条件的发布缺省路由,且发布的缺省路由中将自己作为下一跳。

②match default:指定如果在路由表中存在其他路由协议或其他IS-IS进程生成的缺省路由,则在LSP中发布该缺省路由。

③route-policy route-policy-name:指定当该边界设备的路由表中存在满足指定名称路由策略的外部路由时,才向IS-IS域发布缺省路由,避免由于链路故障等原因造成该设备已经不存在某些重要的外部路由时,仍然发布缺省路由从而造成路由黑洞。

④cost cost:指定缺省路由的开销值,取值范围要根据cost-style而定。

⑤tag tag:指定发布的缺省路由的标记值。

⑥level-1 | level-1-2| level-2:分别指定发布的缺省路由级别为L1、L1/2、L2。默认为生成L2级别的缺省路由。

⑦avoid-learning:指定避免IS-IS进程学到其他路由协议或其他IS-IS进程生成的缺省路由并添加到路由表。如果路由表中已存在学习到缺省路由为活跃状态,则将此路由置为不活跃状态。

如果在L1设备上配置了该命令,那么该设备只会向L1区域发布缺省路由,不会将缺省路由发布到L2区域。

示例:设置当前设备发布匹配名为filter的路由策略的IPv4缺省路由,并设置该缺省路由的开销值为15。

[Huawei]isis
[Huawei-isis-1]default-route-advertise route-policy filter cost 15

二、配置IS-IS引入外部路由

在IS-IS路由域边界设备上配置IS-IS发布缺省路由,可以将去往IS-IS路由域外部的流量全部转移到该设备来处理,这可能造成设备负担过重。在有多个边界设备时,会存在去往其他路由域的最优路由的选择问题。通过在边界设备上引入外部路由,让IS-SI域内的其他设备获悉全部或部分外部路由的方法就可解决上述问题。

引入的外部路由包括其他进程IS-IS路由、静态路由、直连路由、RIP路由、OSPF路由和BGP路由等。配置引入外部路由后,IS-IS设备将把引入的外部路由全部发布到IS-IS路由域。两种不同的配置方式:

①当需要对引入路由的开销进行设置时,可在对应IS-IS进程下通过:import-route { {rip |isis | ospf} [process-id] | static| direct | unr | bgp [permit-ibgp] } [cost-type {external |internal} | cost cost | tag tag | route-policy route-policy-name | [level-1|level-2 | level-1-2]]*命令配置。

②当需要保留引入路由的原有开销时,可在对应IS-IS进程下通过import-route{ {rip | isis | ospf} [process-id] |direct | unr |bgp } inherit-cost [tag tag |route-policy route-policy-name| [level-1 |level-2 | level-1-2]]*命令配置IS-IS引入外部路由。但此时引入的源路由协议不能是static(静态路由)。

参数说明:

Rip、isis、ospf:多选一选项,引入相应协议路由;

Process-id:可选参数,指定引入的RIP、IS-IS或OSPF路由的进程号;

Static、direct、unr、bgp:多选一选项,指定引入静态、直连、用户网络、BGP路由;

Permit-ibgp:可选项,指定在引入iBGP路由时,不指定此可选项时,则引入的为eBGP路由;

cost-type{external | internal:可多选选项,指定引入外部路由的开销类型。缺省为external。此参数的配置会影响引入路由的cost值:当引入的路由开销类型配置为external时,路由cost值=源路由cost值+64;当引入的路由开销类型配置为internal时,路由cost值继承源路由的cost值。当路由器的cost-style为wide、compatible或wide-compatible时,引入外部路由的开销类型将不区分external和internal。

Cost cost:可多选参数,指定引入后的路由开销;

Inherit-cost:表示引入外部路由时保留路由的原有开销值;

Tag tag:指定引入后的路由标记;

route-policy route-policy-name:指定用于限制外部路由引入的路由策略名称;

level-1 |level-2 | level-1-2:表示引入路由到L1、L2或同时到L1和L2路由表中。默认到L2路由表中。

示例:配置IS-IS引入静态路由,并设置该路由的开销值为15。

[Huawei]isis
[Huawei-isis-1]import-route static cost 15

示例:配置IS-IS引入OSPF路由,并保留该路由的原有开销值。

[Huawei]isis
[Huawei-isis-1]import-route ospf inherit-cost

三、配置IS-IS发布外部路由过滤

当IS-IS路由域边界路由器将引入的外部路由发布给其他IS-IS设备时,如果对方IS-IS设备不需要拥有全部的外部路由,则可通过配置基本ACL或IP地址前缀列表或路由策略来控制只发布部分外部路由给其他IS-IS设备。

配置方法是在对应的IS-IS进程下执行:filter-policy {acl-number | acl-nameacl-name | ip-prefix ip-prefix-name | route-policy route-policy-name} export [protocol [process-id]]

配置该命令后,不会影响引入的外部路由添加到本地设备的路由表中,只会对IS-IS邻居设备发布的外部路由进行过滤。

示例:配置IS-IS使用编号为2000的ACL,仅允许已引入的外部路由1.1.1.0/24在发布给其他路由器时进行过滤。

[Huawei]acl 2000
[Huawei-acl-basic-2000]rule permit source1.1.1.0 0.255.255.255
[Huawei]isis
[Huawei-isis-1]filter-policy 2000 export

四、配置IS-IS路由下发IP路由表过滤

IP报文是根据IP路由表来进行转发的。IS-IS路由表中的路由条目需要被成功下发到IP路由表中,该路由条目才生效。可通过配置基本ACL、IP地址前缀列表、路由策略等方式,只允许匹配的IS-IS路由下发到IP路由表。不匹配的IS-IS路由将被阻止进入IP路由表,更不会被优选。

配置IS-IS路由下发到IP路由表过滤的方法是在对应的IS-IS进程下通过filter-policy {acl-number | acl-name acl-name | ip-prefixip-prefix-name |route-policy route-policy-name} import命令进行,以控制将部分符合条件的IS-IS路由下发到IP路由表。

示例:使用ACL2000过滤接收的路由,将1.1.1.0/24的IS-IS路由加入到IP路由表中。

[Huawei]acl 2000
[Huawei-acl-basic-2000]rule permit source1.1.1.0 0.255.255.255
[Huawei]isis
[Huawei-isis-1]filter-policy 2000 import

控制IS-IS的路由选路

影响IS-IS选路的因素比较多,如IS-IS协议的优先级、IS-IS接口的开销、等价路由的处理方式、IS-IS路由渗透的配置和IS-IS缺省路由的发布。可根据具体应用环境选择其中一项或多项配置任务。

①配置IS-IS协议的优先级
②配置IS-IS接口的开销
③配置IS-IS对等价路由的处理方式
④配置IS-IS路由渗透
⑤控制Level-1设备是否生成缺省路由。

一、配置IS-IS协议的优先级

一台路由器可同时运行多个路由协议,可能会发现到达同一目的地多条不同协议路由,其中协议优先级高的路由将被优选。通过配置IS-IS协议的优先级,可将IS-IS路由的优先级提高,使IS-IS的路由被优选。如结合路由策略的使用,还可灵活地仅将期望的部分IS-IS路由的优先级提高,而不影响其他的路由选择。

IS-IS协议优先级的具体配置方法是在对应的IS-IS进程下通过:preference {preference | route-policy route-policy-name}*命令进行。

Preference preference:为所有IS-IS协议的路由设定优先级。

Preference preference route-policy route-policy-name:为通过匹配的IS-IS路由和没有通过匹配的路由设定不同的优先级,这时通过匹配的路由将采用指定路由策略中apply preference preference子句设定的优先级,而没有通过匹配的IS-IS路由将采用preference参数所设置的优先级。

Preference route-policy route-policy-name preference:为通过匹配的路由设定优先级(由preference参数设置),不影响其他IS-IS路由的优先级。

示例:设置通过路由策略abc的路由优先级被设定为50,未通过路由策略abc的路由优先级被设定为30。

<Huawei>system-view
[Huawei]route-policy abc permit node 1
[Huawei-route-policy]if-match cost 30
[Huawei-route-policy]apply preference 50
[Huawei-route-policy]quit
[Huawei]isis 1
[Huawei-isis-1]preference 30 route-policy abc

示例:设置所有IPv4 IS-IS路由的优先级均为25。

<Huawei>system-view
[Huawei]isis
[Huawei-isis-1]preference 25

二、配置IS-IS接口的开销

IS-IS有三种方式来确定接口的开销,按照优先级由高到底分别如下:

①接口开销:为单个接口设置开销,优先级最高。
②全局开销:为所有接口设置开销,优先级中等。
③自动计算开销:根据接口带宽自动计算开销,优先级最低。

用户可根据需要选择一种或多种接口开销配置方式。在配置接口开销前,可根据实际需要配置IS-IS的开销类型,因为不同类型的开销的聚会范围不一样。如果没有为IS-IS接口配置任何开销值,IS-IS接口的默认开销为10,开销类型为narrow。在实际应用中,为方便IS-IS实现其扩展功能,通常将IS-IS的路由开销类型设置为wide模式。

IS-IS接口开销也即IS-IS链路开销,是二层概念,代表接口所在链路的开销。IS-IS链路开销(OSPF中链路开销一样)通常是由链路接口的带宽确定的。但如果链路两端的接口带宽不一致,则以带宽低的接口来计算整条链路的开销。IS-IS路由开销是指该路由所经过的链路的链路开销之和,但要注意的是,同一路由器上的不同接口之间的链路开销为0。

1、配置IS-IS接口开销类型

配置IS-IS接口开销类型的方法是在对应的IS-IS进程下使用cost-style {narrow | wide | wide-compatible | { {narrow-compatible |compatible} [relax-spf-limit] }}命令。

①narrow:指定IS-IS设备所有接口只能接收和发送开销类型为narrow的路由。Narrow模式下路由的开销值取值范围为1~63的整数。

②wide:指定IS-IS设备所有接口只能接收和发送开销类型为wide的路由。wide模式下路由的开销值取值范围为1~16777215的整数。

③wide-compatible:指定IS-IS设备所有接口可以接收开销类型为narrow和wide的路由,但却只发送开销类型为wide的路由。

④narrow-compatible:指定IS-IS设备所有接口可以接收开销类型为narrow和wide的路由,但却只发送开销类型为narrow的路由。

⑤compatible:指定IS-IS设备所有接口可以接收和发送开销类型为narrow和wide的路由。

⑥relax-spf-limit:指定IS-IS设备所有接口可以接收开销值大于1023的路由,对接口的链路开销值和路由开销值均没有限制,按照实际的路由开销值正常接收该路由。如果不选择此可选项,则会根据具体情况分别进行如下处理:

◆如果路由开销值小于或等于1023,且该路由经过的所有接口的链路开销值都小于等于63,则这条路由的开销值按照实际值接收,即路由的开销值为该路由所经过的所有接口的链路开销值总和。

◆如果路由开销值小于或等于1023,但该路由经过的所有接口中有的接口链路开销值大于63,则设备只能学习到该接口所在设备的其他接口的直连路由和该接口所引入的路由,路由的开销值按照实际值接收,路由此后要经过的接口将丢弃该路由。此接口之后的路由将被丢弃。

◆如果路由开销值大于1023,设备可以接收链路开销值小于1023的接口所在网段的所有路由;如果路由开销值大于1023,则仅按照1023接收,不能接收链路开销值大于1023的接口所在网段的所有路由。

示例:设置当前IS-IS路由器只能发送narrow型报文,但是可以接收narrow型和wide型的报文。

[Huawei]isis
[Huawei-isis-1]cost-style narrow-compatible

2、配置接口开销

IS-IS接口的开销可以有三种配置方式:

system-view
isis [process-id]     启动对应的IS-IS进程
方式1:全局开销配置
circuit-cost {cost | maximum} [level-1 | level-2]     配置IS-IS全局开销。
方式2:自动计算开销配置,仅适用于wide或wide-compatible开销类型的接口
bandwidth-reference value       配置计算带宽的参考值,单位是Mbit/s
auto-cost enable     使能自动计算接口的开销值。
方式3:接口开销配置
quit
interface
interface-type interface-number    进入要配置开销的IS-IS接口
isis cost {cost | maximum} [level-1 | level-2]     为IS-IS接口设置具体的开销。

IS-IS接口开销和接口带宽对应关系:当开销类型为narrow、narrow-compatible或compatible时

三、配置IS-IS对等价路由的处理方式

当IS-IS网络中有多条冗余链路时,可能会出现多条等价路由,此时有两种配置方式。

①配置负载分担:流量会被均匀地分配到每条链路上。缺点是对流量转发具有一定的随机性,可能不利于对业务流量的管理。

②配置等价路由优先级:针对等价路由中的每一条路由,明确指定其优先级,优先级高的路由将被优选,优先级低的路由可以作为备用链路。

system-view
isis [process-id]     启动对应的IS-IS进程
方式1:配置负载分担方式
maximum load-balancing number   配置在负载分担方式下的等价路由的最大数量。当存在的等价路由数量大于本命令配置的等价路由数量时,按如下原则选取有效路由进行负载分担:路由优先级、接口索引下一跳IP地址。
方式2:配置等价路由优先级
nexthop ip-address weight value      配置指定等价路由的优先级。

四、配置IS-IS路由渗透

如果在一个L1区域中有多台L1/2设备与L2区域相连,每台L1/2设备都会在L1 LSP中设置ATT标志位,则该区域中就有到达L2区域和其他L1区域的多条出口路由。

ATT比特标志位是IS-IS LSP报文中的一个字段,用来标识L1区域是否与其他区域关联。L1/2设备在其生成的L1 LSP中设置该比特位为1,以通知同一区域中的L1设备自己(即L1/2设备)与其他区域相连,也就是说与L2骨干区域相连(因为L1区域之间不能直接相连)。当L1区域中的设备收到L1/2设备发送的ATT被置位的L1 LSP后,他将生成一条指向L1/2设备的缺省路由,以便数据可以被路由到其他区域。

缺省情况下,L1区域的路由会渗透到L2区域中,因此L1/2设备和L2设备了解整个网络的拓扑信息,但L1区域的设备只维护本地L1区域的LSDB数据库,不知道整个网络的拓扑信息。这样一来,L1路由器只能选择将流量转发到最近(开销最小)的L1/2设备,再由L1/2设备将流量转发到L2区域。然而,该路由可能不是到达目的地最优路由,因为尽管L1到达L1/2的开销是最小的,但该L1/2到达目的区域的开销不一定是最小的。

为帮助L1区域内的设备选择到达其他区域的最优路由,可以在L1/2路由器上配置IPv4 IS-IS路由渗透,将L2区域的某些路由渗透到本地L1区域,这样L1区域中的路由器就可以自己根据路由计算选择到达目的区域的最优路由。另外,考虑网络中部署的某些业务可能只在本地L1区域内运行,无需将这些路由渗透到L2区域中,可以在L1/2路由器上通过配置策略仅将部分L1区域的路由渗透到L2区域。在IS-IS路由渗透配置方面包括两个方向:一是可以控制由L2区域向L1区域的路由渗透,同时还可控制L1区域向L2区域的路由渗透。(通过这里的描述,联想到前面路由聚合的实验实例,原先配置的summary ip-address mask level-1,结果不好用,就是因为这个命令应该是聚合RB,即L1/2路由器上level-1区域中,由L2渗透到L1的路由,而我们的实验要求是减少RA,即L2上的路由条数,这是要聚合RB上L2区域中由L1渗透到L2的路由)

1、配置L2区域的路由渗透到L1区域

在L1/2路由器上配置L2区域的路由渗透到L1区域的方法是在对应的IS-IS进程下使用:import-route isis level-2 into level-1 [tag tag| filter-policy {acl-number |acl-name acl-name | ip-prefix ip-prefix-name |route-policy route-policy-name}]*命令进行配置。

示例:使用名为2000的路由策略过滤IS-IS从L2区域向L1区域进行渗透的路由。

[Huawei]isis
[Huawei-isis-1]import-route isis level-2 into level-1 filter-policy 2000

2、配置L1区域的路由渗透到L2区域(注意,默认L1向L2渗透,即全部到L2,这里是配置使部分到L2)

在L1/2路由器上配置L1区域的路由渗透到L2区域的方法是在对应的IS-IS进程下使用:import-route isis level-1 into level-2 [tag tag | filter-policy {acl-number| acl-name acl-name | ip-prefix ip-prefix-name | route-policy route-policy-name}]

示例:使用名为2000的路由策略过滤IS-IS从L1区域向L2区域进行渗透的路由。

[Huawei]isis
[Huawei-isis-1]import-route isis level-1into level-2 filter-policy 2000

五、控制Level-1设备是否生成缺省路由

IS-IS协议规定,如果IS-IS L1/2设备根据其LSDB判断到通过L2区域比L1区域能够到达更多的区域,则该设备会在所发布的L1 LSP内将ATT比特位置位(即置为1)。这样,收到这个ATT比特位置位的LSP报文的L1设备会生成一条目的地为发送该LSP的L1/2设备的缺省路由。

以上是IS-IS协议的默认原则,实际应用中,可根据需要对ATT比特位进行手动配置以更好地为网络服务。这里有两种配置方式:一是在L1/2路由器上配置发布的LSP报文中ATT比特位的置位情况;二是在L1路由器上设置在收到ATT比特位置位的L1 LSP报文后不生成缺省路由。

1、在L1/2路由器上配置发布的LSP报文中ATT比特位的置位情况

在对应的IS-IS进程下通过:attached-bit advertise {always | never}进行配置。

虽然ATT比特位同时在L1 LSP和L2 LSP中进行了定义。但是它只会在L1LSP中被置位,并且只有L1/2路由器才会设置这个字段,因此该命令仅对L1/2设备生效。

示例:设置L1/2设备在IS-IS进程1中发布的L1 LSP ATT比特位永远置位。

[Huawei]isis 1
[Huawei-isis-1]attached-bit advertise always

2、在L1路由器上设置不生成缺省路由

在L1路由器上配置在收到ATT比特位置位的L1 LSP报文后也不生成缺省路由的配置方法是在对应的IS-IS进程下通过:attached-bit avoid-learning命令进行。通常在配置L2区域向L1区域进行路由渗透后,要在L1路由器上配置不生成缺省路由,以免在与外部区域进行通信时选择了次优路由。

示例:设置L1设备不因为收到ATT比特位置位的L1 LSP报文而生成缺省路由。

[Huawei]isis 1
[Huawei-isis-1]attached-bit avoid-learning

调整IS-IS路由的收敛性能

提高对IS-IS网路中故障的响应速度,加快出现网络故障时的路由收敛速度,提高可靠性。

①配置Hello报文参数
②配置LSP报文参数
③配置CSNP报文参数
④调整SPF的计算时间间隔
⑤配置IS-IS路由按优先级收敛

一、配置Hello报文参数

IS-IS协议通过Hello报文的收发来维护与相邻设备的邻居关系,当本端设备在一段时间(邻居保持时间)内没有收到对端发送的Hello报文时,将认为邻居已经失效。所以这里涉及两个时间的配置:一是Hello报文的发送时间间隔,二是邻居保持时间。

在IS-IS中,本端设备与相邻设备保持邻居关系的时间长短可以通过设置发送Hello报文的时间间隔和IS-IS的邻居保持时间来控制:

①Hello报文发送间隔越短,需要占用越多的系统资源来发送Hello报文,造成CPU负载过重。

②如果IS-IS的邻居保持时间配置得太大,那么如果对端邻居已经失效,本端设备需要等待过长得到时间才能检测到,从而减慢IS-IS路由收敛速度。

③如果IS-IS的邻居保持时间配置的太小,由于网络传输延时和传播差错等原因可能会在成个别Hello报文的丢失或出错,那么邻居关系会频繁的UP和Down,造成网络的路由震荡。

通常是建议IS-IS网络中的所有设备配置相同的Hello报文发送间隔和邻居保持时间,以免造成某些设备对链路故障的检测速度低于其他设备而减慢全网IS-IS路由的收敛速度。

system-view
interface interface-type interface-number    进入要配置Hello报文发送时间间隔的IS-IS接口,需要先通过isis enable命令在该接口上使能IS-IS功能。
isis timer hello hello-interval [level-1 | level-2]   配置接口上Hello报文的发送间隔。没有配置Level,则同时作用于level-1和level-2报文。
isis timer holding-multiplier number [level-1 | level-2]    配置Hello报文的发送间隔时间的倍数。

二、配置LSP报文参数

LSP报文用于交换链路状态信息,可配置LSP报文的大小及最大有效时间,还可以通过使能LSP加速扩散,以及减小接口发送LSP报文的最小时间间隔和LSP报文的刷新周期加快LSP报文的扩散速度,使得网络快速收敛。还可以通过配置LSP生成的智能定时器,自动根据网络环境计算出生成LSP报文的时间间隔这样既可以快速响应突发事件,加快网络的收敛速度,又可以在网络变化频繁时自动延长智能定时器的间隔时间,避免过度占用CPU资源。

system-view
isis
[process-id]
lsp-length {originate | receive } max-size   配置当前IS-IS路由器生成的LSP报文的最大长度和接收LSP报文的最大长度。配置的生成的LSP报文的最大长度必须小于或等于所配置的接收的LSP报文的最大长度。
timer lsp-max-age age-time    配置当前IS-IS进程生成的LSP的最大有效时间。
timer lsp-refresh  refresh-time   配置LSP的刷新周期。
flash-flood [lsp-count | max-timer-interval interval | [level-1 | level-2]]     使能LSP报文的快速扩散特性,以便加快IS-IS网络的收敛速度。
timer lsp-generation max-interval [init-interval [incr-interval]] [level-1 | level-2]   配置LSZP生成智能定时器。
quit
interface interface-type interface-number   进入要配置LSP报文参数的IS-IS接口。
isis timer lsp-throttle throttle-interval [count count]      配置IS-IS接口发送LSP报文的最小间隔时间和此时间内发送的最大的报文数。
isis circuit-type p2p   将IS-IS广播网接口的网络类型模拟为P2P类型。
isis timer lsp-retransmit retransmit-interval       配置点到点连路上LSP报文的重传间隔时间。

三、配置CSNP报文参数

CSNP(全序列号报文)包括本地设备上某个LSDB中所有的LSP摘要信息,用来保证相邻设备间LSDB的同步。

①在广播网络中,CSNP是由DIS设备周期性发送的。当邻居发现LSDB不同步时,向DIS发送PSNP报文来请求缺失的LSP报文。

②在P2P网络中,CSNP只在第一次建立邻接关系时发送。

正因为P2P网络中CSNP报文仅发送一次,所以CSNP报文参数仅可在广播网络中配置,而且仅可配置CSNP报文的发送时间间隔。由于IS-IS路由的收敛速度依赖于LSDB的同步速度,因此减小CSNP报文的发送间隔时间可以加快LSDB的同步以及IS-IS路由的收敛。但设置过小,则DIS会频繁发送CSNP报文,造成设备CPU、内存及带宽占用过高。

广播网络中,CSNP报文参数的具体配置方法是在对应的接口(该接口必须使能了IS-IS功能的接口)视图下使用:isis timer csnp csnp-interval [level-1 | level-2]进行。

示例:设置L2的CSNP报文在接口GE1/0/0上每15s发送一次。

[Huawei]isis 1
[Huawei-isis-1]network-entity 01.0000.0000.0001.00
[Huawei-isis-1]quit
[Huawei]interface gigabitethernet 1/0/0
[Huawei-GigabitEthernet1/0/0]isis enable 1
[Huawei-GigabitEthernet1/0/0]isis timer csnp 15 level-2

四、调整SPF的计算时间间隔

当网络变化比较频繁时,IS-IS会频繁进行SPF计算,消耗资源,可通过配置只能定时器灵活调整不同时期SPF路由计算的时间间隔。

system-view
isis
[process-id]
timer spf max-interval [init-interval [incr-interval]]    设置SPF计算智能定时器
spf-slice-size duration-time    配置IS-IS每次路由计算的最大持续时间。

五、配置IS-IS路由按优先级收敛

随着网络的融合,区分服务的需求越来越强烈,关键业务路由需要尽快收敛,非关键收敛相对慢一点。因此,系统需要对不同路由按不同的收敛优先级处理。

系统为路由设置了不同的收敛优先级,分为critical、high、medium、low4种,其中critical路由的收敛优先级最高,low优先级最低。

IS-IS路由收敛优先级的应用规则如下:

①对于已存在的IS-IS路由,收敛优先级将依据prefix-priority命令重新进行设置
②对于新增加的IS-IS路由,收敛优先级将依据prefix-priority命令的过滤结果进行设置。
③如果一条路由符合多个收敛优先级的匹配规则,则这些收敛优先级中最高者当选为路由的收敛优先级。
④L1 IS-IS路由的收敛优先级高于L2IS-IS路由的收敛优先级。

system-view
isis
[process-id]
prefix-priority [level-1 | level-2] {critical | high | medium} {ip-prefix prefix-name | tag tag-value}   配置IS-IS路由(包括主机路由和缺省路由)的收敛优先级。
quit
ip route prefix-priority-scheduler critical-weight high-weight medium-weight low-weight   配置IPv4路由按优先级调度的比例。

提高IS-IS网络的安全性

在对安全性要求较高的网络中,可通过配置IS-IS认证来提高IS-IS网络的安全性。IS-IS认证包括接口认证、区域认证、路由域认证三种,还可配置optional checksum TLV校验和认证。

一、配置IS-IS接口认证

通常,IS-IS不对发送的IS-IS报文封装认证信息,也不对收到的报文做认证检查。

通过配置IS-IS接口认证,可以封装认证信息到Hello报文中,以确认邻居的有效性和正确性。IS-IS接口认证包括简单认证、MD5认证、HMAC-SHA256认证和Keychain(密钥链)认证几种模式。需要在邻居设备同一链路上的IS-IS接口上配置相同的认证模式和密码

system-view
interface
interface-type interface-number   进入要配置接口认证的IS-IS接口,需先通过isis enable使能该接口的IS-IS功能。
isis authentication-mode simple {plain plain-text | [cipher] plain-cipher-text} [level-1 | level-2] [ip | osi] [send-only]       四选一,配置IS-IS接口的简单认证模式
isis authentication-mode md5 {plain plain-text | [cipher] plain-cipher-text} [level-1 | level-2] [ip | osi] [send-only]   四选一,配置IS-IS接口的MD5认证模式
isis authentication-mode hmac-sha256 key-id key-id {plain plain-text | [cipher] plain-cipher-text} [level-1 | level-2] [ip | osi] [send-only]    四选一,配置IS-IS接口的HMAC-SHA256认证模式
isis authentication-mode keychain keychain-name [level-1 | level-2]  [send-only]    四选一,配置IS-IS接口的Keychain认证模式

二、配置区域或路由域的认证

区域认证会将认证密码封装在L1区域的IS-IS报文(非Hello报文)中,只有通过认证的报文才会被接收。因此,当需要对L1区域进行认证时,需要对该L1区域所有IS-IS设备(包括L1设备和L1/2设备)配置IS-IS区域认证。

路由域认证是将认证密码封装在L2区域的IS-IS报文中,只有通过认证的报文才会被接收。因此,当需要对L2区域进行认证时,需要对L2区域所有IS-IS设备(包括L2设备和L1/2设备)配置IS-IS路由域认证。

在配置IS-IS认证时,要求同一区域或路由域的所有设备的认证方式和密码都必须一致。但无论是否通过区域认证或路由域认证,均不影响L1或L2邻居关系的建立。

system-view
isis
area-authentication-mode
{{simple | md5} {plain plain-text | [cipher] plain-cipher-text} [ip | osi] | keychain keychain-name | hmac-sha256 key-id key-id} [snp-packet {authentication-avoid | send-only} | all-send-only]    配置区域认证模式,设置IS-IS区域按照预定的方式和密码认证收到的L1路由信息报文(LSP和SNP),并为发送的L1报文加上认证信息。
domain-authentication-mode {{simple | md5} {plain plain-text | [cipher] plain-cipher-text} [ip | osi] | keychain keychain-name | hmac-sha256 key-id key-id} [snp-packet {authentication-avoid | send-only} | all-send-only]       设置IS-IS路由域中按照预设的方式和密码认证收到的L2路由信息报文,并在发送的L2区域报文中添加认证信息。

以上IS-IS区域认证和路由域认证支持以下几种组合形式:

①对发送的LSP和SNP报文都封装认证信息,并认证收到的LSP和SNP报文是否通过认证,丢弃没有通过认证的报文。该情况下不能选择snp-packet或all-send-only选项。

②仅对发送的LSP报文封装认证信息,并认证收到的LSP报文,不对发送的SNP报文封装认证信息,也不认证收到的SNP报文。该情况下能选择snp-packet authentication-avoid选项

③对发送的LSP和SNP报文都封装认证信息,仅认证收到的LSP报文,不认证收到的SNP报文。这种情况下需要选择snp-packet send-only选项。

④对发送的LSP和SNP报文都封装认证信息,但对收到的LSP和SNP报文都不认证,这种情况下需要选择all send-only选项。

配置IS-ISBFD联动

可以通过配置IS-IS Auto FRR、IS-IS与BFD联动和IS-IS GR提高IS-IS路由的可靠性。

由于IS-IS只能建立单跳邻居,所以IS-IS与BFD联动只对IS-IS邻居间的单跳链路进行检测。

一、配置IS-IS与静态BFD联动

在IS-IS网络中,IS-IS邻居之间通过定时发送Hello报文来感知邻居状态变化,缺省情况下当发送3个无效的Hello报文(30s)之后,即认为邻居变为Down状态。收敛速度过慢。为此,IS-IS协议引入了IS-IS与BFD联动功能,实现毫秒级故障感知,加快收敛速度。

如上图,各路由器上使能IS-IS基本功能。在RouterA和RouterD上使能IS-IS与BFD联动监测机制,就可实现当主路径上的链路出现故障时,BFD快速检测到故障并通告给IS-IS协议。IS-IS Down掉故障链路的接口邻居并删除邻接对应的IP路由,触发拓扑计算,同时更新LSP使得其他邻居及时收到RouterB的更新LSP,实现网络拓扑的快速收敛。

IS-IS既可以与动态BFD联动,又可以与静态BFD联动。静态BFD优点是可人为控制,部署灵活,可在某些指定链路部署BFD,而其他链路不部署;静态BFD缺点在于建立和删除BFD会话时需手动触发,缺乏灵活,且有可能造成人为的配置错误。如配置了错误的本地标识符或者远端标识符,BFD会话将不正常。

IS-IS与静态BFD联动配置

system-view
bfd 
      使能全局BFD功能
quit
bfd
session-name bind peer-ip ip-address [interface interface-type interface-number]  创建BFD绑定。指定对端IP和本端接口,表示检测单跳链路,即检测以该接口为出接口、以peer-ip为下一跳地址的一条固定路由。
discriminator local discr-value      配置BFD会话的本地标识符。
discriminator remote discr-value   配置BFD会话的源端标识符。
commit
interface interface-type interface-number   进入要绑定BFD会话的IS-IS接口
isis bfd static    使能指定IS-IS接口的静态BFD特性

配置好后,可通过display isis [process-id | vpn-isntance vpn-isntance-name] bfd session {peer ip-address | all}命令查看BFD会话信息;也可通过执行display isis interface verbose查看IS-IS进程的静态BFD的状态。

二、配置IS-IS与动态BFD联动

IS-IS与动态BFD联动由IS-IS协议动态触发建立BFD会话,即IS-IS在建立邻居关系时将邻居的参数及检测参数(包括目的地址、源地址等)通告给BFD,BFD会根据收到的参数建立起会话。当BFD检测到故障的时候,通过路由管理通知IS-IS。

动态BFD由路由协议动态触发BFD会话建立,避免人为控制可能导致的配置错误,且配置比较简单,适用在全网需要配置BFD的情况。

IS-IS与动态BFD的联动可以在IS-IS进程下全局配置,也可在接口上具体配置,还可以同时配置,但接口下的配置优先级高于进程中的配置。

system-view
bfd 
      使能全局BFD功能
quit
isis process-id   
启动对应的IS-IS进程
bfd all-interfaces enable     在IS-IS进程下使能所有的IS-IS接口的BFD特性
方式1:在IS-IS进程下全局配置IS-IS与BFD联动。
bfd all-interfaces {min-rx-interval receive-interval | min-tx-interval transmit-interval | detect-multiplier multiplier-value | frr-binding}*   指定用于建立BFD会话的各个参数值。
quit
interface
interface-type interface-number  进入要禁止BFD特性的IS-IS接口
isis bfd block    阻止IS-IS接口动态创建BFD会话的功能。
方式2:在指定接口下配置IS-IS与动态BFD联动。
quit
interface
interface-type interface-number    进入要使能BFD特性的IS-IS接口
isis bfd enable    使能以上IS-IS接口的BFD特性
isis bfd {min-rx-interval receive-interval | min-tx-interval transmit-interval | detect-multiplier multiplier-value | frr-binding}*  在指定接口上配置BFD会话的参数值。

链路两端使能BFD后,执行display isis [process-id | vpn-instance vpn-instance-name] bfdsession {all | peer ip-address | interface interface-type interface-number}查看BFD的状态。

三、IS-IS与静态BFD联动配置示例

如上图拓扑,网中有三台路由器通过IS-IS协议实现路由互通,且A与B之间通过一台二层交换机实现互联。现要求当RouterA与RouterB之间出现链路故障时,这两台路由器能快速对故障结果做出反应,重建邻居关系。

1、基本配置思路

RouterA和RouterC之间隔了一个RouterB,所以不建立IS-IS邻居,不能通过IS-IS与BFD的联动检测RouterA到RouterC之间的多跳链路(因为IS-IS只能建立单跳邻居关系),只能在RouterA和RouterB之间检测单跳链路。配置任务如下:

①配置各路由器的接口IP地址以及IS-IS路由协议,实现路由器之间路由可达。
②配置各路由器的基本IS-IS功能。
③在RouterA和RouterB上分别配置IS-IS与静态BFD联动使得双方设备可以快速感知它们之间链路的故障状态变化。

在RouterA和RouterB上分别使能BFD特性,配置BFD会话。

四、IS-IS与动态BFD联动配置示例

如上拓扑,网络中有三台路由器通过IS-IS协议实现路由互通,且A与B之间通过一台二层交换机实现互联。现要求当A与B之间经过交换机的链路出现故障时,这两台路由器能快速对故障结果做出反应,并把流量切换至经C链路转发。

1、基本配置思路

采用IS-IS与动态BFD联动特性,实现主备链路切换,这涉及主备路由的问题。因为示例中各路由器接口均为GE口,缺省开销均为20。

为实现主备路由功能,通过配置IS-IS接口开销值控制路由的选路功能,使得A到B经过交换机的链路为主链路,经过C的链路为备份链路。然后在A、B和C上配置IS-IS与动态BFD联动,实现快速感知故障和流量切换。

配置好后,可通过display isis peer查看A和B、A和C已建立了邻居关系。

通过display ip routing-table查看三台路由器之间互相学习到的路由

到达172.16.1.0/24的路由下一跳地址为3.3.3.2(RouterB的GE2/0/0接口IP地址),流量在主链路RouterA——>RouterB上传输。

配置接口开销值,把A和B的GE2/0/0的开销值改为比缺省值20更小的5,为的就是以便在主链路故障恢复后,流量自动切换到主链路上。

分别在RouterA和RouterB上的GE0/0/0接口上使能BFD特性,并指定最小发送和接收间隔为100ms,本地检测时间倍数为4。


对B的GE0/0/0接口执行shutdown,模拟主链路故障。

到达172.16.1.0/24的路由下一跳地址为1.1.1.2(RouterC的GE1/0/0接口IP),流量在主链路A——>C——>B上传输。

在备份链路中的IS-IS路由开销为RouterA的GE1/0/0接口和RouterB的GE1/0/0接口所在链路之和,所以该IS-IS路由开销为40。

当主链路恢复正常后,到达172.16.1.0/24的路由又将恢复为主链路,因为此时主链路的开销为5,低于备份链路的路由开销40,优先级更高。

路由器重温——ISIS路由-2相关推荐

  1. 路由器重温——ISIS路由-1

    IS-IS(Intermediate System-to-Intermediate System,中间系统到中间系统),链路状态的IGP路由协议,划分区域.OSPF路由协议中,一个路由器可以同时位于多 ...

  2. 路由器重温——RIP路由

    RIP(Routing Information Protocol,路由信息协议)路由是最简单的动态路由协议.基本配置仅需在各路由器上创建所需的RIP进程,然后宣告各RIP路由器接口直接连接的网段所对应 ...

  3. 路由器重温——OSPF路由(很重要的协议)-3

    配置OSPF邻居或邻接的会话参数 在OSPF网络中,所有链路状态信息都在邻居或邻接中传递.交换.实际网络中,合理配置参数对整个网络的稳定性有重要作用.可选配置,都有缺省值. 1)配置OSPF报文重传限 ...

  4. 路由器重温——静态路由

    静态路由是手动配置的特殊路由,比动态路由使用更少的带宽,不占用CPU资源来计算和分析路由更新.不会自动收敛. 一.静态路由的组成 静态路由包括5个主要参数:目的IP地址和子网掩码.出接口和下一跳IP地 ...

  5. 路由配置与管理——ISIS路由配置与管理

    IS-IS基本功能配置与管理 只有配置了IS-IS基本功能,才可组建IS-IS网络.IS-IS基本功能包括以下几项配置任务:创建IS-IS进程是配置网络实体名称.配置全局Level级别以及建立IS-I ...

  6. 【H3C V7路由器实战视频课程系列-8】IS-IS路由配置与管理-王达-专题视频课程

    [H3C V7路由器实战视频课程系列-8]IS-IS路由配置与管理-32人已学习 课程介绍         全面介绍H3C路由器中IS-IS协议的基础知识和工作原理,并以实战方式介绍H3C路由器IS- ...

  7. 视频教程-【H3C V7路由器实战视频课程系列-8】IS-IS路由配置与管理-H3C认证

    [H3C V7路由器实战视频课程系列-8]IS-IS路由配置与管理 国内IT图书作者,网络技术讲师,华为授权讲师.共著有近60部计算机网络著作,新代表作:<Cisco/H3C交换机|路由器&qu ...

  8. 路由器重温——路由策略和策略路由-1

    "路由策略"与"策略路由"之间的区别就在于它们的主体(或者说"作用对象")不同,前者的主体是"路由",是对符合条件的路由 ...

  9. eigrp配置实验_路由器 OSPF 动态路由配置

    本文档详细介绍路由器 OSPF 动态路由配置的方法,文内含长段代码可复制可往左滑,希望对大家有帮助! 实验目的 掌握 OSPF 协议的配置方法 掌握查看通过动态路由协议 OSPF 学习产生的路由 熟悉 ...

最新文章

  1. 四、编译安装php-5.5.34
  2. Weblogic10 + EJB3入门教程(1):编写第一个无状态会话Bean(Stateless Session Bean)...
  3. /bin/sh -c的必要性
  4. ASP.NET Core 2.0 支付宝当面付之扫码支付
  5. 华为ipop使用教程_华为ipop下载|
  6. Hibernate常见面试题
  7. SQL Server 作业监控
  8. 2D 转换之 scale
  9. 她要到另外一座城市去工作
  10. 碰撞域与广播域的区别
  11. 易语言解压服务器中压缩包,易语言查看RAR文件_包括解压方法_精易论坛
  12. stm32f103rc片内Flash使用FAL库配置说明
  13. 全国哀悼日网站都成黑白色实现
  14. 任务管理器已被管理员停用 解决方法
  15. H5推流解决方案测试环境搭建指南
  16. 前端提高篇(五十四)练习7:animation动画练习
  17. 微信小程序截屏保存图片
  18. win10不识别移动硬盘
  19. kafka系列之kafka生产者与分区(3)
  20. Flex中的帧频和帧事件

热门文章

  1. wps免费下载 wps文档怎么转成加密的PDF文档呢?
  2. 2021-2027全球与中国低轨道卫星市场现状及未来发展趋势
  3. 用人人商城也能玩转心愿众筹了,创意无限,代码皆可实现
  4. 线程、进程、多线程、多进程 和 多任务 小结
  5. C++的异常(转载 )
  6. 普通打印机支持的airprint功能
  7. mysql重复数据只取一条数据_sql不重复的查找统计数据(经典)
  8. 为什么只看重结果_太过于看重结果会失掉过程
  9. Atcoder F - Mirrored(思维+搜索)
  10. 【MicroPython ESP32】NVS数据非易失性存储示例讲解说明