View a markdown version of this page

AWS Site-to-Site VPN 日志 - AWS Site-to-Site VPN

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS Site-to-Site VPN 日志

AWS Site-to-Site VPN 日志可让您更深入地了解 Site-to-Site VPN 部署。使用此功能,您可以访问 Site-to-Site VPN 连接日志,这些日志提供有关 IP 安全 (IPsec) 隧道建立、互联网密钥交换 (IKE) 协商、失效对等体检测 (DPD) 协议消息、边界网关协议 (BGP) 状态和路由更新的详细信息。

Site-to-Site VPN 日志可以发布到 Amazon CloudWatch 日志。此功能为客户提供了一种统一的方式来访问和分析其所有 Site-to-Site VPN 连接的详细日志。

Site-to-SiteVPN 日志的好处

  • 简化的 VP Site-to-Site N 故障排除:VPN 日志可帮助您查明与您的客户网关设备之间的 AWS 配置不匹配情况,并解决初始 VPN 连接问题。VPN 连接可能由于设置配置错误(例如超时调整不当)而随时间推移发生间歇性抖动,底层传输网络中可能存在问题(例如互联网天气),或者路由更改或路径故障可能导致通过 VPN 的连接中断。此功能可让您准确地诊断间歇性连接故障的原因,并微调低级别隧道配置以实现可靠运行。

  • 集中 AWS Site-to-Site VPN 可见性: Site-to-SiteVPN 日志可以提供所有 VP Site-to-Site N 连接类型的隧道活动和 BGP 路由日志。此功能为客户提供了一种统一的方式来访问和分析其所有 Site-to-Site VPN 连接的详细日志。

  • 安全与合规:可以将 Site-to-Site VPN 日志发送到 Amazon CloudWatch Logs,以便对一段时间内的 VPN 连接状态和活动进行回顾性分析。这可以帮助您满足合规性和法规要求。

Amaz CloudWatch on Logs 资源策略大小限制

CloudWatch 日志资源策略限制为 5120 个字符。当 CloudWatch Logs 检测到策略接近此大小限制时,它会自动启用以开头的日志组/aws/vendedlogs/。启用日志记录后, Site-to-SiteVPN 必须使用您指定的日志组更新您的 CloudWatch 日志资源策略。为避免达到 CloudWatch 日志资源策略大小限制,请在日志组名称前加上/aws/vendedlogs/

Site-to-Site VPN 日志内容

Site-to-SiteVPN 隧道活动日志中包含以下信息。日志流文件名使用 VpnConnection ID 和 TunnelOutsideIPAddress。

字段 说明

VpnLogCreationTimestamp (event_timestamp)

采用纪元时间格式的日志创建时间戳。

VpnLogCreationTimestampReadable (timestamp)

以人类可读的时间格式创建日志的时间戳。

隧道 DPDEnabled (dpd_enabled)

失效对端检测协议启用状态(True/False)。

隧道CGWNATTDetection状态 (nat_t_detected)

在客户网关设备上检测到 NAT-T(True/False)。

隧道IKEPhase1状态 (ike_phase1_state)

IKE 第 1 阶段协议状态(已建立 | 正在重新生成密钥 | 正在协商 | 关闭)。
隧道IKEPhase2状态 (ike_phase2_state) IKE 第 2 阶段协议状态(已建立 | 正在重新生成密钥 | 正在协商 | 关闭)。
VpnLogDetail (details) IKE 和 DPD IPsec 协议的详细消息。

Site-to-SiteVPN 隧道 BGP 日志中包含以下信息。日志流文件名使用 VpnConnection ID 和 TunnelOutsideIPAddress。

字段 说明

资源_id

用于识别隧道和日志关联的 VPN 连接的唯一 ID。

event_timestamp

采用纪元时间格式的日志创建时间戳。

timestamp

以人类可读的时间格式创建日志的时间戳。

类型

BGP 日志事件的类型 (BGPStatus | RouteStatus)。

status

特定类型的日志事件的状态更新 (BGPStatus: UP | DOWN) (RouteStatus: AVERTISED {路由已由对等体通告} | 更新:{现有路由已由对等体更新} | 已撤回:{路由已被对等方撤回})。
message 提供有关日志事件和状态的更多详细信息。此字段将帮助您了解 RouteStatus 消息中交换的路由属性的原因 BGPStatus 是 down。

IKEv1 错误消息

Message 说明

