具有特定路由的 VPC 对等配置
您可以为 VPC 对等连接配置路由表,以限制对等 VPC 内子网 CIDR 块、特定 CIDR 块(如果 VPC 有多个 CIDR 块)或特定资源的访问权限。在这些示例中,一个中心 VPC 与具有重叠 CIDR 块的至少两个或更多 VPC 对等连接。
有关可能需要特定 VPC 对等连接配置的方案示例,请参阅VPC 对等连接的联网场景。有关使用 VPC 对等连接的更多信息,请参阅 使用 VPC 对等连接。有关更新路由表的更多信息,请参阅为 VPC 对等连接更新路由表。
配置
访问一个 VPC 中特定子网的两个 VPC
此配置包含一个具有两个子网的中心 VPC(VPC A)、VPC A 与 VPC B 之间的 VPC 对等连接 (pcx-aaaabbbb
),以及 VPC A 与 VPC C 之间的 VPC 对等连接 (pcx-aaaacccc
)。每个 VPC 只需要访问 VPC A 中一个子网内的资源。
子网 1 的路由表使用 VPC 对等连接 pcx-aaaabbbb
来访问 VPC B 的整个 CIDR 块。VPC B 的路由表使用 pcx-aaaabbbb
来仅访问 VPC A 中子网 1 的 CIDR 块。子网 2 的路由表使用 VPC 对等连接 pcx-aaaacccc
来访问 VPC C 的整个 CIDR 块。VPC C 的路由表使用 pcx-aaaacccc
来仅访问 VPC A 中子网 2 的 CIDR 块。
路由表 | 目的地 | 目标 |
---|---|---|
子网 1(VPC A) | VPC A CIDR |
本地 |
VPC B CIDR |
pcx-aaaabbbb | |
子网 2(VPC A) | VPC A CIDR |
本地 |
VPC C CIDR |
pcx-aaaacccc | |
VPC B | VPC B CIDR |
本地 |
子网 1 CIDR |
pcx-aaaabbbb | |
VPC C | VPC C CIDR |
本地 |
子网 2 CIDR |
pcx-aaaacccc |
您可以将此配置扩展到多个 CIDR 块。假设 VPC A 和 VPC B 同时具有 IPv4 和 IPv6 CIDR 块,子网 1 同时具有关联的 IPv6 CIDR 块。您可以使用 VPC 对等连接使 VPC B 能够通过 IPv6 与 VPC A 中的子网 1 通信。为此,请为 VPC A 的路由表添加一条目的地为 VPC B 的 IPv6 CIDR 块的路由,并为 VPC B 的路由表添加一条目的地为 VPC A 中子网 1 的 IPv6 CIDR 块的路由。
路由表 | 目的地 | 目标 | 注意 |
---|---|---|---|
VPC A 中的子网 1 | VPC A IPv4 CIDR |
本地 | |
VPC A IPv6 CIDR |
本地 | VPC 中自动添加的用于 IPv6 通信的本地路由。 | |
VPC B IPv4 CIDR |
pcx-aaaabbbb | ||
VPC B IPv6 CIDR |
pcx-aaaabbbb | 到 VPC B 的 IPv6 CIDR 块的路由。 | |
VPC A 中的子网 2 | VPC A IPv4 CIDR |
本地 | |
VPC A IPv6 CIDR |
本地 | VPC 中自动添加的用于 IPv6 通信的本地路由。 | |
VPC C IPv4 CIDR |
pcx-aaaacccc | ||
VPC B | VPC B IPv4 CIDR |
本地 | |
VPC B IPv6 CIDR |
本地 | VPC 中自动添加的用于 IPv6 通信的本地路由。 | |
子网 1 IPv4 CIDR |
pcx-aaaabbbb | ||
子网 1 IPv6 CIDR |
pcx-aaaabbbb | 到 VPC A 的 IPv6 CIDR 块的路由。 | |
VPC C | VPC C IPv4 CIDR |
本地 | |
子网 2 IPv4 CIDR |
pcx-aaaacccc |
访问一个 VPC 中特定 CIDR 块的两个 VPC
此配置包含一个中心 VPC(VPC A)、VPC A 与 VPC B 之间的 VPC 对等连接 (pcx-aaaabbbb
),以及 VPC A 与 VPC C 之间的 VPC 对等连接 (pcx-aaaacccc
)。VPC A 为 VPC 对等连接提供了一个 CIDR 块。
路由表 | 目的地 | 目标 |
---|---|---|
VPC A | VPC A CIDR 1 |
本地 |
VPC A CIDR 2 |
本地 | |
VPC B CIDR |
pcx-aaaabbbb | |
VPC C CIDR |
pcx-aaaacccc | |
VPC B | VPC B CIDR |
本地 |
VPC A CIDR 1 |
pcx-aaaabbbb | |
VPC C | VPC C CIDR |
本地 |
VPC A CIDR 2 |
pcx-aaaacccc |
访问两个 VPC 中特定子网的一个 VPC
此配置包含一个具有一个子网的中心 VPC(VPC A)、VPC A 与 VPC B 之间的 VPC 对等连接 (pcx-aaaabbbb
),以及 VPC A 与 VPC C 之间的 VPC 对等连接 (pcx-aaaacccc
)。VPC B 和 VPC C 分别有两个子网。VPC A 与 VPC B 之间的对等连接仅使用 VPC B 中的一个子网。VPC A 与 VPC C 之间的对等连接仅使用 VPC C 中的一个子网。
当您的中心 VPC 具有其他 VPC 需要访问的单个资源集(如 Active Directory 服务)时,请使用这种类型的配置。中心 VPC 无需可完全访问与之对等的 VPC。
VPC A 的路由表使用对等连接来仅访问对等 VPC 中的特定子网。子网 1 的路由表使用与 VPC A 的对等连接来访问 VPC A 中的子网。子网 2 的路由表使用与 VPC A 的对等连接来访问 VPC A 中的子网。
路由表 | 目的地 | 目标 |
---|---|---|
VPC A | VPC A CIDR |
本地 |
子网 1 CIDR |
pcx-aaaabbbb | |
子网 2 CIDR |
pcx-aaaacccc | |
子网 1(VPC B) | VPC B CIDR |
本地 |
VPC A CIDR 中的子网 |
pcx-aaaabbbb | |
子网 2(VPC C) | VPC C CIDR |
本地 |
VPC A CIDR 中的子网 |
pcx-aaaacccc |
响应流量路由
如果您的某个 VPC 与多个 VPC 建立了对等连接,并且这些 VPC 具有重叠或匹配的 CIDR 块,请确保路由表配置不会导致将响应流量从您的 VPC 发送到错误的 VPC。AWS 不支持在 VPC 对等连接中进行单播反向传输路径转发,即检查数据包的源 IP 并将应答数据包路由回源。
例如,VPC A 与 VPC B 和 VPC C 具有对等关系。VPC B 和 VPC C 具有匹配 CIDR 块,并且其子网具有匹配 CIDR 块。VPC B 中子网 2 的路由表指向 VPC 对等连接 pcx-aaaabbbb
以访问 VPC A 的子网。VPC A 路由表配置为将目的地为 VPC CIDR 的流量发送到对等连接 pcx-aaaaccccc
。
路由表 | 目的地 | 目标 |
---|---|---|
子网 2(VPC B) | VPC B CIDR |
本地 |
VPC A CIDR 中的子网 |
pcx-aaaabbbb | |
VPC A | VPC A CIDR |
本地 |
VPC C CIDR |
pcx-aaaacccc |
假设 VPC B 中子网 2 中的实例使用 VPC 对等连接 pcx-aaaabbbb
向 VPC A 中的 Active Directory 服务器发送流量。VPC A 向 Active Directory 服务器发送响应流量。但是,VPC A 路由表配置为将 VPC CIDR 范围中的所有流量都发送到 VPC 对等连接 pcx-aaaacccc
。如果 VPC C 中的子网 2 具有与 VPC B 的子网 2 中的实例相同的 IP 地址,则它从 VPC A 接收响应流量。VPC B 中子网 2 内的实例不接收对其到 VPC A 的请求的响应。
为了防止这种情况,您可以将某个特定路由添加到 VPC A 路由表,其目的地为 VPC B 中子网 2 的 CIDR,目标为 pcx-aaaabbbb
。由于新路由更加具体,因此,目的地为子网 2 CIDR 的流量将路由至 VPC 对等连接 pcx-aaaabbbb
或者,在以下示例中,VPC A 路由表针对每个 VPC 对等连接都具有每个子网的路由。VPC A 可以与 VPC B 中的子网 B 以及 VPC C 中的子网 A 进行通信。如果您需要添加与另一子网(与 VPC B 及 VPC C 位于相同地址范围)的其他 VPC 对等连接,则此情况非常有用,您只需为该特定子网添加其他路由即可。
目标位置 | 目标 |
---|---|
VPC A CIDR |
本地 |
子网 2 CIDR |
pcx-aaaabbbb |
子网 1 CIDR |
pcx-aaaacccc |
或者,根据您的使用案例,您可以创建到 VPC B 中特定 IP 地址的路由,确保将流量路由回正确的服务器 (路由表使用最长前缀匹配来确定路由的优先级):
目标位置 | 目标 |
---|---|
VPC A CIDR |
本地 |
子网 2 中的特定 IP 地址 |
pcx-aaaabbbb |
VPC B CIDR |
pcx-aaaacccc |
一个 VPC 中可访问两个 VPC 中特定实例的实例
此配置包含一个具有一个子网的中心 VPC(VPC A)、VPC A 与 VPC B 之间的 VPC 对等连接 (pcx-aaaabbbb
),以及 VPC A 与 VPC C 之间的 VPC 对等连接 (pcx-aaaacccc
)。VPC A 有一个子网,并且每个对等连接都有一个实例。您可使用这种类型的配置将对等流量限制到特定实例。
每个 VPC 的路由表都指向相关 VPC 对等连接,以访问对等 VPC 中的单个 IP 地址 (因而访问特定实例)。
路由表 | 目的地 | 目标 |
---|---|---|
VPC A | VPC A CIDR |
本地 |
实例 3 IP 地址 |
pcx-aaaabbbb | |
实例 4 IP 地址 |
pcx-aaaacccc | |
VPC B | VPC B CIDR |
本地 |
实例 1 IP 地址 |
pcx-aaaabbbb | |
VPC C | VPC C CIDR |
本地 |
实例 2 IP 地址 |
pcx-aaaacccc |
一个使用最长前缀匹配来访问两个 VPC 的 VPC
此配置包含一个具有一个子网的中心 VPC(VPC A)、VPC A 与 VPC B 之间的 VPC 对等连接 (pcx-aaaabbbb
),以及 VPC A 与 VPC C 之间的 VPC 对等连接 (pcx-aaaacccc
)。VPC B 和 VPC C 具有匹配 CIDR 块。您使用 VPC 对等连接 pcx-aaaabbbb
在 VPC A 与 VPC B 中的特定实例之间路由流量。以 VPC B 和 VPC C 共享的 CIDR 地址范围为目标的所有其他流量均通过 pcx-aaaacccc
路由到 VPC C。
VPC 路由表使用最长前缀匹配选择跨预期 VPC 对等连接的最具体路由。所有其他流量都通过下一个匹配路由 (在此例中,跨 VPC 对等连接 pcx-aaaacccc
) 进行路由。
路由表 | 目的地 | 目标 |
---|---|---|
VPC A | VPC A CIDR 块 |
本地 |
实例 X IP 地址 |
pcx-aaaabbbb | |
VPC C CIDR 块 |
pcx-aaaacccc | |
VPC B | VPC B CIDR 块 |
本地 |
VPC A CIDR 块 |
pcx-aaaabbbb | |
VPC C | VPC C CIDR 块 |
本地 |
VPC A CIDR 块 |
pcx-aaaacccc |
重要
如果 VPC B 中除实例 X 之外的实例向 VPC A 发送流量,则响应流量可能会路由到 VPC C,而不是 VPC B。有关更多信息,请参阅 响应流量路由。
多 VPC 配置
在此配置中,一个中心 VPC (VPC A) 采用轮辐型配置与多个 VPC 建立对等连接。您还具有采用完全网状配置对等的三个 VPC(VPC X、Y 和 Z)。
VPC D 还具有与 VPC X 之间的 VPC 对等连接(pcx-ddddxxxx
)。VPC A 和 VPC X 具有重叠 CIDR 块。这意味着 VPC A 与 VPC D 之间的对等流量仅限于 VPC D 中的特定子网(子网 1)。这是为了确保在收到来自 VPC A 或 VPC X 的请求时,VPC D 会将响应流量发送到正确的 VPC。AWS 不支持在 VPC 对等连接中进行单播反向传输路径转发,即检查数据包的源 IP 并将应答数据包路由回该源。有关更多信息,请参阅 响应流量路由。
同样,VPC D 和 VPC Z 具有重叠 CIDR 块。VPC D 与 VPC X 之间的对等流量限制为 VPC D 中的 子网 2,VPC X 与 VPC Z 之间的对等流量限制为 VPC Z 中的子网 1。这样是为了确保如果 VPC X 从 VPC D 或 VPC Z 接收对等流量,则它会将响应流量发送回正确的 VPC。
VPC B、C、E、F 和 G 的路由表指向相关对等连接以访问 VPC A 的完整 CIDR 块,VPC A 的路由表指向 VPC B、C、E、F 和 G 的相关对等连接以访问其完整 CIDR 块。对于对等连接 pcx-aaaadddd
,VPC A 的路由表仅将流量路由到 VPC D 中的子网 1,而 VPC D 中子网 1 的路由表指向 VPC A 的完整 CIDR 块。
VPC Y 的路由表指向相关对等连接以访问 VPC X 和 VPC Z 的完整 CIDR 块,VPC Z 的路由表指向相关对等连接以访问 VPC Y 的完整 CIDR 块。VPC Z 中子网 1 的路由表指向相关对等连接以访问 VPC Y 的完整 CIDR 块。VPC X 的路由表指向相关对等连接以访问 VPC D 中的子网 2 和 VPC Z 中的子网 1。
路由表 | 目的地 | 目标 |
---|---|---|
VPC A | VPC A CIDR |
本地 |
VPC B CIDR |
pcx-aaaabbbb | |
VPC C CIDR |
pcx-aaaacccc | |
VPC D 中的子网 1 CIDR |
pcx-aaaadddd | |
VPC E CIDR |
pcx-aaaaeeee | |
VPC F CIDR |
pcx-aaaaffff | |
VPC G CIDR |
pcx-aaaagggg | |
VPC B | VPC B CIDR |
本地 |
VPC A CIDR |
pcx-aaaabbbb | |
VPC C | VPC C CIDR |
本地 |
VPC A CIDR |
pcx-aaaacccc | |
VPC D 中的子网 1 | VPC D CIDR |
本地 |
VPC A CIDR |
pcx-aaaadddd | |
VPC D 中的子网 2 | VPC D CIDR |
本地 |
VPC X CIDR |
pcx-ddddxxxx | |
VPC E | VPC E CIDR |
本地 |
VPC A CIDR |
pcx-aaaaeeee | |
VPC F | VPC F CIDR |
本地 |
VPC A CIDR |
pcx-aaaaaffff | |
VPC G | VPC G CIDR |
本地 |
VPC A CIDR |
pcx-aaaagggg | |
VPC X | VPC X CIDR |
本地 |
VPC D 中的子网 2 CIDR |
pcx-ddddxxxx | |
VPC Y CIDR |
pcx-xxxxyyyy | |
VPC Z 中的子网 1 CIDR |
pcx-xxxxzzzz | |
VPC Y | VPC Y CIDR |
本地 |
VPC X CIDR |
pcx-xxxxyyyy | |
VPC Z CIDR |
pcx-yyyyzzzz | |
VPC Z | VPC Z CIDR |
本地 |
VPC Y CIDR |
pcx-yyyyzzzz | |
VPC X CIDR |
pcx-xxxxzzzz |