华为云 VPC 对等连接建好了却不通?分层排查:路由、网段重叠、安全组/ACL 与跨账号

举报
yd_294423728 发表于 2026/11/11 10:57:16 2026/11/11
【摘要】 VPC 对等连接状态正常却不通,按四层排查:前提与状态(同区域、跨账号接受、项目 ID)、路由(两端去程回程、子网关联的路由表、与 VPN/云专线重叠、CCE 容器网段)、网段重叠、安全组与网络 ACL,最后看实例内部的防火墙、监听和多网卡策略路由。附推荐顺序、速查表与常见坑。

对等连接列表里状态已经是「已接受」,两边 ECS 却互相 ping 不通、端口连不上——这是 VPC 对等连接最常见的求助场景。很多人第一反应是删掉重建,但对等连接本身只是一条「通道」,流量能不能真正走过去,还取决于两端路由表、网段规划、安全组、网络 ACL 以及实例内部配置。本文对照华为云 VPC 官方文档,把「建好却不通」拆成几层,给出每层的现象、检查点和命令,最后附推荐顺序、速查表和常见坑。

官方 FAQ「为什么对等连接创建完成后不能互通?」给出的高频原因顺序是:网段重叠 → 路由配置错误 → 网络配置错误(安全组、实例防火墙、网络 ACL、多网卡策略路由)→ ECS 基本网络功能异常。本文在官方顺序前补了「前提与状态」这一前提层,正文先展开路由,再讲网段重叠、放行和实例内部。

一、先定层:通道、路由、放行、实例

动手前,我习惯先把问题归到下面四层之一:

层 关注点 一句话判断
前提与状态 同区域、对等连接状态、跨账号是否已接受 通道到底建成了没有
路由与网段 两端路由表、目的地址、网段重叠、与 VPN/云专线冲突 包知不知道往对等连接走
安全组与网络 ACL 两端实例安全组、子网 ACL 包走到了,有没有被拦
实例内部 网卡 IP、系统防火墙、多网卡策略路由、服务监听 包到了实例,系统收不收

先在本端 ECS 上做一组最小测试,后面每层都拿它验证:

# 本端 ECS 上执行,172.17.0.21 为对端实例私有 IP(示例)
ip address                 # 确认本机私有 IP 和网卡
ip route                   # 确认默认网关
ping -c 4 172.17.0.21      # ICMP 连通性
nc -vz -w 3 172.17.0.21 22 # TCP 端口连通性,端口按实际业务替换(部分精简镜像自带的 BusyBox nc 可能不支持 -z)

其中 nc、iptables、firewall-cmd、ss 以及 ping -c 属于通用 Linux 排查用法,不是华为云官方文档中的原话。官方 FAQ 示例主要使用 ip address / ifconfig、ping、ping -I,Windows 使用 ipconfig。

注意 ping 不通不等于网络不通:ICMP 可能被安全组拦住而 TCP 是放通的。所以 ICMP 和业务端口最好都测一次,两个结果组合起来更容易定位。

二、第 0 层:前提与状态

1. 两端 VPC 必须在同一区域

官方明确:对等连接仅可以连通同区域的 VPC,不同区域的 VPC 之间不能创建对等连接。跨区域互通应使用云连接;只是少量 ECS 互通,也可以各自绑定 EIP 走公网。官方还说明,中国站和国际站相同区域的 VPC(例如都在「中国-香港」)可以通过对等连接连通。

2. 对等连接状态

同账号创建的对等连接无需对端确认;跨账号则由本端发起后状态为「待接受」,需要对端账号在对等连接列表里点「接受请求」,状态变为「已接受」才算创建完成;对端拒绝则创建失败。API 层面的状态值为:

GET /v2.0/vpc/peerings
PENDING_ACCEPTANCE  等待接受
REJECTED            已拒绝
EXPIRED             已过期
DELETED             已删除
ACTIVE              活动的

