仅限第 2 层非绑定模式
Equinix Metal™ 允许用户将服务器的网络模式从默认的三层绑定模式更改为仅使用基于 VLAN 的二层网络模式。这意味着所有对公共互联网的访问都将丢失,并且只能通过 SSH 串行 (SOS) 控制台或连接到同一 VLAN 的其他服务器访问该主机。
此选项将破坏 LACP 绑定,并允许您将每个接口放入单独的二层网络中。但这会在上游交换机或网络接口上引入单点故障。其中一个端口的中断、维护或重启都会导致网络中断。

如果您有高可用性方面的顾虑,第 2 层绑定模式支持仅第 2 层配置,同时保持跨越 2 个不同上游交换机的绑定网络接口。
总体概述
- 第 2 层非绑定模式打破了绑定,允许您分别配置两个接口,但如果其中一个端口或交换机发生故障,则会向您的网络暴露单点故障。
- 然后,您可以将 VLAN 添加到
eth1和eth0以用于二层流量。如果您仅为eth1或eth0的每个接口添加一个 VLAN,则流量无法被标记。 - 如果您要向
eth1或eth0添加多个 VLAN,则需要为每个 VLAN 创建子接口来处理标记流量,和/或需要设置一个本地 VLAN 来处理未标记流量。
转换为第 2 层非绑定模式
- Console
- CLI
- API
在 Equinix Metal 控制台中,导航至服务器的“网络”页面,单击“转换为其他网络类型”,然后选择“第 2 层”。选择“未绑定”模式。单击“转换为第 2 层”开始转换。

完成后,您将返回服务器的 Network 页面。
要为某个端口分配 VLAN,请单击“添加新 VLAN”,然后选择 eth0 或 eth1 接口。单击“添加”开始更改。

