Private VIF

Private VIF 是 Direct Connect 的虚拟接口类型,用于通过私有 IP 地址访问 VPC 内的资源,流量不经过公网。

对比 Private VIF Public VIF
访问目标 VPC 内资源(EC2、RDS 等) AWS 公共服务(S3、DynamoDB)
使用的 IP 私有 IP 公网 IP
关联组件 VGW 或 Direct Connect Gateway 无需关联
典型用途 混合云、数据中心连 VPC 访问 AWS 公共端点

示例架构:

本地数据中心                          AWS
                                    
┌──────────────┐     DX      ┌──────────────────────────────────┐
│ 客户路由器     │◄───────────►│  Private VIF                      │
│ 10.0.0.1     │             │       │                          │
│ BGP ASN 65000│             │       ▼                          │
└──────────────┘             │  ┌─────────┐    ┌─────────────┐  │
       │                     │  │   VGW   │◄──►│    VPC      │  │
       │                     │  │         │    │ 172.31.0.0/16│  │
       ▼                     │  └─────────┘    │  ┌────────┐  │  │
┌──────────────┐             │                 │  │  EC2   │  │  │
│ 本地服务器     │             │                 │  │ RDS等  │  │  │
│ 192.168.1.0/24│            │                 │  └────────┘  │  │
└──────────────┘             └──────────────────────────────────┘

image-20260223100254572

创建Private VIF时,需要指定使用DXGW还是VGW:

image-20260223100931180

VGW和DXGW的区别

场景 Private VIF + VGW Private VIF + DXGW
同 Region VPC ✅ 支持 ✅ 支持
跨 Region VPC ❌ 不支持 ✅ 支持
跨账户 VPC ❌ 不支持 ✅ 支持

规则:Private VIF 直连 VGW 时,两者必须在同一 Region。 如需跨 Region 或跨账户,必须使用 Direct Connect Gateway (DXGW) 作为中间层

Private VIF ──► DXGW ──► VGW (Region A)
                   └──► VGW (Region B)
                   └──► VGW (另一个账户)

DXGW 是一个全局路由中转层,它本身不连 VPC,只是把流量转发给 VGW 或 TGW。DXGW 必须通过 VGW 或 Transit Gateway 才能连到 VPC。

上面是DXGW的第一种用法,后面接VGW;第二种用法是接TGW:

Transit VIF ──► DXGW ──► TGW ──► 多个 VPC

BGP 路由交换

创建Private VIF时,它相比于Public VIF一个重要区别是,以下几个选项是optional的:

image-20260223101650559

建立 Private VIF 后,BGP 会话会自动交换路由:

方向 交换内容 说明
AWS → 用户 VPC CIDR 前缀 用户的路由器学习到 172.31.0.0/16 等
用户 → AWS 本地网络前缀 AWS 学习到用户的 192.168.0.0/16 等

BGP 收到的路由示例:

# 用户的路由器会收到类似这样的路由

172.31.0.0/16  via 10.0.0.2 (AWS VGW)
10.100.0.0/16  via 10.0.0.2 (另一个 VPC,如果有)

Private VIF 不需要用户宣告前缀,因为路由是从 VPC CIDR 自动学习的。

这些字段可选是因为 AWS 能自动分配,但如果有 IP 规划需求或安全要求可以手动填写

private VIF的限制

Gateway endpoint和VPC DNS resolver不能通过private VIF来访问:

image-20260223100342307

资源类型 能否通过 Private VIF 访问 说明
EC2 实例 ✅ 可以 Private VIF 的核心用途
Interface Endpoint ✅ 可以 有 ENI 和私有 IP,可达
Gateway Endpoint ❌ 不能 只能从 VPC 内部访问
AWS DNS (VPC DNS) ❌ 不能(默认) 本地无法直接解析 AWS 私有 DNS

默认情况下,本地服务器无法解析 VPC 内的私有 DNS 名称(如 EC2 的私有 DNS)。

解决方案:配置 Route 53 Resolver Inbound Endpoint

本地 DNS 服务器 → Private VIF → Route 53 Resolver Inbound Endpoint → 解析 VPC 私有 DNS