VPC 跨子网访问不通排查实战:从路由表到 ACL 的五步流程
背景
同一 VPC 下两台 ECS 分属两个子网,A 子网的 ECS 内网访问 B 子网的 ECS 时 ping 不通,业务接口调用超时。两台机器本身都能正常出网,问题只出现在跨子网互访。下面按从底到上的顺序排查。
一、确认子网网段与 ECS 内网 IP
先确认两台 ECS 的内网 IP 各自落在哪个子网网段里,网段重叠或 IP 配错都会导致互访异常。
ip addr show eth0
A 为 192.168.1.10/24,B 为 192.168.2.20/24,确认分属 192.168.1.0/24 与 192.168.2.0/24。
二、检查路由表与下一跳
跨子网要走 VPC 路由,先看系统路由,再看控制台路由表。
ip route show
应有 192.168.2.0/24 via 192.168.1.1 dev eth0;缺失则到控制台 VPC-路由表补一条。控制台确认路由表里到对端子网的路由存在,下一跳正确,没有被更具体的黑洞路由覆盖。
三、检查安全组规则
安全组是实例级防火墙,入方向和出方向都要放行。
ping -c 4 192.168.2.20
不通且无响应,先放行 ICMP 再测;业务端口用 nc -vz 192.168.2.20 8080 验证。A 的安全组出方向放行到 B 的 ICMP 与业务端口,B 的安全组入方向放行来自 A 的。
四、检查子网网络 ACL
ACL 是子网级防火墙,规则按编号从小到大匹配,默认拒绝。控制台查看两个子网的 ACL:入方向放行对端网段,出方向放行回包。注意 ACL 是无状态的,来回两个方向都要配规则,只配一边会丢回包。
五、抓包定位丢包点
前面都正常仍不通,用 tcpdump 看包走到哪一跳。
tcpdump -i eth0 -n icmp and host 192.168.2.20
A 上能看到请求发出、B 上收不到,丢在 VPC 网络侧;B 上收到请求但无回包,查 B 的路由与安全组。同时确认 ECS 网卡的源/目的检查保持开启,特殊组网才关闭。
小结
跨子网不通按 IP、路由、安全组、ACL、抓包五步查,多数问题出在安全组或 ACL 漏了方向。这次是 B 子网 ACL 只配了入方向、没放行回包,补上出方向规则后互访恢复。排查时先分清是单向不通还是双向不通,再按层定位,比逐项试错快得多。
- 点赞
- 收藏
- 关注作者
评论(0)