Direct Connect介绍

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

image-20220914184032653

注意上面虽然叫Public VIF,但是流量走的是aws内部骨干网,不是公网。

为什么叫 “Public” VIF呢?

原因 说明
使用公网 IP 访问 S3 时使用的是 S3 的公网 IP 地址
访问公共服务 可以访问 AWS 的公共端点(S3、SQS、DynamoDB 等)
BGP 公告 AWS 通过 BGP 向你公告公共 IP 前缀

但是流量实际走的是 AWS 内部网络,不是互联网。

使用DX需满足的条件

在DX文档上,列出来一些对网络的要求: https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html#overview_requirements

这里我们拿一部分来解释下

802.1Q VLAN encapsulation

原文: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内部数据传输:

image-20220914193128737

所以上图中不同的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

Bidirectional Forwarding Detection (BFD)

原文:(Optional) You can configure Bidirectional Forwarding Detection (BFD) on your network.

双向转发侦测(Bidirectional Forwarding Detection )是一个透过数据链路层连线以侦测两个转送引擎错误的网络协议 ,双向转发侦测可做到全程路径的侦测,不管中间经过多少交换器或线路,以协助侦测路径是否有断线的状况。

DX既连接了AWS骨干网,又连接了用户自己的数据中心,其中任何一环出问题都会影响整个线路的连接。BFD是为了快速检测出网络是否有异常,它是一个可选项。

image-20220914195233203