03-IPsec配置
本章节下载: 03-IPsec配置 (844.43 KB)
目 录
1.3.1 配置IPsec隧道保护匹配ACL的报文的配置任务简介
1.4.1 配置IPsec隧道保护IPv6路由协议配置任务简介
1.11.3 在IPsec安全策略/IPsec安全策略模板/IPsec安全框架下设置IPsec封装后外层IP头的DF位
1.11.4 在接口下设置IPsec封装后外层IP头的DF位
1.19.1 采用手工方式建立保护IPv4报文的IPsec隧道配置举例
1.19.2 采用IKE方式建立保护IPv4报文的IPsec隧道配置举例
1.19.3 采用IKE方式建立保护IPv6报文的IPsec隧道配置举例
IPsec(IP Security,IP安全)是IETF制定的三层隧道加密协议,它为互联网上传输的数据提供了高质量的、基于密码学的安全保证,是一种传统的实现三层VPN(Virtual Private Network,虚拟专用网络)的安全技术。IPsec通过在特定通信方之间(例如两个安全网关之间)建立“通道”,来保护通信方之间传输的用户数据,该通道通常称为IPsec隧道。
IPsec协议不是一个单独的协议,它为IP层上的网络数据安全提供了一整套安全体系结构,包括安全协议AH(Authentication Header,认证头)和ESP(Encapsulating Security Payload,封装安全载荷)、IKE(Internet Key Exchange,互联网密钥交换)以及用于网络认证及加密的一些算法等。其中,AH协议和ESP协议用于提供安全服务,IKE协议用于密钥交换。关于IKE的详细介绍请参见“IP隧道及安全VPN配置指导”中的“IKE”,本节不做介绍。
IPsec提供了两大安全机制:认证和加密。认证机制使IP通信的数据接收方能够确认数据发送方的真实身份以及数据在传输过程中是否遭篡改。加密机制通过对数据进行加密运算来保证数据的机密性,以防数据在传输过程中被窃听。
IPsec为IP层的数据报文提供的安全服务具体包括以下几种:
· 数据机密性(Confidentiality):发送方通过网络传输用户报文前,IPsec对报文进行加密。
· 数据完整性(Data Integrity):接收方对发送方发送来的IPsec报文进行认证,以确保数据在传输过程中没有被篡改。
· 数据来源认证(Data Origin Authentication):接收方认证发送IPsec报文的发送端是否合法。
· 抗重放(Anti-Replay):接收方可检测并拒绝接收过时或重复的IPsec报文。
IPsec可为IP层上的数据提供安全保护,其优点包括如下几个方面:
· 支持IKE(Internet Key Exchange,互联网密钥交换),可实现密钥的自动协商功能,减少了密钥协商的开销。可以通过IKE建立和维护SA(Security Association,安全联盟),简化了IPsec的使用和管理。
· 所有使用IP协议进行数据传输的应用系统和服务都可以使用IPsec,而不必对这些应用系统和服务本身做任何修改。
· 对数据的加密是以数据包为单位的,而不是以整个数据流为单位,这不仅灵活而且有助于进一步提高IP数据包的安全性,可以有效防范网络攻击。
IPsec包括AH和ESP两种安全协议,它们定义了对IP报文的封装格式以及可提供的安全服务。
· AH协议(IP协议号为51)定义了AH头在IP报文中的封装格式,如图1-3所示。AH可提供数据来源认证、数据完整性校验和抗重放功能,它能保护报文免受篡改,但不能防止报文被窃听,适合用于传输非机密数据。AH使用的认证算法有HMAC-MD5和HMAC-SHA1等。
· ESP协议(IP协议号为50)定义了ESP头和ESP尾在IP报文中的封装格式,如图1-3所示。ESP可提供数据加密、数据来源认证、数据完整性校验和抗重放功能。与AH不同的是,ESP将需要保护的用户数据进行加密后再封装到IP包中,以保证数据的机密性。ESP使用的加密算法有DES、3DES、AES等。同时,作为可选项,ESP还可以提供认证服务,使用的认证算法有HMAC-MD5和HMAC-SHA1等。虽然AH和ESP都可以提供认证服务,但是AH提供的认证服务要强于ESP。
在实际使用过程中,可以根据具体的安全需求同时使用这两种协议或仅使用其中的一种。设备支持的AH和ESP联合使用的方式为:先对报文进行ESP封装,再对报文进行AH封装。
IPsec支持两种封装模式:传输模式和隧道模式。
该模式下的安全协议主要用于保护上层协议报文,仅传输层数据被用来计算安全协议头,生成的安全协议头以及加密的用户数据(仅针对ESP封装)被放置在原IP头后面。若要求端到端的安全保障,即数据包进行安全传输的起点和终点为数据包的实际起点和终点时,才能使用传输模式。如图1-1所示,通常传输模式用于保护两台主机之间的数据。
该模式下的安全协议用于保护整个IP数据包,用户的整个IP数据包都被用来计算安全协议头,生成的安全协议头以及加密的用户数据(仅针对ESP封装)被封装在一个新的IP数据包中。这种模式下,封装后的IP数据包有内外两个IP头,其中的内部IP头为原有的IP头,外部IP头由提供安全服务的设备添加。在安全保护由设备提供的情况下,数据包进行安全传输的起点或终点不为数据包的实际起点和终点时(例如安全网关后的主机),则必须使用隧道模式。如图1-2所示,通常隧道模式用于保护两个安全网关之间的数据。
不同的安全协议及组合在隧道和传输模式下的数据封装形式如图1-3所示。
SA(Security Association,安全联盟)是IPsec的基础,也是IPsec的本质。IPsec在两个端点之间提供安全通信,这类端点被称为IPsec对等体。SA是IPsec对等体间对某些要素的约定,例如,使用的安全协议(AH、ESP或两者结合使用)、协议报文的封装模式(传输模式或隧道模式)、认证算法(HMAC-MD5、HMAC-SHA1或SM3)、加密算法(DES、3DES、AES或SM)、特定流中保护数据的共享密钥以及密钥的生存时间等。
SA是单向的,在两个对等体之间的双向通信,最少需要两个SA来分别对两个方向的数据流进行安全保护。同时,如果两个对等体希望同时使用AH和ESP来进行安全通信,则每个对等体都会针对每一种协议来构建一个独立的SA。
SA由一个三元组来唯一标识,这个三元组包括SPI(Security Parameter Index,安全参数索引)、目的IP地址和安全协议号。其中,SPI是用于标识SA的一个32比特的数值,它在AH和ESP头中传输。
SA有手工配置和IKE自动协商两种生成方式:
· 手工方式:通过命令行配置SA的所有信息。该方式的配置比较复杂,而且不支持一些高级特性(例如定时更新密钥),优点是可以不依赖IKE而单独实现IPsec功能。该方式主要用于需要安全通信的对等体数量较少,或小型静态的组网环境中。
· IKE自动协商方式:对等体之间通过IKE协议自动协商生成SA,并由IKE协议维护该SA。该方式的配置相对比较简单,扩展能力强。在中、大型的动态网络环境中,推荐使用IKE自动协商建立SA。
手工方式建立的SA永不老化。通过IKE协商建立的SA具有生存时间,当生存时间到达时,旧的SA会被删除。
IKE协商建立的SA在生存时间到达前会提前协商一个新的SA来替换旧的SA。从SA建立到启动新SA协商的这段时间是软超时时间。缺省情况下,系统会基于SA的生存时间使用默认算法计算一个软超时时间。系统允许配置一个软超时缓冲来控制软超时时间,计算公式为:软超时时间=生存时间-软超时缓冲。
IKE协商建立的SA有两种形式的生存时间:
· 基于时间的生存时间,定义了一个SA从建立到删除的时间;
· 基于流量的生存时间,定义了一个SA允许处理的最大流量。
可同时存在基于时间和基于流量两种方式的SA生存时间,只要其中一种到达,就会删除旧的SA。
IPsec使用的认证算法主要是通过杂凑函数实现的。杂凑函数是一种能够接受任意长度的消息输入,并产生固定长度输出的算法,该算法的输出称为消息摘要。IPsec对等体双方都会计算一个摘要,接收方将发送方的摘要与本地的摘要进行比较,如果二者相同,则表示收到的IPsec报文是完整未经篡改的,以及发送方身份合法。目前,IPsec使用基于HMAC(Hash-based Message Authentication Code,基于散列的消息鉴别码)的认证算法和SM3认证算法。HMAC认证算法包括HMAC-MD5和HMAC-SHA。其中,HMAC-MD5算法的计算速度快,而HMAC-SHA算法的安全强度高。
IPsec使用的加密算法属于对称密钥系统,这类算法使用相同的密钥对数据进行加密和解密。目前设备的IPsec使用的加密算法包括:
· DES:使用56比特的密钥对一个64比特的明文块进行加密。
· 3DES:使用三个56比特(共168比特)的密钥对明文块进行加密。
· AES:使用128比特、192比特或256比特的密钥对明文块进行加密。
· SM:使用128比特的密钥对明文块进行加密。
这些加密算法的安全性由高到低依次是:AES/SM、3DES、DES,安全性高的加密算法实现机制复杂,运算速度慢。
IPsec的认证和加/解密处理在设备上既可以通过软件实现,也可以通过硬件加密引擎实现。通过软件实现的IPsec,由于复杂的加密/解密、认证算法会占用大量的CPU资源,将会影响设备整体处理效率;通过硬件加密引擎实现的IPsec,由于复杂的算法处理由硬件完成,因此可以提高设备的处理效率。
若设备支持通过硬件加密引擎进行认证和加/解密处理,则设备会首先将需要处理的数据发送给硬件加密引擎,由硬件加密引擎对数据进行处理之后再发送回设备,最后由设备进行转发。
关于加密引擎的详细介绍请参见“安全配置指导”中的“加密引擎”。
IPsec隧道可以保护匹配ACL(Access Control List,访问控制列表)的报文和IPv6路由协议报文。要实现建立IPsec隧道为两个IPsec对等体之间的数据提供安全保护,首先要配置和应用相应的安全策略,这里的安全策略包括IPsec安全策略和IPsec安全框架。有关IPsec安全策略和IPsec安全框架的详细介绍请参见“IPsec安全策略和IPsec安全框架”。
当IPsec对等体根据IPsec安全策略和IPsec安全框架识别出要保护的报文时,就建立一个相应的IPsec隧道并将其通过该隧道发送给对端。此处的IPsec隧道可以是提前手工配置或者由报文触发IKE协商建立。这些IPsec隧道实际上就是两个IPsec对等体之间建立的IPsec SA。由于IPsec SA是单向的,因此出方向的报文由出方向的SA保护,入方向的报文由入方向的SA来保护。对端接收到报文后,首先对报文进行分析、识别,然后根据预先设定的安全策略对报文进行不同的处理(丢弃,解封装,或直接转发)。
将引用了ACL的IPsec安全策略应用到接口上后,该接口上匹配ACL的报文将会受到IPsec保护。这里的接口包括以太网接口等实际物理接口,以及Tunnel、Virtual Template等虚接口。
具体的保护机制如下:
· 只要接口发送的报文与该接口上应用的IPsec安全策略中的ACL的permit规则匹配,就会受到出方向IPsec SA的保护并进行封装处理。
· 接口接收到目的地址是本机的IPsec报文时,首先根据报文头里携带的SPI查找本地的入方向IPsec SA,由对应的入方向IPsec SA进行解封装处理。解封装后的IP报文若能与ACL的permit规则匹配上则采取后续处理,否则被丢弃。
目前,设备支持的数据流的保护方式包括以下三种:
· 标准方式:一条IPsec隧道保护一条数据流。ACL中的每一个规则对应的数据流分别由一条单独创建的IPsec隧道来保护。缺省采用该方式。
· 聚合方式:一条IPsec隧道保护ACL中定义的所有数据流。ACL中的所有规则对应的数据流只会由一条创建的IPsec隧道来保护。该方式仅用于和老版本的设备互通。
· 主机方式:一条IPsec隧道保护一条主机到主机的数据流。ACL中的每一个规则对应的不同主机之间的数据流分别由一条单独创建的IPsec隧道来保护。这种方式下,受保护的网段之间存在多条数据流的情况下,将会消耗更多的系统资源。
在隧道接口上应用IPsec安全框架后,路由到该隧道接口的报文都会受到IPsec的保护,除非用户指定该报文不需要被IPsec保护。此方式建立的IPsec的封装模式必须为隧道模式。该类应用通常也被称为在VTI(Virtual Tunnel Interface)上应用IPsec。
相比于保护匹配ACL的报文,保护隧道接口上报文的IPsec有以下优势:
· 支持保护组播报文。
· 支持动态路由协议在IPsec隧道两端的传播。
· 简化配置。不需要通过ACL规则对流量进行筛选,路由表会将流量引导到隧道口上。
隧道接口对报文的封装/解封装发生在隧道接口上。进入设备的报文被路由到应用了IPsec安全框架的隧道接口后,此隧道接口会对这些报文进行封装/解封装处理。如图1-4所示,隧道接口对报文进行封装的过程如下:
(1) Device将从入接口接收到的IP明文送到转发模块进行路由处理;
(2) 转发模块依据路由查询结果,将IP明文发送到隧道接口进行封装:原始IP报文加密后被封装在一个新的IP报文中,新IP头中的源地址和目的地址分别为隧道接口的源端地址和目的端地址。
(3) 隧道接口完成对IP明文的封装处理后,将IP密文再次送到转发模块进行路由处理;
(4) 转发模块根据新IP头中的目的IP地址进行第二次路由查询后,将IP密文通过隧道接口的实际物理出接口转发出去。
如图1-5所示,隧道接口对报文进行解封装的过程如下:
(1) Device将从入接口接收到的IP密文送到转发模块进行路由处理;
(2) 转发模块识别到此IP密文的目的IP地址为本设备隧道接口源端地址且IP协议号为AH或ESP时,会将IP密文送到相应的隧道接口进行解封装:将IP密文的外层IP头去掉,对内层IP报文进行解密处理。
(3) 隧道接口完成对IP密文的解封装处理之后,将IP明文重新送回转发模块进行路由处理;
(4) 转发模块根据IP明文的目的IP地址进行第二次路由查询后,将IP明文从隧道的实际物理出接口转发出去。
将IPsec安全框架应用到某一IPv6路由协议(目前支持保护OSPFv3、IPv6 BGP、RIPng路由协议)后,设备产生的需要IPsec保护的某一IPv6路由协议的所有报文都要进行封装处理,而设备接收到的不受IPsec保护的以及解封装失败的业务协议报文都要被丢弃。
由于IPsec的密钥交换机制仅适用于两点之间的通信保护,在广播网络一对多的情形下,IPsec无法实现自动交换密钥,同样,由于广播网络一对多的特性,要求各设备对于接收、发送的报文均使用相同的SA参数(相同的SPI及密钥),因此该方式下必须手工配置用来保护IPv6路由协议报文的IPsec SA。
SDWAN(Software Defined Wide Area Network,软件定义广域网)是将SDN技术应用到广域网的一种VPN技术。控制平面通过标准的MP-BGP通告TTE(Transport Tunnel Endpoint,传输隧道端点)信息和EVPN路由信息,实现不同站点之间的MAC地址、IP地址的学习和发布;数据平面采用UDP封装转发数据报文且能保障数据快速安全传输,为分散在广阔地理范围内的企业网络、数据中心等提供安全可靠的互联服务。有关SDWAN的详细介绍,请参见“SDWAN配置指导”中的“SDWAN”。
图1-6 SDWAN网络模型示意图
如图1-6所示,SDWAN网络由控制通道和数据通道组成。CPE各自生成IPsec SA,并通过与RR的控制通道传递给其他CPE。当CPE之间的数据通道有数据需要传输时,CPE将使用IPsec SA对CPE之间传输的数据进行IPsec加密保护。
例如,当CPE1向CPE2发送报文时,CPE1将使用CPE2的IPsec SA对报文进行加密后,发送给CPE2,CPE2收到报文后,使用自己的IPsec SA进行解密,并对未加密的报文进行丢弃。反之,CPE2向CPE1发送报文时,CPE2将使用CPE1的IPsec SA进行加密后,发送给CPE1,CPE1收到报文后,使用自己的IPsec SA进行解密,并对未加密的报文进行丢弃。
由于IPsec SA是单向的,设备加密和解密采用不同的IPsec SA。通常情况下,本端IPsec SA仅用于解密,对端IPsec SA仅用于加密。
IPsec安全策略和IPsec安全框架用于在两个对等体之间建立IPsec隧道,保护两个对等体之间需要被安全防护的报文。
一个IPsec安全策略是若干具有相同名字、不同顺序号的IPsec安全策略表项的集合,IPsec安全策略被应用在接口上,用于控制对等体之间建立IPsec隧道,由ACL定义要保护的数据范围。IPsec安全策略主要定义了以下内容:
· 要保护的数据流的范围:由ACL定义。
· 对数据流实施何种保护:由IPsec安全提议定义。
· IPsec SA的生成方式:手工方式、IKE协商方式。
· 保护路径的起点或终点:即对等体的IP地址。
在同一个IPsec安全策略中,顺序号越小的IPsec安全策略表项优先级越高。当从一个接口发送数据时,接口将按照顺序号从小到大的顺序逐一匹配引用的IPsec安全策略中的每一条安全策略表项。如果数据匹配上了某一条安全策略表项引用的ACL,则停止匹配,并对其使用当前这条安全策略表项进行处理,即根据已经建立的IPsec SA或者触发IKE协商生成的IPsec SA对报文进行封装处理;如果数据与所有安全策略表项引用的ACL都不匹配,则直接被正常转发,IPsec不对数据加以保护。
应用了IPsec安全策略的接口收到数据报文时,对于目的地址是本机的IPsec报文,根据报文头里携带的SPI查找本地的IPsec SA,并根据匹配的IPsec SA对报文进行解封装处理;解封装后的IP报文若能与ACL的permit规则匹配上则采取后续处理,否则被丢弃。
IPsec安全策略除了可以应用到以太网接口等实际物理接口上之外,还能够应用到Tunnel、Virtual Template等虚接口上,对GRE、L2TP等流量进行保护。
IPsec安全框架(IPsec Profile)与IPsec安全策略类似,但不需要使用ACL指定要保护的数据流的范围。一个IPsec安全框架由名字唯一确定。IPsec安全框架定义了对数据流进行IPsec保护所使用的安全提议,以及SA参数,应用于IPv6路由协议中。
RRI(Reverse Route Injection,反向路由注入)功能是一种自动添加到达IPsec VPN私网静态路由的机制,可以实现为受IPsec保护的流量自动添加静态路由的功能。在大规模组网中,这种自动添加静态路由的机制可以简化用户配置,减少在企业总部网关设备上配置静态路由的工作量,并且可以根据IPsec SA的创建和删除进行静态路由的动态增加和删除,增强了IPsec VPN的可扩展性。
如图1-7所示,某企业在企业分支与企业总部之间的所有流量通过IPsec进行保护,企业总部网关上需要配置静态路由,将总部发往分支的数据引到应用IPsec安全策略的接口上来。如果未配置RRI,当企业分支众多或者内部网络规划发生变化时,就需要同时增加或调整总部网关上的静态路由配置,该项工作量大且容易出现配置错误。
企业总部侧网关设备GW上配置RRI功能后,每一个IPsec隧道建立之后,GW都会自动为其添加一条相应的静态路由。通过RRI创建的路由表项可以在路由表中查询到,其目的地址为受保护的对端网络,下一跳地址为IPsec隧道的对端地址或指定的地址,它使得发往对端的流量被强制通过IPsec保护并转发。
RRI创建的静态路由和手工配置的静态路由一样,可以向内网设备进行广播,允许内网设备选择合适的路由对IPsec VPN流量进行转发。也可以为RRI创建的静态路由配置优先级,从而更灵活地应用路由管理策略。例如:当设备上还有其他方式配置到达相同目的地的路由时,如果为它们指定相同的优先级,则可实现负载分担,如果指定不同的优先级,则可实现路由备份。同时,还可以通过修改静态路由的Tag值,使得设备能够在路由策略中根据Tag值对这些RRI生成的静态路由进行灵活的控制。
图1-7 IPsec VPN总部-分支组网图
与IPsec相关的协议规范有:
· RFC 2401:Security Architecture for the Internet Protocol
· RFC 2402:IP Authentication Header
· RFC 2406:IP Encapsulating Security Payload
· RFC 4552:Authentication/Confidentiality for OSPFv3
通常情况下,由于IKE协议采用UDP的500端口进行通信,IPsec的AH和ESP协议分别使用51或50号协议来工作,因此为保障IKE和IPsec的正常运行,需要确保应用了IKE和IPsec配置的接口上没有禁止掉属于以上端口和协议的流量。
在传输模式下,设备通过ACL来识别由IPsec隧道保护的流量时,受保护的流量只能是源地址或目的地址为本机的报文。例如:可配置IPsec隧道对设备发送给日志服务器的日志信息进行保护。ACL中定义的匹配转发流量的规则不生效,IPsec不会对设备转发的任何数据流和语音流进行保护。
IPsec隧道保护匹配ACL的报文配置任务如下:
(1) 配置ACL
(2) 配置IPsec安全提议
(3) 配置IPsec安全策略
请选择以下一项任务进行配置:
(4) 在接口上应用IPsec安全策略
(5) (可选)配置IPsec隧道保护匹配ACL的报文的辅助功能
(6) (可选)配置IPsec日志和告警功能
IPsec通过配置ACL来定义需要保护的数据流。在IPsec应用中,ACL规则中的permit关键字表示与之匹配的流量需要被IPsec保护,而deny关键字则表示与之匹配的流量不需要保护。一个ACL中可以配置多条规则,首个与数据流匹配上的规则决定了对该数据流的处理方式。
在IPsec安全策略中定义的ACL既可用于过滤接口入方向数据流,也可用于过滤接口出方向数据流。
· 设备出入方向的数据流都使用IPsec安全策略中定义的ACL规则来做匹配依据。具体是,出方向的数据流正向匹配ACL规则,入方向的数据流反向匹配ACL规则。例如,对于应用于IPsec安全策略中的某ACL规则:rule 0 permit ip source 1.1.1.0 0.0.0.255 destination 2.2.2.0 0.0.0.255,设备使用其正向过滤出方向上从1.1.1.0/24网段发往2.2.2.0/24网段的数据流,反向过滤入方向上从2.2.2.0/24网段发往1.1.1.0/24网段的数据流。
· 在出方向上,与ACL的permit规则匹配的报文将被IPsec保护,未匹配上任何规则或与deny规则匹配上的报文将不被IPsec保护。
· 在入方向上,与ACL的permit规则匹配上的未被IPsec保护的报文将被丢弃;目的地址为本机的被IPsec保护的报文将被进行解封装处理。缺省情况下解封装后的IP报文若能与ACL的permit规则匹配上则采取后续处理,否则被丢弃。若解封装后IPsec报文的ACL检查功能处于关闭状态,则解封装后的IP报文不与ACL匹配,直接进行后续处理。
需要注意的是:
· 仅对确实需要IPsec保护的数据流配置permit规则,避免盲目地使用关键字any。这是因为,在一个permit规则中使用any关键字就代表所有指定范围上出方向的流量都需要被IPsec保护,所有对应入方向上被IPsec保护的报文将被接收并处理,入方向上未被IPsec保护的报文都将被丢弃。这种情况下,一旦入方向收到的某流量是未被IPsec保护的,那么该流量就会被丢弃,这会造成一些本不需要IPsec处理的流量丢失,影响正常的业务传输。
· 当一个安全策略下有多条优先级不同的安全策略表项时,合理使用deny规则。避免本应该与优先级较低的安全策略表项的ACL permit规则匹配而被IPsec保护的出方向报文,因为先与优先级较高的安全策略表项的ACL deny规则匹配上,而没有被IPsec保护,继而在接收端被丢弃。
下面是一个deny规则的错误配置示例。Device A和Device B上分别配置如下所示的IPsec安全策略,当Device A连接的1.1.2.0/24网段用户访问Device B连接的3.3.3.0/24网段时,报文在Device A的应用了IPsec安全策略testa的出接口上优先与顺序号为1的安全策略表项匹配,并匹配上了IPv4 ACL 3000的rule 1,因此Device A认为它不需要IPsec保护,而未进行IPsec封装。该报文到达Device B后,在应用了IPsec安全策略testb的入接口上与IPv4 ACL 3001的rule 0匹配,并被判断为应该受IPsec保护但未被保护的报文而丢弃。
Device A上的关键配置如下:
acl advanced 3000
rule 0 permit ip source 1.1.1.0 0.0.0.255 destination 2.2.2.0 0.0.0.255
rule 1 deny ip
acl advanced 3001
rule 0 permit ip source 1.1.2.0 0.0.0.255 destination 3.3.3.0 0.0.0.255
rule 1 deny ip
#
ipsec policy testa 1 isakmp <---优先级高的安全策略表项
security acl 3000
ike-profile aa
transform-set 1
#
ipsec policy testa 2 isakmp <---优先级低的安全策略表项
security acl 3001
ike-profile bb
transform-set 1
Device B上的关键配置如下:
acl advanced 3001
rule 0 permit ip source 3.3.3.0 0.0.0.255 destination 1.1.2.0 0.0.0.255
rule 1 deny ip
#
ipsec policy testb 1 isakmp
security acl 3001
ike-profile aa
transform-set 1
为保证Device A连接的1.1.2.0/24网段用户访问Device B连接的3.3.3.0/24网段的报文可被正确处理,建议将Device A上的IPv4 ACL 3000中的deny规则删除。
为保证IPsec对等体上能够成功建立SA,建议两端设备上用于IPsec的ACL配置为镜像对称,即保证两端定义的要保护的数据流范围的源和目的尽量对称。例如,图1-8中Device A和Device B上的ACL配置都是完全镜像对称的,因此用于保护主机Host A与主机Host C之间、子网Network 1与子网Network 2之间流量的SA均可成功建立。
若IPsec对等体上的ACL配置非镜像,那么只有在一端的ACL规则定义的范围是另外一端的子集时,SA协商可以成功。如图1-9所示,Device A上的ACL规则允许的范围(Host A->Host C)是Device B上ACL规则允许的范围(Network 2->Network 1)的子集。
需要注意的是,在这种ACL配置下,并不是任何一端发起的SA协商都可以成功,仅当保护范围小(细粒度)的一端向保护范围大(粗粒度)的一端发起的协商才能成功,反之则SA协商失败。这是因为,协商响应方要求协商发起方发送过来的数据必须在响应方可以接受的范围之内。其结果就是,从细粒度一端向粗粒度一端发送报文时,细粒度侧设备发起的SA协商可以成功,例如Host A->Host C;从粗粒度一方向细粒度一方发送报文时,粗粒度侧设备发起的SA协商不能成功,例如Host C->Host A、Host C->Host B、Host D->Host A等。
为满足MPLS L3VPN中的用户流量能够通过IPsec隧道来保护,需要保证连接VPN用户流量的设备上定义的要保护的数据流范围中明确指定了数据流所属的VPN实例。
图1-10 MPLS L3VPN组网
以上组网环境中,Device A设备上的ACL配置如下:
#
acl advanced 3400
rule 0 permit ip vpn-instance vpn1 source 1.1.1.0 0.0.0.255 destination 3.3.3.0 0.0.0.255
#
同时,还必须在IKE profile视图中配置内部VPN实例为vpn1。
#
ike profile vpn1
keychain vpn1
match remote identity address 8.8.8.1 255.255.255.255
inside-vpn vpn-instance vpn1
#
为满足VPN实例中的用户流量能够通过IPsec隧道来保护,需要保证连接VPN用户流量的设备上定义的要保护的数据流范围中明确指定了数据流所属的VPN实例。
图1-11 VPN实例组网
以上组网环境中,Device A设备上的ACL配置如下:
#
acl advanced 3400
rule 0 permit ip vpn-instance vpn1 source 1.1.1.0 0.0.0.255 destination 3.3.3.0 0.0.0.255
#
同时,还必须在IKE profile视图中配置内部VPN实例为vpn1。
#
ike profile vpn1
keychain vpn1
match remote identity address 8.8.8.1 255.255.255.255
inside-vpn vpn-instance vpn1
#
IPsec安全提议是IPsec安全策略的一个组成部分,它用于定义IPsec需要使用的安全协议、加密/认证算法以及封装模式,为IPsec协商SA提供各种安全参数。
· 可对IPsec安全提议进行修改,但对已协商成功的IPsec SA,新修改的安全提议并不起作用,即仍然使用原来的安全提议,只有新协商的SA使用新的安全提议。若要使修改对已协商成功的IPsec SA生效,则需要执行reset ipsec sa命令。
· 传输模式必须应用于数据流的源地址和目的地址与IPsec隧道两端地址相同的情况下;若要配置应用于IPv6路由协议的手工方式的安全框架,则该安全框架引用的安全提议仅支持传输模式的封装模式。
· IKEv1协商时发起方的PFS强度必须大于或等于响应方的PFS强度,否则协商会失败。IKEv2不受该限制。不配置PFS特性的一端,按照对端的PFS特性要求进行IKE协商。
· 可以使用命令为一个安全协议指定多个认证或者加密算法,算法优先级以配置顺序为准。
· 若要配置应用于IPsec over IPv4隧道和IPsec over IPv6隧道接口上的IPsec安全框架或IPsec安全策略,则该IPsec安全框架或IPsec安全策略引用的安全提议仅支持隧道模式的封装。即使安全提议下配置的封装模式为传输模式,仍然使用隧道模式封装,传输模式的配置命令不生效。
· 以下这些算法只适用于IKEv2协商:
表1-1 IKEv2协商适用的算法
参数 |
取值 |
加密算法 |
aes-ctr-128/aes-ctr-192/aes-ctr-256 camellia-cbc-128/camellia-cbc-192/camellia-cbc-256 gmac-128/gmac-192/gmac-256/ gcm-128/gcm-192/gcm-256 |
认证算法 |
aes-xcbc-mac |
(1) 进入系统视图。
system-view
(2) 创建IPsec安全提议,并进入IPsec安全提议视图。
ipsec transform-set transform-set-name
(3) 配置IPsec安全提议采用的安全协议。
protocol { ah | ah-esp | esp }
缺省情况下,采用ESP安全协议。
(4) 配置协议(esp或ah-esp)采用的加密算法。
esp encryption-algorithm { 3des-cbc | aes-cbc-128 | aes-cbc-192 | aes-cbc-256 | aes-ctr-128 | aes-ctr-192 | aes-ctr-256 | camellia-cbc-128 | camellia-cbc-192 | camellia-cbc-256 | des-cbc | gmac-128 | gmac-192 | gmac-256 | gcm-128 | gcm-192 | gcm-256 | null | sm1-cbc-128 | sm4-cbc } *
缺省情况下,ESP协议没有采用任何加密算法。
非ESP协议,请忽略本步骤。
(5) 配置协议(esp或ah-esp)采用的认证算法。
esp authentication-algorithm { aes-xcbc-mac | md5 | sha1 | sha256 | sha384 | sha512 | sm3 } *
缺省情况下,ESP协议没有采用任何认证算法。
非ESP协议,请忽略本步骤。
aes-xcbc-mac认证算法仅适用于IKEv2协商。
(6) 配置协议(ah或ah-esp)采用的认证算法。
ah authentication-algorithm { aes-xcbc-mac | md5 | sha1 | sha256 | sha384 | sha512 | sm3 } *
缺省情况下,AH协议没有采用任何认证算法。
采用ESP协议时,请忽略本步骤。
aes-xcbc-mac认证算法仅适用于IKEv2协商。
(7) 配置安全协议对IP报文的封装模式。
encapsulation-mode { transport | tunnel }
缺省情况下,安全协议采用隧道模式对IP报文进行封装。
(8) (可选)配置使用IPsec安全策略发起协商时使用PFS特性。
pfs { dh-group1 | dh-group2 | dh-group5 | dh-group14 | dh-group24 | dh-group19 | dh-group20 }
缺省情况下,使用IPsec安全策略发起协商时不使用PFS特性。
有关PFS(Perfect Forward Secrecy,完善的前向安全性)功能的详细介绍请参见“IP隧道及安全VPN配置指导”中的“IKE”。
(9) (可选)开启ESN功能。
esn enable [ both ]
缺省情况下,ESN功能处于关闭状态。
为保证SA能够成功生成,IPsec隧道两端的配置必须符合以下要求:
· IPsec安全策略引用的IPsec安全提议应采用相同的安全协议、加密/认证算法和报文封装模式。
· 当前端点的IPv4对端地址应与对端应用IPsec安全策略的接口的主IPv4地址保持一致;当前端点的IPv6对端地址应与对端应用IPsec安全策略的接口的第一个IPv6地址保持一致。
· 应分别设置inbound和outbound两个方向的IPsec SA参数,且保证每一个方向上的IPsec SA的唯一性:对于出方向IPsec SA,必须保证三元组(对端IP地址、安全协议、SPI)唯一;对于入方向IPsec SA,必须保证SPI唯一。
· 本端和对端IPsec SA的SPI及密钥必须是完全匹配的。即,本端的入方向IPsec SA的SPI及密钥必须和对端的出方向IPsec SA的SPI及密钥相同;本端的出方向IPsec SA的SPI及密钥必须和对端的入方向IPsec SA的SPI及密钥相同。
· 两端IPsec SA使用的密钥应当以相同的方式输入,即如果一端以字符串方式输入密钥,另一端必须也以字符串方式输入密钥。如果先后以不同的方式输入了密钥,则最后设定的密钥有效。
· 对于ESP协议,以字符串方式输入密钥时,系统会自动地同时生成认证算法的密钥和加密算法的密钥。
(1) 进入系统视图。
system-view
(2) 创建一条手工方式的IPsec安全策略,并进入IPsec安全策略视图。
ipsec { ipv6-policy | policy } policy-name seq-number manual
(3) (可选)配置IPsec安全策略的描述信息。
description text
缺省情况下,无描述信息。
(4) 指定IPsec安全策略引用的ACL。
security acl [ ipv6 ] { acl-number | name acl-name }
缺省情况下,IPsec安全策略没有引用ACL。
一条安全策略只能引用一个ACL。
(5) 指定IPsec安全策略所引用的安全提议。
transform-set transform-set-name
缺省情况下,IPsec安全策略没有引用IPsec安全提议。
一条手工方式的IPsec安全策略只能引用一个安全提议。
(6) 指定IPsec隧道的对端IP地址。
remote-address { ipv4-address | ipv6 ipv6-address }
缺省情况下,未指定IPsec隧道的对端地址。
(7) 配置IPsec SA的入方向SPI。
sa spi inbound { ah | esp } spi-number
缺省情况下,不存在IPsec SA的入方向SPI。
(8) 配置IPsec SA的出方向SPI。
sa spi outbound { ah | esp } spi-number
缺省情况下,不存在IPsec SA的出方向SPI。
(9) 配置IPsec SA使用的密钥。
¡ 配置AH协议的认证密钥(以十六进制方式输入)。
sa hex-key authentication { inbound | outbound } ah { cipher | simple } string
¡ 配置AH协议的认证密钥(以字符串方式输入)。
sa string-key { inbound | outbound } ah { cipher | simple } string
¡ 配置ESP协议的认证密钥和加密密钥(以字符串方式输入)。
sa string-key { inbound | outbound } esp { cipher | simple } string
¡ 配置ESP协议的认证密钥(以十六进制方式输入)。
sa hex-key authentication { inbound | outbound } esp { cipher | simple } string
¡ 配置ESP协议的加密密钥(以十六进制方式输入)。
sa hex-key encryption { inbound | outbound } esp { cipher | simple } string
缺省情况下,未配置IPsec SA使用的密钥。
根据本安全策略引用的安全提议中指定的安全协议,配置AH协议或ESP协议的密钥,或者两者都配置。
IKE协商方式的IPsec安全策略有以下两种配置方式:
· 直接配置IPsec安全策略:在安全策略视图中定义需要协商的各参数;
· 引用IPsec安全策略模板配置IPsec安全策略:首先在IPsec安全策略模板中定义需要协商的各参数,然后通过引用IPsec安全策略模板创建一条IPsec安全策略。应用了该类IPsec安全策略的接口不能发起协商,仅可以响应远端设备的协商请求。由于IPsec安全策略模板中未定义的可选参数由发起方来决定,而响应方会接受发起方的建议,因此这种方式适用于通信对端(例如对端的IP地址)未知的情况下,允许这些对端设备向本端设备主动发起协商。
IPsec安全策略模板与直接配置的IKE协商方式的IPsec安全策略中可配置的参数类似,但是配置较为简单,除了IPsec安全提议和IKE profile之外的其它参数均为可选。应用了引用IPsec安全策略模板配置的IPsec安全策略的接口不能发起协商,仅可以响应远端设备的协商请求。IPsec安全策略模板中未定义的可选参数由发起方来决定,而响应方会接受发起方的建议,例如IPsec安全策略模板下的用于定义保护对象范围的ACL是可选的,该参数在未配置的情况下,相当于支持最大范围的保护,即完全接受协商发起端的ACL设置。
IPsec隧道两端的配置必须符合以下要求:
· IPsec安全策略引用的IPsec安全提议中应包含相同的安全协议、认证/加密算法和报文封装模式。
· IPsec安全策略引用的IKE profile参数相匹配。
· 一条IKE协商方式的IPsec安全策略中最多可以引用六个IPsec安全提议。IKE协商过程中,IKE将会在隧道两端配置的IPsec安全策略中查找能够完全匹配的IPsec安全提议。如果IKE在两端找不到完全匹配的IPsec安全提议,则SA不能协商成功,需要被保护的报文将被丢弃。
· IKE协商的发起方必须配置IPsec隧道的对端地址,响应方可选配,且当前端点的对端地址与对端的本端地址应保持一致。
对于IKE协商建立的IPsec SA,遵循以下原则:
· 采用隧道两端设置的IPsec SA生存时间中较小者。
· 可同时存在基于时间和基于流量两种方式的IPsec SA生存时间,只要到达指定的时间或指定的流量,IPsec SA就会老化。
· 一条IPsec安全策略只能引用一个IKEv1 profile或者一个IKEv2 profile。同时引用时IKEv2 profile的优先级高于IKEv1 profile的优先级。
IKEv1 profile的相关配置请参见“IP隧道及安全VPN配置指导”中的“IKE”。
IKEv2 profile的相关配置请参见“IP隧道及安全VPN配置指导”中的“IKEv2”。
(1) 进入系统视图。
system-view
(2) 创建一条IKE协商方式的IPsec安全策略,并进入IPsec安全策略视图。
ipsec { ipv6-policy | policy } policy-name seq-number isakmp
(3) (可选)配置IPsec安全策略的描述信息。
description text
缺省情况下,无描述信息。
(4) (可选)配置触发建立IPsec SA的模式。
sa trigger-mode { auto | traffic-based }
缺省情况下,触发建立IPSec SA的模式为流量触发。
(5) 指定IPsec安全策略引用的ACL。
security acl [ ipv6 ] { acl-number | name acl-name } [ aggregation | per-host ]
缺省情况下,IPsec安全策略没有指定ACL。
一条IPsec安全策略只能引用一个ACL。
(6) 指定IPsec安全策略引用的IPsec安全提议。
transform-set transform-set-name&<1-6>
缺省情况下,IPsec安全策略没有引用IPsec安全提议。
(7) 指定IPsec安全策略引用的IKE profile或者IKEv2 profile。
¡ 指定IPsec安全策略引用的IKE profile。
ike-profile profile-name
缺省情况下,IPsec安全策略没有引用IKE profile。
¡ 指定IPsec安全策略引用的IKEv2 profile。
ikev2-profile profile-name
缺省情况下,IPsec安全策略没有引用IKEv2 profile。
(8) 指定IPsec隧道的本端IP地址。
local-address { ipv4-address | ipv6 ipv6-address }
缺省情况下,IPsec隧道的本端IPv4地址为应用IPsec安全策略的接口的主IPv4地址,本端IPv6地址为应用IPsec安全策略的接口的第一个IPv6地址。
此处指定的IPsec隧道本端IP地址必须与IKE使用的标识本端身份的IP地址一致。在VRRP组网环境中,IPsec隧道本端IP地址为应用IPsec安全策略接口所在备份组的虚拟IP地址。
(9) 指定IPsec隧道的对端IP地址。
remote-address { [ ipv6 ] host-name | ipv4-address | ipv6 ipv6-address }
缺省情况下,未指定IPsec隧道的对端IP地址。
(10) (可选)配置IPsec SA的生存时间或空闲超时时间。
¡ 配置IPsec SA的生存时间。
sa duration { time-based seconds | traffic-based kilobytes }
缺省情况下,IPsec安全策略下的IPsec SA生存时间为当前全局的IPsec SA生存时间。
¡ 配置IPsec SA的软超时缓冲参数。
sa soft-duration buffer { time-based seconds | traffic-based kilobytes }
缺省情况下,未配置软超时缓冲参数。
¡ 配置IPsec SA的空闲超时时间。
sa idle-time seconds
缺省情况下,IPsec安全策略下的IPsec SA空闲超时时间为当前全局的IPsec SA空闲超时时间。
(11) (可选)开启TFC(Traffic Flow Confidentiality)填充功能。
tfc enable
缺省情况下,TFC填充功能处于关闭状态。
本功能仅适用于IKEv2协商的IPsec SA。
(12) 启用IPsec安全策略表项。
policy enable
缺省情况下,IPsec安全策略表项处于启用状态。
(1) 进入系统视图。
system-view
(2) 创建一个IPsec安全策略模板,并进入IPsec安全策略模板视图。
ipsec { ipv6-policy-template | policy-template } template-name seq-number
(3) (可选)配置IPsec安全策略模板的描述信息。
description text
缺省情况下,无描述信息。
(4) (可选)指定IPsec安全策略模板引用的ACL。
security acl [ ipv6 ] { acl-number | name acl-name } [ aggregation | per-host ]
缺省情况下,IPsec安全策略模板没有指定ACL。
一条IPsec安全策略模板只能引用一个ACL。
(5) 指定IPsec安全策略模板引用的安全提议。
transform-set transform-set-name&<1-6>
缺省情况下IPsec安全策略模板没有引用IPsec安全提议。
(6) 指定IPsec安全策略模板引用的IKE profile或者IKEv2 profile。
¡ 指定IPsec安全策略模板引用的IKE profile。
ike-profile profile-name
缺省情况下,IPsec安全策略模板没有引用IKE profile。
不能引用已经被其它IPsec安全策略或IPsec安全策略模板引用的IKE profile。
¡ 指定IPsec安全策略模板引用的IKEv2 profile。
ikev2-profile profile-name
缺省情况下,IPsec安全策略模板没有引用IKEv2 profile。
(7) 指定IPsec隧道的本端IP地址和对端IP地址。
¡ 指定IPsec隧道的本端IP地址。
local-address { ipv4-address | ipv6 ipv6-address }
缺省情况下,IPsec隧道的本端IPv4地址为应用IPsec安全策略的接口的主IPv4地址,本端IPv6地址为应用IPsec安全策略的接口的第一个IPv6地址。
IPsec隧道本端IP地址必须与IKE对等体使用的标识本端身份的IP地址一致。VRRP组网环境中, IPsec隧道本端IP地址为应用IPsec安全策略的接口所在备份组的虚拟IP地址。
¡ 指定IPsec隧道的对端IP地址。
remote-address { [ ipv6 ] host-name | ipv4-address | ipv6 ipv6-address }
缺省情况下,未指定IPsec隧道的对端IP地址。
(8) (可选)配置IPsec SA的生存时间或者空闲超时时间。
¡ 配置IPsec SA的生存时间。
sa duration { time-based seconds | traffic-based kilobytes }
缺省情况下,IPsec安全策略模板下的IPsec SA生存时间为当前全局的IPsec SA生存时间。
¡ 配置IPsec SA的空闲超时时间。
sa idle-time seconds
缺省情况下,IPsec安全策略模板下的IPsec SA空闲超时时间为当前全局的IPsec SA空闲超时时间。
(9) (可选)开启TFC(Traffic Flow Confidentiality)填充功能。
tfc enable
缺省情况下,TFC填充功能处于关闭状态。
本功能仅适用于IKEv2协商的IPsec SA。
(10) 启用IPsec安全策略模板表项。
policy enable
缺省情况下,IPsec安全策略模板表项处于启用状态。
(11) 退回系统视图。
quit
(12) 引用安全策略模板创建一条IKE协商方式的安全策略。
ipsec { ipv6-policy | policy } policy-name seq-number isakmp template template-name
为使定义的IPsec SA生效,应在每个要加密的数据流和要解密的数据流所在接口上应用一个IPsec安全策略,以对数据进行保护。当取消IPsec安全策略在接口上的应用后,此接口便不再具有IPsec的安全保护功能。
在将IKE方式的IPsec安全策略应用到多个接口上时,请使用共享源接口的IPsec安全策略;手工方式的IPsec安全策略只能应用到一个接口上。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 应用IPsec安全策略。
ipsec apply { ipv6-policy | policy } policy-name
缺省情况下,接口上没有应用IPsec安全策略。
一个接口下最多只能应用一个IPv4/IPv6类型的IPsec安全策略,但可以同时应用一个IPv4类型的IPsec安全策略和一个IPv6类型的IPsec安全策略。
在隧道模式下,接口入方向上解封装的IPsec报文的内部IP头有可能不在当前IPsec安全策略引用的ACL的保护范围内,如网络中一些恶意伪造的攻击报文就可能有此问题,所以设备需要重新检查解封装后的报文的IP头是否在ACL保护范围内。开启该功能后可以保证ACL检查不通过的报文被丢弃,从而提高网络安全性。
(1) 进入系统视图。
system-view
(2) 开启解封装后IPsec报文的ACL检查功能。
ipsec decrypt-check enable
缺省情况下,解封装后IPsec报文的ACL检查功能处于开启状态。
重放报文,通常是指设备再次接收到的已经被IPsec处理过的报文。IPsec通过滑动窗口(抗重放窗口)机制检测重放报文。AH和ESP协议报文中带有序列号,如果收到的报文的序列号与已经解封装过的报文序列号相同,或收到的报文的序列号出现得较早,即已经超过了抗重放窗口的范围,则认为该报文为重放报文。
对重放报文的解封装无意义,并且解封装过程涉及密码学运算,会消耗设备大量的资源,导致业务可用性下降,造成了拒绝服务攻击。通过开启IPsec抗重放检测功能,将检测到的重放报文在解封装处理之前丢弃,可以降低设备资源的消耗。
在某些特定环境下,业务数据报文的接收顺序可能与正常的顺序差别较大,虽然并非有意的重放攻击,但会被抗重放检测认为是重放报文,导致业务数据报文被丢弃,影响业务的正常运行。因此,这种情况下就可以通过关闭IPsec抗重放检测功能来避免业务数据报文的错误丢弃,也可以通过适当地增大抗重放窗口的宽度,来适应业务正常运行的需要。
· 只有IKE协商的IPsec SA才能够支持抗重放检测,手工方式生成的IPsec SA不支持抗重放检测。因此该功能开启与否对手工方式生成的IPsec SA没有影响。
· 使用较大的抗重放窗口宽度会引起系统开销增大,导致系统性能下降,与抗重放检测用于降低系统在接收重放报文时的开销的初衷不符,因此建议在能够满足业务运行需要的情况下,使用较小的抗重放窗口宽度。
· IPsec抗重放检测功能缺省是开启的,是否关闭该功能请根据实际需求慎重使用。
(1) 进入系统视图。
system-view
(2) 开启IPsec抗重放检测功能。
ipsec anti-replay check
缺省情况下,IPsec抗重放检测功能处于开启状态。
(3) 配置IPsec抗重放窗口宽度。
ipsec anti-replay window width
为了提高网络的可靠性,通常核心设备到ISP(Internet Service Provider,互联网服务提供商)都会有两条出口链路,它们互为备份或者为负载分担的关系。由于在不同的接口上应用安全策略时,各个接口将分别协商生成IPsec SA。因此,则在主备链路切换时,接口状态的变化会触发重新进行IKE协商,从而导致数据流的暂时中断。这种情况下,两个接口上的IPsec SA就需要能够平滑切换。
通过将一个IPsec安全策略与一个源接口绑定,使之成为共享源接口IPsec安全策略,可以实现主备链路切换时受IPsec保护的业务流量不中断。具体机制为:应用相同IPsec安全策略的多个物理接口共同使用一个指定的源接口(称为共享源接口)协商IPsec SA,当这些物理接口对应的链路切换时,如果该源接口的状态不变化,就不会删除该接口协商出的IPsec SA,也不需要重新触发IKE协商,各物理接口继续使用已有的IPsec SA保护业务流量。
· 只有IKE协商方式的IPsec安全策略才能配置为IPsec共享源接口安全策略。
· 一个IPsec安全策略只能与一个源接口绑定。
· 一个源接口可以同时与多个IPsec安全策略绑定。
· 删除与共享源接口IPsec安全策略绑定的共享源接口时,将使得该共享源接口IPsec安全策略恢复为普通IPsec安全策略。
· 若一个IPsec安全策略为共享源接口IPsec安全策略,但该IPsec安全策略中未指定隧道本端地址,则IKE将使用共享源接口地址作为IPsec隧道的本端地址进行IKE协商;如果共享源接口IPsec安全策略中指定了隧道本端地址,则将使用指定的隧道本端地址进行IKE协商。
(1) 进入系统视图。
system-view
(2) 配置IPsec安全策略为IPsec共享源接口安全策略。
ipsec { ipv6-policy | policy } policy-name local-address interface-type interface-number
缺省情况下,IPsec安全策略不是共享源接口IPsec安全策略,即未将IPsec安全策略与任何源接口绑定。
当在接口上同时应用了IPsec安全策略与QoS策略时,缺省情况下,QoS使用封装后报文的外层IP头信息来对报文进行分类。但如果希望QoS基于被封装报文的原始IP头信息对报文进行分类,则需要配置QoS预分类功能来实现。
· 若在接口上同时配置IPsec和QoS,同一个IPsec SA保护的数据流如果被QoS分类进入不同队列,会导致部分报文发送乱序。由于IPsec具有抗重放功能,IPsec入方向上对于抗重放窗口之外的报文会进行丢弃,从而导致丢包现象。因此当IPsec与QoS配合使用时,必须保证IPsec分类与QoS分类规则配置保持一致。
· IPsec的分类规则完全由引用的ACL规则确定,QoS策略及QoS分类的相关介绍请参见“ACL和QoS配置指导”中的“QoS”。
(1) 进入系统视图。
system-view
(2) 进入IPsec安全策略视图或者IPsec安全策略模板视图。
¡ 进入IPsec安全策略视图。
ipsec { ipv6-policy | policy } policy-name seq-number [ isakmp | manual ]
¡ 进入IPsec安全策略模板视图。
ipsec { ipv6-policy-template | policy-template } template-name seq-number
(3) 开启QoS预分类功能。
qos pre-classify
缺省情况下,QoS预分类功能处于关闭状态。
开启RRI功能时,会删除相应IPsec安全策略协商出的所有IPsec SA。当有新的流量触发生成IPsec SA时,根据新协商的IPsec生成路由信息。
关闭RRI功能时,会删除相应IPsec安全策略协商出的所有IPsec SA。
RRI生成的静态路由随IPsec SA的创建而创建,随IPsec SA的删除而删除。
RRI功能在隧道模式和传输模式下都支持。
若修改了RRI生成的静态路由的优先级或Tag属性,则会删除由相应IPsec安全策略建立的IPsec SA和已添加的静态路由,修改后的属性值在下次生成IPsec SA且添加静态路由时生效。
在RRI功能开启的情况下,对于与未指定目的IP地址的ACL规则相匹配的报文流触发协商出的IPsec SA,设备并不会为其自动生成一条静态路由。因此,如果IPsec安全策略/IPsec安全策略模板引用了此类型的ACL规则,则需要通过手工配置一条到达对端受保护网络的静态路由。
在MPLS L3VPN组网环境中,配置了RRI功能的网关设备能够依据应用IPsec安全策略的接口所绑定的VPN实例,在相应VPN实例的IP路由表中自动添加静态路由。
(1) 进入系统视图。
system-view
(2) 进入IPsec安全策略视图或者IPsec安全策略模板视图。
¡ 进入IPsec安全策略视图。
ipsec { policy | ipv6-policy } policy-name seq-number isakmp
¡ 进入IPsec安全策略模板视图。
ipsec { ipv6-policy-template | policy-template } template-name seq-number
(3) 开启IPsec反向路由注入功能。
reverse-route [ next-hop [ ipv6 ] ip-address ] dynamic
缺省情况下,IPsec反向路由注入功能处于关闭状态。
(4) (可选)配置IPsec反向路由功能生成的静态路由的优先级。
reverse-route preference number
缺省情况下,IPsec反向路由注入功能生成的静态路由的优先级为60。
(5) (可选)配置IPsec反向路由功能生成的静态路由的Tag值。
reverse-route tag tag-value
缺省情况下,IPsec反向路由注入功能生成的静态路由的tag值为0。
IPsec隧道保护IPv6路由协议配置任务如下:
(1) 配置IPsec安全提议
(2) 配置手工方式的IPsec安全框架
(4) (可选)配置IPsec抗重放窗口和序号的同步功能
(5) (可选)配置IPsec分片功能
(6) (可选)配置本端允许建立IPsec隧道的最大数
(7) (可选)配置IPsec报文日志信息记录功能
(8) (可选)配置IPsec协商事件日志功能
(9) (可选)配置IPsec告警功能
手工方式的IPsec安全框架定义了对数据流进行IPsec保护所使用的安全提议,以及SA的SPI、SA使用的密钥。
IPsec隧道两端的配置必须符合以下要求:
· IPsec安全框架引用的IPsec安全提议应采用相同的安全协议、加密/认证算法和报文封装模式。
· 本端出方向IPsec SA的SPI和密钥必须和本端入方向IPsec SA的SPI和密钥保持一致。
· 同一个范围内的、所有设备上的IPsec SA的SPI和密钥均要保持一致。该范围与协议相关:对于OSPFv3,是OSPFv3邻居之间或邻居所在的区域;对于RIPng,是RIPng直连邻居之间或邻居所在的进程;对于BGP,是BGP邻居之间或邻居所在的一个组。
· 两端IPsec SA使用的密钥应当以相同的方式输入,即如果一端以字符串方式输入密钥,另一端必须也以字符串方式输入密钥。如果先后以不同的方式输入了密钥,则最后设定的密钥有效。
· 对于ESP协议,以字符串方式输入密钥时,系统会自动地同时生成认证算法的密钥和加密算法的密钥。
(1) 进入系统视图。
system-view
(2) 创建一个手工方式的IPsec安全框架,并进入IPsec安全框架视图。
ipsec profile profile-name manual
进入已创建的IPsec安全框架时,可以不指定协商方式manual。
(3) (可选)配置IPsec安全框架的描述信息。
description text
缺省情况下,无描述信息。
(4) 指定IPsec安全框架引用的IPsec安全提议。
transform-set transform-set-name
缺省情况下,IPsec安全框架没有引用IPsec安全提议。
要引用的IPsec安全提议所采用的封装模式必须为传输模式。
(5) 配置IPsec SA的SPI。
sa spi { inbound | outbound } { ah | esp } spi-number
缺省情况下,未配置IPsec SA的SPI。
(6) 配置IPsec SA使用的密钥。
¡ 配置AH协议的认证密钥(以十六进制方式输入)。
sa hex-key authentication { inbound | outbound } ah { cipher | simple } string
¡ 配置AH协议的认证密钥(以字符串方式输入)。
sa string-key { inbound | outbound } ah { cipher | simple } string
¡ 配置ESP协议的认证密钥和加密密钥(以字符串方式输入)。
sa string-key { inbound | outbound } esp { cipher | simple } string
¡ 配置ESP协议的认证密钥(以十六进制方式输入)。
sa hex-key authentication { inbound | outbound } esp { cipher | simple } string
¡ 配置ESP协议的加密密钥(以十六进制方式输入)。
sa hex-key encryption { inbound | outbound } esp { cipher | simple } string
缺省情况下,未配置IPsec SA使用的密钥。
根据本安全框架引用的安全提议中指定的安全协议,配置AH协议或ESP协议的密钥,或者两者都配置。
有关在IPv6路由协议上应用IPsec安全框架的相关配置,请分别参见“三层技术-IP路由配置指导”中的“IPv6 BGP”、“OSPFv3”和“RIPng”。
IPsec隧道保护隧道接口上的报文配置任务如下:
(1) 配置IPsec安全提议
(4) (可选)配置IPsec抗重放窗口和序号的同步功能
(5) (可选)配置全局IPsec SA生存时间和空闲超时功能
(6) (可选)配置IPsec分片功能
(7) (可选)设置IPsec隧道模式下封装后外层IP头的DF位
(8) (可选)配置本端允许建立IPsec隧道的最大数
(9) (可选)配置本端仅作为协商IPsec SA的响应方功能
(10) (可选)配置IPsec报文日志信息记录功能
(11) (可选)配置IPsec协商事件日志功能
(12) (可选)配置IPsec告警功能
IKE协商方式的IPsec安全框架定义了对数据流进行IPsec保护所使用的安全提议,以及IKE profile。
IPsec隧道两端的配置必须符合以下要求:
· IPsec安全框架引用的IPsec安全提议中应包含具有相同的安全协议、认证/加密算法和报文封装模式的IPsec安全提议。
· IPsec安全框架引用的IKE profile参数相匹配。
· 一条IKE协商方式的IPsec安全框架中最多可以引用六个IPsec安全提议。IKE协商过程中,IKE将会在隧道两端配置的IPsec安全框架中查找能够完全匹配的IPsec安全提议。如果IKE在两端找不到完全匹配的IPsec安全提议,则SA不能协商成功,需要被保护的报文将被丢弃。
对于IKE协商建立的IPsec SA,遵循以下原则:
· 采用隧道两端设置的IPsec SA生存时间中较小者。
· 可同时存在基于时间和基于流量两种方式的IPsec SA生存时间,只要到达指定的时间或指定的流量,IPsec SA就会老化。
(1) 进入系统视图。
system-view
(2) 创建一个IKE协商方式的IPsec安全框架,并进入IPsec安全框架视图。
ipsec profile profile-name isakmp
进入已创建的IPsec安全框架时,可以不指定协商方式isakmp。
(3) (可选)配置IPsec安全框架的描述信息。
description text
缺省情况下,无描述信息。
(4) 指定IPsec安全框架引用的IPsec安全提议。
transform-set transform-set-name&<1-6>
缺省情况下,IPsec安全框架没有引用IPsec安全提议。
要引用的IPsec安全提议所采用的封装模式必须为隧道模式。
(5) 指定IPsec安全框架引用的IKE profile。
ike-profile profile-name
缺省情况下,IPsec安全框架没有引用IKE profile。若系统视图下配置了IKE profile,则使用系统视图下配置的IKE profile进行性协商,否则使用全局的IKE参数进行协商。
只能引用一个IKE profile,IKE profile的相关配置请参见“IP隧道及安全VPN配置指导”中的“IKE”。
(6) (可选)指定IPsec安全框架引用的IKEv2 profile。
ikev2-profile profile-name
缺省情况下,IPsec安全框架没有引用IKEv2 profile。若同时引用IKE profile和IKEv2 profile,优先使用IKEv2 profile进行协商。
只能引用一个IKEv2 profile,IKE profile的相关配置请参见“IP隧道及安全VPN配置指导”中的“IKEv2”。
(7) (可选)配置IPsec SA的生存时间。
sa duration { time-based seconds | traffic-based kilobytes }
缺省情况下,IPsec安全框架下的IPsec SA生存时间为当前全局的IPsec SA生存时间。
(8) (可选)配置IPsec SA的软超时缓冲参数。
sa soft-duration buffer { time-based seconds | traffic-based kilobytes }
缺省情况下,未配置软超时缓冲参数。
(9) (可选)配置IPsec SA的空闲超时时间。
sa idle-time seconds
缺省情况下,IPsec安全框架下的IPsec SA空闲超时时间为当前全局的IPsec SA空闲超时时间。
在隧道接口上应用IPsec安全框架后,隧道两端会通过IKE协商建立IPsec隧道对隧道接口上传输的数据流进行IPsec保护。只有两端IKE协商成功后IPsec隧道接口才会up。
应用IPsec安全框架的时候,还可以通过ACL规则来对路由到隧道接口的报文进行进一步的过滤,只有匹配ACL permit规则的报文才会受到IPsec的保护。
(1) 进入系统视图。
system-view
(2) 创建一个Tunnel接口,指定隧道模式,并进入该Tunnel接口视图。
interface tunnel number mode { advpn { gre | udp } [ ipv6 ] | ipsec [ ipv6 ] | mgre }
(3) 在隧道接口上应用IPsec安全框架。
tunnel protection ipsec profile profile-name [ acl [ ipv6 ] { acl-number | name acl-name } ]
缺省情况下,隧道接口下未应用IPsec安全框架。
在SDWAN网络中为了实现IPsec保护SDWAN隧道接口上的报文,需要在通信两端的CPE设备上执行如下配置任务:
(1) 配置IPsec安全提议
(4) (可选)配置IPsec抗重放功能
(5) (可选)配置IPsec基于时间的抗重放窗口宽度
(6) (可选)配置IPsec抗重放窗口和序号的同步功能
(7) (可选)配置全局IPsec SA生存时间和空闲超时功能
(8) (可选)配置本端允许建立IPsec隧道的最大数
(9) (可选)配置SDWAN模式的IPsec隧道的报文统计功能
(10) (可选)配置IPsec报文日志信息记录功能
(11) (可选)配置IPsec协商事件日志功能
SDWAN方式的IPsec安全框架,用于在SDWAN设备上生成IPsec SA。该类型的IPsec安全框架不限制对端IP地址,不需要进行ACL配置,即所有路由到SDWAN隧道接口的流量都会被IPsec保护,配置简单,易于维护。
IPsec通信双方的IPsec安全框架所引用的IPsec安全提议中的安全协议、认证/加密算法可以不一致。
(1) 进入系统视图。
system-view
(2) 创建一个SDWAN方式的IPsec安全框架,并进入IPsec安全框架视图。
ipsec profile profile-name sdwan
进入已创建的IPsec安全框架时,可以不指定协商方式sdwan。
(3) (可选)配置IPsec安全框架的描述信息。
description text
缺省情况下,无描述信息。
(4) 指定IPsec安全框架引用的IPsec安全提议。
transform-set transform-set-name
缺省情况下,IPsec安全框架没有引用IPsec安全提议。
引用的IPsec安全提议所采用的封装模式必须为传输模式。
(5) (可选)配置IPsec SA的生存时间。
sa duration time-based seconds
缺省情况下,IPsec安全框架下的IPsec SA生存时间为当前全局的IPsec SA生存时间。
(6) (可选)配置IPsec安全框架的别名。
profile alias alias-name
缺省情况下,IPsec安全框架的别名为profile-安全框架名称。
在SDWAN隧道接口上应用SDWAN方式的IPsec安全框架后,SDWAN设备将创建IPsec SA,用于对路由到SDWAN隧道接口的流量进行IPsec保护。
(1) 进入系统视图。
system-view
(2) 创建一个Tunnel接口,指定隧道模式为SDWAN类型,并进入该Tunnel接口视图。
interface tunnel number mode sdwan udp
(3) 在隧道接口上应用IPsec安全框架。
tunnel protection ipsec profile profile-name
缺省情况下,隧道接口下未应用IPsec安全框架。
(4) 配置在指定slot上处理当前接口的流量。
service slot slot-number
缺省情况下,未指定处理当前接口流量的slot,业务处理在接收报文的slot上进行。
基于时间的抗重放检测是指,本端设备向对端设备发送报文时,会在报文中添加时间戳,用于记录报文的发送时间。该报文到达对端设备后,对端设备会检测报文的时间戳,只有在指定时间内到达的报文才会被接收,超过本命令配置的抗重放时间窗口宽度的报文将被设备丢弃。
相较于系统视图下的基于序列号的全局抗重放功能,基于时间的抗重放检测,不影响设备的转发性能。在实现抗重放功能的同时,可以保证设备的转发性能。因此,如果需要提升SDWAN的转发性能,可以使用基于时间的抗重放功能。
在某些特定环境下,业务报文的发送和接收时间差可能与正常的时间差相差较大,虽然并非有意的重放攻击,但会被基于时间的抗重放检测认为是重放报文,导致业务数据报文被丢弃,影响业务的正常运行。因此,这种情况下就可以通过关闭基于时间的抗重放检测功能,避免业务数据报文被错误丢弃,也可以通过适当地增大抗重放时间窗口的宽度,来适应业务正常运行的需要。
· 本功能仅支持在SDWAN方式的IPsec安全框架下进行配置。
· 修改后的抗重放时间窗口宽度仅对新协商成功的IPsec SA生效。
· 本功能需要开启IPsec抗重放检测功能(通过ipsec anti-replay check命令开启)后才能生效。
· 当本功能与系统视图下的全局抗重放功能同时配置时,仅本功能生效。
(1) 进入系统视图。
system-view
(2) 进入SDWAN方式的IPsec安全框架视图。
ipsec profile profile-name sdwan
(3) 配置IPsec基于时间的抗重放窗口宽度。
anti-replay time-based window seconds
缺省情况下,使用全局配置的基于序列号的抗重放窗口宽度。
IPsec抗重放窗口和序号的同步功能是指,以指定的报文间隔将接口上IPsec入方向抗重放窗口的左侧值和出方向IPsec报文的抗重放序号进行备份。当配置了防重放窗口和序号的同步间隔的IPsec安全策略/IPsec安全框架被应用到接口/IPv6路由协议上时,若IPsec冗余备份功能处于开启状态,则可以保证主备切换时IPsec流量不间断和抗重放保护不间断。
(1) 进入系统视图。
system-view
(2) 开启IPsec冗余备份功能。
ipsec redundancy enable
缺省情况下,IPsec冗余备份功能处于关闭状态。
(3) 进入IPsec安全策略视图/IPsec安全策略模板视图/IPsec安全框架视图。
¡ 进入IPsec安全策略视图。
ipsec { ipv6-policy | policy } policy-name seq-number [ isakmp | manual ]
¡ 进入IPsec安全策略模板视图。
ipsec { ipv6-policy-template | policy-template } template-name seq-number
¡ 进入IPsec安全框架视图。
ipsec profile profile-name [ isakmp | manual ]
(4) 配置防重放窗口和序号的同步间隔。
redundancy replay-interval inbound inbound-interval outbound outbound-interval
缺省情况下,同步入方向防重放窗口的报文间隔为1000个报文,同步出方向IPsec SA防重放序号的报文间隔为100000个报文。
此功能用来配置IPsec SA生存时间和空闲超时功能。对于IKE协商建立的IPsec SA,遵循以下原则:
· 采用隧道两端设置的IPsec SA生存时间中较小者。
· 可同时存在基于时间和基于流量两种方式的IPsec SA生存时间,只要到达指定的时间或指定的流量,IPsec SA就会老化。
(1) 进入系统视图。
system-view
(2) 配置IPsec SA生存时间或者IPsec SA空闲超时时间。
¡ 配置IPsec SA生存时间。
ipsec sa global-duration { time-based seconds | traffic-based kilobytes }
缺省情况下,IPsec SA基于时间的生存时间为3600秒,基于流量的生存时间为1843200千字节。
¡ 配置IPsec SA的全局软超时缓冲参数。
ipsec sa global-soft-duration buffer { time-based seconds | traffic-based kilobytes }
缺省情况下,未配置全局软超时缓冲参数。
¡ 开启IPsec SA空闲超时功能,并配置IPsec SA空闲超时时间。
ipsec sa idle-time seconds
缺省情况下, IPsec SA空闲超时功能处于关闭状态。
通过配置IPsec分片功能,可以选择在报文进行IPsec封装之前是否进行分片:
· IPsec封装前分片功能处于开启状态时,设备会先判断报文在经过IPsec封装之后大小是否会超过发送接口的MTU值,如果封装后的大小超过发送接口的MTU值,那么会先对其分片再封装。
· IPsec封装后分片功能处于开启状态时,无论报文封装后大小是否超过发送接口的MTU值,设备会直接对其先进行IPsec封装处理,再由后续业务对其进行分片。
该功能仅对需要进行IPsec封装的IPv4报文有效。
(1) 进入系统视图。
system-view
(2) 配置IPsec分片功能。
ipsec fragmentation { after-encryption | before-encryption }
缺省情况下,IPsec封装前分片功能处于开启状态。
IP报文头中的DF(Don’t Fragment,不分片)位用于控制报文是否允许被分片。在隧道模式下,IPsec会在原始报文外封装一个新的IP头,称为外层IP头。IPsec的DF位设置功能允许用户设置IPsec封装后的报文外层IP头的DF位,并支持以下三种设置方式:
· clear:表示清除外层IP头的DF位,IPsec封装后的报文可被分片。
· set:表示设置外层IP头的DF位,IPsec封装后的报文不能被分片。
· copy:表示外层IP头的DF位从原始报文IP头中拷贝。
封装后外层IP头的DF位可以在IPsec安全策略视图/IPsec安全策略模板视图/IPsec安全框架视图、接口视图和系统视图下分别配置,IPsec安全策略/IPsec安全策略模板/IPsec安全框架下的配置优先级最高。如果IPsec安全策略/IPsec安全策略模板/IPsec安全框架下未配置IPsec DF位,将使用接口下配置的IPsec DF位;如果接口下也未配置IPsec DF位,将使用系统视图下配置的全局IPsec DF位。
· 该功能仅在IPsec的封装模式为隧道模式时有效,仅用于设置IPsec隧道模式封装后的外层IP头的DF位,原始报文IP头的DF位不会被修改。
· 只有IKE协商方式的IPsec才能够支持本功能。
· 如果有多个接口应用了共享源接口安全策略,则这些接口上必须使用相同的DF位设置。
· 转发报文时对报文进行分片、重组,可能会导致报文的转发延时较大。若设置了封装后IPsec报文的DF位,则不允许对IPsec报文进行分片,可以避免引入分片延时。这种情况下,要求IPsec报文转发路径上各个接口的MTU大于IPsec报文长度,否则,会导致IPsec报文被丢弃。如果无法保证转发路径上各个接口的MTU大于IPsec报文长度,则建议清除DF位。
(1) 进入系统视图。
system-view
(2) 进入IPsec安全策略视图/IPsec安全策略模板视图/IPsec安全框架视图。
¡ 进入IPsec安全策略视图。
ipsec { ipv6-policy | policy } policy-name seq-number isakmp
¡ 进入IPsec安全策略模板视图。
ipsec { ipv6-policy-template | policy-template } template-name seq-number
¡ 进入IPsec安全框架视图。
ipsec profile profile-name isakmp
(3) 为IPsec安全策略/IPsec安全策略模板/IPsec安全框架设置IPsec封装后外层IP头的DF位。
sa df-bit { clear | copy | set }
缺省情况下,未设置IPsec封装后外层IP头的DF位,采用接口或全局设置的DF位。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 为当前接口设置IPsec封装后外层IP头的DF位。
ipsec df-bit { clear | copy | set }
缺省情况下,接口下未设置IPsec封装后外层IP头的DF位,采用全局设置的DF位。
(1) 进入系统视图。
system-view
(2) 为全局设置IPsec封装后外层IP头的DF位。
ipsec global-df-bit { clear | copy | set }
缺省情况下,IPsec封装后外层IP头的DF位从原始报文IP头中拷贝。
此功能用来配置对本端IPsec隧道数目的限制。本端允许建立IPsec隧道的最大数与内存资源有关。内存充足时可以设置较大的数值,提高IPsec的并发性能;内存不足时可以设置较小的数值,降低IPsec占用内存的资源。
(1) 进入系统视图。
system-view
(2) 配置本端允许建立IPsec隧道的最大数。
ipsec limit max-tunnel tunnel-limit
缺省情况下,不限制本端允许建立IPsec隧道的最大数。
缺省情况下,如果IPsec对等体两端均采用IKE协商方式的IPsec安全框架建立IPsec SA,则两端均会主动发起协商,对等体之间将存在两个协商IPsec SA的过程,但对等体之间最终只会建立一个IPsec SA,该协商过程将会造成设备CPU资源的浪费。此时可以配置本功能,指定本端只能作为建立IPsec SA的响应方,不主动发起协商,可以有效解决此问题,同时也有助于IPsec故障的诊断和定位。
建议在中心-分支组网环境中的中心侧配置本功能。
(1) 进入系统视图。
system-view
(2) 进入IPsec安全策略视图/IPsec安全策略模板视图/IPsec安全框架视图。
¡ 进入IPsec安全策略视图。
ipsec { ipv6-policy | policy } policy-name seq-number isakmp
¡ 进入IPsec安全策略模板视图。
ipsec { ipv6-policy-template | policy-template } template-name seq-number
¡ 进入IPsec安全框架视图。
ipsec profile profile-name isakmp
(3) 开启本端仅作为协商IPsec SA的响应方功能。
responder-only enable
缺省情况下,本端仅作为协商IPsec SA的响应方功能处于关闭状态。
开启SDWAN模式的IPsec隧道的报文统计功能后,当设备处理的SDWAN业务流量较多时会产生大量的统计信息,占用设备较多的存储空间,从而影响设备的SDWAN转发性能。此时,可以通过关闭SDWAN模式的IPsec隧道的报文统计功能,提升SDWAN的转发性能。当SDWAN业务流量较少或业务出现问题时,可以重新打开该报文统计功能,用于记录报文统计信息或协助定位问题。
(1) 进入系统视图。
system-view
(2) 关闭SDWAN模式的IPsec隧道的报文统计功能。
undo ipsec sdwan-statistics enable
缺省情况下,SDWAN模式的IPsec隧道的报文统计功能处于开启状态。
开启IPsec报文日志记录功能后,设备会在丢弃IPsec报文的情况下,例如入方向找不到对应的IPsec SA、AH/ESP认证失败、ESP加密失败等时,输出相应的日志信息,该日志信息内容主要包括报文的源和目的IP地址、报文的SPI值、报文的序列号信息,以及设备丢包的原因。
(1) 进入系统视图。
system-view
(2) 开启IPsec报文日志记录功能。
ipsec logging packet enable
开启IPsec协商事件日志记录功能后,设备会输出IPsec协商过程中的相关日志。
(1) 进入系统视图。
system-view
(2) 开启IPsec协商事件日志功能。
ipsec logging negotiation enable
缺省情况下,IPsec协商事件日志功能处于关闭状态。
开启IPsec的Trap功能后,IPsec会生成告警信息,用于向网管软件报告该模块的重要事件。生成的告警信息将被发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。
如果希望生成并输出某种类型的IPsec告警信息,则需要保证IPsec的全局告警功能以及相应类型的告警功能均处于开启状态。
(1) 进入系统视图。
system-view
(2) 开启IPsec的全局告警功能。
snmp-agent trap enable ipsec global
缺省情况下,IPsec的全局告警功能处于关闭状态。
(3) 开启IPsec的指定告警功能。
snmp-agent trap enable ipsec [ auth-failure | connection-start | connection-stop | decrypt-failure | encrypt-failure | invalid-sa-failure | no-sa-failure | policy-add | policy-attach | policy-delete | policy-detach | tunnel-start | tunnel-stop ] *
缺省情况下,IPsec的所有告警功能均处于关闭状态。
可在任意视图下执行以下命令:
display ipsec { ipv6-policy | policy } [ policy-name [ seq-number ] ]
· 显示IPsec安全策略模板的信息。
display ipsec { ipv6-policy-template | policy-template } [ template-name [ seq-number ] ]
· 显示IPsec安全框架的信息。
display ipsec profile [ profile-name ]
· 显示IPsec SA的相关信息。
display ipsec sa [ brief | count | interface interface-type interface-number | { ipv6-policy | policy } policy-name [ seq-number ] | profile profile-name | remote [ ipv6 ] ip-address ]
· 显示本端SDWAN模式的IPsec SA的相关信息
display ipsec sdwan-sa local [ brief | count | interface tunnel tunnel-number | spi spi-number ]
· 显示对端SDWAN模式的IPsec SA的相关信息
display ipsec sdwan-sa remote [ brief | count ]
· 显示SDWAN模式的IPsec隧道的报文统计信息
display ipsec sdwan-statistics [ tunnel-id tunnel-id ]
· 显示SDWAN模式的IPsec隧道信息
display ipsec sdwan-tunnel [ brief | count | remote-site site-id device-id interface-id | tunnel-id tunnel-id ]
· 显示IPsec处理报文的统计信息。
display ipsec statistics [ tunnel-id tunnel-id ]
· 显示IPsec安全提议的信息。
display ipsec transform-set [ transform-set-name ]
· 显示IPsec隧道的信息。
display ipsec tunnel { brief | count | tunnel-id tunnel-id }
请在用户视图下执行以下命令
· 清除已经建立的IPsec SA。
reset ipsec sa [ { ipv6-policy | policy } policy-name [ seq-number ] | profile policy-name | remote { ipv4-address | ipv6 ipv6-address } | spi { ipv4-address | ipv6 ipv6-address } { ah | esp } spi-num ]
· 清除SDWAN模式的IPsec SA
reset ipsec sdwan-sa [ local [ interface tunnel tunnel-number ] | remote ]
· 清除SDWAN模式的IPsec隧道的报文统计信息
reset ipsec sdwan-statistics [ tunnel-id tunnel-id ]
· 清除SDWAN模式的IPsec隧道信息
reset ipsec sdwan-tunnel [ tunnel-id tunnel-id ]
· 清除IPsec的报文统计信息。
reset ipsec statistics [ tunnel-id tunnel-id ]
在Device A和Device B之间建立一条IPsec隧道,对Host A所在的子网(10.1.1.0/24)与Host B所在的子网(10.1.2.0/24)之间的数据流进行安全保护。具体要求如下:
· 封装形式为隧道模式。
· 安全协议采用ESP协议。
· 加密算法采用128比特的AES,认证算法采用HMAC-SHA1。
· 手工方式建立IPsec SA。
图1-12 保护IPv4报文的IPsec配置组网图
(1) 配置接口IP地址、路由、安全域及域间策略保证网络可达,具体配置步骤略
(2) 定义数据流
# 配置一个IPv4高级ACL,定义要保护由子网10.1.1.0/24去往子网10.1.2.0/24的数据流。
<DeviceA> system-view
[DeviceA] acl advanced 3101
[DeviceA-acl-ipv4-adv-3101] rule permit ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255
[DeviceA-acl-ipv4-adv-3101] quit
(3) 配置静态路由
# 配置到达Host B所在子网的静态路由。2.2.2.3为本例中的直连下一跳地址,实际使用中请以具体组网情况为准。
[DeviceA] ip route-static 10.1.2.0 255.255.255.0 gigabitethernet 1/0/2 2.2.2.3
(4) 配置IPsec安全提议
# 创建IPsec安全提议tran1。
[DeviceA] ipsec transform-set tran1
# 配置安全协议对IP报文的封装形式为隧道模式。
[DeviceA-ipsec-transform-set-tran1] encapsulation-mode tunnel
# 配置采用的安全协议为ESP。
[DeviceA-ipsec-transform-set-tran1] protocol esp
# 配置ESP协议采用的加密算法为采用128比特的AES,认证算法为HMAC-SHA1。
[DeviceA-ipsec-transform-set-tran1] esp encryption-algorithm aes-cbc-128
[DeviceA-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[DeviceA-ipsec-transform-set-tran1] quit
(5) 配置IPsec安全策略
# 创建一条手工方式的IPsec安全策略,名称为map1,序列号为10。
[DeviceA] ipsec policy map1 10 manual
# 指定引用ACL 3101。
[DeviceA-ipsec-policy-manual-map1-10] security acl 3101
# 指定引用的IPsec安全提议为tran1。
[DeviceA-ipsec-policy-manual-map1-10] transform-set tran1
# 指定IPsec隧道对端IP地址为2.2.3.1。
[DeviceA-ipsec-policy-manual-map1-10] remote-address 2.2.3.1
# 配置ESP协议的出方向SPI为12345,入方向SPI为54321。
[DeviceA-ipsec-policy-manual-map1-10] sa spi outbound esp 12345
[DeviceA-ipsec-policy-manual-map1-10] sa spi inbound esp 54321
# 配置ESP协议的出方向SA的密钥为明文字符串abcdefg,入方向SA的密钥为明文字符串gfedcba。
[DeviceA-ipsec-policy-manual-map1-10] sa string-key outbound esp simple abcdefg
[DeviceA-ipsec-policy-manual-map1-10] sa string-key inbound esp simple gfedcba
[DeviceA-ipsec-policy-manual-map1-10] quit
(6) 在接口上应用IPsec安全策略
# 在接口GigabitEthernet1/0/2上应用IPsec安全策略map1。
[DeviceA] interface gigabitethernet 1/0/2
[DeviceA-GigabitEthernet1/0/2] ip address 2.2.2.1 255.255.255.0
[DeviceA-GigabitEthernet1/0/2] ipsec apply policy map1
[DeviceA-GigabitEthernet1/0/2] quit
(1) 配置接口IP地址、路由、安全域及域间策略保证网络可达,具体配置步骤略
(2) 定义数据流
# 配置一个IPv4高级ACL,定义要保护由子网10.1.2.0/24去往子网10.1.1.0/24的数据流。
<DeviceB> system-view
[DeviceB] acl advanced 3101
[DeviceB-acl-ipv4-adv-3101] rule permit ip source 10.1.2.0 0.0.0.255 destination 10.1.1.0 0.0.0.255
[DeviceB-acl-ipv4-adv-3101] quit
(3) 配置静态路由
# 配置到达Host A所在子网的静态路由。2.2.3.3为本例中的直连下一跳地址,实际使用中请以具体组网情况为准。
[DeviceB] ip route-static 10.1.1.0 255.255.255.0 gigabitethernet 1/0/2 2.2.3.3
(4) 配置IPsec安全提议
# 创建IPsec安全提议tran1。
[DeviceB] ipsec transform-set tran1
# 配置安全协议对IP报文的封装形式为隧道模式。
[DeviceB-ipsec-transform-set-tran1] encapsulation-mode tunnel
# 配置采用的安全协议为ESP。
[DeviceB-ipsec-transform-set-tran1] protocol esp
# 配置ESP协议采用的加密算法为128比特的AES,认证算法为HMAC-SHA1。
[DeviceB-ipsec-transform-set-tran1] esp encryption-algorithm aes-cbc-128
[DeviceB-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[DeviceB-ipsec-transform-set-tran1] quit
(5) 配置IPsec安全策略
# 创建一条手工方式的IPsec安全策略,名称为use1,序列号为10。
[DeviceB] ipsec policy use1 10 manual
# 指定引用ACL 3101。
[DeviceB-ipsec-policy-manual-use1-10] security acl 3101
# 指定引用的IPsec安全提议为tran1。
[DeviceB-ipsec-policy-manual-use1-10] transform-set tran1
# 指定IPsec隧道对端IP地址为2.2.2.1。
[DeviceB-ipsec-policy-manual-use1-10] remote-address 2.2.2.1
# 配置ESP协议的出方向SPI为54321,入方向SPI为12345。
[DeviceB-ipsec-policy-manual-use1-10] sa spi outbound esp 54321
[DeviceB-ipsec-policy-manual-use1-10] sa spi inbound esp 12345
# 配置ESP协议的出方向SA的密钥为明文字符串gfedcba,入方向SA的密钥为明文字符串abcdefg。
[DeviceB-ipsec-policy-manual-use1-10] sa string-key outbound esp simple gfedcba
[DeviceB-ipsec-policy-manual-use1-10] sa string-key inbound esp simple abcdefg
[DeviceB-ipsec-policy-manual-use1-10] quit
(6) 在接口上应用IPsec安全策略
# 在接口GigabitEthernet1/0/2上应用IPsec安全策略use1。
[DeviceB] interface gigabitethernet 1/0/2
[DeviceB-GigabitEthernet1/0/2] ip address 2.2.3.1 255.255.255.0
[DeviceB-GigabitEthernet1/0/2] ipsec apply policy use1
[DeviceB-GigabitEthernet1/0/2] quit
# 以上配置完成后,Device A和Device B之间的IPsec隧道就建立好了,子网10.1.1.0/24与子网10.1.2.0/24之间数据流的传输将受到生成的IPsec SA的保护。可通过以下显示查看Device A上手工创建的IPsec SA。
[DeviceA] display ipsec sa
-------------------------------
Interface: GigabitEthernet1/0/2
-------------------------------
-----------------------------
IPsec policy: map1
Sequence number: 10
Mode: Manual
-----------------------------
Tunnel id: 549
Encapsulation mode: tunnel
Path MTU: 1443
Transmitting entity: Initiator
Tunnel:
local address/port: 2.2.2.1/500
remote address/port: 2.2.3.1/500
Flow:
as defined in ACL 3101
[Inbound ESP SA]
SPI: 54321 (0x0000d431)
Connection ID: 1
Transform set: ESP-ENCRYPT-AES-CBC-128 ESP-AUTH-SHA1
No duration limit for this SA
[Outbound ESP SA]
SPI: 12345 (0x00003039)
Connection ID: 2
Transform set: ESP-ENCRYPT-AES-CBC-128 ESP-AUTH-SHA1
No duration limit for this SA
# Device B上也会产生相应的IPsec SA来保护IPv4报文,查看方式与Device A同,此处略。
在Device A和Device B之间建立一条IPsec隧道,对Host A所在的子网(10.1.1.0/24)与Host B所在的子网(10.1.2.0/24)之间的数据流进行安全保护。具体要求如下:
· 封装形式为隧道模式。
· 安全协议采用ESP协议。
· 加密算法采用128比特的AES,认证算法采用HMAC-SHA1。
· IKE协商方式建立IPsec SA。
图1-13 保护IPv4报文的IPsec配置组网图
(1) 配置接口IP地址、路由、安全域及域间策略保证网络可达,具体配置步骤略
(2) 定义数据流
# 配置一个IPv4高级ACL,定义要保护由子网10.1.1.0/24去往子网10.1.2.0/24的数据流。
<DeviceA> system-view
[DeviceA] acl advanced 3101
[DeviceA-acl-ipv4-adv-3101] rule permit ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255
[DeviceA-acl-ipv4-adv-3101] quit
(3) 配置静态路由
# 配置到达Host B所在子网的静态路由。2.2.2.3为本例中的直连下一跳地址,实际使用中请以具体组网情况为准。
[DeviceA] ip route-static 10.1.2.0 255.255.255.0 gigabitethernet 1/0/2 2.2.2.3
(4) 配置IPsec安全提议
# 创建IPsec安全提议tran1。
[DeviceA] ipsec transform-set tran1
# 配置安全协议对IP报文的封装形式为隧道模式。
[DeviceA-ipsec-transform-set-tran1] encapsulation-mode tunnel
# 配置采用的安全协议为ESP。
[DeviceA-ipsec-transform-set-tran1] protocol esp
# 配置ESP协议采用的加密算法为128比特的AES,认证算法为HMAC-SHA1。
[DeviceA-ipsec-transform-set-tran1] esp encryption-algorithm aes-cbc-128
[DeviceA-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[DeviceA-ipsec-transform-set-tran1] quit
(5) 配置IKE keychain
# 创建并配置IKE keychain,名称为keychain1。
[DeviceA] ike keychain keychain1
# 配置与IP地址为2.2.3.1的对端使用的预共享密钥为明文123456TESTplat&!。
[DeviceA-ike-keychain-keychain1] pre-shared-key address 2.2.3.1 255.255.255.0 key simple 123456TESTplat&!
[DeviceA-ike-keychain-keychain1] quit
(6) 配置IKE profile
# 创建并配置IKE profile,名称为profile1。
[DeviceA] ike profile profile1
[DeviceA-ike-profile-profile1] keychain keychain1
[DeviceA-ike-profile-profile1] match remote identity address 2.2.3.1 255.255.255.0
[DeviceA-ike-profile-profile1] quit
(7) 配置IPsec安全策略
# 创建一条IKE协商方式的IPsec安全策略,名称为map1,序列号为10。
[DeviceA] ipsec policy map1 10 isakmp
# 指定引用ACL 3101。
[DeviceA-ipsec-policy-isakmp-map1-10] security acl 3101
# 指定引用的安全提议为tran1。
[DeviceA-ipsec-policy-isakmp-map1-10] transform-set tran1
# 指定IPsec隧道的本端IP地址为2.2.2.1,对端IP地址为2.2.3.1。
[DeviceA-ipsec-policy-isakmp-map1-10] local-address 2.2.2.1
[DeviceA-ipsec-policy-isakmp-map1-10] remote-address 2.2.3.1
# 指定引用的IKE profile为profile1。
[DeviceA-ipsec-policy-isakmp-map1-10] ike-profile profile1
[DeviceA-ipsec-policy-isakmp-map1-10] quit
(8) 在接口上应用IPsec安全策略
# 在接口GigabitEthernet1/0/2上应用安全策略map1。
[DeviceA] interface gigabitethernet 1/0/2
[DeviceA-GigabitEthernet1/0/2] ip address 2.2.2.1 255.255.255.0
[DeviceA-GigabitEthernet1/0/2] ipsec apply policy map1
[DeviceA-GigabitEthernet1/0/2] quit
(1) 配置接口IP地址、路由、安全域及域间策略保证网络可达,具体配置步骤略
(2) 定义数据流
# 配置一个IPv4高级ACL,定义要保护由子网10.1.2.0/24去往子网10.1.1.0/24的数据流。
<DeviceB> system-view
[DeviceB] acl advanced 3101
[DeviceB-acl-ipv4-adv-3101] rule permit ip source 10.1.2.0 0.0.0.255 destination 10.1.1.0 0.0.0.255
[DeviceB-acl-ipv4-adv-3101] quit
(3) 配置静态路由
# 配置到达Host A所在子网的静态路由。2.2.3.3为本例中的直连下一跳地址,实际使用中请以具体组网情况为准。
[DeviceB] ip route-static 10.1.1.0 255.255.255.0 gigabitethernet 1/0/2 2.2.3.3
(4) 配置IPsec安全提议
# 创建IPsec安全提议tran1。
[DeviceB] ipsec transform-set tran1
# 配置安全协议对IP报文的封装形式为隧道模式。
[DeviceB-ipsec-transform-set-tran1] encapsulation-mode tunnel
# 配置采用的安全协议为ESP。
[DeviceB-ipsec-transform-set-tran1] protocol esp
# 配置ESP协议采用的加密算法为128比特的AES,认证算法为HMAC-SHA1。
[DeviceB-ipsec-transform-set-tran1] esp encryption-algorithm aes-cbc-128
[DeviceB-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[DeviceB-ipsec-transform-set-tran1] quit
(5) 配置IKE keychain
# 创建并配置IKE keychain,名称为keychain1。
[DeviceB] ike keychain keychain1
[DeviceB-ike-keychain-keychain1] pre-shared-key address 2.2.2.1 255.255.255.0 key simple 123456TESTplat&!
[DeviceB-ike-keychain-keychain1] quit
(6) 配置IKE profile
# 创建并配置IKE profile,名称为profile1。
[DeviceB] ike profile profile1
[DeviceB-ike-profile-profile1] keychain keychain1
[DeviceB-ike-profile-profile1] match remote identity address 2.2.2.1 255.255.255.0
[DeviceB-ike-profile-profile1] quit
(7) 配置IPsec安全策略
# 创建一条IKE协商方式的安全策略,名称为use1,序列号为10。
[DeviceB] ipsec policy use1 10 isakmp
# 指定引用ACL 3101。
[DeviceB-ipsec-policy-isakmp-use1-10] security acl 3101
# 指定引用的IPsec安全提议为tran1。
[DeviceB-ipsec-policy-isakmp-use1-10] transform-set tran1
# 指定IPsec隧道的本端IP地址为2.2.3.1,对端IP地址为2.2.2.1。
[DeviceB-ipsec-policy-isakmp-use1-10] local-address 2.2.3.1
[DeviceB-ipsec-policy-isakmp-use1-10] remote-address 2.2.2.1
# 指定引用的IKE对等体为profile1。
[DeviceB-ipsec-policy-isakmp-use1-10] ike-profile profile1
[DeviceB-ipsec-policy-isakmp-use1-10] quit
(8) 在接口上应用IPsec安全策略
# 在接口GigabitEthernet1/0/2上应用IPsec安全策略use1。
[DeviceB] interface gigabitethernet 1/0/2
[DeviceB-GigabitEthernet1/0/2] ip address 2.2.3.1 255.255.255.0
[DeviceB-GigabitEthernet1/0/2] ipsec apply policy use1
[DeviceB-GigabitEthernet1/0/2] quit
# 以上配置完成后,Device A和Device B之间如果有子网10.1.1.0/24与子网10.1.2.0/24之间的报文通过,将触发IKE进行IPsec SA的协商。IKE成功协商出IPsec SA后,子网10.1.1.0/24与子网10.1.2.0/24之间数据流的传输将受到IPsec SA的保护。可通过以下显示查看到协商生成的IPsec SA。
[DeviceA] display ipsec sa
-------------------------------
Interface: GigabitEthernet1/0/2
-------------------------------
-----------------------------
IPsec policy: map1
Sequence number: 10
Mode: ISAKMP
-----------------------------
Tunnel id: 0
Encapsulation mode: tunnel
Perfect Forward Secrecy:
Inside VPN:
Extended Sequence Numbers enable: N
Traffic Flow Confidentiality enable: N
Path MTU: 1443
Transmitting entity: Initiator
Tunnel:
local address/port: 2.2.3.1/500
remote address/port: 2.2.2.1/500
Flow:
sour addr: 2.2.3.1/0.0.0.0 port: 0 protocol: ip
dest addr: 2.2.2.1/0.0.0.0 port: 0 protocol: ip
[Inbound ESP SAs]
SPI: 3769702703 (0xe0b1192f)
Connection ID: 90194313219
Transform set: ESP-ENCRYPT-AES-CBC-128 ESP-AUTH-SHA1
SA duration (kilobytes/sec): 3000/28800
SA remaining duration (kilobytes/sec): 2300/797
Max received sequence-number: 1
Anti-replay check enable: N
Anti-replay window size:
UDP encapsulation used for NAT traversal: N
Status: Active
[Outbound ESP SAs]
SPI: 3840956402 (0xe4f057f2)
Connection ID: 64424509441
Transform set: ESP-ENCRYPT-AES-CBC-128 ESP-AUTH-SHA1
SA duration (kilobytes/sec): 3000/28800
SA remaining duration (kilobytes/sec): 2312/797
Max sent sequence-number: 1
UDP encapsulation used for NAT traversal: N
Status: Active
# Device B上也会产生相应的IPsec SA来保护IPv4报文,查看方式与Device A同,此处略。
在Device A和Device B之间建立一条IPsec隧道,对Host A所在的子网(333::/64)与Host B所在的子网(555::/64)之间的数据流进行安全保护。具体要求如下:
· 封装形式为隧道模式。
· 安全协议采用ESP协议。
· 加密算法采用128比特的AES,认证算法采用HMAC-SHA1。
· IKE协商方式建立IPsec SA。
图1-14 保护IPv6报文的IPsec配置组网图
(1) 配置接口IPv6地址、路由、安全域及域间策略保证网络可达,具体配置步骤略
(2) 定义数据流
# 配置一个IPv6高级ACL,定义要保护由子网333::/64去往子网555::/64的数据流。
<DeviceA> system-view
[DeviceA] acl ipv6 advanced 3101
[DeviceA-acl-ipv6-adv-3101] rule permit ipv6 source 333::0 64 destination 555::0 64
[DeviceA-acl-ipv6-adv-3101] quit
(3) 配置静态路由
# 配置到达Host B所在子网的静态路由。111::2为本例中的直连下一跳地址,实际使用中请以具体组网情况为准。
[DeviceA] ipv6 route-static 555::0 64 111::2
(4) 配置IPsec安全提议
# 创建IPsec安全提议tran1。
[DeviceA] ipsec transform-set tran1
# 配置安全协议对IP报文的封装形式为隧道模式。
[DeviceA-ipsec-transform-set-tran1] encapsulation-mode tunnel
# 配置采用的安全协议为ESP。
[DeviceA-ipsec-transform-set-tran1] protocol esp
# 配置ESP协议采用的加密算法为128比特的AES,认证算法为HMAC-SHA1。
[DeviceA-ipsec-transform-set-tran1] esp encryption-algorithm aes-cbc-128
[DeviceA-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[DeviceA-ipsec-transform-set-tran1] quit
(5) 配置IKE keychain
# 创建并配置IKE keychain,名称为keychain1。
[DeviceA] ike keychain keychain1
[DeviceA-ike-keychain-keychain1] pre-shared-key address ipv6 222::1 64 key simple 123456TESTplat&!
[DeviceA-ike-keychain-keychain1] quit
(6) 配置IKE profile
# 创建并配置IKE profile,名称为profile1。
[DeviceA] ike profile profile1
[DeviceA-ike-profile-profile1] keychain keychain1
[DeviceA-ike-profile-profile1] match remote identity address ipv6 222::1 64
[DeviceA-ike-profile-profile1] quit
(7) 配置IPsec安全策略
# 创建一条IKE协商方式的IPsec安全策略,名称为map1,序列号为10。
[DeviceA] ipsec ipv6-policy map1 10 isakmp
# 指定引用IPv6 ACL 3101。
[DeviceA-ipsec-ipv6-policy-isakmp-map1-10] security acl ipv6 3101
# 指定引用的IPsec安全提议为tran1。
[DeviceA-ipsec-ipv6-policy-isakmp-map1-10] transform-set tran1
# 指定IPsec隧道本端IPv6地址为111::1,对端IPv6地址为222::1。
[DeviceA-ipsec-ipv6-policy-isakmp-map1-10] local-address ipv6 111::1
[DeviceA-ipsec-ipv6-policy-isakmp-map1-10] remote-address ipv6 222::1
# 指定引用的IKE对等体为profile1。
[DeviceA-ipsec-ipv6-policy-isakmp-map1-10] ike-profile profile1
[DeviceA-ipsec-ipv6-policy-isakmp-map1-10] quit
(8) 在接口上应用IPsec安全策略
# 在接口GigabitEthernet1/0/2上应用IPsec安全策略map1。
[DeviceA] interface gigabitethernet 1/0/2
[DeviceA-GigabitEthernet1/0/2] ipv6 address 111::1/64
[DeviceA-GigabitEthernet1/0/2] ipsec apply ipv6-policy map1
[DeviceA-GigabitEthernet1/0/2] quit
(1) 配置接口IPv6地址、路由、安全域及域间策略保证网络可达,具体配置步骤略
(2) 定义数据流
# 配置一个IPv6高级ACL,定义要保护由子网555::/64去往子网333::/64的数据流。
<DeviceB> system-view
[DeviceB] acl ipv6 advanced 3101
[DeviceB-acl-ipv6-adv-3101] rule permit ipv6 source 555::/64 destination 333::/64
[DeviceB-acl-ipv6-adv-3101] quit
(3) 配置静态路由
# 配置到达Host A所在子网的静态路由。222::2为本例中的直连下一跳地址,实际使用中请以具体组网情况为准。
[DeviceB] ipv6 route-static 333::0 64 222::2
(4) 配置IPsec安全提议
# 创建IPsec安全提议tran1。
[DeviceB] ipsec transform-set tran1
# 配置安全协议对IP报文的封装形式为隧道模式。
[DeviceB-ipsec-transform-set-tran1] encapsulation-mode tunnel
# 配置采用的安全协议为ESP。
[DeviceB-ipsec-transform-set-tran1] protocol esp
# 配置ESP协议采用的加密算法为128比特的AES,认证算法为HMAC-SHA1。
[DeviceB-ipsec-transform-set-tran1] esp encryption-algorithm aes-cbc-128
[DeviceB-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[DeviceB-ipsec-transform-set-tran1] quit
(5) 配置IKE keychain
# 创建并配置IKE keychain,名称为keychain1。
[DeviceB] ike keychain keychain1
[DeviceB-ike-keychain-keychain1] pre-shared-key address ipv6 111::1 64 key simple 123456TESTplat&!
[DeviceB-ike-keychain-keychain1] quit
(6) 配置IKE profile
# 创建并配置IKE profile,名称为profile1。
[DeviceB] ike profile profile1
[DeviceB-ike-profile-profile1] keychain keychain1
[DeviceB-ike-profile-profile1] match remote identity address ipv6 111::1 64
[DeviceB-ike-profile-profile1] quit
(7) 配置IPsec安全策略
# 创建一条IKE协商方式的IPsec安全策略,名称为use1,序列号为10。
[DeviceB] ipsec ipv6-policy use1 10 isakmp
# 指定引用ACL 3101。
[DeviceB-ipsec-ipv6-policy-isakmp-use1-10] security acl ipv6 3101
# 指定引用的安全提议为tran1。
[DeviceB-ipsec-ipv6-policy-isakmp-use1-10] transform-set tran1
# 指定IPsec隧道本端IPv6地址为222::1,对端IPv6地址为111::1。
[DeviceB-ipsec-ipv6-policy-isakmp-use1-10] local-address ipv6 222::1
[DeviceB-ipsec-ipv6-policy-isakmp-use1-10] remote-address ipv6 111::1
# 指定引用的IKE对等体为profile1。
[DeviceB-ipsec-ipv6-policy-isakmp-use1-10] ike-profile profile1
[DeviceB-ipsec-ipv6-policy-isakmp-use1-10] quit
(8) 在接口上应用IPsec安全策略
# 在接口GigabitEthernet1/0/2上应用IPsec安全策略use1。
[DeviceB] interface gigabitethernet 1/0/2
[DeviceB-GigabitEthernet1/0/2] ipv6 address 222::1/64
[DeviceB-GigabitEthernet1/0/2] ipsec apply ipv6-policy use1
[DeviceB-GigabitEthernet1/0/2] quit
# 以上配置完成后,当Device A和Device B之间有子网333::/64与子网555::/64之间的报文通过时,将触发IKE进行IPsec SA的协商。IKE成功协商出IPsec SA后,子网333::/64与子网555::/64之间数据流的传输将受到IPsec SA的保护。可通过以下显示查看到协商生成的IPsec SA。
[DeviceA] display ipsec sa
-------------------------------
Interface: GigabitEthernet1/0/2
-------------------------------
-----------------------------
IPsec policy: map1
Sequence number: 10
Mode: ISAKMP
-----------------------------
Tunnel id: 0
Encapsulation mode: tunnel
Perfect Forward Secrecy:
Inside VPN:
Extended Sequence Numbers enable: N
Traffic Flow Confidentiality enable: N
Path MTU: 1423
Transmitting entity: Initiator
Tunnel:
local address/port: 111::1/500
remote address/port: 222::1/500
Flow:
sour addr: 111::1/0 port: 0 protocol: ipv6
dest addr: 222::1/0 port: 0 protocol: ipv6
[Inbound ESP SAs]
SPI: 3769702703 (0xe0b1192f)
Connection ID: 1
Transform set: ESP-ENCRYPT-AES-CBC-128 ESP-AUTH-SHA1
SA duration (kilobytes/sec): 3000/28800
SA remaining duration (kilobytes/sec): 2300/797
Max received sequence-number: 1
Anti-replay check enable: N
Anti-replay window size:
UDP encapsulation used for NAT traversal: N
Status: Active
[Outbound ESP SAs]
SPI: 3840956402 (0xe4f057f2)
Connection ID: 2
Transform set: ESP-ENCRYPT-AES-CBC-128 ESP-AUTH-SHA1
SA duration (kilobytes/sec): 3000/28800
SA remaining duration (kilobytes/sec): 2312/797
Max sent sequence-number: 1
UDP encapsulation used for NAT traversal: N
Status: Active
# Device B上也会产生相应的IPsec SA来保护IPv6报文,查看方式与Device A同,此处略。
如1.19 所示,Device A、Device B和Device C相连,并通过RIPng来学习网络中的IPv6路由信息。在各设备之间建立IPsec隧道,对它们收发的RIPng报文进行安全保护。具体要求如下:
· 安全协议采用ESP协议;
· 加密算法采用128比特的AES;
· 认证算法采用HMAC-SHA1。
图1-15 配置IPsec保护RIPng报文配置组网图
(1) 配置RIPng的基本功能
RIPng配置的详细介绍请参见“三层技术-IP路由配置指导”中的“RIPng”。
(2) 配置IPsec安全框架
需要注意的是:
¡ 各设备上本端出方向SA的SPI及密钥必须和本端入方向SA的SPI及密钥保持一致。
¡ Device A、Device B和Device C上的安全策略所引用的安全提议采用的安全协议、认证/加密算法和报文封装模式要相同,而且所有设备上的SA的SPI及密钥均要保持一致。
(3) 在RIPng进程下或接口上应用IPsec安全框架
(1) 配置接口IPv6地址、路由、安全域及域间策略保证网络可达,具体配置步骤略
(2) 配置RIPng的基本功能
<DeviceA> system-view
[DeviceA] ripng 1
[DeviceA-ripng-1] quit
[DeviceA] interface gigabitethernet 1/0/1
[DeviceA-GigabitEthernet1/0/1] ripng 1 enable
[DeviceA-GigabitEthernet1/0/1] quit
(3) 配置IPsec安全框架
# 创建并配置名为tran1的IPsec安全提议(报文封装模式采用传输模式,安全协议采用ESP协议,加密算法采用128比特的AES,认证算法采用HMAC-SHA1)。
[DeviceA] ipsec transform-set tran1
[DeviceA-ipsec-transform-set-tran1] encapsulation-mode transport
[DeviceA-ipsec-transform-set-tran1] protocol esp
[DeviceA-ipsec-transform-set-tran1] esp encryption-algorithm aes-cbc-128
[DeviceA-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[DeviceA-ipsec-transform-set-tran1] quit
# 创建并配置名为profile001的IPsec安全框架(协商方式为手工方式,出入方向SA的SPI均为123456,出入方向SA的密钥均为明文abcdefg)。
[DeviceA] ipsec profile profile001 manual
[DeviceA-ipsec-profile-manual-profile001] transform-set tran1
[DeviceA-ipsec-profile-manual-profile001] sa spi outbound esp 123456
[DeviceA-ipsec-profile-manual-profile001] sa spi inbound esp 123456
[DeviceA-ipsec-profile-manual-profile001] sa string-key outbound esp simple abcdefg
[DeviceA-ipsec-profile-manual-profile001] sa string-key inbound esp simple abcdefg
[DeviceA-ipsec-profile-manual-profile001] quit
(4) 在RIPng进程上应用IPsec安全框架
[DeviceA] ripng 1
[DeviceA-ripng-1] enable ipsec-profile profile001
[DeviceA-ripng-1] quit
(1) 配置接口IPv6地址、路由、安全域及域间策略保证网络可达,具体配置步骤略
(2) 配置RIPng的基本功能
<DeviceB> system-view
[DeviceB] ripng 1
[DeviceB-ripng-1] quit
[DeviceB] interface gigabitethernet 1/0/1
[DeviceB-GigabitEthernet1/0/1] ripng 1 enable
[DeviceB-GigabitEthernet1/0/1] quit
[DeviceB] interface gigabitethernet 1/0/2
[DeviceB-GigabitEthernet1/0/2] ripng 1 enable
[DeviceB-GigabitEthernet1/0/2] quit
(3) 配置IPsec安全框架
# 创建并配置名为tran1的IPsec安全提议(报文封装模式采用传输模式,安全协议采用ESP协议,加密算法采用128比特的AES,认证算法采用HMAC-SHA1)。
[DeviceB] ipsec transform-set tran1
[DeviceB-ipsec-transform-set-tran1] encapsulation-mode transport
[DeviceB-ipsec-transform-set-tran1] protocol esp
[DeviceB-ipsec-transform-set-tran1] esp encryption-algorithm aes-cbc-128
[DeviceB-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[DeviceB-ipsec-transform-set-tran1] quit
# 创建并配置名为profile001的IPsec安全框架(协商方式为手工方式,出入方向SA的SPI均为123456,出入方向SA的密钥均为明文abcdefg)。
[DeviceB] ipsec profile profile001 manual
[DeviceB-ipsec-profile-manual-profile001] transform-set tran1
[DeviceB-ipsec-profile-manual-profile001] sa spi outbound esp 123456
[DeviceB-ipsec-profile-manual-profile001] sa spi inbound esp 123456
[DeviceB-ipsec-profile-manual-profile001] sa string-key outbound esp simple abcdefg
[DeviceB-ipsec-profile-manual-profile001] sa string-key inbound esp simple abcdefg
[DeviceB-ipsec-profile-manual-profile001] quit
(4) 在RIPng进程上应用IPsec安全框架
[DeviceB] ripng 1
[DeviceB-ripng-1] enable ipsec-profile profile001
[DeviceB-ripng-1] quit
(1) 配置接口IPv6地址、路由、安全域及域间策略保证网络可达,具体配置步骤略
(2) 配置RIPng的基本功能
<DeviceC> system-view
[DeviceC] ripng 1
[DeviceC-ripng-1] quit
[DeviceC] interface gigabitethernet 1/0/1
[DeviceC-GigabitEthernet1/0/1] ripng 1 enable
[DeviceC-GigabitEthernet1/0/1] quit
(3) 配置IPsec安全框架
# 创建并配置名为tran1的IPsec安全提议(报文封装模式采用传输模式,安全协议采用ESP协议,加密算法采用128比特的AES,认证算法采用HMAC-SHA1)。
[DeviceC] ipsec transform-set tran1
[DeviceC-ipsec-transform-set-tran1] encapsulation-mode transport
[DeviceC-ipsec-transform-set-tran1] protocol esp
[DeviceC-ipsec-transform-set-tran1] esp encryption-algorithm aes-cbc-128
[DeviceC-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[DeviceC-ipsec-transform-set-tran1] quit
# 创建并配置名为profile001的IPsec安全框架(协商方式为手工方式,出入方向SA的SPI均为123456,出入方向SA的密钥均为明文abcdefg)。
[DeviceC] ipsec profile profile001 manual
[DeviceC-ipsec-profile-manual-profile001] transform-set tran1
[DeviceC-ipsec-profile-manual-profile001] sa spi outbound esp 123456
[DeviceC-ipsec-profile-manual-profile001] sa spi inbound esp 123456
[DeviceC-ipsec-profile-manual-profile001] sa string-key outbound esp simple abcdefg
[DeviceC-ipsec-profile-manual-profile001] sa string-key inbound esp simple abcdefg
[DeviceC-ipsec-profile-manual-profile001] quit
(4) 在RIPng进程上应用IPsec安全框架
[DeviceC] ripng 1
[DeviceC-ripng-1] enable ipsec-profile profile001
[DeviceC-ripng-1] quit
以上配置完成后,Device A、Device B和Device C将通过RIPng协议学习到网络中的IPv6路由信息,且分别产生用于保护RIPng报文的IPsec SA。
# 可以通过如下display命令查看Device A上RIPng的配置信息。如下显示信息表示RIPng进程1上已成功应用了IPsec安全框架。
[DeviceA] display ripng 1
RIPng process : 1
Preference : 100
Checkzero : Enabled
Default Cost : 0
Maximum number of load balanced routes : 8
Update time : 30 secs Timeout time : 180 secs
Suppress time : 120 secs Garbage-Collect time : 120 secs
Update output delay: 20(ms) Output count: 3
Graceful-restart interval: 60 secs
Triggered Interval : 5 50 200
Number of periodic updates sent : 186
Number of triggered updates sent : 1
IPsec profile name: profile001
# 可以通过如下命令查看Device A上生成的IPsec SA。
[DeviceA] display ipsec sa
-------------------------------
Global IPsec SA
-------------------------------
-----------------------------
IPsec profile: profile001
Mode: Manual
-----------------------------
Encapsulation mode: transport
[Inbound ESP SA]
SPI: 123456 (0x3039)
Connection ID: 1
Transform set: ESP-ENCRYPT-AES-CBC-128 ESP-AUTH-SHA1
No duration limit for this SA
[Outbound ESP SA]
SPI: 123456 (0x3039)
Connection ID: 2
Transform set: ESP-ENCRYPT-AES-CBC-128 ESP-AUTH-SHA1
No duration limit for this SA
# Device B和Device C上也会生成相应的IPsec SA来保护RIPng报文,查看方式与Device A同,此处略。
企业分支通过IPsec VPN接入企业总部,有如下具体需求:
· 总部网关Device A和各分支网关Device B、DeviceC、Device D之间建立IPsec隧道,对总部网络4.4.4.0/24与分支网络5.5.5.0/24之间的数据进行安全保护。
· 使用IKE协商方式建立IPsec SA,采用ESP安全协议,DES加密算法,HMAC-SHA-1-96认证算法。
· IKE协商采用预共享密钥认证方式、3DES加密算法、HMAC-SHA1认证算法。
· 在Device A上开启IPsec反向路由注入功能,实现总部到分支的静态路由随IPsec SA的建立而动态生成。
图1-16 配置IPsec反向路由注入功能配置组网图
(1) 配置接口IP地址、路由、安全域及域间策略保证网络可达,具体配置步骤略
(2) 配置IPsec安全提议
# 创建并配置名为tran1的安全提议,采用使用ESP安全协议,DES加密算法,HMAC-SHA-1-96认证算法。
<DeviceA> system-view
[DeviceA] ipsec transform-set tran1
[DeviceA-ipsec-transform-set-tran1] encapsulation-mode tunnel
[DeviceA-ipsec-transform-set-tran1] protocol esp
[DeviceA-ipsec-transform-set-tran1] esp encryption-algorithm des
[DeviceA-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[DeviceA-ipsec-transform-set-tran1] quit
(3) 配置IKE profile
# 创建并配置IKE profile,名称为profile1。
[DeviceA] ike profile profile1
[DeviceA-ike-profile-profile1] keychain key1
[DeviceA-ike-profile-profile1] match remote identity address 2.2.2.2 255.255.255.0
[DeviceA-ike-profile-profile1] quit
(4) 配置IPsec安全策略模板
# 创建并配置名为temp1的IPsec安全策略模板,引用安全提议tran1
[DeviceA] ipsec policy-template temp1 1
[DeviceA-ipsec-policy-template-temp1-1] transform-set tran1
[DeviceA-ipsec-policy-template-temp1-1] ike-profile profile1
(5) 配置RRI功能
# 开启RRI功能,指定生成的静态路由的优先级为100、Tag值为1000。
[DeviceA-ipsec-policy-template-temp1-1] reverse-route dynamic
[DeviceA-ipsec-policy-template-temp1-1] reverse-route preference 100
[DeviceA-ipsec-policy-template-temp1-1] reverse-route tag 1000
[DeviceA-ipsec-policy-template-temp1-1] quit
(6) 配置IKE协商方式的IPsec安全策略
# 创建并配置名为map1的IPsec安全策略,基于安全策略模板temp1创建
[DeviceA] ipsec policy map1 10 isakmp template temp1
(7) 配置IKE提议
# 创建并配置IKE提议1,指定使用预共享密钥认证方式、3DES加密算法、HMAC-SHA1认证算法。
[DeviceA] ike proposal 1
[DeviceA-ike-proposal-1] encryption-algorithm 3des-cbc
[DeviceA-ike-proposal-1] authentication-algorithm sha
[DeviceA-ike-proposal-1] authentication-method pre-share
[DeviceA-ike-proposal-1] quit
(8) 配置IKE keychain
# 创建并配置名为key1的IKE keychain,指定与地址为2.2.2.2的对端使用的预共享密钥为明文123。
[DeviceA] ike keychain key1
[DeviceA-ike-keychain-key1] pre-shared-key address 2.2.2.2 key simple 123
[DeviceA-ike-keychain-key1] quit
(9) 在接口下引用IPsec安全策略
# 在接口GigabitEthernet1/0/1上应用IPsec安全策略map1。
[DeviceA] interface gigabitethernet 1/0/1
[DeviceA-GigabitEthernet1/0/1] ipsec apply policy map1
[DeviceA-GigabitEthernet1/0/1] quit
(1) 配置接口IP地址、路由、安全域及域间策略保证网络可达,具体配置步骤略
(2) 配置IPsec安全提议
# 创建并配置名为tran1的安全提议
[DeviceB] ipsec transform-set tran1
[DeviceB-ipsec-transform-set-tran1] encapsulation-mode tunnel
[DeviceB-ipsec-transform-set-tran1] protocol esp
[DeviceB-ipsec-transform-set-tran1] esp encryption-algorithm des
[DeviceB-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[DeviceB-ipsec-transform-set-tran1] quit
(3) 配置ACL
# 配置IPv4高级ACL 3000,定义要保护由子网5.5.5.0/24去往子网4.4.4.0/24的数据流。
[DeviceB] acl advanced 3000
[DeviceB-acl-ipv4-adv-3000] rule permit ip source 5.5.5.0 0.0.0.255 destination 4.4.4.0 0.0.0.255
[DeviceB-acl-ipv4-adv-3000] quit
(4) 配置IKE profile
# 创建并配置IKE profile,名称为profile1。
[DeviceB] ike profile profile1
[DeviceB-ike-profile-profile1] keychain key1
[DeviceB-ike-profile-profile1] match remote identity address 1.1.1.1 255.255.255.0
[DeviceB-ike-profile-profile1] quit
(5) 配置ISAKMP方式的安全策略
# 创建并配置名为map1的IPsec安全策略,引用安全提议tran1,引用ACL 3000,并指定IPsec隧道的对端地址为1.1.1.1。
[DeviceB] ipsec policy map1 10 isakmp
[DeviceB-ipsec-policy-isakmp-map1-10] transform-set tran1
[DeviceB-ipsec-policy-isakmp-map1-10] security acl 3000
[DeviceB-ipsec-policy-isakmp-map1-10] remote-address 1.1.1.1
[DeviceB-ipsec-policy-isakmp-map1-10] ike-profile profile1
[DeviceB-ipsec-policy-isakmp-map1-10] quit
(6) 配置IKE提议
# 创建并配置IKE提议1,指定预共享密钥认证方式、3DES加密算法、HMAC-SHA1认证算法。
[DeviceB] ike proposal 1
[DeviceB-ike-proposal-1] encryption-algorithm 3des-cbc
[DeviceB-ike-proposal-1] authentication-algorithm sha
[DeviceB-ike-proposal-1] authentication-method pre-share
[DeviceB-ike-proposal-1] quit
(7) 配置IKE keychain
# 创建并配置名为key1的IKE keychain,指定与地址为1.1.1.1的对端使用的预共享密钥为明文123。
[DeviceB] ike keychain key1
[DeviceB-ike-keychain-key1] pre-shared-key address 1.1.1.1 key simple 123
[DeviceB-ike-keychain-key1] quit
(8) 在接口上应用IPsec安全策略
# 在接口GigabitEthernet1/0/1上应用IPsec安全策略map1。
[DeviceB] interface gigabitethernet 1/0/1
[DeviceB-GigabitEthernet1/0/1] ipsec apply policy map1
[DeviceB-GigabitEthernet1/0/1] quit
保证DeviceB上存在到达对端私网网段的路由,出接口为GigabitEthernet1/0/1。
配置步骤与Device B类似,请参考Device B的配置。
# 以上配置完成后,当分支子网5.5.5.0/24向总部网络4.4.4.0/24发起数据连接时,将触发Device B和Device A之间进行IKE协商。IKE成功协商出IPsec SA后,企业总部与分支子网之间的数据流传输将受到IPsec SA的保护。在Device A上可通过以下显示查看到协商生成的IPsec SA。
[DeviceA] display ipsec sa
-------------------------------
Interface: GigabitEthernet1/0/1
-------------------------------
-----------------------------
IPsec policy: map1
Sequence number: 10
Mode: Template
-----------------------------
Tunnel id: 0
Encapsulation mode: tunnel
Perfect Forward Secrecy:
Inside VPN:
Extended Sequence Numbers enable: N
Traffic Flow Confidentiality enable: N
Path MTU: 1463
Transmitting entity: Initiator
Tunnel:
local address/port: 1.1.1.1/500
remote address/port: 2.2.2.2/500
Flow:
sour addr: 4.4.4.0/255.255.255.0 port: 0 protocol: ip
dest addr: 5.5.5.0/255.255.255.0 port: 0 protocol: ip
[Inbound ESP SAs]
SPI: 1014286405 (0x3c74c845)
Connection ID: 1
Transform set: ESP-ENCRYPT-DES-CBC ESP-AUTH-SHA1
SA duration (kilobytes/sec): 1843200/3600
SA remaining duration (kilobytes/sec): 1843199/3590
Max received sequence-number: 4
Anti-replay check enable: Y
Anti-replay window size: 64
UDP encapsulation used for NAT traversal: N
Status: Active
[Outbound ESP SAs]
SPI: 4011716027 (0xef1dedbb)
Connection ID: 2
Transform set: ESP-ENCRYPT-DES-CBC ESP-AUTH-SHA1
SA duration (kilobytes/sec): 1843200/3600
SA remaining duration (kilobytes/sec): 1843199/3590
Max sent sequence-number: 4
UDP encapsulation used for NAT traversal: N
Status: Active
# IPsec SA成功建立后,在Device A上可以通过display ip routing-table verbose命令查看到IPsec反向路由注入生成的静态路由,目的地址为分支子网地址5.5.5.0/24,下一跳为IPsec隧道对端地址2.2.2.2,优先级为100,Tag值为1000。Device A和Device C、Device D之间的IPsec隧道建立成功后,Device A上也会产生到达各分支子网的相应静态路由,此处显示略。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!