跳至内容

~> 弃用通知 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",并且必须省略 metro 参数。

一旦分配或导入了 IP 块,就可以将其中的地址分配给具有 equinix_metal_ip_attachment 资源的设备。

有关产品详情和 API 参考资料,请参阅虚拟路由和转发文档

用法示例

分配预留的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。
  • quantity - (可选)已分配的 /32 地址的数量,2 的幂。当 type 不是 vrf 时,需要指定。
  • type - (可选)global_ipv4public_ipv4vrf 之一。为了向后兼容,默认为 public_ipv4
  • facility - (已弃用)用于分配公网 IP 地址块的设施,仅当类型为 public_ipv4 时才有意义,如果类型为 global_ipv4,则必须为空。与 metro 冲突。请改用 metro;阅读设施到 metro 的迁移指南
  • metro - (可选)公网 IP 地址块的分配位置,仅当类型为 public_ipv4 时才有意义,如果类型为 global_ipv4,则必须为空。与 facility 冲突。
  • description - (可选)任意描述。
  • tags - (可选)标签字符串列表。
  • vrf_id - (可选)仅当 typevrf 时有效且必需。用于 type=vrf 预订的 VRF ID。
  • wait_for_state - (可选)等待 IP 预留块在资源创建时达到所需状态。状态可选:pendingcreatedcreated 为默认值,如果配置中需要这些地址,建议使用此状态。如果超时或遇到 denied 状态,则会返回错误。
  • custom_data - (可选)自定义数据是一个任意对象(以序列化的 JSON 格式在 Terraform 中提交),用于分配给 IP 预留。这对于自管理 IP 地址管理 (IPAM) 非常有用。该对象必须是有效的 JSON 格式。
  • network - (可选)仅当 typevrf 时才有效且为必需参数。来自指定 VRF 中现有 ip_range 的未保留网络地址。
  • cidr - (可选)仅当 typevrf 时才有效且为必需参数。从现有 VRF IP 地址范围中预留的网络大小。cidr 只能与 vrf_id 一起使用。范围为 22-31。虚拟电路需要 30-31。其他 VRF 资源必须使用 22-29 范围内的 CIDR。

属性参考

除了上述所有参数外,还会导出以下属性:

  • id - 区块的唯一 ID。
  • cidr_notation - CIDR 表示法中的地址和掩码,例如 147.229.15.30/31
  • network - 块规范中的网络 IP 地址部分。
  • netmask - 十进制掩码,例如 255.255.255.0
  • cidr - 块的 CIDR 前缀长度(整数)。
  • address_family - 地址族,以整数形式表示。取值为 46
  • 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}
此页面有帮助吗?