常见的情况是:发起方以为建好了,对端账号的人根本没登录控制台去接受。另外,跨账号创建时填的「对端项目 ID」必须是对端 VPC 所在区域对应的项目 ID(对端账号在「我的凭证」里查),填错会提示「请输入正确的 VPC ID 以及项目 ID」。官方也提醒:不要接受来自未知账号的对等连接申请。

3. 一对 VPC 只有一条对等连接

两个 VPC 之间只能建立一个对等连接。想「再建一条试试」是建不出来的,排查方向应回到路由和放行上。

三、第 1 层:路由——最常见的问题

1. 两端路由表都要加,去程和回程缺一不可

这是对等连接最容易漏的一步。官方原话是:通常需要在对等连接两端 VPC 的路由表中分别添加去程和回程路由。只在本端加了到对端的路由,请求能过去,回包却回不来,表现就是「单向不通」或者干脆都不通。

路由表 目的地址 下一跳
VPC-A 的路由表 172.17.0.0/16(VPC-B 网段) 对等连接 peering-AB
VPC-B 的路由表 172.16.0.0/16(VPC-A 网段) 对等连接 peering-AB

跨账号时,本端账号只能在本端 VPC 加路由,对端路由要对端账号自己加;查看路由也一样,各自登录各自账号,在对等连接详情页下方的路由列表里看。

2. 选对路由表:子网关联的是哪张

VPC 自带默认路由表,子网也可以关联自定义路由表;一个子网只能关联一个路由表。官方在添加对等连接路由的说明里写明:如果下拉列表里同时有默认路由表和自定义路由表,要选对等连接连通的子网所关联的路由表。很多人把路由加进了默认路由表,而业务子网实际关联的是自定义路由表,于是路由「加了但没生效」。

官方路由表概述还补充了一点:子网关联自定义路由表通常只影响子网的出流量走向,从对等连接、云专线、VPN 进入 VPC 的入流量仍然匹配所在 VPC 的默认路由表(企业路由器场景例外)。复杂组网时可以把这一点也纳入核对。

3. 目的地址要对

本端路由的目的地址应是对端 VPC 网段、子网网段或相关私有 IP,对端反之。目的地址范围可以按需收窄:填整个 VPC 网段就连通整个 VPC,填子网网段或单个 IP 就只连通那一部分。常见的错误是两端网段抄反、掩码写错,或只放了一个子网却去访问另一个子网的实例。

4. 和 VPN/云专线路由重叠

对于云上云下互通的组网,官方要求检查对等连接路由是否和云专线、VPN 路由的目的地址重叠;重叠时对等连接不生效,需要重新规划。另外要了解匹配规则:VPC 路由按 Local 路由 > 明细路由 > EIP 路由 > 默认路由的顺序,明细路由之间遵循最长匹配。

5. CCE 集群:VPC 网络模型还要加容器网段

如果一端是 CCE 集群,按 CCE 最佳实践:容器隧道网络和 CCE Turbo(云原生网络 2.0)只需打通两端 VPC 网段;VPC 网络模型的集群还需要在路由里加上集群容器网段,否则 Pod IP 互访不通。另外,对端实例的安全组也要放通容器网段。规划时 VPC 网段、子网网段和容器网段都要避免重叠,具体以 CCE 官方文档为准。

四、第 2 层:网段重叠

网段重叠是官方 FAQ 排在第一位的原因,而且一旦发生,常常只能改规划。原理是:VPC 路由表里的 Local 路由优先级最高,当对等连接路由的目的地址与 Local 路由重叠时,流量会优先匹配 Local 路由留在本 VPC 内部转发,根本到不了对端。

官方分三种情况:

  • VPC 网段不重叠,子网也不重叠:可以建立整个 VPC 之间的对等连接。
  • VPC 网段重叠、部分子网重叠:不能建指向整个 VPC 网段的对等连接;可以只连通不重叠的子网(两端都不能包含重叠子网),或只连通指定 ECS(私有 IP 不能相同)。
  • VPC 网段重叠、全部子网重叠:任何对等连接都无效,只能重新规划网段。

