Reserved Public IPv4 Addresses¶
Equinix Metal™ supports ordering additional public IPv4 subnets so you can allocate more public IPv4 addresses per server or easily move public IPv4 addresses between servers. These subnets are provisioned and available at the Project-level so they can be unassigned and reallocated other servers in the Project.
Public IPv4 addresses are also provisioned in a specific Metro, and can be used with any server in the same metro.
You can order subnet sizes from /31
to /24
.
Public IPv4 Subnet Size | Usable Addresses |
---|---|
/31 | 2 IPv4 addresses |
/30 | 4 IPv4 addresses |
/29 | 8 IPv4 addresses |
/28 | 16 IPv4 addresses |
/27 | 32 IPv4 Addresses |
/26 | 64 IPv4 Addresses |
/25 | 128 IPv4 Addresses |
/24 | 256 IPv4 Addresses |
Reserved Public IPv4 addresses are billed on a usage basis at a fixed rate per IP per hour. Bandwidth is billed at the standard outbound rate. All rates are available on our Pricing page.
Note: there is a default limit of 256 public IPv4 addresses total in a Project. If you have questions or anticipate needing more IP space, please contact support.
Requesting Public IPv4 Addresses¶
From your Project's Networking section, open the IPs page. Your project's current IP Addresses should be listed. To request additional IP Addresses, click + Add New.
From the Request IP Addresses slide out, select the Location, and the Quantity (size) of the reserved subnet. There are also fields for Tags and a Description for your use. The Custom JSON field is for custom data that you want to be included in your server's metadata.
Use the Comments field for contacting support with any information that is relevant to your request. Particularly if you are planning to request multiple subnets, or multiple large subnets, as there are quotas in place at the project-level. Support may reach out with questions about your request.
To request public IPv4 addresses, use the metal ip request
command and specify the --type
as public_ipv4
.
metal ip request --project-id <project_id> --type public_ipv4 --quantity <int>
There is an optional --comments
flag for contacting support with any information that is relevant to your request. Particularly if you are planning to request multiple subnets, or multiple large subnets, as there are quotas in place at the project-level. Support may reach out with questions about your request.
To request additional IP addresses in the API, send a POST
request to the /projects/{id}/ips
endpoint.
curl -X POST \
-H 'Content-Type: application/json' \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/projects/{id}/ips" \
-d '{
"type": "public_ipv4",
"quantity": 4,
"metro": "sv",
"fail_on_approval_required": "false"
}'
Body Parameters
"type"
(required) - Your options are"public_ipv4"
or"global_ipv4"
."quantity"
(required) - The quantity parameter should be the number of IPs in the subnet. Valid values are2
,4
,8
, and16
for Public IPv4 addresses and1
,2
, and4
for Global Anycast IP addresses."metro"
- The metro is required when requesting a public IPv4 address and specifies where the IP addresses will be allocated. If you are requesting a Global Anycast IP address, the metro is not required."fail_on_approval_required"
(optional) - If you submit a request that exceeds the maximum number of IP addresses available to your project, you can automatically have the request fail with HTTP status 422 instead of triggering the review process by providing thefail_on_approval_required
parameter set totrue
in the request.
A full listing of body parameter fields and options is available in the API reference.
Provisioning with a Reserved Public IPv4 Subnet¶
If you are provisioning new servers in projects and metros that already have public IPv4 reserved subnets, then you can use IP Addresses from those subnets on the new servers.
During the provisioning process, under Optional Settings, click Configure IPs. Choose Deploy from your subnet and select the subnet and number of IP Addresses to assign to the server.
If you are using the API to provision your server, include the "ip_address"
object in the body of your POST
request to the projects/{id}/devices
endpoint.
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/projects/{id}/devices" \
-d '{
"plan": "c3.small.x86",
"operating_system": "ubuntu_20_10",
"metro": "sv",
"hostname": "reserved_ip_testing",
"ip_addresses": [
{
"type": "public_ipv4",
"address_family": 4,
"public": true,
"cidr": <subnet_size>,
"ip_reservations": ["<ip_reservation_uuid>"]
},
{
"type": "private_ipv4",
"address_family": 4,
"public": false
},
{
"type": "public_ipv6",
"address_family: 6,
"public": true
}
]
}'
Body Parameters
"metro"
(required) - Location of the server and the IP reservation."plan"
(required) - Server hardware plan slug."operating_system"
(required) - The server's operating system slug."ip_addresses"
(optional) - The object that specifies the IP address configuration of your server. To provision with your reserved subnet, modify the"type": "public_ipv4"
data to include the subnet size and the UUID of the reserved subnet.
A full listing of body parameter fields and options when provisioning a server is available in the API reference.
Remember that Operating Systems have a minimum subnet size requirement.
- Linux Distributions -
/31
- Windows Server -
/30
- VMware ESXi -
/29
Adding Public IPv4 Addresses to a Server¶
If you want to add your new Public IPv4 addresses or subnets to an existing server, you have two options: to assign your new IP Addresses to a server statically, as Elastic IPs, or by announcing them with BGP.
If you choose to bind your IPs statically as an Elastic IP, you can bind individual addresses and whole subnets to a single device.
If you choose to announce your IPs or subnets with BGP, you will need to set up and configure Local BGP.
Deleting an IPv4 Reservation¶
Deleting a reservation removes the subnet from your project. You will no longer be able to use the IP addresses for your servers.
To delete a reservation from your Project, open the IPs page, select the IP reservation you would like to delete, and click Delete.
To remove a public IPv4 address reservation, use the metal ip remove
command.
metal ip remove --id <reservation-id>
To delete an IP reservation through the API, send a DELETE
request to the /ips/{id}
endpoint. The id
is the UUID of the reservation.
curl -X DELETE -H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/ips/{id}"