给定1024个地址的10.163.64.0/22,我如何分割我的CIDR以容纳说三个团队跨三个az,分配128个地址/每个25 ?
我想我可以用https://www.terraform.io/language/functions/cidrsubnets做,但我不明白如何产生期望的结果。
我们可以使用示例的链接发布到得到你想要的地方。如果我们看一下:
> cidrsubnets("10.1.0.0/16", 4, 4, 8, 4)
[
"10.1.0.0/20",
"10.1.16.0/20",
"10.1.32.0/24",
"10.1.48.0/20",
]
第一部分当然是CIDR,第二部分在文档中列出为...
:
cidrsubnets(前缀,newbits…)
这意味着子网划分将为您添加的newbits
完成(从[1]):
剩下的参数,上面用newbits表示,每个参数指定一个返回地址范围的额外网络前缀位的数量。因此,返回值是一个列表,每一个元素newbits参数,每一个字符串包含一个地址范围CIDR标记。
这里的newbits
是指从原始CIDR中借用的位数。因此,如果我们取10.1.0.0/16
的CIDR,序列4, 4, 8, 4
意味着将有4,4,8和4位被借用,这将创建子网:
"10.1.0.0/20", # 4 bits borrowed, was /16 now is /20
"10.1.16.0/20", # 4 bits borrowed, was /16 now is /20
"10.1.32.0/24", # 8 bits borrowed, was /16 now is /24
"10.1.48.0/20", # 4 bits borrowed, was /16 now is /20
在你的例子中,这将是:
cidrsubnets("10.163.64.0/22", 3, 3, 3)
通过使用terraform console
,这将创建以下子网:
> cidrsubnets("10.163.64.0/22", 3, 3, 3)
tolist([
"10.163.64.0/25",
"10.163.64.128/25",
"10.163.65.0/25",
])
[1] https://www.terraform.io/language/functions/cidrsubnets