You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何拆分私有CIDR网段并分配至三个可用区(AZ)

基于Terraform cidrsubnets函数拆分指定CIDR网段方法

核心参数逻辑

cidrsubnets函数传参规则很容易踩坑,记住规则就不会出错:

  • 第一个参数传入作为拆分源的母网段,也就是当前场景下的10.163.64.0/22
  • 后续每一个参数对应一个要拆分出的子网,参数值是该子网前缀长度比母网前缀长度多出来的位数,不是子网本身的掩码位
  • 需要的/25网段总地址数为128,和母网/22的前缀差值为25-22=3,因此每个待分配子网对应的传参值为3

可直接复用的代码示例

locals {
  # 定义基础母网段
  base_cidr_block = "10.163.64.0/22"
  # 拆分3个/25网段,连续传入3个差值3即可
  allocated_subnets = cidrsubnets(local.base_cidr_block, 3, 3, 3)
}

# 如果需要把网段和三个可用区做映射,直接按下标取值即可
locals {
  az_to_cidr_map = {
    "可用区1" = local.allocated_subnets[0]
    "可用区2" = local.allocated_subnets[1]
    "可用区3" = local.allocated_subnets[2]
  }
}

拆分结果验证

执行terraform plan后会得到三个符合要求的网段:

  • 10.163.64.0/25:总地址数128
  • 10.163.64.128/25:总地址数128
  • 10.163.65.0/25:总地址数128

踩坑提醒:不要直接把25作为参数传给cidrsubnets,否则会因为前缀长度溢出报错,或者得到远小于预期的微网段,这是绝大多数人用这个函数拿不到正确结果的核心原因。

内容的提问来源于stack exchange,提问作者hendry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 07:06:23