

# VPC 对等连接
<a name="working-with-vpc-peering"></a>

通过 VPC 对等连接，您可以连接相同或不同 AWS 区域中的两个 VPC。如此一来，一个 VPC 中的实例就能与另一个 VPC 中的实例进行通信，就像属于同一个网络一样。

VPC 对等连接通过私有 IPv4 地址或 IPv6 地址在两个 VPC 之间直接创建网络路由。在连接的 VPC 之间发送的流量不会通过互联网、VPN 连接或 AWS Direct Connect 传输。这使得 VPC 对等连接成为一种跨 VPC 边界共享资源（例如数据库或 Web 服务器）的安全方式。

要建立 VPC 对等连接，必须从一个 VPC 创建对等连接请求，且另一个 VPC 的所有者接受该请求。建立连接后，您可以更新路由表，以在 VPC 之间路由流量。如此一来，一个 VPC 中的实例就可以访问另一个 VPC 中的资源了。

VPC 对等连接是在 AWS 中构建多 VPC 架构和跨组织边界共享资源的重要工具。该功能提供了一种简单、低延迟的方式来连接 VPC，免去了配置 VPN 或其他网络服务的复杂工作。

使用以下步骤来创建和使用 VPC 对等连接。

**Topics**
+ [创建 VPC 对等连接](create-vpc-peering-connection.md)
+ [接受或拒绝 VPC 对等连接](accept-vpc-peering-connection.md)
+ [为 VPC 对等连接更新路由表](vpc-peering-routing.md)
+ [更新您的安全组以引用对等安全组](vpc-peering-security-groups.md)
+ [实现对 VPC 对等连接的 DNS 解析](vpc-peering-dns.md)
+ [删除 VPC 对等连接](delete-vpc-peering-connection.md)
+ [对 VPC 对等连接进行问题排查](troubleshoot-vpc-peering-connections.md)

# 创建 VPC 对等连接
<a name="create-vpc-peering-connection"></a>

要创建 VPC 对等连接，请首先创建要与其他 VPC 建立对等连接的请求。要激活请求，接受者 VPC 的拥有者必须接受此请求。支持以下对等连接：
+ 在同一账户和区域中的 VPC 之间
+ 在同一账户和不同区域中的 VPC 之间
+ 在不同账户和同一区域中的 VPC 之间
+ 在不同账户和区域中的 VPC 之间

对于区域间 VPC 对等连接，必须从请求者 VPC 的区域发出请求，且必须从接受者 VPC 的区域接受请求。有关更多信息，请参阅 [接受或拒绝 VPC 对等连接](accept-vpc-peering-connection.md)。