对等方无响应 - 宣布对等方终止

对等方未响应 DPD 消息,强制执行 DPD 超时操作。

AWS 由于预共享密钥无效,隧道有效载荷解密失败

需要在两个 IKE 对等方上配置相同的预共享密钥。

未找到与之匹配的提案 AWS

AWS VPN 端点(例如 3DES)不支持第 1 阶段(加密、哈希和 DH 组)的提议属性。

未找到匹配的提案。使用“No proposal chosen”(未选择任何提案)进行通知

在对等体之间交换未选择提案错误消息,告知 Proposals/Policies 必须在 IKE 对等体上为第 2 阶段配置正确的配置。

AWS 带有 SPI 的第 2 阶段 SA 的隧道已收到删除:xxxx

CGW 已经发送了第 2 阶段的 Delete_SA 消息。

AWS 隧道收到了来自 CGW 的 IKE_SA 的 DELETE

CGW 已经发送了第 1 阶段的 Delete_SA 消息。

IKEv2 错误消息

Message 说明

AWS 隧道 DPD 在 {retry_count} 重新传输后超时

对等方未响应 DPD 消息,强制执行 DPD 超时操作。

AWS 隧道收到了来自 CGW 的 IKE_SA 的 DELETE

对等方已经发送了父级/IKE_SA 的 Delete_SA 消息。

AWS 带有 SPI 的第 2 阶段 SA 的隧道已收到删除:xxxx

对等方已经发送了 CHILD_SA 的 Delete_SA 消息。

AWS 隧道检测到 (CHILD_REKEY) 冲突为 CHILD_DELETE

CGW 已为活动 SA 发送了 Delete_SA 消息,目前正在更改密钥。

AWS 由于检测到冲突,正在删除隧道 (CHILD_SA) 冗余 SA

由于冲突,如果生成冗余 SAs ,Peer 节点将在按照 RFC 匹配随机数值后关闭冗余 SA。

AWS 隧道第 2 阶段在保持第 1 阶段时无法建立

由于协商错误(例如提议不正确),对等方无法建立 CHILD_SA。

AWS:流量选择器:TS_UNACCEPTABLE:接收自响应方

Peer 提议的流量 Selectors/Encryption 域不正确。Peer 节点的配置应完全相同且正确 CIDRs。

AWS 隧道正在发送身份验证_失败作为响应

对等方无法通过验证 IKE_AUTH 消息的内容来对对等方进行身份验证

AWS 隧道检测到与 cgw 的预共享密钥不匹配:xxxx

需要在两个 IKE 对等方上配置相同的预共享密钥。

AWS 隧道超时:使用 cgw 删除未建立的第 1 阶段 IKE_SA: xxxx

以对等方身份删除半打开的 IKE_SA 尚未开始协商

未找到匹配的提案。使用“No proposal chosen”(未选择任何提案)进行通知

在对等方之间交换“No proposal chosen”(未选择任何提案)错误消息,以告知必须在 IKE 对等方上配置正确的提案。

未找到与之匹配的提案 AWS

AWS VPN Endpoint 不支持第 1 阶段或第 2 阶段(加密、哈希和 DH 组)的建议属性,3DES例如。

IKEv2 谈判消息

Message 说明

AWS CREATE_CHILD_SA 的隧道处理请求 (id=xxx)

AWS 已收到来自 CGW 的 CREATE_CHILD_SA 请求。

AWS 隧道正在发送 CREATE_CHILD_SA 的响应 (id=xxx)

AWS 正在向 CGW 发送 CREATE_CHILD_SA 响应。

AWS 隧道正在发送 CREATE_CHILD_SA 的请求 (id=xxx)

AWS 正在向 CGW 发送 CREATE_CHILD_SA 请求。

AWS CREATE_CHILD_SA 的隧道处理响应 (id=xxx)

AWS 已收到来自 CGW 的 CREATE_CHILD_SA 回复。

BGP 状态消息

BGP 状态消息包含与 BGP 会话状态转换、前缀限制警告、限制违规、BGP 会话通知、BGP OPEN 消息以及给定 BGP 会话的 BGP 邻居的属性更新相关的信息。

Message BGP 状态 说明

AWS 端对等 BGP 会话状态已从 “空闲” 更改为 Connect with neighbor {ip: xxx}

向下

AWS 端的 BGP 连接状态已更新为 Connect。

AWS 端对等 BGP 会话状态已从 Connect 更改为 OpenSent 与邻居 {ip: xxx}

