VPC对等连接

不同VPC默认网络隔离,无法互通。通过创建对等连接,并为两端VPC分别配置路由,可以实现VPC私网互通。对等连接功能支持同账号/跨账号、同地域/跨地域VPC互通,配置前请确保两端VPC的网段不重叠。

工作原理

使用对等连接实现 VPC 互连的工作流程如下:

  1. 创建VPC对等连接:

    1. 同账号VPC,系统会自动接受请求并建立连接。跨账号VPC,需要在接收端账号接受连接请求后,方可建立连接。

    2. 同地域对等连接免费。跨地域对等连接,统一由云数据传输CDT按出向流量收取流量传输费

  2. 配置路由:为两端VPC分别配置指向对端VPC的路由,建立双向通信链路。

VPC 互连后,发起端和接收端没有任何差别,相当于在同一个网络中,部署在两端 VPC 中的资源可使用私网 IP 互访。

image

VPC对等连接的主要优势:VPC 数量较少时配置简单、同地域免费且不限制带宽。

当有如下需求时,需要使用云企业网:

  1. 大量VPC互连:每个转发路由器支持连接 1000 个 VPC,而单个 VPC 默认支持建立10个同地域对等连接和20个跨地域对等连接。

  2. 简化组网配置:转发路由器支持 Hub-Spoke 组网,支持路由学习与同步,实现全网路由动态更新。VPC数量超过3个时,建议使用云企业网。

  3. 特定组网场景:需要实现云上组播时,只能使用云企业网。对等连接仅支持两个VPC之间私网互连。

需要注意,转发路由器针对同地域连接也会收取连接费和流量处理费,而同地域对等连接免费。当有大量 VPC 互连、大带宽、低成本的综合需求时,可同时使用 VPC 对等连接和云企业网,实现复杂混合组网。

使用限制

  • 以下情况不支持创建 VPC 对等连接:

    • 两端 VPC 归属于不同站点的账号,即中国站账号与国际站账号。

    • 两端 VPC 归属于不同类型的地域,即公有云地域、金融云地域和政务云地域。

  • 两个 VPC 之间仅能创建1VPC对等连接。

  • VPC对等连接不具备路由传递能力。

    例如,VPC 1VPC 2、VPC 3分别使用对等连接实现私网互通,但VPC 2VPC 3不能通过VPC 1做中转互通。

    image
  • 多账号共享VPC时,资源所有者可以创建/修改/删除对等连接,而资源使用者没有操作权限。

创建/删除对等连接

对等连接支持同账号/跨账号、同地域/跨地域VPC互通,配置前请确保两端VPC的网段不重叠。

其中,跨地域对等连接:

  • 支持非跨境、跨境。

    • 非跨境:中国内地地域到中国内地地域、非中国内地地域到非中国内地地域。

    • 跨境:中国内地地域到非中国内地地域。需前往跨境云专线申请企业资质,跨境专线由中国联通提供。

  • 支持铂金、金两种链路类型,提供不同质量的流量传输服务,对应不同的计费单价

    • 铂金(服务可用性承诺:99.995%):适用于对链路抖动、链路时延非常敏感,对链路质量要求较高的业务。例如证券交易、在线语音、视频会议、实时游戏等。

    • 金(服务可用性承诺:99.95%):适用于对链路质量不敏感的业务。例如数据同步、文件传输等。

控制台

如果初次使用VPC对等连接,需要确保两端VPC所属账号都开通CDT功能
创建对等连接
  1. 前往专有网络控制台 - VPC对等连接,在页面上方选择VPC所在的地域,单击创建对等连接

  2. 创建对等连接:根据两端VPC实例所属的账号和地域,选择接收端账号类型和接收端地域类型。

    • 接收端账号类型:

      • 同账号:系统会自动接受请求并建立连接。

      • 跨账号:需要使用接收端账号前往专有网络控制台 - VPC对等连接,在页面上方选择 VPC 所在的地域,在目标对等连接的操作列单击接收

        接收端也可以拒绝删除连接请求,可以参考VPC对等连接的状态机了解完整流程。
    • 接收端地域类型为跨地域时,需配置链路类型接收端地域

  3. 为对等连接两端VPC实例添加指向对端的路由条目:

    如需使用IPv6地址互访,需配置指向对端VPC实例的IPv6网段的路由条目。
    当发起端CIDR与接收端CIDR重叠时,即使配置路由也无法连通。建议将业务迁移到网段不重叠的VPC中,重新建立对等连接。
    1. 使用发起端 VPC 所属账号:

      1. 在对等连接列表页,查看目标对等连接的接收端CIDR

      2. 单击发起端VPC实例列的配置路由条目,选择该 VPC 中需连通的资源所在交换机绑定的路由表,配置目标网段为接收端CIDR。

    2. 使用接收端 VPC 所属账号:

      1. 在对等连接列表页,查看目标对等连接的发起端CIDR

      2. 单击接收端VPC实例列的配置路由条目,选择该 VPC 中需连通的资源所在交换机绑定的路由表,配置目标网段为发起端CIDR。