官方举的例子:VPC-A 为 192.168.0.0/16,VPC-B 为 192.168.0.0/16 或 192.168.0.0/18,都属于网段重叠。还有一个容易忽略的点:这条限制同样适用于 IPv6,即使只想用对等连接做 IPv6 通信,只要两端 IPv4 网段和子网重叠,对等连接也不生效。

我更喜欢在建对等连接之前就把两端网段、子网、容器网段列成一张表核对一遍,比事后改规划省事得多。

五、第 3 层:安全组与网络 ACL

这一层只讲对等连接场景下怎么查,选型对比不展开。

1. 安全组:两端都要放通对方

官方示例中使用「自定义」预设的安全组,其规则只保证同一安全组内实例互通,外部流量默认拒绝:

  • 同账号、两端实例在同一安全组:对等连接和路由配好后即可互通。
  • 两端实例在不同安全组:需要在各自安全组入方向添加规则,源地址填对端 VPC 网段或子网网段;同账号时也可以把源地址设为对端实例的安全组。
  • 跨账号:两端实例必然在不同安全组,官方示例用对端 VPC 网段作为源地址,在 Sg-A、Sg-B 两边各加一条。

检查时别只看 ECS:RDS、DCS 等实例也有自己的安全组,访问它们时同样要放通来自对端网段的流量。想用 ping 验证,还要确认放通了 ICMP。

2. 网络 ACL:关联了就默认全拒

VPC 默认不带网络 ACL;一旦给子网关联了网络 ACL,默认规则会拒绝所有出入子网的流量,只放通同子网内互通、广播组播、元数据和公共服务预留网段等少数流量。对等连接的流量来自另一个 VPC,不在默认放通范围内,必须加自定义规则放通对端网段。ACL 是有状态的,响应流量不受规则限制;流量先匹配网络 ACL,再匹配安全组。两端子网如果都关联了 ACL,两端都要查;从本端主动建连时,本端子网 ACL 的出方向也要放通到对端网段。

六、第 4 层:实例内部

前面都对了还不通,就进实例看:

# 1) 网卡拿到 IP 了吗?没拿到先查子网 DHCP 是否开启
ip address
# 2) 能 ping 通本子网网关吗?不通属于二三层基础问题
ping -c 3 <本子网网关IP>
# 3) 系统防火墙是否拦截对端网段
sudo iptables -S | head -50
sudo firewall-cmd --list-all 2>/dev/null
# 4) 服务是否监听在私网地址而不是 127.0.0.1
ss -lntp
# 5) 多网卡:按源 IP 分别 ping 各自网关,验证策略路由
ping -I <eth0的IP> <eth0子网网关>
ping -I <eth1的IP> <eth1子网网关>

多网卡 ECS 是个隐蔽的坑:回包可能从另一张网卡发出去,导致对端收不到。官方建议按源 IP 分别 ping 各自网关验证,不通则需要配置策略路由。Windows 实例可用 ipconfig 查看 IP,并检查 Windows 防火墙。

七、推荐排查顺序

  1. 确认两端同区域,对等连接状态为「已接受」(跨账号看对端是否接受)。
  2. 核对两端 VPC、子网(和容器)网段是否重叠;全部重叠直接重新规划。
  3. 在两端分别查看对等连接路由:去程、回程是否都在,路由表是否是业务子网关联的那张,目的地址是否正确,是否与 VPN/云专线路由重叠。
  4. 查两端实例安全组入方向是否放通对端网段,以及测试用的协议和端口。
  5. 查两端子网是否关联网络 ACL,有则放通对端网段。
  6. 进实例查 IP、网关、系统防火墙、服务监听和多网卡策略路由。
  7. 仍不通,带着两端配置截图提交工单。

八、速查表

