自定义路由表干什么
VPC 创建时会自带一张系统路由表,所有交换机默认关联它。当不同子网需要不同出口时——例如生产子网走 NAT 网关出公网、DMZ 子网走自建防火墙、灰度子网走独立链路——就要用自定义路由表区分:先创建路由表,再添加路由条目,最后把交换机关联过去。关联动作立即生效,会改变该子网全部的流量走向。
创建与关联
创建与关联
# 阿里云 CLI 示例
aliyun vpc CreateRouteTable --RegionId cn-hangzhou \
--VpcId vpc-bp1xxxxxxxx --RouteTableName rt-dmz
aliyun vpc CreateRouteEntry --RegionId cn-hangzhou \
--RouteTableId vtb-bp1xxxxxxxx --DestinationCidrBlock 0.0.0.0/0 \
--NextHopType NatGateway --NextHopId ngw-bp1xxxxxxxx
aliyun vpc AssociateRouteTable --RegionId cn-hangzhou \
--RouteTableId vtb-bp1xxxxxxxx --VSwitchId vsw-bp1xxxxxxxx基本信息
| 创建顺序 | 先建路由表 → 添加条目 → 关联交换机 |
|---|---|
| 生效时机 | 关联后立即生效,无需重启实例 |
| 回退方式 | 把交换机重新关联回系统路由表即可还原 |
| 典型场景 | 多出口分流、安全区分层、灰度环境独立出口 |
典型使用场景
- 生产与测试子网分别走不同 NAT 网关,隔离出口带宽并便于分开计费
- DMZ 子网的出网流量强制经过自建防火墙做检测与审计
- 灰度环境使用独立出口,避免灰度链路问题影响到线上主链路
- 按业务线拆分出口,便于按子网统计流量、定位异常来源
- 内网访问走专线、公网访问走 NAT,用不同路由条目区分两类出口
路由匹配怎么走
同一条流量可能命中多条路由,云上通常按最长前缀匹配:掩码越长的条目优先级越高,因此 10.10.1.0/24 会盖住 10.10.0.0/16,默认路由 0.0.0.0/0 作为兜底最后才被选中。理解这一点,可以在不删除旧条目的前提下用更细的网段做临时分流;反过来,如果发现流量走向和预期不符,先按掩码长度把所有候选条目列出来逐一比对。
路由条目读法
| 字段 | 含义 | 注意点 |
|---|---|---|
| 目标网段 | DestinationCidrBlock | 0.0.0.0/0 表示默认路由 |
| 下一跳类型 | NextHopType | NAT 网关、实例、对等连接等 |
| 下一跳实例 | NextHopId | 必须真实存在且可用 |
| 路由优先级 | 掩码最长匹配优先 | 同掩码冲突时需人工取舍 |
切换关联前先在新路由表里补齐业务所需条目,避免切换瞬间丢路由。
自定义路由表不会自动继承系统路由表的条目,网关路由、对等连接路由等都要在新表里重新加。变更后用实例内的 ip route 与平台侧路由列表双向核对,确认出口一致。