为什么要把默认路由指向 NAT
让实例通过 NAT 出公网需要两个条件同时满足:所在子网关联的路由表里有 0.0.0.0/0 指向 NAT 网关的条目,以及 NAT 上有覆盖该来源网段的 SNAT 规则。路由负责把流量送进 NAT,SNAT 负责做地址转换,缺任何一项实例都出不了公网,排查时也要按这个顺序核对。
基本信息
| 作用 | 决定子网内实例的出网路径 |
|---|---|
| 配置位置 | 子网关联的路由表,新增目标网段 0.0.0.0/0 |
| 与 SNAT 关系 | 路由送流量、SNAT 决定能否转换,两者缺一不可 |
| 细粒度 | 不同子网关联不同路由表即可实现差异化出口 |
| 生效范围 | 只对关联该路由表的子网生效 |
| 冲突处理 | 已有更精确的明细路由时,按最长前缀匹配优先 |
典型使用场景
- 应用子网统一经 NAT 出公网,数据库子网不放默认路由
- 部分子网需要走 NAT,另一部分子网直连专线,通过不同路由表区分
- 迁移期间临时调整出口路径,验证后再固化配置
- 排查「这台机器不能出公网」时核对路由与 SNAT 两处
- 为容器集群的节点子网单独配置出口路径
添加默认路由
添加默认路由
路由表 → 添加路由条目
目标网段:0.0.0.0/0
下一跳类型:NAT 网关
下一跳:nat-bp1xxxxxxxx
前置确认:该路由表已关联目标子网;NAT 上已有覆盖该网段的 SNAT
验证:实例内 curl -s https://ifconfig.me 是否返回 NAT 绑定的 EIP排障顺序
| 检查项 | 确认方法 |
|---|---|
| 子网关联哪张路由表 | 子网详情中查看关联关系 |
| 是否有默认路由 | 路由表条目中查找 0.0.0.0/0 |
| 下一跳是否正确 | 核对指向的 NAT 网关实例 ID |
| SNAT 是否覆盖该网段 | NAT 的 SNAT 条目中查看来源网段 |
| 出口地址是否符合预期 | 实例内查询出口 IP 与 NAT 绑定的 EIP 比对 |
排障顺序建议固定为:先确认默认路由指向,再查 NAT 网关上的 SNAT 覆盖范围,最后确认 NAT 规格是否被打满,从前往后排查能快速缩小范围。
给数据库等敏感子网添加默认路由等于主动打开外传通道,出口能力应按业务需要最小化开通。