上一节我们介绍过DX Gateway和VGW区别,这一节将深入介绍它
DXGW 是一个全局虚拟网络设备,但它更像是一个逻辑路由控制层,而不是传统意义上的虚拟机或 ENI。
| 特性 | 说明 |
|---|---|
| 全局资源 | 不属于任何 Region,全球唯一 |
| 无物理位置 | 不像 EC2 有具体的 AZ |
| 控制平面 | 主要作用是路由分发和关联管理 |
| 无数据面处理 | 不像 NAT Gateway 那样处理每个数据包 |

对比理解:
| 组件 | 类型 | 有实体吗 | 数据经过它吗 |
|---|---|---|---|
| EC2 | 虚拟机 | 有(运行在物理服务器) | 是 |
| NAT Gateway | 托管网络设备 | 有(ENI) | 是,每个包都经过 |
| VGW | 托管网关 | 有(Regional 资源) | 是 |
| DXGW | 逻辑路由层 | 无具体实体 | 逻辑上经过,实际是路由控制 |
| TGW | 托管路由器 | 有(Regional 资源) | 是,每个包都经过 |
它和其他Gateway的区别:
| 组件 | 类比 |
|---|---|
| DXGW | 像一个全球 DNS 服务器,告诉流量去哪里,但数据不真的经过它 |
| VGW | 像一个 Region 级别的路由器,数据真的经过它 |
| TGW | 像一个 Region 级别的交换机/路由器,数据真的经过它 |
虽然说"流量经过 DXGW”,但实际上:
用户的路由器 → DX 物理线路 → AWS 骨干网 → VGW → VPC
DXGW 更多是告诉流量应该去哪(控制平面),而不是每个数据包都经过它(数据平面)。
原因:
DXGW 会把所有关联 VPC 的 CIDR 通过 BGP 宣告给用户的路由器,如果 CIDR 重叠,路由器无法判断流量该发到哪个 VPC。

DXGW 不提供 VPC 到 VPC 的传递路由:
VPC A ──► DXGW ────► VPC B ❌ 不行!
DXGW 只做:
On-premises ◄──► DXGW ◄──► VPC ✅ 可以
为什么有这些限制呢?因为DXGW 的设计目标是简化 On-premises 到多个 VPC 的连接,而不是做 VPC 互联。它是一个路由控制层,不是全功能路由器。如果需要完整的网络互联能力,应该用 Transit Gateway。
参考: https://docs.aws.amazon.com/directconnect/latest/UserGuide/limits.html

但可以通过创建多个private VIF来绕过:

创建DX Gateway的入口:

只需要填写两个参数,其中 ASN 是用户自己从私有 ASN 范围里选的,代表 AWS DXGW 在 BGP 中的身份。选个不冲突的就行,默认 64512 通常够用:

创建完成后显示出来:

DXGW 本身不收费。
费用对比:
| 组件 | 是否收费 |
|---|---|
| Direct Connect Gateway | ❌ 免费 |
| Virtual Private Gateway (VGW) | ❌ 免费 |
| Transit Gateway (TGW) | ✅ 收费 |
| DX Connection(端口) | ✅ 收费 |
| DX 数据传输 | ✅ 收费 |
为什么 DXGW 免费?因为 DXGW 只是一个逻辑路由控制层:
| 组件 | 是否处理数据包 | 是否占用 AWS 资源 |
|---|---|---|
| DXGW | 否,只做路由分发 | 很少 |
| TGW | 是,每个包都经过 | 需要计算资源 |
| NAT Gateway | 是,每个包都经过 | 需要计算资源 |
AWS 对实际消耗资源的组件收费,DXGW 几乎不消耗资源所以免费。
费用示例,假设你用 DXGW 连接 2 个 Region 的 VPC:
费用组成:
├── DX 端口 (1Gbps): $0.30/hr × 24 × 30 = $216/月
├── DX 出站流量 (1TB): $0.02 × 1000 = $20/月
├── DXGW: $0
└── VGW: $0
总计: ~$236/月(不含 TGW)