

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

# AWS Site-to-Site VPN 日志
<a name="monitoring-logs"></a>

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 连接的详细日志。

**Topics**
+ [Site-to-SiteVPN 日志的好处](#log-benefits)
+ [Amaz CloudWatch on Logs 资源策略大小限制](#cwl-policy-size)
+ [Site-to-Site VPN 日志内容](#log-contents)
+ [隧道 BGP 日志的日志格式示例](#example-bgp-logs)
+ [发布到 CloudWatch 日志的 IAM 要求](#publish-cw-logs)
+ [查看 Site-to-Site VPN 日志配置](status-logs.md)
+ [启用 Site-to-Site VPN 日志](enable-logs.md)
+ [禁用 Site-to-Site VPN 日志](disable-logs.md)

## Site-to-SiteVPN 日志的好处
<a name="log-benefits"></a>
+ **简化的 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 资源策略大小限制
<a name="cwl-policy-size"></a>

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

## Site-to-Site VPN 日志内容
<a name="log-contents"></a>

 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。 | 

**Topics**
+ [IKEv1 错误消息](#sample-log-ikev1)
+ [IKEv2 错误消息](#sample-log-ikev2)
+ [IKEv2 谈判消息](#sample-log-ikev2-negotiation)
+ [BGP 状态消息](#sample-bgp-status-messages)
+ [路由状态消息](#sample-route-status-messages)

### IKEv1 错误消息
<a name="sample-log-ikev1"></a>


| 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 错误消息
<a name="sample-log-ikev2"></a>


| 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 谈判消息
<a name="sample-log-ikev2-negotiation"></a>


| 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 状态消息
<a name="sample-bgp-status-messages"></a>

 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 会话属性更新。 | 

### 路由状态消息
<a name="sample-route-status-messages"></a>

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


| Message | 说明 | 
| --- | --- | 
|  拒绝的原因是：as-path 包含我们自己的 AS  |  AWS 拒绝了来自 CGW 的新前缀的 BGP 更新消息，因为该路由包含 AWS 端对等方自己的 AS。 | 
|  被拒绝，原因是：下一跳未连接  |  由于未连接的下一跳验证失败，AWS 拒绝了来自 CGW 的前缀的 BGP 路由通告。确保在 CGW 一侧可以到达路由。 | 

## 隧道 BGP 日志的日志格式示例
<a name="example-bgp-logs"></a>

```
{
    "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 要求
<a name="publish-cw-logs"></a>



为了使日志记录功能正常运行，附加到用于配置该功能的 IAM 主体的 IAM policy 必须至少包含以下权限。更多详情也可以在《*Amazon L [og CloudWatch s 用户指南》的 “启用某些 AWS 服务的](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html)日志*记录” 部分中找到。

------
#### [ 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"
    }
  ]
}
```

------