Metal网关
Equinix Metal™ Metal网关将网关 IP 地址连接到 VLAN,并提供到该 VLAN 上子网的路由。
这允许您在 VLAN 上部署一组服务器,这些服务器可以通过二层连接在该 VLAN 上相互通信。它们可以通过Metal网关访问Equinix Metal中的其他主机或互联网。这可以用于企业设备或 ESXi 安装等需要具有互联网访问权限的子网的部署,作为专用防火墙或Network Edge实例的经济替代方案。
当使用虚拟路由和转发 (VRF) 连接到虚拟路由器时,您的 Metal 网络可以访问其他云服务提供商和 Equinix Fabric 上的其他目的地。
您配置一个Metal Gateway,其中包含 VLAN 和 IP 地址块,以提供子网。然后,您可以通过以下方式连接服务器:
- 将它们转换为第 2 层网络模式之一
- 将服务器连接到 VLAN
- 从块中为每个服务器分配一个 IP 地址
限制条件
- Metal网关不能使用全球任播 IP 地址块。
- Metal网关不支持 DHCP、NAT、NACL。
- 要将 Metal Gateway 与 Fabric 虚拟连接或专用端口一起使用,您需要使用 虚拟路由和转发 (VRF)。
- 仅 VRF 网关支持 IPv6 地址和子网。
- BGP 邻居支持仅适用于 VRF 网关。
Metal网关 IP 地址块
可以使用以下方式创建Metal网关:
- 来自您的公共 IPv4 地址预留的公共 IPv4 地址块。
- VRF IP 地址块来自 VRF 的 IP 地址预留。
- 来自 Metal 的
10.x.x.x私有 IPv4 地址空间的私有 IPv4 地址块。
公共 IPv4 地址块
Metal Gateway 支持大小为 /29 到 /25(或 8 个 IP 地址到 128 个 IP 地址)的 IPv4 地址块,用于公共 IPv4 地址。您可以使用项目中已有的任何地址块,前提是该地址块中的地址未被用于其他用途,并且其大小符合要求。如果您还没有可用的公共 IPv4 地址块,可以在创建 Metal Gateway 时创建一个。
如果您需要更大的 IP 地址块、IPv6 支持或自带子网,请使用 虚拟路由和转发。
Metal 网关会被分配地址块中第一个可用的 IP 地址。例如,如果您使用地址块 128.66.1.0/28 配置 Metal 网关,则网关的地址将是 128.66.1.1,您可以将该地址块中的剩余 IP 地址分配给您的服务器。无法更改该地址块的默认网关 IP 地址。
具有公有 IP 地址块的Metal网关将拥有通往互联网的路由。即使之前部署的服务器没有公有 IP 地址,只要服务器已从地址块中分配了地址,并且位于Metal网关的 VLAN 上,这些服务器也将能够访问互联网。
VRF 地址块
在创建 Metal Gateway 之前,您必须先使用 IP 地址块配置您的 VRF 的虚拟路由器,并从这些地址块创建 IP 地址预留。
在创建 Metal 网关作为 VRF 的一部分时,请使用来自 VRF 指定的 IP 块 的 IP 地址保留。
VRF 的 IPv4 地址预留的最大子网大小为 /22,最小子网大小为 /29。您可以在同一个 VRF 中为每个 VRF 的 IPv4 地址预留创建多个 Metal 网关。
VRF 仅支持大小为 /64 的子网。每个 VRF 最多只能有一个 /64 IPv6 IP 地址预留。
私有 IPv4 地址块
具有私有 IPv4 地址块的Metal网关可用于需要私有子网的部署,例如部署数据库或后端应用程序。部署了私有 IPv4 地址块的Metal网关将不会拥有到互联网的路由,但会拥有到Equinix Metal内其他服务器的路由。它们无法访问互联网主机,也无法被互联网主机访问,但它们可以访问您项目内的其他主机,并被这些主机访问。
Metal 网关支持大小为 /29 到 /25(或 8 个 IP 地址到 128 个 IP 地址)的 IPv4 地址块,用于私有 IPv4 地址。
具有私有 IP 地址块的 Metal 网关会在 10.x.x.x 地址空间中自动创建一个 IP 地址块,类似于Metal 的私有 IPv4 管理子网。如果您需要更大的 IP 地址块、IPv6 支持或要使用自己的子网,请使用虚拟路由和转发。
Metal 网关会被分配地址块中第一个可用的 IP 地址。例如,如果您使用地址块 10.1.1.0/28 配置 Metal 网关,则网关的地址将是 10.1.1.1,您可以将该地址块中的剩余 IP 地址分配给您的服务器。无法更改该地址块的默认网关 IP 地址。
成本
- 您的帐户中的Metal网关无需支付额外费用。
- 私有 IPv4 地址块或 VRF IP 地址块无需额外付费。
- 与网关一起使用的公共 IPv4 地址块按现有费率计费。
- 公共 IPv4 块上的出口带宽使用按现有费率计费。
创建Metal网关
- Console
- CLI
- API
Metal Gateway 的作用域限定在项目级别。要创建 Metal Gateway,请打开项目的“Metal Gateway”页面。单击“+ 添加 Metal Gateway”。
在“创建 Metal 网关”面板中,从下拉列表中选择要附加到网关的 VLAN。确保该 VLAN 与要与网关一起使用的 IP 地址块和服务器位于同一城域网 (Metro)。如果没有合适的 VLAN,请单击“+创建新 VLAN”,系统将引导您完成创建 VLAN 的过程。
然后,选择您想要与网关一起使用的 IP 地址类型。
如果使用公网 IPv4 地址块,您可以从服务器所在 Metro 网络中的可用 IP 地址块中选择,或者点击“+创建新 IP 地址块”创建一个新的地址块。同样,请确保该 IP 地址块与 VLAN 以及您要与网关配合使用的服务器位于同一 Metro 网络中。

