Skip to main content

~> Deprecation Notice Equinix Metal arrivera en fin de vie le 30 juin 2026. Toutes les ressources Metal seront supprimées dans la version 5.0.0 de ce fournisseur. Utilisez la version 4.x de ce fournisseur pour continuer à l'utiliser jusqu'à la fin de sa durée de vie. Consultez https://docs.equinix.com/metal/ pour plus d'informations.

equinix_metal_reserved_ip_block (Ressource)

Fournit une ressource pour créer et gérer des blocs d'adresses IP réservées dans un projet.

Lorsqu'un utilisateur installe son premier appareil dans un métro, l'API Metal d'Equinix alloue automatiquement des blocs IPv6/56 et IPv4/25 privés. Le nouvel appareil obtient alors des adresses IPv6 et IPv4 privées à partir de ces blocs. Il obtient également une adresse IPv4/31 publique. Chaque nouveau dispositif dans le projet et le métro obtiendra automatiquement des adresses IPv6 et IPv4 privées à partir de ces blocs pré-alloués. Les blocs IPv6 et IPv4 privés ne peuvent pas être créés, mais seulement importés. Avec cette ressource, il est possible de créer des blocs IPv4 publics ou des blocs IPv4 globaux.

Les blocs publics sont attribués dans un métro. Les adresses des blocs publics ne peuvent être attribuées qu'à des appareils dans le métro. Les blocs publics peuvent avoir un masque de /24 (256 adresses) à /32 (1 adresse). Si vous créez un bloc public avec cette ressource, vous devez remplir l'argument métro.

Les adresses des blocs globaux peuvent être attribuées dans n'importe quel métro. Les blocs globaux peuvent avoir un masque allant de /30 (4 adresses) à /32 (1 adresse). Si vous créez un bloc global avec cette ressource, vous devez spécifier type = "global_ipv4" et omettre l'argument metro.

Une fois que le bloc IP est attribué ou importé, une adresse de ce bloc peut être attribuée à l'appareil avec la ressource equinix_metal_ip_attachment.

Consultez la [documentation sur le routage et le transfert virtuels pour obtenir des détails sur le produit et des documents de référence sur l'API.

Exemple d'utilisation

Attribuez des blocs IP réservés :

# Allocate /31 block of max 2 public IPv4 addresses in Silicon Valley (sv) metro for myproject

resource "equinix_metal_reserved_ip_block" "two_elastic_addresses" {
project_id = local.project_id
metro = "sv"
quantity = 2
}

# Allocate 1 floating IP in Silicon Valley (sv) metro

resource "equinix_metal_reserved_ip_block" "test" {
project_id = local.project_id
type = "public_ipv4"
metro = "sv"
quantity = 1
}

# Allocate 1 global floating IP, which can be assigned to device in any metro

resource "equinix_metal_reserved_ip_block" "test" {
project_id = local.project_id
type = "global_ipv4"
quantity = 1
}

Allouez un bloc et exécutez un appareil avec IPv4 public à partir de ce bloc.

# Allocate /31 block of max 2 public IPv4 addresses in Silicon Valley (sv) metro
resource "equinix_metal_reserved_ip_block" "example" {
project_id = local.project_id
metro = "sv"
quantity = 2
}

# Run a device with both public IPv4 from the block assigned

resource "equinix_metal_device" "nodes" {
project_id = local.project_id
metro = "sv"
plan = "c3.small.x86"
operating_system = "ubuntu_24_04"
hostname = "test"
billing_cycle = "hourly"

ip_address {
type = "public_ipv4"
cidr = 31
reservation_ids = [equinix_metal_reserved_ip_block.example.id]
}

ip_address {
type = "private_ipv4"
}
}

Référence de l'argument

Les arguments suivants sont soutenus :

  • project_id - (Obligatoire) L'identifiant du projet Metal où allouer le bloc d'adresses.
  • quantity - (Facultatif) Le nombre d'adresses /32 allouées, une puissance de 2. Requis lorsque type n'est pas vrf.
  • type - (Facultatif) L'un des éléments suivants : global_ipv4, public_ipv4 ou vrf. La valeur par défaut est public_ipv4 pour la compatibilité ascendante.
  • facility - (Déclassé) Installation où allouer le bloc d'adresses IP publiques, n'a de sens que si le type est public_ipv4 et doit être vide si le type est global_ipv4. Conflit avec metro. Utilisez metro à la place ; lisez le [facility to metro migration guide
  • metro - (Facultatif) Métro où allouer le bloc d'adresses IP publiques, n'a de sens que si le type est public_ipv4 et doit être vide si le type est global_ipv4. Conflit avec facility.
  • description - (Facultatif) Description arbitraire.
  • tags - (Facultatif) Liste de balises sous forme de chaîne.
  • vrf_id - (Facultatif) Uniquement valide et requis lorsque type est vrf. ID VRF pour les réservations de type=vrf.
  • wait_for_state - (Facultatif) Attendez que le bloc de réservation IP atteigne l'état souhaité lors de la création de la ressource. L'un des éléments suivants : pending, created : pending, created. L'état created est l'état par défaut et recommandé si les adresses sont nécessaires dans la configuration. Une erreur sera renvoyée si un délai d'attente ou l'état denied est rencontré.
  • custom_data - (Facultatif) Custom Data est un objet arbitraire (soumis dans Terraform en tant que JSON sérialisé) à attribuer à la réservation d'IP. Cela peut être utile pour les IPAM autogérés. L'objet doit être un JSON valide.
  • network - (Facultatif) Uniquement valable en tant qu'argument et requis lorsque type est vrf. Une adresse réseau non réservée d'un ip_range existant dans le VRF spécifié.
  • cidr - (Facultatif) Uniquement valable en tant qu'argument et requis lorsque type est vrf. La taille du réseau à réserver à partir d'un VRF existant ip_range. cidr ne peut être spécifié qu'avec vrf_id. La plage est comprise entre 22 et 31. Les circuits virtuels nécessitent 30-31. Les autres ressources VRF doivent utiliser un CIDR dans la plage 22-29.

Référence des attributs

En plus de tous les arguments ci-dessus, les attributs suivants sont exportés :

  • id - L'identifiant unique du bloc.
  • cidr_notation - Adresse et masque en notation CIDR, par exemple 147.229.15.30/31.
  • network - Partie de la spécification du bloc relative à l'adresse IP du réseau.
  • netmask - Masque en notation décimale, par exemple 255.255.255.0.
  • cidr - longueur du préfixe CIDR du bloc sous forme d'entier.
  • address_family - Famille d'adresses sous forme de nombre entier. L'un de 4 ou 6.
  • public - Indicateur booléen indiquant si les adresses d'un bloc sont publiques.
  • global - Indicateur booléen indiquant si les adresses d'un bloc sont globales (c'est-à-dire qu'elles peuvent être attribuées dans n'importe quel métro).
  • vrf_id - ID VRF du bloc lorsque type=vrf

-> NOTE : La référence idempotente à une première adresse /32 d'un bloc réservé peut ressembler à join("/", [cidrhost(metal_reserved_ip_block.myblock.cidr_notation,0), "32"]).

Importer

Cette ressource peut être importée à l'aide d'un identifiant de réservation IP existant :

terraform import equinix_metal_reserved_ip_block {existing_ip_reservation_id}
Cette page vous a-t-elle été utile ?