TGW Policy Table:先选路由表,再选下一跳

验证:未记录
适用版本
未记录
验证范围
尚未登记验证记录。

两个 VPC 普通互通,直接使用 Route Table 即可。 当同一目标的流量需要按来源、协议或端口走不同路径时,使用 Policy Table 做 Policy-Based Routing(PBR,通用的策略路由概念)。

对象 回答的问题 输出
Policy Table 这类流量应该用哪张表? 目标 TGW Route Table
Route Table 这个目的 IP 下一跳去哪里? VPC、Peering 等 attachment,或 blackhole
Security Group / NACL 对应路径上的请求是否允许? 放行或拒绝;仍须单独配置

Policy Table 可匹配源/目的 IP、源/目的端口和协议。它先选择 Route Table,后者仍按目的地址选下一跳。AWS PBR 说明

例子:同一台 B,HTTPS 经防火墙,SSH 直达#

示例地址:A=172.31.1.10,B=10.230.1.20。普通 Route Table 只有 10.230.0.0/16 → B attachment 时,ping、SSH、HTTPS 都选同一个下一跳,能否访问由安全规则决定。

现在要求 A 到 B 的 TCP 443 必须先检查,TCP 22 可以直达:

A ── TCP 443 ──→ TGW ──→ inspection VPC 的防火墙 ──→ B
A ── TCP 22  ──→ TGW ─────────────────────────────→ B

将 A 的 VPC attachment 关联到如下 Policy Table,分类的是从 A 进入 TGW 的流量:

Rule number 匹配条件 Target route table
100 source 172.31.1.10/32、destination 10.230.1.20/32、TCP、destination port 443;source port 为 Any inspection-table
9000 其余流量 direct-table

再在两张 Route Table 中分别配置:

Route Table Destination 下一跳
inspection-table 10.230.0.0/16 inspection VPC attachment
direct-table 10.230.0.0/16 B 的 VPC attachment

于是 TCP 443 先选 inspection-table,TCP 22 选 direct-table,再由各表决定下一跳。按来源区分生产/测试流量时,也可把规则条件换成对应 source CIDR。

这张表只说明选路,不会创建防火墙、开放端口或自动补齐回程。实际接入还需防火墙处理后的转发、对称回程及适用的 appliance mode;不要把检查后的流量再次送回同一重定向路径造成环路。这里匹配的是 TCP 端口,不会识别或解密 HTTPS 内容。

容易踩的坑#

  • Attachment 的关联二选一:直接关联 Route Table,或关联 Policy Table;不能同时关联两者。Policy Table 中引用的 Route Tables 仍然需要存在且有正确路由。
  • 规则顺序影响结果:若有 AWS system-managed entries,先匹配它们;然后按自定义 Rule number 从小到大取第一个匹配。
  • 全部未匹配会丢包:需要保留其他流量时,配置高编号的 fallback rule。上例 9000 只选择 direct-table,不授予 SG 权限;该表也必须有目标路由。
  • 方向要单独设计:A 发起请求的目标端口是 443,响应的源端口才是 443;不能把同一端口条件原样当作双向检查策略。
  • ICMP 没有 TCP/UDP 端口:ICMP/GRE/Any 的 port 条件为 Any,不用端口 22/443 规则解释 ping 行为。

规则匹配与默认丢弃

只读核对现有配置#

Console:VPC → Transit Gateway Policy Tables。先确认流量进入的 attachment 关联哪张表,再查看规则和被选中的 Route Table。

PROFILE='REPLACE_PROFILE'
REGION='ap-northeast-1'
POLICY_TABLE='REPLACE_TGW_POLICY_TABLE_ID'

aws ec2 get-transit-gateway-policy-table-entries \
  --profile "$PROFILE" --region "$REGION" --no-cli-pager \
  --transit-gateway-policy-table-id "$POLICY_TABLE"

检查 system-managed entries、自定义规则顺序及 Target route table;继续到 路由与 SG 排障核对下一跳、回程和访问许可。以上仅查询,不创建或关联任何资源。

搜索文档

输入关键词,搜索所有文档。

↑ ↓ 选择 · Enter 打开 · Esc 关闭