修改跨地域对等连接

单击目标跨地域对等连接的实例ID,支持编辑跨地域对等连接的带宽(Mbps)链路类型

删除对等连接

VPC对等连接删除后,私网互访能力将会中断,且删除后无法恢复,需确保在对业务无影响的情况下谨慎操作。

在目标对等连接的操作列单击删除。可以选择去删除路由条目,在路由条目列表页签下或删除指向VPC对等连接的路由条目。也可以勾选确认不影响业务,删除上述所有对等连接及配置的路由条目,系统将强制删除VPC对等连接。

API

创建对等连接
  1. 调用CreateVpcPeerConnection创建VPC对等连接。

  2. 两端VPC属于不同账号时,需使用接收端账号调用AcceptVpcPeerConnection接受VPC对等连接。

    接收端可以调用RejectVpcPeerConnection拒绝VPC对等连接。
  3. 使用两端 VPC 所属账号,分别调用GetVpcPeerConnectionAttribute查询两端VPC的网段。

  4. 使用两端 VPC 所属账号,分别调用CreateRouteEntry创建指向对等连接的路由条目。

修改跨地域对等连接

调用ModifyVpcPeerConnection修改跨地域VPC对等连接的带宽或链路类型。

删除对等连接

Terraform

同账号对等连接
Resources:alicloud_vpc_peer_connectionalicloud_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_connectionalicloud_vpc_peer_connection_accepteralicloud_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
}

配置示例

三个VPC互访

VPC对等连接配置路由时,可以:

  • 将对端VPC网段设为目标网段,所有实例均可以互相访问,简化管理。

  • 配置更精细的路由,将对端VPC中的交换机网段或特定实例的IP地址设为目标网段,增强安全性。但新增实例需要通信时,须手动更新路由表。

例如,VPC1 配置了指向 VPC2 交换机3网段和 VPC3 中 ECS04 的路由,因此 VPC1 资源仅可与交换机3资源、ECS04 私网通信。VPC2 和 VPC3 配置了指向对端 VPC 网段的路由,资源可完全互访。

image

多个VPC与中心VPC互连

例如,分支VPC均可访问中心VPC部署的服务,但分支VPC间无法互访。典型场景:

  • 多部门隔离:不同业务部门VPC不能互通,但需访问中心VPC的共享服务。

  • 多用户隔离:服务部署在独立VPC内,提供给多个用户。每个用户VPC都与服务VPC互通,但用户VPC之间无法互通。

image

问题排查

对等连接配置完成后网络不通

检查项

常见问题

推荐解决方案

网段配置

对等连接的两端VPC网段重叠

将业务迁移到网段不重叠的VPC中,重新建立对等连接。

对等连接的两端VPC使用公网网段

使用IPv4网关实现公网私用,确保流量能够正确地到达目标VPC。

路由配置

仅为一端VPC配置指向对端VPC网段的路由

使用两端 VPC 所属账号,分别为各自 VPC 配置路由:选择资源所在交换机绑定的路由表,配置目标网段为对端VPCIPv4 或 IPv6 CIDR地址段。

路由条目的目标网段配置错误

路由条目的路由表配置错误

访问规则配置

互访实例的安全组、所在交换机绑定的网络ACL限制了对端IP的出入流量

为互访实例的安全组、所在交换机绑定的网络ACL配置放行对端IP的出/入方向规则。

