不同VPC默认网络隔离,无法互通。通过创建对等连接,并为两端VPC分别配置路由,可以实现VPC私网互通。对等连接功能支持同账号/跨账号、同地域/跨地域VPC互连,配置前请确保两端VPC的网段不重叠。
工作流程
VPC 对等连接通过私网连通两个VPC,使部署在两端 VPC 中的资源可以使用私网 IP 互访。
创建VPC对等连接:同账号VPC,系统会自动接受请求并建立连接。跨账号VPC,需要接收端账号接受连接请求。
双向路由配置:为两端VPC分别配置指向对端VPC的路由,才能实现资源互访。
当有大量 VPC 互连、大带宽、低成本的综合需求时,可同时使用 VPC 对等连接和云企业网。二者区别,可参考VPC互连。
配置对等连接
控制台
前置检查:
确保两端VPC的网段不重叠。若重叠,需将业务迁移到网段不重叠的VPC中。
如果初次使用VPC对等连接,需要确保两端VPC所属账号都开通CDT功能。
创建对等连接:
前往专有网络控制台 - VPC对等连接,在页面上方选择VPC所在的地域,单击创建对等连接。
创建对等连接:根据两端VPC实例所属的账号和地域,选择接收端账号类型和接收端地域类型。
接收端账号类型:
同账号:系统会自动接受请求并建立连接。
跨账号:需要使用接收端账号前往专有网络控制台 - VPC对等连接,在页面上方选择 VPC 所在的地域,在目标对等连接的操作列单击接收。
接收端也可以拒绝或删除连接请求,可以参考VPC对等连接的状态机了解完整流程。
接收端地域类型为跨地域时,需配置链路类型和接收端地域。
支持铂金、金两种链路类型,提供不同质量的流量传输服务,对应不同的计费单价。
铂金(服务可用性承诺:99.995%):适用于对链路抖动、时延敏感,对链路质量要求较高的业务。例如证券交易、在线语音、视频会议、实时游戏等。
金(服务可用性承诺:99.95%):适用于对链路质量不敏感的业务。例如数据同步、文件传输等。
双向路由配置:
如需使用IPv6地址互访,需配置指向对端VPC实例的IPv6网段的路由条目。
使用发起端 VPC 所属账号:
在对等连接列表页,查看目标对等连接的接收端CIDR。
单击发起端VPC实例列的配置路由条目,选择该 VPC 中需连通的资源所在交换机绑定的路由表,配置目标网段为接收端CIDR。
使用接收端 VPC 所属账号:
在对等连接列表页,查看目标对等连接的发起端CIDR。
单击接收端VPC实例列的配置路由条目,选择该 VPC 中需连通的资源所在交换机绑定的路由表,配置目标网段为发起端CIDR。
验证连通性:
路径分析:分析过程不发送真实数据包,不会影响业务运行。
在目标对等连接实例的诊断列选择
或单击目标对等连接实例ID进入路径分析页签。配置源与目的,指定具体的协议和端口号来模拟业务访问场景,校验二者的连通性。
系统将检查路由/安全组/网络ACL的配置,并给出诊断结果。
单向路径可达时,单击反向路径分析,配置反向路径进行连通性校验。
手动验证:在发起端VPC内的ECS,执行
ping <对端 ECS 的私网 IP>
。
创建跨地域对等连接后,单击实例ID,支持编辑跨地域对等连接的带宽(Mbps)和链路类型。
两端账号均可删除VPC对等连接。删除后,私网互访能力将会中断,且删除后无法恢复,需确保在对业务无影响的情况下谨慎操作。
API
创建对等连接
调用CreateVpcPeerConnection创建VPC对等连接。
两端VPC属于不同账号时,需使用接收端账号调用AcceptVpcPeerConnection接受VPC对等连接。
接收端可以调用RejectVpcPeerConnection拒绝VPC对等连接。
使用两端 VPC 所属账号,分别调用GetVpcPeerConnectionAttribute查询两端VPC的网段。
使用两端 VPC 所属账号,分别调用CreateRouteEntry创建指向对等连接的路由条目。
修改跨地域对等连接
调用ModifyVpcPeerConnection修改跨地域VPC对等连接的带宽或链路类型。
删除对等连接
调用DeleteRouteEntry删除指向对等连接的路由条目。
调用DeleteVpcPeerConnection删除VPC对等连接。
路径分析
依次调用以下API来使用路径分析校验连通性。
Terraform
同账号对等连接
Resources:alicloud_vpc_peer_connection、alicloud_route_entry
Data Sources:alicloud_account
# VPC所属账号
data "alicloud_account" "default" {}
provider "alicloud" {
alias = "local"
region = "cn-hangzhou" #发起端VPC所属地域。
}
provider "alicloud" {
alias = "accepting"
region = "cn-beijing" #接收端地域。可以和发起端地域相同,需要根据接收端VPC所属地域配置。
}
# 发起端VPC ID
variable "local_vpc_id" {
default = "vpc-bp1c******"
}
# 接收端VPC ID
variable "accepting_vpc_id" {
default = "vpc-2zev******"
}
# 创建VPC对等连接
resource "alicloud_vpc_peer_connection" "example_peer_connection" {
provider = alicloud.local
peer_connection_name = "example_peer_connection_name"
vpc_id = var.local_vpc_id # 发起端VPC ID
accepting_ali_uid = data.alicloud_account.default.id # 接收端账号 ID
accepting_region_id = "cn-beijing" # 接收端VPC所属地域
accepting_vpc_id = var.accepting_vpc_id # 接收端VPCID
bandwidth = 1024 # 带宽,单位:Mbps。仅发起端地域和接收端地域不同时,可以配置。
link_type = "Gold" # 链路类型,仅发起端地域和接收端地域不同时,可以配置。
}
# 为发起端VPC配置路由
resource "alicloud_route_entry" "example_local_route" {
provider = alicloud.local
route_table_id = "vtb-bp1a******" # 发起端实例所属交换机绑定的路由表
destination_cidrblock = "172.16.0.0/12" # 接收端VPC网段
nexthop_type = "VpcPeer" # 下一跳为VPC对等连接
nexthop_id = alicloud_vpc_peer_connection.example_peer_connection.id
}
# 为接收端VPC配置路由
resource "alicloud_route_entry" "example_acceptor_route" {
provider = alicloud.accepting
route_table_id = "vtb-2ze1******" # 接收端实例所属交换机绑定的路由表
destination_cidrblock = "10.0.0.0/8" # 发起端VPC网段
nexthop_type = "VpcPeer" # 下一跳为VPC对等连接
nexthop_id = alicloud_vpc_peer_connection.example_peer_connection.id
}
跨账号对等连接
Resources:alicloud_vpc_peer_connection、alicloud_vpc_peer_connection_accepter、alicloud_route_entry
provider "alicloud" {
alias = "local"
region = "cn-hangzhou" #发起端地域
}
#接收端地域。可以和发起端地域相同,需要根据接收端VPC所属地域配置。
variable "accepting_region" {
default = "cn-beijing"
}
#接收端账号
variable "accepting_uid" {
default = "1234******"
}
#接收端账号AK
variable "access_key_id" {
description = "The AccessKey ID for operating your infrastructure"
}
#接收端账号SK
variable "access_key_secret" {
description = "The AccessKey Secret for operating your infrastructure"
}
provider "alicloud" {
alias = "acceptor"
region = var.accepting_region
access_key = var.access_key_id
secret_key = var.access_key_secret
}
# 发起端VPC ID
variable "local_vpc_id" {
default = "vpc-2ze0******"
}
# 接收端VPC ID
variable "accepting_vpc_id" {
default = "vpc-wz9e******"
}
# 创建VPC对等连接
resource "alicloud_vpc_peer_connection" "example_peer_connection" {
provider = alicloud.local
peer_connection_name = "example_peer_connection_name"
vpc_id = var.local_vpc_id # 发起端VPC ID
accepting_ali_uid = var.accepting_uid # 接收端账号ID
accepting_region_id = var.accepting_region # 接收端地域
accepting_vpc_id = var.accepting_vpc_id # 接收端VPC ID
bandwidth = 1024 # 带宽,单位:Mbps。仅发起端地域和接收端地域不同时,可以配置。
link_type = "Gold" # 链路类型,仅发起端地域和接收端地域不同时,可以配置。
}
# 接收端接受对等连接请求
resource "alicloud_vpc_peer_connection_accepter" "example_peer_connection_accepter" {
provider = alicloud.acceptor
instance_id = alicloud_vpc_peer_connection.example_peer_connection.id
}
# 为发起端VPC配置路由
resource "alicloud_route_entry" "example_local_route" {
provider = alicloud.local
route_table_id = "vtb-2zel******" # 发送端实例所属交换机绑定的路由表
destination_cidrblock = "192.168.0.0/24" # 接收端VPC网段
nexthop_type = "VpcPeer" # 下一跳为VPC对等连接
nexthop_id = alicloud_vpc_peer_connection.example_peer_connection.id
}
# 为接收端VPC配置路由
resource "alicloud_route_entry" "example_acceptor_route" {
provider = alicloud.acceptor
route_table_id = "vtb-wz95******" # 接收端实例所属交换机绑定的路由表
destination_cidrblock = "172.16.0.0/12" # 发起端VPC网段
nexthop_type = "VpcPeer" # 下一跳为VPC对等连接
nexthop_id = alicloud_vpc_peer_connection.example_peer_connection.id
}
网络连通性排查
检查项 | 检查内容 | 解决方案 |
对等连接状态 | 查看目标对等连接实例的状态是否为已激活。 | 如果状态为对端接收中,需要联系接收端账号接受连接。 |
网段配置 | 查看发起端CIDR和接收端CIDR:
|
|
路由配置 | 查看对等连接详情页的路由条目列表:
| 检查并修正双向路由配置。 |
访问规则配置 |
| 确保安全组、网络 ACL、RDS的访问白名单均放行对端 IP。 |
配置示例
三个VPC互访
为VPC对等连接配置路由时,可以:
将对端VPC网段设为目标网段,所有实例均可以互相访问,简化管理。
配置更精细的路由,将对端VPC中的交换机网段或特定实例的IP地址设为目标网段,增强安全性。但新增实例需要通信时,须手动更新路由表。
例如,VPC1 配置了指向 VPC2 交换机3网段和 VPC3 中 ECS04 的路由,因此 VPC1 资源仅可与交换机3资源、ECS04 私网通信。VPC2 和 VPC3 配置了指向对端 VPC 网段的路由,资源可完全互访。
多个VPC与中心VPC互连
例如,分支VPC均可访问中心VPC部署的服务,但分支VPC间无法互访。典型场景:
多部门隔离:不同业务部门VPC不能互通,但需访问中心VPC的共享服务。
多用户隔离:服务部署在独立VPC内,提供给多个用户。每个用户VPC都与服务VPC互通,但用户VPC之间无法互通。
监控运维
跨地域对等连接支持查看流量带宽、丢包率等监控信息。结合云监控服务创建阈值报警规则,可实时监控连接状态,及时发现和解决网络拥堵或故障问题。
同地域对等连接不支持查看监控指标。
控制台
对等连接监控
前往专有网络控制台 - VPC对等连接,在页面上方选择VPC所在的地域。
单击目标跨地域VPC对等连接实例监控列的
图标,查看流量带宽与丢包情况等监控信息。
云监控告警
前往云监控控制台 - 报警规则,单击创建报警规则。
为VPC对等连接的监控指标项配置各报警级别的阈值,当相应指标达到阈值后,报警联系人组将接收到报警通知,也可以在目标报警规则的操作列,点击报警历史查看报警时间线。
在目标报警规则的操作列,修改/禁用/删除规则。
API
参考对等连接云监控指标,调用PutResourceMetricRules为VPC对等连接指定监控项设置多条阈值报警规则。
调用EnableMetricRules启用一个或多个报警规则。
调用DisableMetricRules禁用报警规则。
调用DeleteMetricRules删除一个或多个报警规则。
Terraform
参考对等连接云监控指标配置阈值报警规则。
Resources:alicloud_cms_alarm_contact、alicloud_cms_alarm_contact_group、alicloud_cms_alarm
# 监控的对等连接实例ID
variable "vpc_peer_id" {
default = "pcc-28cv******"
}
# 创建报警联系人
resource "alicloud_cms_alarm_contact" "example_cms_alarm_contact" {
alarm_contact_name = "example_cms_alarm_contact_name"
describe = "example_vpc_peer_alarm"
channels_mail = "xxx@xxx.com" # 需修改为实际的Email地址
lifecycle {
ignore_changes = [channels_mail]
}
}
# 创建报警联系人组
resource "alicloud_cms_alarm_contact_group" "example_cms_alarm_contact_group" {
alarm_contact_group_name = "example_cms_alarm_contact_group"
contacts = [alicloud_cms_alarm_contact.example_cms_alarm_contact.id] # 报警联系人
}
# 创建报警规则
resource "alicloud_cms_alarm" "example_cms_alarm" {
name = "example_cms_alarm_name"
project = "acs_vpcpeer" # 云产品的数据命名空间
metric = "IntranetRX" # 监控项名称
period = 60 # 统计周期
contact_groups = [alicloud_cms_alarm_contact_group.example_cms_alarm_contact_group.alarm_contact_group_name]
effective_interval = "06:00-20:00" # 生效时间
metric_dimensions = <<EOF
[
{
"instanceId": "${var.vpc_peer_id}"
}
]
EOF
escalations_critical { # Info级别报警
statistics = "Sum" # 报警统计方法
comparison_operator = ">=" # 阈值比较符
threshold = 104857600 # 阈值
times = 2 # 报警重试次数
}
}
常见问题
对等连接是否支持跨境互连?
支持非跨境、跨境。
非跨境:中国内地地域到中国内地地域、非中国内地地域到非中国内地地域。
跨境:中国内地地域到非中国内地地域。需前往跨境云专线申请企业资质,跨境专线由中国联通提供。
对等连接的网络时延如何?
同地域对等连接:网络延迟较低。
跨地域对等连接:由于涉及不同地域之间的数据传输,延迟取决于两地之间的物理距离和网络状况。 使用云网络互访性能观测,可以查看地域间的网络平均时延作为参考,选择适合业务的链路类型。
创建对等连接时无法选择目标VPC?
请确认选择的地域和账号与目标VPC的地域和拥有者一致。
页面上方显示发起端地域,当前账号为发起端账号。接收端账号和地域在创建对等连接时配置。
更多信息
使用限制
以下情况不支持创建 VPC 对等连接:
两端 VPC 归属于不同站点的账号,即中国站账号与国际站账号。
两端 VPC 归属于不同类型的地域,即公有云地域、金融云地域和政务云地域。
VPC对等连接不具备路由传递能力。
例如,VPC 1和VPC 2、VPC 3分别使用对等连接实现私网互通,但VPC 2和VPC 3不能通过VPC 1做中转互通。
多账号共享VPC时,资源所有者可以创建/修改/删除对等连接,而资源使用者没有操作权限。
计费说明
同地域VPC对等连接:两端VPC属于同账号或跨账号,均不收取任何费用。
跨地域VPC对等连接:统一由云数据传输CDT按出向流量收取流量传输费。
计费单价根据地域到地域粒度、链路类型来确定。支持铂金、金两种链路类型,提供不同质量的流量传输服务。
计费周期为每小时。如果在计费周期内切换链路类型,将按照较高服务等级的单价进行计费。
如图,跨地域跨账号的VPC1和VPC2建立了对等连接。若 VPC1 和 VPC2 通过对等连接流出的流量分别为200GB和100GB,链路类型选择金,华北5(呼和浩特)到华南3(广州)的跨地域流量费单价为0.48元/GB。依据出向流量计费规则:
账号A需要支付的费用为:0.48元/GB × 200GB = 96元
账号B需要支付的费用为:0.48元/GB × 100GB = 48元
VPC对等连接的状态机
从发起端发送创建请求开始,VPC对等连接会经过各个阶段。
如果创建的是同账号VPC对等连接,系统会自动发起连接请求并自动接受请求,VPC对等连接变为已激活状态。
VPC对等连接状态说明
支持的地域
公有云支持的地域
区域 | 支持VPC对等连接的地域 |
亚太-中国 | 华东1(杭州)、华东2(上海)、华东5 (南京-本地地域-关停中)、华北1(青岛)、华北2(北京)、华北3(张家口)、华北5(呼和浩特)、华北6(乌兰察布)、华南1(深圳)、华南2(河源)、华南3(广州)、西南1(成都)、中国香港、华中1(武汉-本地地域)、华东6(福州-本地地域-关停中) |
亚太-其他 | 日本(东京)、韩国(首尔)、新加坡、马来西亚(吉隆坡)、印度尼西亚(雅加达)、菲律宾(马尼拉)、泰国(曼谷) |
欧洲与美洲 | 德国(法兰克福)、英国(伦敦)、美国(硅谷)、美国(弗吉尼亚) |
中东 | 阿联酋(迪拜)、沙特(利雅得) 重要 沙特(利雅得)地域由合作伙伴运营。 |
金融云支持的地域
区域 | 支持VPC对等连接的地域 |
亚太 | 华南1 金融云、华东2 金融云、华北2 金融云(邀测) |
政务云支持的地域
区域 | 支持VPC对等连接的地域 |
亚太 | 华北2 阿里政务云1 |
配额
配额名称 | 描述 | 默认限制 | 提升配额 |
vpc_quota_cross_region_peer_num_per_vpc | 单个VPC支持的跨地域VPC对等连接数量 | 20个 | |
vpc_quota_intra_region_peer_num_per_vpc | 单个VPC支持的同地域VPC对等连接数量 | 10个 | |
vpc_quota_peer_num | 单个阿里云账号单地域支持的VPC对等连接数量 | 20个 | |
vpc_quota_peer_cross_border_bandwidth | 跨境带宽允许的最大值 | 1024 Mbps | |
vpc_quota_peer_cross_region_bandwidth | 跨地域带宽允许的最大值 | 1024 Mbps |