目录

简介

先决条件

要求

使用的组件

IPsec

IKE协议

IKE阶段

IKE模式（第1阶段）

主模式

积极模式

IPsec模式（第2阶段）

快速模式

IKE词汇表

主模式数据包交换

主模式1(MM1)

确定两个同时进行的协商

主模式2(MM2)

主模式3和4(MM3-MM4)

主模式5和6(MM5-MM6)

快速模式（QM1、QM2和QM3）

主动模式数据包交换

主模式与主动模式

IKEv2与IKEv1数据包交换

基于策略与基于路由

基于策略的VPN

基于路由的VPN

流量的常见问题无法通过VPN接收

ISP阻止UDP 500/4500

ISP阻止ESP

相关信息

简介

本文档介绍建立虚拟专用网络(VPN)的互联网密钥交换(IKEv1)协议进程，以便了解数据包交换，以便更简单地排除IKEv1中任何类型的互联网协议安全(IPsec)问题的故障。

作者：思科TAC工程师Amanda Nava。

先决条件

要求

思科建议您了解基本安全概念：

- 身份验证

- 机密性

- 完整性

- IPsec

使用的组件

本文档不限于特定的软件和硬件版本。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您的网络处于活动状态，请确保您了解任何命令的潜在影响

IPsec

IPsec是一套协议，为IP层的Internet通信提供安全性。IPsec的最常见用途是在两个位置（网关到网关）之间或远程用户与企业网络（主机到网关）之间提供虚拟专用网络(VPN)。

IKE协议

IPsec使用IKE协议协商并建立安全的站点到站点或远程访问虚拟专用网络(VPN)隧道。IKE协议也称为互联网安全关联和密钥管理协议(ISAKMP)（仅在思科中）。

IKE有两个版本：

- IKEv1:在RFC 2409中定义，Internet密钥交换

- IKE第2版(IKEv2):在RFC 4306,Internet密钥交换(IKEv2)协议中定义

IKE阶段

ISAKMP将协商分为两个阶段：

- 第 1 阶段：两个ISAKMP对等体建立安全且经过身份验证的隧道，以保护ISAKMP协商消息。此隧道称为ISAKMP SA。ISAKMP定义了两种模式：主模式(MM)和主动模式。

- 第 2 阶段：它协商要通过IPsec隧道传输的数据的加密(SA)的密钥材料和算法。此阶段称为快速模式。

为了实现所有抽象概念，第1阶段隧道是父隧道，第2阶段是子隧道，此图将两个阶段说明为隧道。

注意：第1阶段(ISAKMP)隧道保护两个网关之间的控制计划VPN流量。控制平面流量可以是协商数据包、信息包、DPD、keepalive、rekey等。ISAKMP协商使用UDP 500和4500端口建立安全通道。

注意：第2阶段(IPsec)隧道保护两个网关之间通过VPN的数据平面流量。 T用于保护数据的算法在第2阶段中配置，与第1阶段中指定的算法无关。

用于封装和加密这些数据包的协议是封装安全负载(ESP)。

IKE模式（第1阶段）

主模式

当发起方向响应方发送建议或建议时，IKE会话开始。节点之间的首次交换建立了基本的安全策略；发起方提出了要使用的加密和身份验证算法。响应方选择适当的建议（我们假设已选择建议）并将其发送给发起方。下一次交换会传递Diffie-Hellman公钥和其他数据。所有进一步协商都在IKE SA内加密。第三个交换对ISAKMP会话进行身份验证。建立IKE SA后，IPSec协商（快速模式）开始。

积极模式

主动模式将IKE SA协商压缩为三个数据包，发起方传递SA所需的所有数据。响应方发送建议、密钥材料和ID，并验证下一个数据包中的会话。发起方回复并验证会话。协商更快，且发起方和响应方ID以明文方式传递。

IPsec模式（第2阶段）

快速模式

IPSec协商或快速模式类似于主动模式IKE协商，除协商外，必须在IKE SA内进行保护。快速模式会协商数据加密的SA并管理该IPSec SA的密钥交换。

IKE词汇表