向下

AWS 端的 BGP 连接状态已更新为。 OpenSent

AWS 端对等 BGP 会话状态已从变 OpenSent 为 OpenConfirm 邻居 {ip: xxx}

向下

AWS 端的 BGP 连接状态已更新为。 OpenConfirm

AWS 端对等 BGP 会话状态已从变 OpenConfirm 为已与邻居建立 {ip: xxx}

向上

AWS 端的 BGP 连接状态已更新为 “已建立”。

AWS 端对等 BGP 会话状态已从 “已建立” 更改为 “与邻居闲置” {ip: xxx}

向下

AWS 端的 BGP 连接状态已更新为 “空闲”。

AWS 端对等 BGP 会话状态已从 Connect 更改为与邻居同步 {ip: xxx}

向下

AWS 端的 BGP 连接状态从 Connect 过渡到 “活动”。如果 BGP 会话停滞在 Connect 状态,请检查 CGW 上的 TCP 端口 179 可用性。

AWS 端对等方报告了最大前缀限制警告-收到来自邻居 {ip: xxx} 的 {prefixes (count): xxx} 前缀,限制为 {limit(数字):xxx}

向上

当从 CGW 收到的前缀数量接近允许的限制时,AWS 端会定期生成一条日志消息。

AWS 端同行检测到已超过最大前缀限制-收到来自邻居 {ip: xxx} 的 {prefixes (count): xxx} 前缀,限制为 {limit(数字):xxx}

向下

当从 CGW 收到的前缀数量超过允许的限制时,AWS 端会生成一条日志消息。

AWS 端同行向邻居 {ip: xxx} 发送通知 6/1(停止/达到的最大前缀数)

向下

AWS 端向 CGW BGP 对等体发送了通知,表明 BGP 会话因前缀限制违规而终止。

AWS 端同行收到了来自邻居 {ip: xxx} 的 6/1(停止/达到的最大前缀数)通知

向下

AWS 端收到来自 CGW 对等方的通知,表示 BGP 会话因违反前缀限制而终止。

AWS 端同行向邻居 {ip: xxx} 发送了通知 6/2(停止/管理关闭)

向下

AWS 端向 CGW BGP 对等体发送了通知,表示 BGP 会话已终止。

AWS 端同行收到了来自邻居 {ip: xxx} 的 6/2(停止/管理关闭)通知

向下

AWS 端收到了来自 CGW 对等方的通知,表示 BGP 会话已终止。

AWS 端同行向邻居 {ip: xxx} 发送通知 6/3(停止/对等未配置)

向下

AWS 端向 CGW 对等体发送了通知,表示该对等体未配置或已从配置中删除。

AWS 端对等方收到了来自邻居 {ip: xxx} 的 6/3(Cease/Peer 未配置)通知

向下

AWS 端收到了来自 CGW 对等体的通知,表示该对等体未配置或已从配置中删除。

AWS 端同行向邻居 {ip: xxx} 发送了通知 6/4(停止/管理重置)

向下

AWS 端向 CGW BGP 对等体发送了一条通知,指示 BGP 会话已重置。

AWS 端同行收到了来自邻居 {ip: xxx} 的 6/4(停止/管理重置)通知

向下

AWS 端收到了来自 CGW 对等方的通知,表示 BGP 会话已重置。

AWS 端同行在 6/5 向邻居 {ip: xxx} 发送了通知(停止/连接被拒绝)

向下

AWS 端向 CGW BGP 对等体发送了通知,表示 BGP 会话已被拒绝。

AWS 端同行收到了来自邻居 {ip: xxx} 的 6/5 通知(停止/连接被拒绝)

向下

AWS 端收到了来自 CGW 对等方的通知,表示 BGP 会话已被拒绝。

AWS 端对等方在 6/6(停止/其他配置更改)向邻居 {ip: xxx} 发送了通知

向下

AWS 端向 CGW BGP 对等体发送了一条通知,指示 BGP 会话配置发生了更改。

AWS 端同行收到了来自邻居 {ip: xxx} 的 6/6(停止/其他配置更改)通知

向下

AWS 端收到了来自 CGW 对等体的通知,该通知表明 BGP 会话配置发生了更改。

AWS 端同行在 6/7 向邻居 {ip: xxx} 发送了通知(停止/连接冲突解决方案)

向下

