AWS Direct Connect 将企业内部网络连接到一个Direct Connect location上,通过这个连接可以创建虚拟网卡(virutal interface)连接到AWS公共服务如S3、SQS,或者连接到VPC:

注意上面虽然叫Public VIF,但是流量走的是aws内部骨干网,不是公网。
为什么叫 “Public” VIF呢?
| 原因 | 说明 |
|---|---|
| 使用公网 IP | 访问 S3 时使用的是 S3 的公网 IP 地址 |
| 访问公共服务 | 可以访问 AWS 的公共端点(S3、SQS、DynamoDB 等) |
| BGP 公告 | AWS 通过 BGP 向你公告公共 IP 前缀 |
但是流量实际走的是 AWS 内部网络,不是互联网。
在DX文档上,列出来一些对网络的要求: https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html#overview_requirements
这里我们拿一部分来解释下
原文:802.1Q VLAN encapsulation must be supported across the entire connection, including intermediate devices.
VLAN Trunk(虚拟局域网中继技术)是指能让连接在不同交换机上的相同VLAN中的主机互通。
如果两台交换机都设置有同一VLAN里的计算机,怎么办呢,我们可以通过VLAN Trunk来解决。
如果交换机1的VLAN 30中的机器要访问交换机2的VLAN 30中的机器,我们可以把两台交换机的直连端口设置为Trunk端口,这样,当交换机把数据包从级联口发出去的时候,会在数据包中做一个标记(TAG),以使其它交换机识别该数据包属于哪一个VLAN,这样,其它交换机收到这样一个数据包后,只会将该数据包转发到标记中指定的VLAN,从而完成了跨越交换机的VLAN内部数据传输:

所以上图中不同的VLAN之间能够跨越交换机进行通讯
VLAN Trunk目前有两种标准,ISL和802.1q,前者是Cisco专有技术,后者则是IEEE的国际标准。
为什么Direct Connect要求所有设置都支持802.1Q VLAN呢?这是因为一条DX专线后面能对接多个VIF(public VIF, private VIF),在这条线路上,DX要知道把数据传输到哪个VIF,背后也是通过上图中红框里的802.1Q VLAN encapsulation + VLAN Tag实现的
DX工作原理:
一条物理 DX 连接
│
├── VLAN 100 ──→ Private VIF (连 VPC-A)
│
├── VLAN 200 ──→ Private VIF (连 VPC-B)
│
└── VLAN 300 ──→ Public VIF (连 S3/SQS 等)
| DX属性 | 说明 |
|---|---|
| 标准 | IEEE 802.1Q |
| 封装 | 在以太网帧中插入 4 字节 VLAN Tag |
| VLAN ID 范围 | 1 - 4094 (你自己指定) |
| 每条 DX 最多 VIF | 50 个 Private/Transit VIF + 1 个 Public VIF |
| MTU | 默认 1500,可支持 Jumbo Frame 9001 |
所以创建 VIF 时需要指定 VLAN ID:
{
"virtualInterfaceName": "MyPrivateVIF",
"vlan": 100, // 你指定的 VLAN ID
"asn": 65001, // 你的 BGP ASN
"amazonAddress": "169.254.255.1/30",
"customerAddress": "169.254.255.2/30",
"virtualGatewayId": "vgw-xxxxxx"
}
为什么用 VLAN Trunk?
| 好处 | 说明 |
|---|---|
| 复用物理线路 | 一条 DX 连多个 VPC |
| 隔离流量 | 不同 VIF 完全隔离 |
| 灵活分配 | 可按需创建/删除 VIF |
| 成本优化 | 不需要为每个 VPC 单独买 DX |
原文:(Optional) You can configure Bidirectional Forwarding Detection (BFD) on your network.
双向转发侦测(Bidirectional Forwarding Detection )是一个透过数据链路层连线以侦测两个转送引擎错误的网络协议 ,双向转发侦测可做到全程路径的侦测,不管中间经过多少交换器或线路,以协助侦测路径是否有断线的状况。
DX既连接了AWS骨干网,又连接了用户自己的数据中心,其中任何一环出问题都会影响整个线路的连接。BFD是为了快速检测出网络是否有异常,它是一个可选项。