现象 优先怀疑 检查点
跨账号,状态一直是「待接受」 对端未接受 对端账号登录,点「接受请求」
创建时报项目 ID 或 VPC ID 错误 项目 ID 填错区域 对端 VPC 所在区域的项目 ID
想连另一区域的 VPC 不支持 改用云连接,或少量实例走 EIP
状态正常但双向都不通 路由缺失或网段重叠 两端路由表、Local 路由冲突
只有一个方向能发起 一端缺路由或一端安全组未放 回程路由、对端安全组入方向
路由加了仍不通 加错了路由表 子网关联的是哪张路由表
有 VPN/云专线时不通 目的地址重叠 下一跳为 VPN/云专线的路由
ping 不通但端口通 ICMP 未放通 安全组/ACL 的 ICMP 规则
子网刚关联 ACL 后全断 ACL 默认拒绝 自定义放通规则
Pod 访问对端不通 缺容器网段路由 CCE 网络模型与容器网段
多网卡实例时通时不通 策略路由 按源 IP 分别 ping 网关

九、常见坑

  • 想借对端 EIP 上网:对等连接不支持共用 EIP,VPC-B 的实例不能通过 VPC-A 实例绑定的 EIP 访问公网;需要用 NAT 网关或 SNAT 服务器方案。
  • 三个 VPC 以为自动互通:A 分别和 B、C 对等,B 和 C 不会自动互通。公有云文档把经中转 VPC 配路由的做法称作「对等连接具有传递性」,意思是可以通过配置路由来转发,而不是自动传递。官方给了两种做法:建 B-C 对等连接,或按官方「传递性」示例在三端路由表里配置经 A 转发的路由(VPC 网段不能重叠)。VPC 较多时,官方建议考虑企业路由器 ER 构建中心辐射型组网。
  • 路由条目上限:官方提示一个 VPC 内所有路由表最多容纳 1000 条路由(系统自动添加的「系统」路由不占配额),多 VPC 两两对等前要算一下。
  • 删除影响路由:任一方删除对等连接后,两端路由表里该对等连接的路由会被一并删除,误删后需要重建并重新加路由。
  • 改规则后老连接不变:网络 ACL 规则变更对已建立的长连接不会立即生效,测试时要新建连接验证。

十、官方参考

为什么对等连接创建完成后不能互通(FAQ)
https://support.huaweicloud.com/vpc_faq/vpc_faq_0069.html
对等连接概述
https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0046655036.html
创建对等连接连通同账户下的两个VPC网络
https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0046655037.html
创建对等连接连通不同账户下的两个VPC网络
https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0046655038.html
获取对等连接的对端项目ID
https://support.huaweicloud.com/usermanual-vpc/vpc_peering_0005.html
查看对等连接路由
https://support.huaweicloud.com/usermanual-vpc/vpc_peering_0004.html
对等连接配置建议
https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0046809840.html
连通整个VPC网络的对等连接配置示例(含传递性示例)
https://support.huaweicloud.com/usermanual-vpc/vpc_peering_0009.html
无效的VPC对等连接配置示例
https://support.huaweicloud.com/usermanual-vpc/vpc_peering_0012.html
对等连接是否可以连通不同区域的VPC(FAQ)
https://support.huaweicloud.com/vpc_faq/faq_connection_0001.html
路由表和路由概述
https://support.huaweicloud.com/usermanual-vpc/vpc_route01_0001.html
网络ACL概述
https://support.huaweicloud.com/usermanual-vpc/acl_0001.html
二三层通信出现问题时如何排查(FAQ)
https://support.huaweicloud.com/vpc_faq/vpc_faq_0088.html
删除对等连接
https://support.huaweicloud.com/usermanual-vpc/vpc_peering_0003.html
网络ACL配置示例
https://support.huaweicloud.com/usermanual-vpc/acl_0002.html
查询对等连接列表(API)
https://support.huaweicloud.com/api-vpc/vpc_peering_0001.html
CCE集群实现访问跨VPC网络通信
https://support.huaweicloud.com/bestpractice-cce/cce_bestpractice_10044.html
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。