详细排查步骤如下:

  1. 检查网段:在目标对等连接的详情页查看发起端CIDR接收端CIDR

    1. 确认两端VPC网段是否重叠。

      网段重叠时,如果配置对端VPC网段作为目标网段,流量会优先匹配系统路由,在VPC内部转发,无法抵达对端VPC。

      如果交换机网段不重叠,可以配置对端交换机网段作为目标网段。但新建交换机需要使用与现有交换机网段不重叠的网段。因此,建议将业务迁移到网段不重叠的VPC中,重新建立对等连接。

      image

      如果交换机网段重叠,由于无法配置比系统路由更明细的路由,只能将业务迁移到网段不重叠的 VPC,重新建立对等连接。

      image
    2. 确认两端VPC是否使用公网网段。

      VPC 将RFC 1918之外的 IP 地址空间(如 30.0.0.0/16)视为公网网段。当 VPC 中的资源具备公网访问能力时,流量会优先访问公网,无法通过对等连接到达目标 VPC。需要使用IPv4网关实现公网私用,确保流量正确路由到目标VPC。

  2. 检查路由:单击目标对等连接实例ID,检查路由条目列表

    1. 发起端CIDR接收端CIDR对比,确认两端VPC都已配置了指向对端的路由,且目标网段属于对端VPC。

    2. 单击路由表ID,查看已绑定交换机,确认其与实例所属交换机绑定。如果实例部署在多个交换机,且绑定不同路由表,需确保在每个路由表中均添加指向对端的路由。

  3. 检查访问控制规则。

    1. 确认互访ECS实例的安全组均已配置放行对端IP的出/入方向规则。

    2. 确认已将对端IP添加到互访RDS实例的访问白名单。

    3. 确认与交换机绑定的网络 ACL 已配置放行对端 IP 的出入方向规则。

使用对等连接实例详情页面的路径分析功能可以进行问题排查,根据提示信息解决连通性问题。路径分析不支持双向同时检测,单向路径可达时需进行反向路径分析,确保双向连通性。

创建对等连接时无法选择目标VPC

请确认选择的地域和账号与目标VPC地域拥有者一致。

页面上方显示发起端地域,当前账号为发起端账号。接收端账号和地域在创建对等连接时配置。

监控运维

您可以查看跨地域对等连接的流量带宽、丢包率等监控信息。结合云监控服务创建阈值报警规则,可实时监控连接状态,及时发现和解决网络拥堵或故障问题。

同地域对等连接不支持查看监控指标。

监控指标项

监控指标项

说明

周期内入方向流量

在一个统计周期内,VPC对等连接的发起端发送到接收端的流量。

周期内出方向流量

在一个统计周期内,VPC对等连接的接收端发送到发起端的流量。

网络流入带宽

VPC对等连接从发起端进入接收端的带宽。

网络流出带宽

VPC对等连接从接收端发往发起端的带宽。

网络流出限速丢包数

VPC对等连接实例出方向因带宽限速,被丢弃的数据包速率。

控制台

对等连接监控

  1. 前往专有网络控制台 - VPC对等连接,在页面上方选择VPC所在的地域。

  2. 单击目标跨地域VPC对等连接实例监控列的icon图标,查看流量带宽与丢包情况等监控信息。

云监控告警

  1. 前往云监控控制台 - 报警规则,单击创建报警规则

  2. VPC对等连接的监控指标项配置各报警级别的阈值,当相应指标达到阈值后,报警联系人组将接收到报警通知,也可以在目标报警规则的操作列,点击报警历史查看报警时间线。

  3. 在目标报警规则的操作列,修改/禁用/删除规则。

API

Terraform

参考对等连接云监控指标配置阈值报警规则。
Resources:alicloud_cms_alarm_contactalicloud_cms_alarm_contact_groupalicloud_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对等连接:统一由云数据传输CDT按出向流量收取流量传输费

  • 计费单价根据地域到地域粒度、链路类型来确定。支持铂金、金两种链路类型,提供不同质量的流量传输服务。

  • 计费周期为每小时。如果在计费周期内切换链路类型,将按照较高服务等级的单价进行计费。

如图,跨地域跨账号的VPC1VPC2建立了对等连接。若 VPC1 和 VPC2 通过对等连接流出的流量分别为200GB100GB,链路类型选择华北5(呼和浩特)华南3(广州)跨地域流量费单价为0.48元/GB。依据出向流量计费规则:

账号A需要支付的费用为:0.48元/GB × 200GB = 96

账号B需要支付的费用为:0.48元/GB × 100GB = 48

image

VPC对等连接的状态机

从发起端发送创建请求开始,VPC对等连接会经过各个阶段。

如果创建的是同账号VPC对等连接,系统会自动发起连接请求并自动接受请求,VPC对等连接变为已激活状态。
image

VPC对等连接状态说明

状态

说明

创建中

发起端发起VPC对等连接请求后的状态。

对端接收中

等待接收端接受VPC对等连接请求的状态。

更新中

接收端接受VPC对等连接请求后,该VPC对等连接的状态。

已激活

接收端接受VPC对等连接请求后,发起端和接收端协商激活VPC对等连接后的状态。

已拒绝

接收端拒绝VPC对等连接请求后,该VPC对等连接的状态。

已过期

接收端超过7天未接受或者拒绝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