VPC 路由表怎么配:子网互通与排查的实践笔记
前几天在华为云上搭测试环境,两个子网里的 ECS 互相 ping 不通,绕了一大圈才发现问题出在路由表上。这篇笔记把路由表的配置要点和排查过程记下来,方便以后照着查。
一、路由表是干什么的
可以把 VPC 想象成一栋楼,子网是楼里的房间,路由表就是门口的指路牌,告诉数据包去某个目的地该走哪条路。每条路由由目的网段、下一跳类型、下一跳和优先级组成,数据包按最长前缀匹配选路。
华为云每个 VPC 创建时会自动生成一张默认路由表,里面已有每个子网的 local 路由。同一个 VPC 内的子网默认互通,不用手动加路由,很多人第一次配时都会忽略这一点。
二、什么时候需要自定义路由
默认路由只解决 VPC 内部互通,流量要出 VPC 就得自己加路由:ECS 访问公网,目的网段写 0.0.0.0/0,下一跳指向 NAT 网关;两个 VPC 互访,先建对等连接,再在两边路由表各加一条指向对端网段、下一跳为对等连接的路由,只建连接不加路由是不通的。
三、子网怎么关联路由表
路由表配好还不算完,必须关联到子网才会生效。一个子网同一时间只能关联一张路由表,不关联就走 VPC 的默认路由表。我的习惯是:要出公网的业务子网关联一张带 NAT 默认路由的自定义路由表,内网子网留在默认路由表上。
四、子网不通时的排查顺序
第一步查路由表。先确认两个子网是否在同一个 VPC,不在同一个 VPC 又没有对等连接和双向路由,那就一定不通。再看源子网关联的路由表里有没有指向目标网段的路由,目的网段有没有写错。
第二步查安全组。路由通了不代表流量能进实例。安全组绑在 ECS 的网卡上,要查目标 ECS 入方向是否放行了源网段和对应端口,ping 走 ICMP 协议,入方向只放 TCP 是不够的。
第三步查网络 ACL。网络 ACL 绑在子网上,是子网级别的第二道关。安全组放行了、网络 ACL 没放行,流量一样会被拦住。检查子网关联的网络 ACL 入、出方向规则,确认源和目标网段都在放行范围里。
最后在 ECS 上实测:用 ping 测连通性,用 traceroute 看数据包卡在哪一跳。三层都确认无误还不通,再查 ECS 自身的防火墙。
五、几点心得
路由表本身不难,难的是出问题时不知道先查哪一层。记住默认 local 路由保证同 VPC 互通,自定义路由只在流量要出 VPC 时才需要;按路由表、安全组、网络 ACL 的顺序查,绝大多数子网不通的问题都能定位到。
- 点赞
- 收藏
- 关注作者
评论(0)