- 安全关联(SA)是在两个网络实体之间建立共享安全属性以支持安全通信。SA包括密码算法和模式等属性；流量加密密钥；以及要通过连接传递的网络数据的参数。

- 对供应商ID(VID)进行处理，以确定对等体是否支持NAT遍历、失效对等体检测功能、分段等。

- nonce:发起方发送的随机生成的数字。此nonce与使用了约定密钥的其他项目一起进行哈希处理，并发送回去。发起方会检查cookie和nonce，并拒绝没有正确nonce的任何消息。这有助于防止重播，因为没有第三方能够预测随机生成的nonce是什么。

- 密钥交换(KE)信息，用于Diffie-Hellman(DH)安全密钥交换过程。

- 身份发起方/响应方(IDi/IDr.)用于向对等体发送身份验证信息。此信息在公共共享密钥的保护下传输。

- Diffie-Hellman(DH)密钥交换是一种通过公共信道进行加密算法安全交换的方法。

- IPSec共享密钥可通过再次使用DH来导出，以确保完全向前保密(PFS)或将原始DH交换刷新为先前导出的共享密钥。

主模式数据包交换

每个ISAKMP数据包都包含建立隧道的负载信息。IKE术语表将IKE缩写解释为主模式上数据包交换的负载内容的一部分，如下图所示。

主模式1(MM1)

要设置ISAKMP协商的条款，请创建ISAKMP策略，包括：

- 一种身份验证方法，用于确保对等体的身份。

- 一种加密方法，用于保护数据并确保隐私。

- 散列消息身份验证代码(HMAC)方法，用于确保发送方的身份，并确保消息在传输中未被修改。

- Diffie-Hellman组，用于确定加密密钥确定算法的强度。安全设备使用此算法派生加密密钥和哈希密钥。

- 安全设备在更换加密密钥之前使用加密密钥的时间限制。

第一个数据包由IKE协商的发起方发送，如图所示。

注意：主模式1是IKE协商的第一个数据包。因此，发起方SPI设置为随机值，而响应方SPI设置为0。  在第二个数据包(MM2)中，响应方SPI必须用新值回复，并且整个协商保持相同的SPI值。

如果捕获了MM1，并且使用了Wireshark网络协议分析器，则SPI值在Internet安全关联和密钥管理协议内容中，如图所示。

注意：在这种情况下，MM1数据包在路径中丢失或没有MM2应答，IKE协商会保持MM1重新传输，直到达到最大重新传输数。此时，发起方将保持相同的SPI，直到再次触发下一个协商。

提示：发起方和响应方SPI识别对于识别同一VPN的多个协商并缩小一些协商问题非常有用。

确定两个同时进行的协商

在Cisco IOS® XE平台上，可以对每个隧道过滤调试，并配置远程IP地址的条件，但是，日志中会显示同步协商，无法过滤这些协商。需要手动执行。如前所述，整个协商为发起方和响应方保持相同的SPI值。如果从同一对等体IP地址收到数据包，但SPI与协商达到最大重传次数之前跟踪的先前值不匹配，则这是同一对等体的另一个协商，如图所示。

注意：该示例显示协商(MM1)中第一个数据包的同时协商，但是，无论协商点是什么，都可能发生这种协商。所有后续数据包必须包含与响应器SPI上的0不同的值。

主模式2(MM2)

在主模式2数据包中，响应方发送所匹配提议的所选策略，并且响应方SPI设置为随机值。整个协商保持相同的SPI值。MM2对MM1作出应答，SPI响应器设置为与0不同的值，如图所示。

如果捕获了MM2，并且使用了Wireshark网络协议分析器，则Initiator SPI和Responder SPI值位于Internet安全关联和密钥管理协议内容中，如图所示。

主模式3和4(MM3-MM4)

MM3和MM4数据包仍未加密和未经身份验证，密钥交换发生。MM3和MM4如图所示。

主模式5和6(MM5-MM6)

MM5和MM6数据包已加密，但仍未通过身份验证。在这些数据包上，身份验证如图所示。

快速模式（QM1、QM2和QM3）