如果您想使用私有 IPv4 地址块,则必须创建一个新的地址块。从下拉菜单中选择地址块的大小,它将自动创建在您为网关选择的 VLAN 所在的同一 Metro 中。

如果您要为虚拟路由器 (VRF) 创建网关,请选择该 VRF 及其 IP 地址预留。更多信息请参见 VRF 页面。

点击创建 Metal 网关开始配置。
在项目中配置 Metal Gateway 后,它将列在 Metal Gateways 页面上。
使用 metal-gateway create 命令创建 Metal 网关。使用 --virtual-network 标志指定要创建网关的 VLAN。
如果您使用的是公共 IPv4 地址块,请使用 --ip-reservation-id 标志指定该地址块。
metal gateway create --project-id <project_uuid> --virtual-network <vlan_uuid> --ip-reservation-id <reservation_uuid>
如果您要创建和使用私有 IPv4 地址块,请使用 --private-subnet-size 标志指定块的大小(IP 地址的数量)。
metal gateway create --project-id <project_uuid> --virtual-network <vlan_uuid> --private-subnet-size <int>
要在 API 中创建非 VRF Metal 网关,请向 /projects/{project id}/metal-gateways 端点发送 POST 请求。
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/projects/{id}/metal-gateways" \
-d '{
"virtual_network_id": <"string">,
"ip_reservation_id": <"string">,
"private_ipv4_subnet_size": <integer>
}'
请求字段:
"virtual_network_id" (required) - The UUID of the VLAN to use for this Metal Gateway."ip_reservation_id"- The UUID of a public IPv4 reservation to use for this Metal Gateway. Required if using the Metal Gateway with a public IPv4 address block. The specified IP reservation must belong to the same Metro as the VLAN."private_ipv4_subnet_size"- The size of the private IPv4 subnet to create for this Metal Gateway, and must be an integer that is a power of 2 between 8 and 128, representing how many IP addresses are in the block. Required if using the Metal Gateway with a private IPv4 address block.
注意:"ip_reservation" 和 "private_ipv4_subnet_size" 字段是互斥的——请求中只能指定其中一个。
要为 VRF 创建 Metal 网关,请在发送到 /projects/{project id}/metal-gateways 端点的 POST 请求正文中指定 VLAN 和 VRF IP 预留地址。更多信息请参见 VRF 页面。
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/projects/{id}/metal-gateways" \
-d '{
"ip_reservation_id": <string>,
"virtual_network_id": <string>
}'
请求字段:
"virtual_network_id"(required) - The UUID of the VLAN to use for this Metal Gateway. The VLAN and the VRF IP Reservation must live in the same metro."ip_reservation_id"- The UUID an a VRF IP Reservation that belongs to the same project as the one in which the Metal Gateway is to be created. The VRF IP Reservation and the VLAN must live in the same Metro.
在项目中配置 Metal 网关后,可以通过向 /projects/{project id}/metal-gateways 端点发送 GET 请求来检索网关列表。
curl -X GET -H 'X-Auth-Token: <API_TOKEN>' https://api.equinix.com/metal/v1/projects/{id}/metal-gateways
网关详细信息
- Console
- CLI
- API
配置完成后,您的 Metal Gateway 的详细信息将列在项目 Metal Gateway 页面上的表格中。

