
Я в замешательстве.
10.0.0.0 - 10.255.255.255 (10/8 prefix)
172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
Мне кажется странным префикс 172.16/12
для диапазона 16
- 31
. Маски естьпредполагается использовать смежные двоичные единицы.
Префикс /12
для смежных единиц должен указывать:
11111111.11110000
Только 172.16
( 10101100.00010000
) маскируется этим диапазоном. Все не- 16
биты для оклетов 17
- 31
не защищены маской.
Но, бинарная маска для покрытия 172.16
- 172.31
это
11111111.00011111
Список 172.16
- 172.31
:
10101100.00010000
10101100.00011111
10101100.00011110
10101100.00011101
10101100.00011100
10101100.00011011
10101100.00011010
10101100.00011001
10101100.00011000
10101100.00010111
10101100.00010110
10101100.00010101
10101100.00010100
10101100.00010011
10101100.00010010
10101100.00010001
Поэтому префикс 172.16/16
( 11111111.11111111
) для маскировки всего этого имеет, на мой взгляд, больше смысла.
Является ли этот диапазон RFC 1918 172.16.0.0
не 172.31.255.255
непрерывным?
Или /12
префикс на самом деле означает:
11111111.00001111
Но этот диапазон чисел простирается только до 15
, и в этом случае нам нужно:
11111111.00011111
И это должно быть так 172.16/13
, если он не смежный.
решение1
Только
172.16
(10101100.00010000
) маскируется этим диапазоном. Все оклеты 17-31 не защищены маской.
Нет, это неправда. Все октеты от 16 до 31 покрываются маской одинаково, поскольку все они имеют вид 0001xxxx
.
Целью масок сетей является указаниестатическийчасть адреса, и если вы посмотрите на список в вашем посте, первые 12 смежных бит являются статическими, а остальные — переменными. Вот почему первый октет маски — это 11111111
, в конце концов, а не 00000000
— он указывает, что все восемь бит (из 172
) фиксированы, и аналогично второй октет должен 11110000
указывать, что фиксированы первые 4 бита.
Но даже если бы сетевая маска указывала на переменную часть, она все равно была бы непрерывной, поскольку последние 4 бита 2-го октетаивсе биты 3-го–4-го октетов переменные, без пробелов.
решение2
Заэтот терпеливый ответ от u1686_grawity, маска не покрываетвозможныйчисла, нонеизменныйцифры!
11111111.11110000
Защищает первые двенадцать ячеек:
10101100.0001xxx
позволяя этот диапазон 16
-31