使用 metal port convert 命令将绑定接口转换为第 2 层,同时从绑定中移除两个端口接口,为 --port-id 指定 UUID 为 bond0,并使用 --unbonded 标志。
metal port convert --port-id <bond0_id> --layer2 --unbonded
然后,您可以使用 metal port vlan 命令将 VLAN 添加到 eth0 或 eth1(或两者)。为 --port-id 指定 eth0 或 eth1 的 UUID,并指定要分配给 --assign 的 VLAN。
metal port vlan --port-id <eth1_id> --assign <VLAN_id>
VLAN_id 可以是 VLAN 的 UUID 或控制台中显示的 VLAN ID 号。
在 API 中,转换为二层非绑定模式是一个两步过程。首先,您必须通过向 /ports/{id}/disbond 端点发送 POST 请求来断开所有端口的绑定。
您必须在路径中指定端口 ID eth1,并且它必须是 /devices/{id} 端点返回的该端口的 UUID。
将请求正文中的 bulk_disable 字段设置为 false。
curl -X POST -H \
"Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/ports/{id}/disbond" \
-d '{
"bulk_disable": false
}'
然后,您需要将 VLAN 分配给 eth1。向 /ports/{id}/assign 端点发送 POST 请求。
您必须指定端口 ID eth1,并且它必须是 /devices/{id} 端点返回的该端口的 UUID。
curl -X POST -H \
"Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/ports/{id}/assign" \
-d '{
"vnid": "<vlan_ID>"
}'
'vnid' 是请求正文中发送的 VLAN ID。该 ID 可以是 /projects/{id}/virtual-networks 端点返回的 VLAN UUID,也可以是控制台中显示的 VLAN ID。
连接多个 VLAN - 非绑定
支持向绑定接口添加多个 VLAN。但这会影响服务器配置,因为您必须确保存在一个子接口来接收发往每个 VLAN 的数据包,或者设置一个本地 VLAN 来处理未标记的流量。
- Console
- CLI
- API
要为端口分配多个 VLAN,请导航至服务器的“网络”页面。在“第 2 层”部分,单击“添加新 VLAN”,即可为 eth0 或 eth1 分配更多 VLAN。
点击“添加”按钮开始更改。请注意,如果您一次分配多个 VLAN,它们将通过异步批处理进程添加,该进程会立即开始,但可能需要一些时间才能完成。
要将一个或多个 VLAN 分配给 eth0 或 eth1,请使用 metal port vlan 命令,指定要分配的每个 VLAN 以及要将其分配到的端口。
metal port vlan --port-id <eth0_id> --assign <vlan> --assign <vlan>
为端口分配单个额外 VLAN 的步骤与分配第一个 VLAN 的步骤相同。向 /ports/{id}/assign 端点发送 POST 请求。
您必须在路径中指定端口 ID,并且它必须是 /devices/{id} 端点返回的该端口的 UUID。
VLAN 的 ID 在请求正文中发送,它可以是 /projects/{id}/virtual-networks 端点返回的 VLAN 的 UUID,也可以是控制台中的 VLAN ID。
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN> " \
"https://api.equinix.com/metal/v1/ports/{id}/assign" \
-d '{
"vnid": "c4032b18-5494-451b-a779-a7d3c536bfd7"
}'
也可以通过异步批处理方式批量为端口分配 VLAN。向 /ports/{id}/vlan-assignments/batches 端点发送 POST 请求,并在请求正文中传入 VLAN 分配数组。
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN> " \
"https://api.equinix.com/metal/v1/ports/{id}/vlan-assignments/batches" \
-d '{
"vlan_assignments": [
{
"vlan": "string",
"state": "assigned"
},
{
"vlan": "string",
"state": "assigned"
},
]
}'
配置服务器以进行第 2 层非绑定
将服务器转换为第 2 层非绑定模式并将 VLAN 分配给接口后,您将需要在服务器的操作系统上配置网络并为其分配 VLAN 上的 IP 地址。
注意 - 由于在将此服务器转换为第 2 层时所有Equinix Metal分配的 IP 地址都已被删除,因此您可以自由配置和使用所需的任何子网,但您可能必须删除服务器操作系统中的任何现有配置以防止冲突。
有两个示例配置,第一个示例是分配单个 VLAN 的配置,第二个示例是分配多个 VLAN 的配置。
请记住,您需要使用 SOS/OOB 控制台 通过 SSH 连接到您的服务器。
每个接口一个 VLAN
如果只有一个 VLAN,则无需标记流量,直接将 VLAN IP 地址分配给接口。本示例使用 eth1,但对于 eth0 或 eth1,步骤相同。
- Ubuntu or Debian
注意 - 在我们最近的 Ubuntu 镜像中,接口不再别名为 eth1 和 eth0,eth1 是 enp1s0f1,eth0 是 enp1s0f0。
-
安装并配置 VLAN 的先决条件。
apt-get install vlanmodprobe 8021qecho "8021q" >> /etc/modules -
请确保已从
bond0中移除eth1和eth0。ip -d link show enp1s0f1ip -d link show enp1s0f0如果尚未删除,请将其删除。
ip link set enp1s0f1 nomasterip link set enp1s0f0 nomaster -
为 VLAN 配置 IP 地址
enp1s0f1。示例中使用的是 IP 地址192.168.1.2/29。ip addr add 192.168.1.2/29 dev enp1s0f1要使网络配置永久生效并在服务器重启后仍然有效,请编辑
/etc/network/interfaces文件中的enp1s0f1。auto enp1s0f1iface enp1s0f1 inet manualaddress 192.168.1.2netmask 255.255.255.248pre-up sleep 4 -
启动接口并检查其是否已恢复。
ip link set dev enp1s0f1 upip -d link show enp1s0f1
对于接口上的多个 VLAN
如果您在 eth1 或 eth0 上使用多个 VLAN,则 IP 数据包将被标记,您需要设置子接口来接收发往每个 VLAN 的数据包。
本例使用 eth1,但对于 eth0 或 eth1,过程相同。
注意:如果您需要支持未标记的数据包,请将处理未标记数据包的 VLAN 设置为 本地 VLAN。
- Ubuntu or Debian
注意 - 在我们最近的 Ubuntu 镜像中,接口不再别名为 eth1 和 eth0,eth1 是 enp1s0f1,eth0 是 enp1s0f0。
-
安装并配置 VLAN 的先决条件。
apt-get install vlanmodprobe 8021qecho "8021q" >> /etc/modules -
请确保已从
bond0中移除eth1和eth0。ip -d link show enp1s0f1ip -d link show enp1s0f0如果尚未删除,请将其删除。
ip link set enp1s0f1 nomasterip link set enp1s0f0 nomaster -
在
enp1s0f1上添加新的子接口来处理带标签的流量,每个 VLAN 一个子接口,并为其分配 IP 地址。使用 Equinix Metal VLAN 中的 VLAN ID,就像在VLAN_ID字段中一样。示例中使用了 VLAN ID1000和1001以及 IP 地址192.168.1.2/29和192.168.100.2/29。ip link add link enp1s0f1 name enp1s0f1.1000 type vlan id 1000ip addr add 192.168.1.2/29 dev enp1s0f1.1000ip link add link enp1s0f1 name enp1s0f1.1001 type vlan id 1001ip addr add 192.168.100.2/29 dev enp1s0f1.1001为了使网络配置永久有效,并在服务器重启后仍然有效,请将新的子接口添加到
/etc/network/interfaces文件中。auto enp1s0f1.1000iface enp1s0f1.1000 inet staticaddress 192.168.1.2netmask 255.255.255.248vlan-raw-device enp1s0f1auto enp1s0f1.1001iface enp1s0f1.1001 inet staticaddress 192.168.100.2netmask 255.255.255.248vlan-raw-device enp1s0f1 -
启动接口并检查它们是否已启动。
ip link set dev enp1s0f1.1000 upip -d link show enp1s0f1.1000ip link set dev enp1s0f1.1001 upip -d link show enp1s0f1.1001
您需要在想要连接到 VLAN 的所有服务器上运行相同的步骤,并为每个服务器分配不同的 IP 地址。
转换回第 3 层
如果您处于第 2 层模式之一并想要返回第 3 层,则必须先删除所有附加的 VLAN。
要在控制台中分离 VLAN,请导航至服务器的“网络”页面。在“第 2 层”部分,单击要从服务器分离的 VLAN 旁边的“移除”按钮。单击“是”确认要移除该 VLAN。

从此服务器分离 VLAN 并不会将其从您的项目中删除。从服务器分离后,该 VLAN 将继续存在。
然后,要转换回第 3 层,请单击“转换为其他网络类型”,选择“第 3 层”。单击“转换为第 3 层”开始转换过程。

注意:处于层绑定模式会删除服务器的公网 IP 地址。如果服务器稍后转换回第 3 层,则会分配新的公网 IP 地址,并且服务器可访问公共互联网。