Функция Terraform cidrsubnet

Прежде всего, я прошу прощения за то, что теперь знаю, как лучше подсеть. До сих пор мне не приходилось делать этого.

Мне дали network / cidr 10.10.32.0/19.

У меня 6 подсетей, каждая из которых требует 255 ips.

Остальные IP я хотел бы распределить по 3 оставшимся подсетям.

Это то, что я придумал, используя cidrsubnet

        cidrsubnet("10.10.32.0/19", 2, 0) # "10.10.64.0/21" 2048 hosts
        cidrsubnet("10.10.32.0/19", 2, 1) # "10.10.72.0/21" 2048 hosts
        cidrsubnet("10.10.32.0/19", 2, 2) # "10.10.80.0/21" 2048 hosts

        cidrsubnet("10.10.32.0/19", 5, 24) # "10.10.88.0/24" 255 hosts
        cidrsubnet("10.10.32.0/19", 5, 25) # "10.10.89.0/24" 255 hosts
        cidrsubnet("10.10.32.0/19", 5, 26) # "10.10.90.0/24" 255 hosts

        cidrsubnet("10.10.32.0/19", 5, 27) # "10.10.91.0/24" 255 hosts
        cidrsubnet("10.10.32.0/19", 5, 28) # "10.10.92.0/24" 255 hosts
        cidrsubnet("10.10.32.0/19", 5, 29) # "10.10.93.0/24" 255 hosts

Это оставляет мне около 512 ips, которые нельзя использовать. Я правильно это делаю?


person sebastian    schedule 28.05.2021    source источник
comment
Вы можете уточнить, в чем проблема?   -  person Marcin    schedule 28.05.2021
comment
Вопрос будет в том, правильно ли я делю подсети?   -  person sebastian    schedule 28.05.2021


Ответы (1)


У вас 2^11 (32-19) хостов == 8192

Ваш диапазон начинается с 10.10.32.0 и продолжается до 10.10.63.255

6*256+3*2048 == 7680 оставив 512

Вам нужно будет перебалансировать, чтобы не тратить впустую IP-адреса.

Ваш первый cidrsubnet(10.10.32/19,2,0) это 10.10.32.0--10.10.39.255

person DazWilkin    schedule 28.05.2021
comment
Не могли бы вы подробнее объяснить, что значит перебалансировать ваши IP-адреса? - person sebastian; 28.05.2021
comment
Да, извините, мне непонятно. Я ответил поздно ночью. Вы хотите, чтобы подсети потребляли все ваши (8192) IP-адреса и не оставляли 512 неиспользуемыми. Вы указали 6 * 256 и размазали оставшееся по 3, но это не дает вам подсетей одинакового размера (8192-6 * 256) /3=2218.666 ... Так что вы не можете этого сделать. У вас может быть 6 * 256, 2 * 2048, 1 * 2560, но это немного коряво. Я не знаю, каковы ваши требования, но я предлагал сделать распределение более согласованным (и полным). - person DazWilkin; 28.05.2021