VPC对等连接的工作原理与限制条件详解
VPC对等连接的工作原理与限制条件详解
VPC对等连接是AWS中用于实现两个VPC之间网络通信的技术,它允许不同VPC中的资源通过私有IP地址直接通信。这种连接方式在多账户环境、混合云架构以及跨区域部署中具有重要作用。本文将详细介绍VPC对等连接的工作原理、生命周期以及相关限制条件。
VPC对等连接的工作原理
以下是VPC对等连接的基本流程:
请求者VPC的拥有者向接受者VPC的拥有者发送创建VPC对等连接的请求。接受者VPC可以归您或其他AWS账户所有,但不能包含与请求者VPC的CIDR块重叠的CIDR块。
接受者VPC的拥有者接受VPC对等连接请求以激活VPC对等连接。
要使用私有IP地址实现VPC之间的流量流动,VPC对等连接中每个VPC的拥有者必须向一个或多个VPC路由表手动添加指向其他VPC(对等VPC)的IP地址范围的路由。
如果需要,请更新与您的EC2实例关联的安全组规则以确保进出对等VPC的流量不受限制。如果两个VPC位于相同区域内,则您可以引用对等VPC中的安全组作为安全组中的入站或出站规则的源或目标。
通过默认VPC对等连接选项,如果VPC对等连接任一侧的EC2实例使用公有DNS主机名相互进行寻址,则主机名会解析为EC2实例的公有IP地址。要更改此行为,请为您的VPC连接启用DNS主机名解析。在启用DNS主机名解析后,如果VPC对等连接任一侧的EC2实例使用公有DNS主机名相互进行寻址,则主机名将解析为EC2实例的私有IP地址。
VPC对等连接的生命周期
从发起请求时开始,VPC对等连接会经过各个阶段。在每个阶段中,您都可以执行一些操作,在生命周期结束后,VPC对等连接仍会在Amazon VPC控制台和API或命令行输出中继续显示一段时间。
- Initiating-request(发起请求):已发起VPC对等连接请求。在这一阶段中,对等连接可能失败或可能转到pending-acceptance。
- Failed(已失败):VPC对等连接请求失败。在处于此状态时,无法接受、拒绝或删除该连接。请求者仍可在2个小时内看到失败的VPC对等连接。
- Pending-acceptance:等待接受者VPC的拥有者接受VPC对等连接请求。在这一阶段中,请求者VPC的拥有者可以删除此请求,接受者VPC的拥有者可以接受或拒绝此请求。如果双方均未对此请求执行任何操作,该请求将在7天后过期。
- Expired(已过期):VPC对等连接请求已过期,任一VPC拥有者都无法再对该请求执行任何操作。两个VPC拥有者仍可以在2天内看到已过期的VPC对等连接。
- Rejected:接受者VPC的拥有者拒绝了pending-acceptance VPC对等连接请求。在处于此状态时,无法接受请求。请求者VPC的拥有者仍可以在2天内看到已拒绝的VPC对等连接,接受者VPC的拥有者仍可在2个小时内看到此对等连接。如果请求是在同一AWS账户内创建的,则已拒绝的请求会继续显示2个小时。
- Provisioning(正在预置):VPC对等连接请求已接受,即将处于active状态。
- Active:VPC对等连接处于活动状态,而且流量可以在VPC之间流动(假设您的安全组和路由表允许流量流动)。在处于此状态时,任一VPC拥有者都可以删除VPC对等连接,但是无法拒绝它。
- Deleting(删除):适用于处于删除过程中的区域间VPC对等连接。任一VPC的拥有者已提交删除active VPC对等连接的请求,或者请求者VPC的拥有者已提交删除pending-acceptance VPC对等连接请求的请求。
- Deleted(已删除):任一VPC拥有者已删除了active的VPC对等连接,或请求者VPC的拥有者已删除了pending-acceptance的VPC对等连接请求。在这一阶段中,无法接受或拒绝VPC对等连接。VPC对等连接仍会向其删除方继续显示2个小时,向另一方显示2天。如果VPC对等连接是在同一AWS账户内创建的,则已删除的请求仍将继续显示2个小时。
多个VPC对等连接
VPC对等连接是两个VPC之间的一对一关系。您可以为您的每个VPC创建多个VPC对等连接,但是不支持传递的对等关系。您不会与您的VPC不直接对等的VPC形成任何对等关系。
下图举例说明一个VPC与两个不同的VPC具有对等关系。图中有两个VPC对等连接:VPC A同时与VPC B和VPC C具有对等关系。VPC B与VPC C不对等,并且您不能将VPC A用作VPC B和VPC C之间的对等中转点。如果您要在VPC B和VPC C之间支持流量路由,必须在这两者之间创建一个唯一的VPC对等连接。
VPC对等限制
请考虑以下VPC对等连接的限制。在某些情况下,您可以使用中转网关连接代替VPC对等连接。有关更多信息,请参阅《Amazon VPC中转网关》中的Example transit gateway scenarios。
连接
- 每个VPC具有的活动和待定VPC对等连接的数量具有配额。有关更多信息,请参阅账户的VPC对等连接配额。
- 两个VPC之间不能同时创建多个VPC对等连接。
- 您为VPC对等连接创建的任何标签仅在您创建它们的账户或区域中应用。
- 您无法连接或查询对等VPC中的Amazon DNS服务器。
- 如果VPC对等连接中VPC的IPv4 CIDR块不在RFC 1918所指定的私有IPv4地址范围内,则该VPC的私有DNS主机名无法解析为私有IP地址。要将私有DNS主机名解析为私有IP地址,您可以为VPC对等连接启用DNS解析支持。有关更多信息,请参阅实现对VPC对等连接的DNS解析。
- 您可以允许VPC对等连接两端的资源通过IPv6通信。您必须为每个VPC关联一个IPv6 CIDR块,允许VPC中的实例进行IPv6通信,并将针对对等VPC的IPv6流量路由到VPC对等连接。
- 不支持在VPC对等连接中进行单一地址反向传输路径转发。有关更多信息,请参阅响应流量路由。
重叠CIDR块
- 您无法在具有匹配或重叠的IPv4或IPv6 CIDR块的VPC之间创建VPC对等连接。
- 如果您有多个IPv4 CIDR块,则只要有任何CIDR块重叠,您都无法创建VPC对等连接,即使您打算仅使用不重叠的CIDR块或仅使用IPv6 CIDR块。
传递的对等
- VPC对等不支持传递的对等关系。例如,如果VPC A和VPC B之间以及VPC A和VPC C之间有VPC对等连接,则您无法通过VPC A将流量从VPC B路由到VPC C。要在VPC B和VPC C之间路由流量,您必须在两者之间创建VPC对等连接。有关更多信息,请参阅相互对等的三个VPC。
通过网关或私有连接进行的边缘到边缘路由
- 如果VPC A具有互联网网关,则VPC B中的资源无法使用VPC A中的互联网网关访问互联网。
- 如果VPC A具有为VPC A中的子网提供Internet访问的NAT设备,则VPC B中的资源无法使用VPC A中的NAT设备访问Internet。
- 如果VPC A具有连接到公司网络的VPN连接,则VPC B中的资源无法使用VPN连接与公司网络通信。
- 如果VPC A具有连接到公司网络的AWS Direct Connect连接,则VPC B中的资源无法使用AWS Direct Connect连接与公司网络通信。
- 如果VPC A的网关端点提供与Amazon S3到VPC A中的私有子网的连接,则VPC B中的资源无法使用网关端点访问Amazon S3。
区域间VPC对等连接
- 区域间跨VPC对等连接的最大传输单元(MTU)为1500字节。区域间VPC对等连接不支持巨型帧(MTU最高可达9001字节)。但是,同一区域的VPC对等连接支持巨型帧。有关巨型帧的更多信息,请参阅《Amazon EC2用户指南》中的巨型帧(9001 MTU)。
- 您必须为VPC对等连接启用DNS解析支持才能将对等VPC的私有DNS主机名解析为私有IP地址,即使VPC的IPv4 CIDR位于RFC 1918指定的私有IPv4地址范围内也是如此。
共享VPC和子网
- 只有VPC所有者可以使用(描述、创建、接受、拒绝、修改或删除)对等连接。参与者无法使用对等连接。有关更多信息,请参阅Amazon VPC用户指南中的与其他账户共享VPC。