要获取项目中 Metal 网关的列表和详细信息,请使用 metal gateway get 命令。
metal gateway get --project-id <project_uuid>
要获取特定网关的详细信息和状态,请向 /metal-gateways/{id} 端点发送 GET 请求。
curl -X GET -H 'X-Auth-Token: <API_TOKEN>' https://api.equinix.com/metal/v1/metal-gateways/{id}
| Field | Description |
|---|---|
| State | The current state of the Gateway. The possible states are: Ready - The Gateway was successfully provisioned with the IP Address block and VLAN. Active - The VLAN has servers attached to it and the Gateway is in use. |
| Location | The Metro where the Metal Gateway is located. It will also be the Metro where the VLAN and the servers are located. |
| VXLAN | VLAN ID of the VLAN attached to the gateway. |
| Gateway | The IP Address of the gateway. |
| IP Block | The block of usable IP Addresses available through the gateway. |
| Created | Date when the Metal Gateway was created. |
Metal网关配置示例
本示例使用配置了公网 IPv4 子网的 Metal 网关,该网关为配置为二层绑定模式的服务器提供互联网访问。服务器只能通过网关访问互联网。示例中的 Metal 网关使用子网 203.0.113.0/29,网关的 IP 地址为 203.0.113.1。
无论您是配置没有公网 IP 地址的服务器,还是转换现有服务器,此设置都适用。请确保您拥有服务器的 root 密码和 SSH 密钥;使用 SOS/OOB 控制台 都需要它们。
-
将服务器转换为二层绑定模式。服务器将移除所有互联网访问地址和Equinix Metal分配的IP地址。

-
将服务器添加到Metal Gateway 的 VLAN。

