Ошибка «Должен быть действительным CIDR Ipv4» после прохождения блока CIDR подсети - PullRequest
0 голосов
/ 29 января 2019

Я создал VPC (публичные и частные подсети) в AWS с блоком CIDR IPV4 как 10.0.0.0/26 (т. Е. Он может иметь 2 ^ 6 = 64 IP-адреса вместе с одним адресом подсети и одним широковещательным адресом).Я хочу создать следующие две подсети, но получаю ошибку Must be valid Ipv4 CIDR:

  1. Общедоступная подсеть с 10.0.0.0/28 блоком CIDR и
  2. Частная подсеть с 10.0.0.8/28 CIDRblock

Если я задаю маску подсети как /28 и я хочу разделить адреса на две подсети, адрес попадет в диапазон 10.0.0.0 [10.0.0.00000000] - 10.0.0.15 [10.0.0.00001111].С другой стороны, если я даю блок CIDR как 10.0.0.16/28, я не получаю никакой ошибки.Почему AWS выдает ошибку Must be valid Ipv4 CIDR с блоком CIDR как 10.0.0.8/28?

1 Ответ

0 голосов
/ 29 января 2019

A / 28 имеет 2 ^ (32-28) = 2 ^ 4 = 16 адресов, поэтому последний октет адреса всех нулей блока должен делиться равномерно на 16 (его младшие значащие биты должны быть 0 00 0).LSB 8 равны 1 0 0 0.

10.0.0.8 / 28 - недопустимый блок CIDR.От 10.0.0.0 до .15 выражается в нотации CIDR как 10.0.0.0/28.


Разъяснение, как требуется, значимости делимости на число 16, выше:

Это не совсем то, что количество адресов делится на последний блок, а скорее в том, что в нотации CIDR xxxx / n каждый блок всегда равен 2 ^ (32-n)адреса в размере и xxxx должны указывать первый адрес в блоке, когда вы указываете блок.

Преобразование адреса IPv4 xxxx в двоичный код дает 32-битное число.(32-n) младшие значащие биты адреса xxxx должны быть 0. Это первый (0-й) адрес в блоке, который также называется адресом "все нули", поскольку немаскированный бит - последние 32-n биты - все 0. При указании блока CIDR для подсети, это адрес, который должен быть указан.

В случае блока / 28 обратите внимание, что -- по определению - любое число, выраженное в двоичном формате, чьи младшие значащие 32-28 = 4 бита равны 0 0 0 0, также делится на 2 ^ (32-28) = 16, а любое другое число не является.

Для блоков размером от / 24 до / 32 эта математика проще для человека, так как вам не нужно мысленно преобразовывать все xxxx в двоичные - вам нужен только последний из четырех октетов.

Единственными возможными / 28 подсетями, которые могут быть получены из суперсети 10.0.0.0/26, являются:

10.0.0.0/28    .0 to .15
10.0.0.16/28  .16 to .31
10.0.0.32/28  .32 to .47
10.0.0.48/28  .48 to .63
...