**Topics**
+ [先决条件](#vpc-peering-connection-prerequisites)
+ [使用控制台创建对等连接](#create-vpc-peering-connection-console)
+ [使用命令行创建对等连接](#create-vpc-peering-connection-command-line)

## 先决条件
<a name="vpc-peering-connection-prerequisites"></a>
+ 查看 VPC 对等连接的[限制](vpc-peering-basics.md#vpc-peering-limitations)。
+ 确保 VPC 没有重叠的 IPv4 CIDR 块。如有重叠，则 VPC 对等连接的状态将立即变为 `failed`。即使 VPC 具有唯一的 IPv6 CIDR 块，此限制依然适用。

## 使用控制台创建对等连接
<a name="create-vpc-peering-connection-console"></a>

使用以下过程创建 VPC 对等连接。

**要使用控制台创建对等连接**

1. 通过 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 打开 Amazon VPC 控制台。

1. 在导航窗格中，选择 **Peering Connections**（对等连接）。

1. 选择 **Create Peering Connection**（创建对等连接）。

1. （可选）对于**名称**，为 VPC 对等连接指定名称。这样可创建具有 Name 键以及您指定的值的标签。

1. 对于 **VPC ID（请求者）**，从当前账户中选择 VPC。

1. 在**选择要用作对等的另一个 VPC** 下，执行以下操作：

   1. 对于**账户**，要与其他账户中的 VPC 对等连接，选择**其他账户**并输入账户 ID。否则，保留**我的账户**。

   1. 对于**区域**，要与其他区域的 VPC 对等连接，请选择**其他区域**并选择此区域。否则，请保留**此区域**。

   1. 对于 **VPC ID（接受者）**，从指定的账户和区域中选择 VPC。

1. （可选）若要添加标签，请选择 **Add new tag**（添加新标签），然后输入标签键和标签值。

1. 选择 **Create Peering Connection**（创建对等连接）。

1. 接受者账户的拥有者必须接受对等连接。有关更多信息，请参阅 [接受或拒绝 VPC 对等连接](accept-vpc-peering-connection.md)。

1. 更新两个 VPC 的路由表，以启用两者之间的通信。有关更多信息，请参阅 [为 VPC 对等连接更新路由表](vpc-peering-routing.md)。

## 使用命令行创建对等连接
<a name="create-vpc-peering-connection-command-line"></a>

您可以使用以下命令创建 VPC 对等连接：
+ [create-vpc-peering-connection](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-vpc-peering-connection.html) (AWS CLI)
+ [New-EC2VpcPeeringConnection](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2VpcPeeringConnection.html) (AWS Tools for Windows PowerShell)

# 接受或拒绝 VPC 对等连接
<a name="accept-vpc-peering-connection"></a>

处于 `pending-acceptance` 状态的 VPC 对等连接仅在由接受者 VPC 的拥有者接受后才能激活。有关 `Deleted` 对等连接的更多信息，请参阅 [VPC 对等连接的生命周期](vpc-peering-basics.md#vpc-peering-lifecycle)。您无法接受您已发送至其他 AWS 账户的 VPC 对等连接请求。要在同一 AWS 账户中的 VPC 之间创建 VPC 对等连接，您可以自己创建并接受请求。

您可以拒绝您收到的处于 `pending-acceptance` 状态的任何 VPC 对等连接请求。您应仅接受来自您了解并信任的 AWS 账户的 VPC 对等连接；您可以拒绝任何不良的请求。有关 `Rejected` 对等连接的更多信息，请参阅 [VPC 对等连接的生命周期](vpc-peering-basics.md#vpc-peering-lifecycle)。

**重要**  
请勿接受来自未知 AWS 账户的 VPC 对等连接。恶意用户可能已向您发出 VPC 对等连接请求来获取对您的 VPC 进行未经授权的网络访问的权限。这称为“对等钓鱼”。您可以安全地拒绝不必要的 VPC 对等连接请求，这样就不需要承担以下风险：请求者会访问有关您的 AWS 账户或您的 VPC 的任何信息。有关更多信息，请参阅 [接受或拒绝 VPC 对等连接](#accept-vpc-peering-connection)。您还可以忽略请求让它过期；默认情况下，请求将在 7 天后过期。

**要使用控制台接受或拒绝对等连接**

1. 通过 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 打开 Amazon VPC 控制台。

1. 使用区域选择器选择接受者 VPC 的区域。

1. 在导航窗格中，选择 **Peering Connections**（对等连接）。

1. 要拒绝对等连接，先选择该 VPC 对等连接，然后依次选择**操作**、**拒绝请求**。当系统提示进行确认时，选择**拒绝请求**。

1. 要接受对等连接，先选择待处理的 VPC 对等连接（状态为 `pending-acceptance`），然后依次选择**操作**、**接受请求**。有关对等连接生命周期状态的更多信息，请参阅 [VPC 对等连接的生命周期](vpc-peering-basics.md#vpc-peering-lifecycle)。

   如果没有待处理的 VPC 对等连接，则请确认您已选择接受者 VPC 的区域。

1. 当系统提示进行确认时，选择**接受请求**。

1. 选择**立即修改我的路由表**，以向 VPC 路由表添加路由，从而确保您可以通过对等连接收发流量。有关更多信息，请参阅 [为 VPC 对等连接更新路由表](vpc-peering-routing.md)。

**要使用命令行接受对等连接**
+ [accept-vpc-peering-connection](https://docs.aws.amazon.com/cli/latest/reference/ec2/accept-vpc-peering-connection.html) (AWS CLI)
+ [Approve-EC2VpcPeeringConnection](https://docs.aws.amazon.com/powershell/latest/reference/items/Approve-EC2VpcPeeringConnection.html) (AWS Tools for Windows PowerShell)

**要使用命令行拒绝对等连接**
+ [reject-vpc-peering-connection](https://docs.aws.amazon.com/cli/latest/reference/ec2/reject-vpc-peering-connection.html) (AWS CLI)
+ [Deny-EC2VpcPeeringConnection](https://docs.aws.amazon.com/powershell/latest/reference/items/Deny-EC2VpcPeeringConnection.html) (AWS Tools for Windows PowerShell)

# 为 VPC 对等连接更新路由表
<a name="vpc-peering-routing"></a>

要在对等 VPC 中的实例之间启用私有 IPv4 流量，您必须向与两个实例的子网关联的路由表添加路由。路由目的地为对等 VPC 的 CIDR 块（或 CIDR 块的一部分），目标为 VPC 对等连接的 ID。有关更多信息，请参阅《Amazon VPC 用户指南》**中的[配置路由表](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html)。

以下是路由表的示例，该路由表允许两个对等 VPC（VPC A 和 VPC B）中的实例之间的通信。每个表都有一个本地路由和将对等 VPC 的流量发送到 VPC 对等连接的路由。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/peering/vpc-peering-routing.html)

同样，如果 VPC 对等连接中的 VPC 具有关联的 IPv6 CIDR 块，则您可以添加路由来通过 IPv6 实现与对等 VPC 的通信。

有关 VPC 对等连接支持的路由表配置的更多信息，请参阅[常见 VPC 对等连接配置](peering-configurations.md)。

**注意事项**
+ 如果您的某个 VPC 与多个具有重叠或匹配的 IPv4 CIDR 块的 VPC 对等，请确保路由表配置为不从您的 VPC 向不正确的 VPC 发送响应流量。AWS 当前不支持在 VPC 对等连接中进行单一地址反向传输路径转发，即检查数据包的源 IP 并将应答数据包路由回源。有关更多信息，请参阅 [响应流量路由](peering-configurations-partial-access.md#peering-incorrect-response-routing)。
+ 您的账号的每个路由表可以添加的条目数是有[配额](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html)的。如果 VPC 中的 VPC 对等连接数超过单个路由表的路由表条目配额，请考虑使用多个子网，且每个子网都与一个自定义路由表关联。
+ 您可以为处于 `pending-acceptance` 状态的 VPC 对等连接添加路由。但是，此路由的状态为 `blackhole`，并且在 VPC 对等连接变为 `active` 状态后才生效。

**为 VPC 对等连接添加 IPv4 路由**

1. 通过以下网址打开 Amazon VPC 控制台：[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 在导航窗格中，选择 **Route tables**（路由表）。

1. 选中与您实例所在子网关联的路由表旁边的复选框。

   如果您未在子网与特定路由表间建立显式关联，则这个子网将与主路由表建立隐式关联。

1. 依次选择 **Actions**（操作）、**Edit routes**（编辑路由）。

1. 选择 **Add route (添加路由)**。

1. 对于 **Destination**，请输入必须将 VPC 对等连接中的网络流量定向到的 IPv4 地址范围。您可以指定对等 VPC 的整个 IPv4 CIDR 块、具体的范围或单个 IPv4 地址，例如要与之通信的实例的 IP 地址。举例来说，如果对等 VPC 的 CIDR 块为 `10.0.0.0/16`，则您可以指定 `10.0.0.0/24` 部分或具体的 IP 地址 `10.0.0.7/32`。

1. 对于**目标**，选择该 VPC 对等连接。

1. 选择**保存更改**。

对等 VPC 的拥有者还必须完成这些步骤，以添加路由来通过 VPC 对等连接将流量定向回到您的 VPC。

如果您在不同 AWS 区域中有使用 IPv6 地址的资源，则可以创建区域间对等连接。然后，您可以为资源之间的通信添加 IPv6 路由。

**为 VPC 对等连接添加 IPv6 路由**

1. 通过以下网址打开 Amazon VPC 控制台：[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 在导航窗格中，选择 **Route tables**（路由表）。

1. 选中与您实例所在子网关联的路由表旁边的复选框。
**注意**  
如果您没有与该子网关联的路由表，请选择 VPC 的主路由表作为子网路由表，然后默认使用此路由表。

1. 依次选择 **Actions (操作)**、**Edit routes (编辑路由)**。

1. 选择 **Add route (添加路由)**。

1. 对于 **Destination**，输入对等 VPC 的 IPv6 地址范围。您可以指定对等 VPC 的整个 IPv6 CIDR 块、具体的范围或单个 IPv6 地址。举例来说，如果对等 VPC 的 CIDR 块为 `2001:db8:1234:1a00::/56`，则您可以指定 `2001:db8:1234:1a00::/64` 部分或具体的 IP 地址 `2001:db8:1234:1a00::123/128`。

1. 对于**目标**，选择该 VPC 对等连接。

1. 选择**保存更改**。

有关更多信息，请参阅《Amazon VPC 用户指南》**中的[路由表](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html)。

**使用命令行添加或替换路由**
+ [create-route](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-route.html) 和 [replace-route](https://docs.aws.amazon.com/cli/latest/reference/ec2/replace-route.html)(AWS CLI)
+ [New-EC2Route](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Route.html) 和 [Set-EC2Route](https://docs.aws.amazon.com/powershell/latest/reference/items/Set-EC2Route.html)(AWS Tools for Windows PowerShell)

# 更新您的安全组以引用对等安全组
<a name="vpc-peering-security-groups"></a>

您可以更新 VPC 安全组的入站或出站规则以引用对等 VPC 的安全组。此操作将允许流量流入和流出与对等的 VPC 中的已引用安全组关联的实例。

**注意**  
不会在控制台中显示对等 VPC 中的安全组供您选择。

**要求**
+ 要在对等 VPC 中引用安全组，VPC 对等连接必须处于`active`状态。
+ 对等 VPC 可以是您的账户中的 VPC，也可以是另一AWS账户中的 VPC。要引用位于其他 AWS 账户但属于相同区域的安全组，请将账号与安全组的 ID 一起包括在内。例如 `123456789012/sg-1a2b3c4d`。
+ 您无法引用位于不同区域内的对等 VPC 的安全组。而是使用对等 VPC 的 CIDR 块。
+ 如果您将路由配置为通过中间设备在不同子网中的两个实例之间转发流量，则必须确保这两个实例的安全组允许流量在实例之间流动。每个实例的安全组必须引用另一个实例的私有 IP 地址或包含另一个实例的子网的 CIDR 范围作为源。如果您引用另一个实例的安全组作为源，则安全组不允许流量在实例之间流动。

**使用控制台更新安全组规则**

1. 通过以下网址打开 Amazon VPC 控制台：[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 在导航窗格中，选择**安全组**。

1. 选择安全组，然后执行下列操作之一：
   + 要修改入站规则，请选择**操作**、**编辑入站规则**。
   + 要修改出站规则，请选择**操作**、**编辑出站规则**。

1. 要添加规则，请选择**添加规则**，然后指定类型、协议和端口范围。对于**源**（入站规则）或**目的地**（出站规则），请执行下列操作之一：
   + 对于同一账户和区域中的对等 VPC，请输入安全组的 ID。
   + 对于位于不同账户但位于相同区域的对等 VPC，请输入账户 ID 和安全组 ID，中间用正斜杠分隔（例如，`123456789012/sg-1a2b3c4d`）。
   + 对于位于不同区域中的对等 VPC，输入对等 VPC 的 CIDR 块。

1. 要编辑现有的规则，请更改其值（例如，源或描述）。

1. 要删除规则，请选择该规则旁的**删除**。

1. 选择**保存规则**。

**使用命令行更新入站规则**
+ [authorize-security-group-ingress](https://docs.aws.amazon.com/cli/latest/reference/ec2/authorize-security-group-ingress.html) 和 [revoke-security-group-ingress](https://docs.aws.amazon.com/cli/latest/reference/ec2/revoke-security-group-ingress.html) (AWS CLI)
+ [Grant-EC2SecurityGroupIngress](https://docs.aws.amazon.com/powershell/latest/reference/items/Grant-EC2SecurityGroupIngress.html) 和 [Revoke-EC2SecurityGroupIngress](https://docs.aws.amazon.com/powershell/latest/reference/items/Revoke-EC2SecurityGroupIngress.html) (AWS Tools for Windows PowerShell)

例如，要更新安全组 `sg-aaaa1111` 以允许通过 HTTP 从对等 VPC 中的 `sg-bbbb2222` 进行入站访问，请使用以下命令。如果对等 VPC 位于同一区域但位于不同账户，则添加 `--group-owner` *aws-account-id*。

```
aws ec2 authorize-security-group-ingress --group-id sg-aaaa1111 --protocol tcp --port 80 --source-group sg-bbbb2222
```

**使用命令行更新出站规则**
+ [authorize-security-group-egress](https://docs.aws.amazon.com/cli/latest/reference/ec2/authorize-security-group-egress.html) 和 [revoke-security-group-egress](https://docs.aws.amazon.com/cli/latest/reference/ec2/revoke-security-group-egress.html) (AWS CLI)
+ [Grant-EC2SecurityGroupEgress](https://docs.aws.amazon.com/powershell/latest/reference/items/Grant-EC2SecurityGroupEgress.html) 和 [Revoke-EC2SecurityGroupEgress](https://docs.aws.amazon.com/powershell/latest/reference/items/Revoke-EC2SecurityGroupEgress.html) (AWS Tools for Windows PowerShell)

在更新安全组规则后，使用 [describe-security-groups](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-security-groups.html) 命令来查看安全组规则中引用的安全组。

## 确定引用的安全组
<a name="vpc-peering-referenced-groups"></a>

要确定在对等 VPC 中的安全组规则中是否正在引用您的安全组，请对账户中的一个或多个安全组使用以下命令之一。
+ [describe-security-group-references](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-security-group-references.html) (AWS CLI)
+ [Get-EC2SecurityGroupReference](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SecurityGroupReference.html) (AWS Tools for Windows PowerShell)

在以下示例中，响应表示安全组 `sg-bbbb2222` 正在被 VPC `vpc-aaaaaaaa` 中的安全组引用：

```
aws ec2 describe-security-group-references --group-id sg-bbbb2222
```

```
{    
  "SecurityGroupsReferenceSet": [
    {
      "ReferencingVpcId": "vpc-aaaaaaaa",
      "GroupId": "sg-bbbb2222",
      "VpcPeeringConnectionId": "pcx-b04deed9"       
    }   
  ]
}
```

如果删除 VPC 对等连接，或者对等 VPC 的拥有者删除引用的安全组，则安全组规则将过时。

## 查看并删除过时安全组规则
<a name="vpc-peering-stale-groups"></a>

过时的安全组规则是一种引用相同 VPC 或对等 VPC 中的已删除安全组的规则，或引用 VPC 对等连接已删除的对等 VPC 中的安全组的规则。系统不会从您的安全组中自动移除过时的安全组规则，您必须手动删除它们。当安全组规则因删除了 VPC 对等连接而变得过时的时候，如果您使用相同的 VPC 创建了新的 VPC 对等连接，则安全组规则将不再标记为过时。

您可以使用 Amazon VPC 控制台查看和删除某个 VPC 的过时安全组规则。

**查看和删除过时安全组规则**

1. 通过以下网址打开 Amazon VPC 控制台：[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 在导航窗格中，选择 **Security Groups**（安全组）。

1. 选择 **Actions (操作)**、**Manage stale rules (管理过时规则)**。

1. 对于 **VPC**，请选择具有过时规则的 VPC。

1. 选择**编辑**。

1. 选择您希望删除的规则旁边的 **Delete**（删除）按钮。选择 **Preview changes (预览更改)**，然后选择 **Save rules (保存规则)**。

**使用命令行描述您的过时的安全组规则**
+ [describe-stale-security-groups](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-stale-security-groups.html) (AWS CLI)
+ [Get-EC2StaleSecurityGroup](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2StaleSecurityGroup.html) (AWS Tools for Windows PowerShell)

在以下示例中，VPC A `(vpc-aaaaaaaa`) 和 VPC B 是对等的，并且已删除 VPC 对等连接。您在 VPC A 中的安全组 `sg-aaaa1111` 引用了 VPC B 中的 `sg-bbbb2222`。在为您的 VPC 运行 `describe-stale-security-groups` 命令时，响应表示安全组 `sg-aaaa1111` 具有引用了 `sg-bbbb2222` 的过时 SSH 规则。

```
aws ec2 describe-stale-security-groups --vpc-id vpc-aaaaaaaa
```

```
{
    "StaleSecurityGroupSet": [
        {
            "VpcId": "vpc-aaaaaaaa", 
            "StaleIpPermissionsEgress": [], 
            "GroupName": "Access1", 
            "StaleIpPermissions": [
                {
                    "ToPort": 22, 
                    "FromPort": 22, 
                    "UserIdGroupPairs": [
                        {
                            "VpcId": "vpc-bbbbbbbb", 
                            "PeeringStatus": "deleted", 
                            "UserId": "123456789101", 
                            "GroupName": "Prod1", 
                            "VpcPeeringConnectionId": "pcx-b04deed9", 
                            "GroupId": "sg-bbbb2222"
                        }
                    ], 
                    "IpProtocol": "tcp"
                }
            ], 
            "GroupId": "sg-aaaa1111", 
            "Description": "Reference remote SG"
        }
    ]
}
```

找到过时的安全组规则后，您可以使用 [revoke-security-group-ingress](https://docs.aws.amazon.com/cli/latest/reference/ec2/revoke-security-group-ingress.html) 或 [revoke-security-group-egress](https://docs.aws.amazon.com/cli/latest/reference/ec2/revoke-security-group-egress.html) 命令将其删除。

# 实现对 VPC 对等连接的 DNS 解析
<a name="vpc-peering-dns"></a>

VPC 对等连接的 DNS 设置确定如何解析通过 VPC 对等连接的请求的公有 DNS 主机名。如果 VPC 对等连接一端的 EC2 实例使用该实例的公有 IPv4 DNS 主机名向另一端的 EC2 实例发送请求，则解析 DNS 主机名的方法如下所示。

**已禁用 DNS 解析（默认）**  
公有 IPv4 DNS 主机名解析为实例的公有 IPv4 地址。

**已启用 DNS 解析**  
公有 IPv4 DNS 主机名解析为实例的私有 IPv4 地址。

**要求**
+ 必须为 DNS 主机名和 DNS 解析启用两种 VPC。有关更多信息，请参阅《Amazon VPC 用户指南》**中的 [VPC 的 DNS 属性](https://docs.aws.amazon.com/vpc/latest/userguide/AmazonDNS-concepts.html#vpc-dns-support)。
+ 对等连接必须处于 `active` 状态。创建对等连接时，无法启用 DNS 解析。
+ 请求者 VPC 的拥有者必须修改请求者 VPC 对等连接选项，接受者 VPC 的拥有者必须修改接受者 VPC 对等连接选项。如果 VPC 位于同一账户内，则可以同时为请求者和接受者 VPC 启用 DNS 解析。这适用于同区域和跨区域 VPC 对等连接。

**要使用控制台实现对对等连接的 DNS 解析**

1. 通过 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 打开 Amazon VPC 控制台。

1. 在导航窗格中，选择 **Peering Connections**（对等连接）。

1. 选择 VPC 对等连接。

1. 选择**操作**和**编辑 DNS 设置**。

1. 要为来自请求者 VPC 的请求启用 DNS 解析，请选择**请求者 DNS 解析**和**允许接受者 VPC 解析请求者 VPC 的 DNS**。

1. 为确保对来自接受者 VPC 的请求进行 DNS 解析，请选择**接受者 DNS 解析**和**允许请求者 VPC 解析接受者 VPC 的 DNS**。

1. 选择**保存更改**。

**使用命令行启用 DNS 解析**
+ [modify-vpc-peering-connection-options](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-vpc-peering-connection-options.html) (AWS CLI)
+ [Edit-EC2VpcPeeringConnectionOption](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2VpcPeeringConnectionOption.html) (AWS Tools for Windows PowerShell)

**要使用命令行描述 VPC 对等连接选项**
+ [describe-vpc-peering-connections](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-peering-connections.html) (AWS CLI)
+ [Get-EC2VpcPeeringConnection](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2VpcPeeringConnection.html) (AWS Tools for Windows PowerShell)

# 删除 VPC 对等连接
<a name="delete-vpc-peering-connection"></a>

对等连接中任一 VPC 的拥有者都可以随时删除 VPC 对等连接。您还可以删除您所请求的状态仍为 `pending-acceptance` 的 VPC 对等连接。

您无法删除处于 `rejected` 状态的 VPC 对等连接。我们会自动为您删除连接。

在 Amazon VPC 控制台中删除作为活动 VPC 对等连接的一部分的 VPC 也会删除该 VPC 对等连接。如果您请求了与其他账户中的 VPC 建立 VPC 对等连接，您在另一方接受此请求之前删除了您的 VPC，则 VPC 对等连接也将被删除。您无法删除其他账户中的 VPC 发出的 `pending-acceptance` 请求所涉及到的 VPC。您必须首先拒绝此 VPC 对等连接请求。

删除对等连接时，状态设置为 `Deleting`，然后将变为 `Deleted`。连接删除后将不能接受、拒绝或编辑。有关对等连接保持多长时间可见的更多信息，请参阅 [VPC 对等连接的生命周期](vpc-peering-basics.md#vpc-peering-lifecycle)。

**要删除 VPC 对等连接，请按以下步骤操作**

1. 通过以下网址打开 Amazon VPC 控制台：[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 在导航窗格中，选择 **Peering Connections**（对等连接）。

1. 选择 VPC 对等连接。

1. 依次选择 **Actions**（操作）、**Delete peering connection**（删除对等连接）。

1. 提示进行确认时，输入 **delete**，然后选择 **Delete**（删除）。

**使用命令行删除 VPC 对等连接**
+ [delete-vpc-peering-connection](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-vpc-peering-connection.html) (AWS CLI)
+ [Remove-EC2VpcPeeringConnection](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2VpcPeeringConnection.html) (AWS Tools for Windows PowerShell)

# 对 VPC 对等连接进行问题排查
<a name="troubleshoot-vpc-peering-connections"></a>

如果您在从对等 VPC 中的资源连接到 VPC 中的资源时遇到问题，请执行以下操作：
+ 对于每个 VPC 中的每个资源，验证其子网的路由表中是否包含将以对等 VPC 为目的地的流量发送到 VPC 对等连接的路由。此举可确保网络流量在两个 VPC 之间正常流动。有关更多信息，请参阅 [更新路由表](vpc-peering-routing.md)。
+ 对于任何涉及的 EC2 实例，验证这些实例的安全组是否允许来自对等 VPC 的入站和出站流量。安全组规则可控制允许访问 EC2 实例的流量。有关更多信息，请参阅 [引用对等安全组](vpc-peering-security-groups.md)。
+ 检查包含您资源的子网的网络 ACL 是否允许来自对等 VPC 的必要流量。网络 ACL 是额外的安全层，可在子网级别过滤流量。

若仍有问题，则可使用 Reachability Analyzer。Reachability Analyzer 可以帮助识别导致两个 VPC 之间出现连接问题的特定组件（无论是路由表、安全组还是网络 ACL）。有关更多信息，请参阅 [Reachability Analyzer 角色指南](https://docs.aws.amazon.com/vpc/latest/reachability/)。

彻底验证 VPC 网络配置是排查和解决 VPC 对等连接可能出现的任何问题的关键措施。