~>非推奨のお知らせ Equinix Metalは、2026年6月30日 でサポートを終了します。すべてのMetalリソースは、このプロバイダのバージョン5.0.0で削除されます。廃止までの継続利用には、このプロバイダのバージョン4.xをご利用ください。詳細は https://docs.equinix.com/metal/ をご覧ください。
equinix_metal_reserved_ip_block(リソース)
プロジェクトで予約IPアドレスのブロックを作成・管理するためのリソースを提供します。
ユーザーがメトロで最初のデバイスをプロビジョニングすると、Equinix Metal APIは自動的にIPv6/56とプライベートIPv4/25ブロックを割り当てます。新しいデバイスは、これらのブロックからIPv6アドレスとプライベートIPv4アドレスを取得します。また、パブリックIPv4/31アドレスも取得します。プロジェクトとメトロのすべての新しいデバイスは、これらの事前に割り当てられたブロックからIPv6とプライベートIPv4アドレスを自動的に取得します。IPv6とプライベートIPv4ブロックは作成できず、インポートのみ可能です。このリソースで、パブリックIPv4ブロックまたはグローバルIPv4ブロックを作成できます。
パブリックブロックはメトロで割り当てられます。パブリックブロックのアドレスは、メトロ内のデバイスにのみ割り当てることができます。パブリックブロックは、/24(256アドレス)から/32(1アドレス)までのマスクを持つことができます。このリソースでパブリックブロックを作成する場合、引数のメトロを埋める必要があります。
グローバルブロックのアドレスは、どのメトロでも割り当てることができます。グローバルブロックは、/30(4アドレス)から/32(1アドレス)までのマスクを持つことができます。このリソースでグローバルブロックを作成する場合は、type = "global_ipv4 "を指定し、引数のメトロを省略する必要があります。
IP ブロックが割り当てられるかインポートされると、equinix_metal_ip_attachment リソースでデバイスにアドレスを割り当てることができます。
製品の詳細と API リファレンス資料については、[Virtual Routing and Forwarding documentation を参照してください。
使用例
予約IPブロックの割り当て
# 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
}
ブロックを割り当て、そのブロックからパブリックIPv4のデバイスを実行します。
# 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"
}
}
引数リファレンス
以下の引数をサポートしています:
project_id- (必須)アドレスブロックを割り当てるメタルプロジェクト ID。typeがvrfでない場合に必要です。type-(オプション)global_ipv4、public_ipv4、vrfのいずれか。後方互換性のため、デフォルトはpublic_ipv4です。facility- (非推奨) パブリック IP アドレスブロックを割り当てるファシリティで、タイプがpublic_ipv4の場合のみ意味を持ち、タイプがglobal_ipv4の場合は空でなければなりません。metroと競合します。代わりにメトロを使用してください。ファシリティからメトロへの移行ガイド を参照してください。metro- (オプション)パブリック IP アドレスブロックを割り当てるメトロで、タイプがpublic_ipv4の場合のみ意味があり、タイプがglobal_ipv4の場合は空でなければなりません。facilityと競合します。description- (オプション)任意の記述。tags- (オプション)タグの文字列リスト。vrf_id- (オプション)typeがvrfの場合のみ有効で必須。type=vrf 予約の VRF ID。wait_for_state- (オプション) リソース作成時にIP予約ブロックが希望の状態になるのを待ちます。のいずれか:pending,created.3}状態はデフォルトで、アドレスが構成内で必要な場合に推奨されます。タイムアウトまたはdenied状態になった場合はエラーが返されます。custom_data- (オプション) Custom Data は、IP Reservation に割り当てる任意のオブジェクトです (Terraform でシリアライズされた JSON として送信されます)。これは自己管理型IPAMの場合に役立ちます。オブジェクトは有効な JSON である必要があります。network- (オプション)引数としてのみ有効で、typeがvrfの場合は必須です。指定された VRF 内の既存のip_rangeから確保されていないネットワークアドレス。cidr- (オプション)引数としてのみ有効で、typeがvrfの場合は必須です。既存の VRF ip_range から予約するネットワークのサイズ。cidrはvrf_idと一緒 にのみ指定できます。範囲は 22-31 です。仮想サーキットは 30-31 が必要です。他の VRF リソースは 22~29 の CIDR を使用する必要があります。
属性リファレンス
上記のすべての引数に加えて、以下の属性がエクスポートされます:
id- ブロックの一意の ID。cidr_notation- CIDR 表記でのアドレスとマスク。network- ブロック仕様のネットワーク IP アドレス部分。netmask- 10進数表記のマスク。cidr- ブロックの CIDR プレフィックスの長さ(整数)。address_family- 整数としてのアドレスファミリ。4または6のいずれか。public- ブロックのアドレスが公開されているかどうかのブール値フラグ。global- ブロックのアドレスがグローバル(つまりどのメトロでも割り当て可能)かどうかのブール値フラグ。vrf_id- type=vrf のときのブロックの VRF ID
->注意: 予約ブロックからの最初の/32アドレスへのべき等参照はjoin("/", [cidrhost(metal_reserved_ip_block.myblock.cidr_notation,0), "32"])のように見えるかもしれません。
インポート
このリソースは、既存のIP予約IDを使用してインポートできます:
terraform import equinix_metal_reserved_ip_block {existing_ip_reservation_id}