创建Public VIF

当申请完一条dx后,可以继续创建virtual interface流程, 这里以public VIF为例:

image-20260215143351813

这里选择public VIF:

image-20260215143253790

参数 含义
Virtual interface name VIF 的名称,方便识别,最多100字符
Connection 选择建在哪条 DX 物理连接上
Virtual interface owner My AWS account 归自己用;Another AWS account 是给别人创建 Hosted VIF
VLAN 802.1Q VLAN Tag,区分不同 VIF 的流量,范围 1-4094
BGP ASN 本地路由器的 BGP 自治系统号
Address family BGP 对等使用 IPv4 还是 IPv6,一般选 IPv4

image-20260215143315858

image-20260215143536111

参数 含义 说明
Your router peer IP 本地路由器的 BGP 对等 IP 示例是 10.0.0.1/30,这是路由器接口要配置的 IP 地址
Amazon router peer IP AWS 端路由器的 BGP 对等 IP 示例是 10.0.0.2/30,这是 AWS 那边的 IP,路由器要把它配为 BGP neighbor
Prefixes you want to advertise 要通告给 AWS 的公网 IP 前缀 Public VIF 专有参数,必须是你拥有的公网 IP 段
BGP authentication key BGP MD5 认证密码(可选) 双方配置相同密码后,BGP 会话会做 MD5 校验,更安全

Prefixes you want to advertise注意点

这是 Public VIF 特有的参数。填写的 IP 前缀(如 192.0.20.0/28)必须满足以下条件:

  1. 必须是公网可路由的 IP 地址,不能是私有地址(10.x、172.16-31.x、192.168.x)
  2. 必须是用户合法拥有的 IP 段,AWS 会向 ARIN/RIPE 等 RIR 验证归属
  3. 填写后,AWS 会通过 BGP 把这些前缀宣告到 AWS 网络,这样 AWS 服务(S3、DynamoDB 等)的回程流量就会走 DX 回到用户的网络

Public VIF 连接建立流程

第一阶段:物理层连接:

  • 数据中心通过光纤连接到 AWS Direct Connect Location
  • 物理链路 UP,光信号正常;以太网层 UP,可以传输数据帧

此时物理通道已打通,但还不能路由 IP 流量。

第二阶段:VLAN 隔离

  • AWS 在 DX 端口上配置 VLAN Tag(假设上图中之前填了 VLAN 100)
  • 在本地路由器配置对应的 VLAN 子接口,带有 VLAN 100 Tag 的以太网帧可以双向传输

第三阶段:IP 层配置。例如

参数 配置位置
Your router peer IP 10.0.0.1/30 用户的路由器子接口
Amazon router peer IP 10.0.0.2/30 AWS 自动配置

用户的路由器配置:

interface GigabitEthernet0/0.100
  encapsulation dot1Q 100
  ip address 10.0.0.1 255.255.255.252

此时两端可以 ping 通:

用户的路由器 (10.0.0.1) <---> AWS 路由器 (10.0.0.2)

第四阶段:BGP 会话建立

  • 用户的路由器向 10.0.0.2 发起 BGP 连接,双方交换 OPEN 消息,协商参数(ASN、Hold Time 等)
  • 用户的 ASN 65000,AWS 的 ASN 7224;BGP 会话进入 Established 状态

用户的路由器配置:

router bgp 65000
  neighbor 10.0.0.2 remote-as 7224

第五阶段:路由交换

用户 → AWS 方向(宣告公网前缀):

  • 用户的路由器通过 BGP 宣告 (上图中对应192.0.20.0/28 和 192.0.2.28/30)
  • AWS 收到这些前缀,验证用户是否合法拥有(通过 RPKI/ROA 或 IRR),验证通过后,AWS 将这些前缀注入其全球网络
  • AWS 服务(S3、EC2 等)的回程流量会通过 DX 发到用户的网络

AWS → 用户方向(AWS 宣告公网服务前缀):

  • AWS 通过 BGP 向用户宣告 AWS 公共服务的 IP 前缀
  • 用户的路由器收到这些路由,加入路由表
  • 用户访问 S3/DynamoDB 等服务的流量走 DX 而不是公网

最终状态

用户的数据中心                           AWS
192.0.20.0/28  ←────────────────────→  S3 (52.x.x.x)
192.0.2.28/30      Direct Connect      DynamoDB
                   (BGP Established)   SQS 等公共服务

时间线总结:

阶段 耗时 说明
物理连接 数周 光纤布线、cross-connect
AWS 配置 VIF 几分钟 用户在 Console 创建
本地路由器配置 几分钟 配 VLAN + IP + BGP
BGP 建立 几秒~几分钟 自动协商
路由收敛 几秒~几分钟 双方学习路由

router peer IP

上图中有两个router peer IP,一个是Your router peer IP,另一个是Amazon router peer IP,这两组Peer IP 地址和Prefixes to advertise是不同的概念:

IP 地址 用途 是否必须公网
BGP Peer IP(10.0.0.1/30, 10.0.0.2/30) 用户和 AWS 路由器之间点对点链路的地址 ❌ 可以是私有 IP
Prefixes to advertise(192.0.20.0/28 等) 用户要宣告给 AWS 的网络前缀 ✅ 必须是公网 IP

为什么 BGP Peer IP 可以是私有地址?

BGP Peer IP 只用于用户的路由器和 AWS 路由器之间这一小段直连链路。这段链路是通过 DX 专线物理隔离的,不经过公网,所以:

用户的路由器 ←------ /30 点对点链路 ------→ AWS 路由器
10.0.0.1                              10.0.0.2
         (私有 IP,仅这两台设备使用)

这个 /30 网段只有两个可用 IP,专门给这对 BGP 邻居用,外界看不到也访问不到。

为什么 Prefixes 必须是公网 IP?

因为用户通过 Public VIF 宣告的前缀会被 AWS 注入到其全球网络。当 AWS 服务(比如 S3)要回复你的请求时,回程流量的目的地址是用户宣告的前缀:

S3 服务器想回复 → 查路由表 → 发现 192.0.20.0/28 走 DX → 流量到达用户

如果用户宣告的是私有地址(如 10.x.x.x),AWS 不会接受。

总结:点对点链路用私有 IP 没问题,但宣告给 AWS 的业务网段必须是用户拥有的公网 IP。

Amazon router peer IP

Amazon router peer IP不是固定的,是用户自己填的

可以填任意合法的 /30 私有地址段,比如:

Your router Amazon router
10.0.0.1/30 10.0.0.2/30
172.16.1.1/30 172.16.1.2/30
192.168.100.1/30 192.168.100.2/30
169.254.100.1/30 169.254.100.2/30

规则:

要求 说明
同一个 /30 子网 两个 IP 必须在同一个 /30 内
不能相同 两个 IP 必须不同
避免冲突 不要和现有网络的 IP 冲突

也可以让 AWS 自动分配,如果用户不填这两个字段,AWS 会自动从 169.254.x.x/30 范围分配一对 IP 给用户。