提高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接口上配置相同的认证模式和密码
二、配置区域或路由域的认证
区域认证会将认证密码封装在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邻居关系的建立。
以上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-IS与BFD联动
可以通过配置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会话将不正常。
配置好后,可通过display isis [process-id | vpn-isntance vpn-isntance-name] bfdsession {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进程下全局配置,也可在接口上具体配置,还可以同时配置,但接口下的配置优先级高于进程中的配置。
链路两端使能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联动使得双方设备可以快速感知它们之间链路的故障状态变化。
2、具体配置步骤
①配置各路由器的接口IP地址。以A为例
[RouterA]interfacegigabitethernet 1/0/0
[RouterA-GigabitEthernet1/0/0]ipaddress 100.1.1.1 24
②配置各路由器的IS-IS基本功能,包括创建IS-IS进程,配置路由器类型(均为L2类型)、网络实体名称,以及在接口上使能IS-IS功能。三台路由器的区域ID分别配置为1111.1111.1111、2222.2222.2222、3333.3333.3333,同处一个骨干区域aa中。
配置好后,可以在RouterA上执行display isis peer命令,即可看到RouterA与RouterB建立了邻居关系。
在RouterA上执行display isis route查看IS-IS路由表中有去往RouterB和RouterC的路由表项。
③在RouterA和RouterB上分别使能BFD特性,配置BFD会话。
配置好后,通过在RouterA或RouterB上执行display bfd session可看到它们之间的BFD会话的状态为Up。
在RouterA上打开终端显示信息中心发送的日志信息功能。
<RouterA>terminal logging
<RouterA>terminal monitor
对B的GigabitEthernet1/0/0执行shutdown,可在A连接的终端上看到以下日志信息和调试信息,表明IS-IS根据BFD报告删除了与B的邻居关系。
四、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联动,实现快速感知故障和流量切换。
2、配置具体步骤
①配置各路由器的接口IP。以A为例
[RouterA]interfacegigabitethernet 1/0/0
[RouterA-GigabitEthernet1/0/0]ipaddress 1.1.1.1 24
[RouterA-GigabitEthernet1/0/0]quit
[RouterA]interfacegigabitethernet 2/0/0
[RouterA-GigabitEthernet2/0/0]ipaddress 3.3.3.1 24
②配置各路由器的IS-IS基本功能,包括创建IS-IS进程,配置路由器类型(均为L2类型)、网络实体名称以及在接口上使能IS-IS功能。三台路由器的区域ID分别配置为0000.0000.0001、0000.0000.0002、0000.0000.0003,同处于一个骨干区域10中。
配置好后,可通过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上分别使能IS-IS进程下的BFD特性
⑤分别在RouterA和RouterB上的GE2/0/0接口上使能BFD特性,并指定最小发送和接收间隔为100ms,本地检测时间倍数为4。
配置好后,在A或B上执行display isis bfd session all命令可查看BFD参数生效,并且BFD会话状态为Up。
对B的GE2/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,优先级更高。