-
使用 SOS/OOB 控制台 通过 SSH 连接到服务器,并更新操作系统中的网络配置。本示例使用 Ubuntu 20.04。
ssh -o PubkeyAcceptedAlgorithms=+ssh-rsa -o HostKeyAlgorithms=+ssh-rsa <device_id>@sos.da11.platformequinix.com -
配置 VLAN 的先决条件。
modprobe 8021qecho "8021q" >> /etc/modules -
从属于金属网关的可用 IP 地址范围内分配一个 IP 地址。在本示例中,此服务器仅连接了一个 VLAN,并且不支持未标记的数据包,因此请通过更新
bond0来配置 IP 地址。(如果要将多个 VLAN 连接到此服务器,则需要使用标记流量和子接口,和/或设置本地 VLAN。)ip addr add 203.0.113.2/29 dev bond0ip link set dev bond0 up你可以检查一下它是否出现了
ip -d link show bond0 -
移动默认路由。由于服务器处于第 2 层模式,旧的默认路由不再使用,因此您可以将其移除并将其更新为Metal Gateway 的 IP 地址。
ip route delete default via <old_ip_gateway>ip route add default via 203.0.113.1 dev bond0 -
使用以下方法检查接口配置和默认路由
ip route>default via 203.0.113.1 dev bond010.67.50.2/31 dev bond0 proto kernel scope link src 10.67.50.3203.0.113.2/29 dev bond0 proto kernel scope link src 203.0.113.2 -
结果是,您能够 ping 属于您的Metal Gateway 的子网中的 IP 地址上的服务器。
ping 203.0.113.2>PING 203.0.113.2 (203.0.113.2): 56 data bytes64 bytes from 203.0.113.2: icmp_seq=0 ttl=46 time=49.347 ms64 bytes from 203.0.113.2: icmp_seq=1 ttl=46 time=49.664 ms64 bytes from 203.0.113.2: icmp_seq=2 ttl=46 time=43.281 ms64 bytes from 203.0.113.2: icmp_seq=3 ttl=46 time=54.083 ms64 bytes from 203.0.113.2: icmp_seq=4 ttl=46 time=43.737 ms^C--- 203.0.113.2 ping statistics ---5 packets transmitted, 5 packets received, 0.0% packet lossround-trip min/avg/max/stddev = 43.281/48.022/54.083/4.050 ms
向Metal网关添加 IP 地址
注意:此功能为测试功能,目前仍在积极开发中,仅对部分用户开放。
您可以将您的一个保留的公共 IPv4 地址分配给 Metal 网关中的目标 IP 地址。
将保留的 IP 地址(或地址范围)分配给Metal网关时,您还需要指定“下一跳”或目标 IP 地址。下一跳地址必须位于分配给Metal网关的子网内,并且不能是网络地址、网关地址或广播地址(不能是子网中的第一个或最后一个地址)。
注意 - 无法验证所选的下一跳地址是否确实被您的任何服务器使用。
然后,要将保留的 IP 地址分配给 Metal 网关,请向 /metal-gateways/{id}/ips 端点发送 POST 请求。
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/metal-gateways/{id}/ips" \
-d '{
"address": "a.b.c.d/e",
"next_hop": "w.x.y.z",
"tags": ["list", "of", "tags"],
"customdata": { "customdata": "object" }
}'
身体参数:
"address"(required) - An IP address (or IP Address range) contained within one of the Project's reserved IP address blocks."next_hop"(required) - An IP address contained within the Metal Gateways' IP address block."customdata"- An optional user-defined JSON object value. More on custom data fields can be found on the Custom Data documentation page."tags"- Optional list of user-defined tags. Can be used by users to provide additional details or context.
要列出 Metal 网关的保留 IP 地址分配,请向 /metal-gateways/{id}/ips 端点发送 GET 请求。
curl -X GET -H 'X-Auth-Token: <API_TOKEN>' https://api.equinix.com/metal/v1/metal-gateways/{id}/ips
要显示单个 IP 地址分配,请向 /ips/{id} 端点发送 GET 请求。
curl -X GET -H 'X-Auth-Token: <API_TOKEN>' https://api.equinix.com/metal/v1/ips/{id}
要从 Metal 网关中删除保留的 IP 地址,请向 /ips/{id} 端点发送 DELETE 请求,并在请求中指定分配的 ID。
curl -X DELETE -H 'X-Auth-Token: <API_TOKEN>' https://api.equinix.com/metal/v1/ips/{id}
这不会从您的项目中删除 IP 地址。该地址或子网可以在其他地方自由使用。
删除Metal网关
- Console
- CLI
- API
在“金属网关”页面的列表中选择要删除的金属网关。单击“删除”。

要删除 Metal 网关,请使用 metal gateway delete 命令。通过向 --id 标志提供网关的 UUID 来指定要删除的网关。
metal gateway delete --id <gateway_uuid>
要删除网关,请向 /metal-gateways/{id} 端点发送 DELETE 请求。
curl -X DELETE -H 'X-Auth-Token: <API_TOKEN>' https://api.equinix.com/metal/v1/metal-gateways/{id}
删除Metal网关时,网关及其子网的数据将被移除。如果该地址块是公网 IPv4 地址块,则该地址块将返回给项目,您可以将其重新用于其他用途。如果该 IP 地址块是私网 IPv4 地址块,则该 IP 地址块将被删除。与该网关关联的 VLAN 将继续存在,并且也可以用于其他用途。
注意:可以删除“活动”网关。删除前请确保该网关当前未处理流量,以免造成中断。