VPC对等连接

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

工作流程

VPC 对等连接通过私网连通两个VPC,使部署在两端 VPC 中的资源可以使用私网 IP 互访。

  1. 创建VPC对等连接:同账号VPC,系统会自动接受请求并建立连接。跨账号VPC,需要接收端账号接受连接请求。

  2. 双向路由配置:为两端VPC分别配置指向对端VPC的路由,才能实现资源互访。

image

当有大量 VPC 互连、大带宽、低成本的综合需求时,可同时使用 VPC 对等连接和云企业网。二者区别,可参考VPC互连

配置对等连接

控制台

  1. 前置检查:

    1. 确保两端VPC的网段不重叠。若重叠,需将业务迁移到网段不重叠的VPC中。

    2. 如果初次使用VPC对等连接,需要确保两端VPC所属账号都开通CDT功能。

  2. 创建对等连接:

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

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

      • 接收端账号类型:

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

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

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

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

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

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

  3. 双向路由配置:

    如需使用IPv6地址互访,需配置指向对端VPC实例的IPv6网段的路由条目。
    1. 使用发起端 VPC 所属账号:

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

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

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

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

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

  4. 验证连通性

    • 路径分析:分析过程不发送真实数据包,不会影响业务运行。

      1. 在目标对等连接实例的诊断列选择发起诊断 > 路径分析或单击目标对等连接实例ID进入路径分析页签。

      2. 配置源与目的,指定具体的协议和端口号来模拟业务访问场景,校验二者的连通性。

      3. 系统将检查路由/安全组/网络ACL的配置,并给出诊断结果。

      4. 单向路径可达时,单击反向路径分析,配置反向路径进行连通性校验。

    • 手动验证:在发起端VPC内的ECS,执行ping <对端 ECS 的私网 IP>

创建跨地域对等连接后,单击实例ID,支持编辑跨地域对等连接的带宽(Mbps)链路类型
两端账号均可删除VPC对等连接。删除后,私网互访能力将会中断,且删除后无法恢复,需确保在对业务无影响的情况下谨慎操作。

API

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

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

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

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

修改跨地域对等连接

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

删除对等连接
路径分析

依次调用以下API来使用路径分析校验连通性。

  1. CreateNetworkPath - 创建网络分析路径

  2. CreateNetworkReachableAnalysis - 创建网络可达性分析任务

  3. GetNetworkReachableAnalysis - 获取网络可达性分析任务结果

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
}

网络连通性排查

检查项

检查内容

解决方案

对等连接状态

查看目标对等连接实例的状态是否为已激活

如果状态为对端接收中,需要联系接收端账号接受连接。

网段配置

查看发起端CIDR接收端CIDR

  1. 是否重叠。

  2. 是否使用了非RFC 1918标准私网网段。

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

  2. 使用非 RFC 标准私网网段时,使用IPv4网关实现公网私用,确保流量能够正确地到达目标VPC。

路由配置

查看对等连接详情页的路由条目列表

  1. 是否为两端VPC都配置了指向对方的路由。

  2. 目标网段是否正确填写对端的VPC CIDR。

  3. 路由条目是否添加到资源所在交换机绑定的路由表。

检查并修正双向路由配置

访问规则配置

  1. 互访ECS所在安全组的出入方向规则是否放行对端IP。

  2. RDS实例的访问白名单是否添加了对端IP。

  3. 与交换机绑定的网络 ACL的出入方向规则是否放行对端IP。

确保安全组、网络 ACL、RDS的访问白名单均放行对端 IP。

网段配置导致无法连通的原因

  1. 网段重叠:

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

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

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

      image
  2. 使用非RFC 1918标准私网网段:

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

配置示例

三个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对等连接从发起端进入接收端的带宽。

网络流出带宽

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 对等连接:

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

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

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

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

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

计费说明

同地域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