Ir para o conteúdo principal

Aviso de Descontinuação O Equinix Metal alcance ao fim de sua vida útil em 30 de junho de 2026 Todos os recursos do Metal serão removidos na versão 5.0.0 deste provedor. Use a versão 4.x deste provedor para continuar utilizando-o após o encerramento das atividades. Consulte https://docs.equinix.com/metal/ para obter mais informações.

equinix_metal_reserved_ip_block (Recurso)

Fornece um recurso para criar e gerenciar blocos de endereços IP reservados em um projeto.

Quando um usuário provisiona o primeiro dispositivo em uma rede metropolitana, a API Metal da Equinix aloca automaticamente blocos IPv6/56 e IPv4/25 privados. O novo dispositivo recebe então endereços IPv6 e IPv4 privados desses blocos. Ele também recebe um endereço IPv4/31 público. Todos os novos dispositivos no projeto e na rede metropolitana receberão automaticamente endereços IPv6 e IPv4 privados desses blocos pré-alocados. Os blocos IPv6 e IPv4 privados não podem ser criados, apenas importados. Com este recurso, é possível criar blocos IPv4 públicos ou blocos IPv4 globais.

Os blocos públicos são alocados em uma rede metropolitana. Os endereços de blocos públicos só podem ser atribuídos a dispositivos na mesma rede metropolitana. Os blocos públicos podem ter máscaras de /24 (256 endereços) a /32 (1 endereço). Se você criar um bloco público com este recurso, deverá preencher o argumento da rede metropolitana.

Os endereços de blocos globais podem ser atribuídos a qualquer rede metropolitana. Os blocos globais podem ter máscaras de /30 (4 endereços) a /32 (1 endereço). Se você criar um bloco global com este recurso, deverá especificar type = "global_ipv4" e omitir o argumento metro.

Uma vez que o bloco IP é alocado ou importado, um endereço dele pode ser atribuído ao dispositivo com o recurso equinix_metal_ip_attachment.

Consulte a [documentação de Roteamento e Encaminhamento Virtual para obter detalhes do produto e material de referência da API .

Exemplo de uso

Alocar blocos de IP reservados:

# 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
}

Alocar um bloco e executar um dispositivo com IPv4 público a partir do bloco.

# 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"
}
}

Referência do argumento

Os seguintes argumentos são suportados:

  • project_id - (Obrigatório) O ID do projeto Metal onde alocar o bloco de endereço.
  • quantity - (Opcional) O número de endereços /32 alocados, uma energia de 2. Obrigatório quando type não é vrf.
  • type - (Opcional) Um de global_ipv4, public_ipv4 ou vrf. O padrão é public_ipv4 para compatibilidade com versões anteriores.
  • facility - (Obsoleto) Facility onde alocar o bloco de endereços IP públicos, só faz sentido se o tipo for public_ipv4 e deve estar vazio se o tipo for global_ipv4. Entra em conflito com metro. Use área metropolitana em vez disso; leia o guia de migração de facility para área metropolitana
  • metro - (Opcional) área metropolitana onde alocar o bloco de endereço IP público, só faz sentido se o tipo for public_ipv4 e deve estar vazio se o tipo for global_ipv4. Entra em conflito com facility.
  • description - (Opcional) Descrição arbitrária.
  • tags - (Opcional) Lista de tags em formato de string.
  • vrf_id - (Opcional) Válido e obrigatório somente quando type for vrf. ID VRF para reservas do tipo=vrf.
  • wait_for_state - (Opcional) Aguarda que o bloco de reserva de IP alcance o estado desejado na criação do recurso. Um dos seguintes: pending, created. O estado created é o padrão e recomendado se os endereços forem necessários na configuração. Um erro será retornado se ocorrer um tempo limite ou se o estado denied for atingido.
  • custom_data - (Opcional) Dados personalizados são um objeto arbitrário (enviado no Terraform como JSON serializado) para atribuir à reserva de IP. Isso pode ser útil para IPAM autogerenciado. O objeto deve ser um JSON válido.
  • network - (Opcional) Válido apenas como argumento e necessário quando type é vrf. Um endereço de rede não reservado de um ip_range existente no VRF especificado.
  • cidr - (Opcional) Válido apenas como argumento e obrigatório quando type for vrf. O tamanho da rede a ser reservada de um intervalo de IPs VRF existente. cidr só pode ser especificado com vrf_id. O intervalo é de 22 a 31. Circuitos virtuais requerem 30 a 31. Outros recursos VRF devem usar um CIDR no intervalo de 22 a 29.

Referência de atributos

Além de todos os argumentos acima, os seguintes atributos são exportados:

  • id - O ID único do bloco.
  • cidr_notation - Endereço e máscara na notação CIDR, por exemplo, 147.229.15.30/31.
  • network - Parte do endereço IP de rede da especificação do bloco.
  • netmask - Máscara em notação decimal, por exemplo, 255.255.255.0.
  • cidr - comprimento do prefixo CIDR do bloco como um número inteiro.
  • address_family - Família de endereços como inteiro. Um de 4 ou 6.
  • public - Indicador booleano que indica se os endereços de um bloco são públicos.
  • global - Indicador booleano que indica se os endereços de um bloco são globais (ou seja, podem ser atribuídos em qualquer área metropolitana).
  • vrf_id - ID VRF do bloco quando type=vrf

-> NOTA: Uma referência idempotente a um primeiro endereço /32 de um bloco reservado pode parecer join("/", [cidrhost(metal_reserved_ip_block.myblock.cidr_notation,0), "32"]).

Importar

Este recurso pode ser importado usando um ID de reserva de IP existente:

terraform import equinix_metal_reserved_ip_block {existing_ip_reservation_id}
Esta página foi útil?