快速模式发生在主世界和IKE在第1阶段建立安全隧道后。快速模式协商共享的IPSec策略，用于IPSec安全算法，并管理IPSec SA建立的密钥交换。这些密钥用于生成新的共享密钥材料并防止来自生成的伪造SA的重播攻击。

在此阶段交换三个数据包，如图所示。

主动模式数据包交换

主动模式将IKE SA协商压缩为三个数据包，发起方传递SA所需的所有数据。

- 响应方发送建议、密钥材料和ID，并验证下一个数据包中的会话。

- 发起方回复并验证会话。

- 协商更快，且发起方和响应方ID以明文方式传递。

该图显示了在主动模式下交换的三个数据包的负载内容。

主模式与主动模式

与主模式相比，主动模式可以归结为三个软件包：

- AM 1吸收MM1和MM3

- AM 2吸收MM2、MM4和MM6的一部分。这就是攻击性模式的漏洞的来源。AM 2将ID和身份验证组成为未加密，这与主模式不同，此信息是加密的。

- AM 3提供IDi和身份验证，这些值已加密。

IKEv2与IKEv1数据包交换

在IKEv2协商中，交换建立隧道的消息较少。IKEv2使用四条消息；IKEv1使用六条消息（在主模式下）或三条消息（在主动模式下）。

IKEv2消息类型定义为请求和响应对。该图显示IKEv2与IKEv1的数据包比较和负载内容。

注意：本文档不详细描述IKEv2数据包交换。有关更多参考，请导航至IKEv2 Packet Exchange and Protocol Level Debugging。

基于策略与基于路由

基于策略的VPN

在名称状态下，基于策略的VPN是一个IPsec VPN隧道，该隧道对符合策略匹配条件的中转流量执行策略操作。对于思科设备，配置访问列表(ACL)并将其附加到加密映射，以指定要重定向到VPN并加密的流量。

流量选择器是策略上指定的子网或主机，如图所示。

基于路由的VPN

不需要策略，流量将重定向到具有路由的隧道，并且它支持通过隧道接口进行动态路由。默认情况下，流量选择器（通过VPN加密的流量）从0.0.0.0.到0.0.0.0，如图所示。

注意：由于流量选择器为0.0.0.0，因此，其中包含任何主机或子网，因此只创建一个SA。动态隧道有例外。本文档不描述动态隧道。

可以实现基于策略和路由的VPN，如图所示。

。

注意：与仅创建一个SA的基于路由的VPN不同，基于策略的VPN可以创建多个SA。配置ACL后，ACL上的每条语句（如果它们之间不同）都会创建子隧道。

流量的常见问题无法通过VPN接收

ISP阻止UDP 500/4500

Internet服务提供商(ISP)阻塞UDP 500/4500端口是一个非常常见的问题。对于IPsec隧道建立，可以与两个不同的ISP建立联系，其中一个可以阻塞端口，而另一个允许它们。

该图显示了ISP只能在一个方向上阻止UDP 500/4500端口的两种情况。

注意：Internet密钥交换(IKE)使用端口UDP 500建立安全VPN隧道。当NAT存在于一个VPN终端中时，使用UDP 4500。

注意：当ISP阻止UDP 500/4500时，IPsec隧道建立会受到影响，并且不会启动。

ISP阻止ESP

IPsec隧道的另一个常见问题是，ISP阻止ESP流量，但它允许UDP 500/4500端口。例如，UDP 500/4500端口允许以双向方式建立，因此隧道成功建立，但ISP或ISP在两个方向上阻止ESP数据包，这会导致通过VPN的加密流量失败，如图所示。

注意：当ISP阻止ESP数据包时，IPsec隧道建立成功，但加密的流量会受到影响。这样，VPN启动时可以反映它，但流量无法通过它工作。

提示：ESP流量仅在一个方向被阻止的场景也可能存在，症状相同，但可以通过隧道统计信息、封装、解封计数器或RX和TX计数器轻松找到。

相关信息

- KEv2数据包交换和协议级调试

- 互联网密钥交换(IKE)- RFC 2409

- 互联网密钥交换(IKEv2)协议

- 技术支持和文档 - Cisco Systems