当两个对等体尝试同时建立连接时,AWS 端向 CGW 对等体发送了通知,以解决连接冲突问题。

AWS 端同行收到了来自邻居 {ip: xxx} 的 6/7 通知(停止/连接冲突解决方案)

向下

AWS 端收到了来自 CGW 对等体的通知,表示当两个对等体尝试同时建立连接时,连接冲突已得到解决。

AWS 端同行向邻居 {ip: xxx} 发送了保留计时器已过期通知

向下

BGP 保留计时器已过期,AWS 方面已向 CGW 发送了通知。

AWS 端对等方检测到来自邻居 {ip: xxx} 的错误的 OPEN 消息——远程 AS 是 {asn: xxx},预计 {asn: xxx}

向下

AWS 端检测到从 CGW 对等方收到了一条错误的 OPEN 消息,这表明配置不匹配。

AWS 端同行收到了来自邻居 {ip: xxx} 的 OPEN 消息-版本 4、AS {asn: xxx}、holdtime {holdtime(秒):xxx}、router-id {id:xxx}}

向下

AWS 端收到了一条 BGP 打开消息,要求与 CGW 对等体启动 BGP 会话。

AWS 端同行向邻居 {ip: xxx}-版本 4、AS {asn: xxx}、holdtime {holdtime(秒):xxx}、router-id {id:xxx}、router-id {id:xxx}

向下

CGW 对等体发送了一条 BGP 打开消息,以启动与 AWS 端 BGP 对等体的 BGP 会话。

AWS 端对等方正在启动与邻居 {ip: xxx} 的连接(通过 Connect)

向下

AWS 端正在尝试连接 CGW BGP 邻居。

AWS 端同行向邻居 {ip: xxx} 发送了一 End-of-RIB条消息

向上

建立 BGP 会话后,AWS 端已完成向 CGW 传输路由。

AWS 端对等方收到了来自邻居 {ip: xxx} 的属性更新-AS 路径:{aspath(列表):xxx xxx xxx}

向上

AWS 端收到了来自邻居的 BGP 会话属性更新。

路由状态消息

与 BGP 状态消息不同,路由状态消息包含有关给定前缀的 BGP 属性的数据,例如 AS 路径、本地首选项、多出口标识符 (MED)、下一跳 IP 地址和权重。只有当已通告、更新或撤回的路线出现错误时,“路由状态” 消息才会包含详细信息字段。其中的例子如下

Message 说明

拒绝的原因是:as-path 包含我们自己的 AS

AWS 拒绝了来自 CGW 的新前缀的 BGP 更新消息,因为该路由包含 AWS 端对等方自己的 AS。

被拒绝,原因是:下一跳未连接

由于未连接的下一跳验证失败,AWS 拒绝了来自 CGW 的前缀的 BGP 路由通告。确保在 CGW 一侧可以到达路由。

隧道 BGP 日志的日志格式示例

{ "resource_id": "vpn-1234abcd_1.2.3.4", "event_timestamp": 1762580429641, "timestamp": "2025-11-08 05:40:29.641Z", "type": "BGPStatus", "status": "UP", "message": { "details": "AWS-side peer BGP session state has changed from OpenConfirm to Established with neighbor 169.254.50.85" } } { "resource_id": "vpn-1234abcd_1.2.3.4", "event_timestamp": 1762579573243, "timestamp": "2025-11-08 05:26:13.243Z", "type": "RouteStatus", "status": "UPDATED", "message": { "prefix": "172.31.0.0/16", "asPath": "64512", "localPref": 100, "med": 100, "nextHopIp": "169.254.50.85", "weight": 32768, "details": "DENIED due to: as-path contains our own AS" } }

发布到 CloudWatch 日志的 IAM 要求

为了使日志记录功能正常运行,附加到用于配置该功能的 IAM 主体的 IAM policy 必须至少包含以下权限。更多详情也可以在《Amazon L og CloudWatch s 用户指南》的 “启用某些 AWS 服务的日志记录” 部分中找到。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "logs:CreateLogDelivery", "logs:GetLogDelivery", "logs:UpdateLogDelivery", "logs:DeleteLogDelivery", "logs:ListLogDeliveries" ], "Resource": [ "*" ], "Effect": "Allow", "Sid": "S2SVPNLogging" }, { "Sid": "S2SVPNLoggingCWL", "Action": [ "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", "logs:DescribeLogGroups" ], "Resource": [ "*" ], "Effect": "Allow" } ] }