Да, простой способ думать о том, что маски подсетей всегда равны единице в начале. Если у индикатора размера подсети нет 1 в начале двоичного представления, то я бы сказал, что индикатор размера подсети не является надлежащей «маской подсети», если использовать современные стандарты.
RFC 1219 утверждает, что более ранний RFC 950 разрешает несмежные биты. Фактически, RFC 950 стр. 15 (раздел 3) ясно имеет пример, который «иллюстрирует несмежные биты подсети». Однако нет способа преобразовать такие подсети в нотацию CIDR. Обозначение в стиле CIDR - это то, что использовало IPv6 (по крайней мере, начиная с RFC 1884, стр. 7, первое предложение раздела 2.4), поэтому несмежные биты никогда широко не поддерживались для сетей IPv6. Метод RFC 1219 указывает, что «биты подсети (маска = 1) назначаются от старшего значащего бита к младшему». (Раздел 3.1 RFC 4632, упомянутый в ответе Сами, указывает на официальный стандарт, в котором обсуждается нотация CIDR.)
На странице 2 RFC 1878 показаны стандартные обозначения «маски подсети» для всех подсетей IPv4, кроме /0
.
Тем не менее, я собираюсь немного подробнее остановиться на ответе Сами, изучая вопрос «почему» (на конкретном примере, когда вопрос задавался)...
Некоторое оборудование Cisco профессионального уровня поддерживает так называемую «маску подстановки», которая инвертирует биты. Таким образом, нормальная подсеть может быть представлена чем-то, что называется 00000000.00000000.00000000.11111111
.
С подстановочными масками Cisco не было правила, что все нули должны были идти первыми. Таким образом, вы можете использовать 00000000.00000000.00000000.11111110
.
В результате будет создана группа, содержащая все четные IP-адреса.
Это было действительно важно знать, потому что обучение Cisco покрывало это, и поэтому процесс экспертизы профессиональных сертификатов Cisco мог бы спросить о такой вещи.
Тем не менее, я думаю, что это было в основном бесполезно. Вместо того, чтобы делить сеть на две половины, используя четные адреса или адреса с нечетными номерами, вы можете просто разделить сеть пополам, используя адреса с низкими номерами и адреса с большими номерами, создав обычные подсети, которые в два раза меньше.
Маски с подстановочными знаками с несмежными битами не очень полезны, и с ними может быть сложнее работать. Смысл бита маски подсети, установленного в 1, состоит в том, что этот бит помогает определить, в какой подсети находится устройство. Нет никаких веских причин для того, чтобы эти биты распределялись по адресу, вместо того, чтобы просто сгруппировать их в начале адреса. В результате поддержка этих типов масок представляла дополнительную сложность без особой выгоды.
Я предполагаю, что в конечном итоге Cisco согласилась с тем, что нет смысла использовать такие нетрадиционные маски подсетей, потому что они в конечном итоге отказались от поддержки «масок подстановочных знаков». Старые брандмауэры Pix поддерживают «маски подстановочных знаков», но более новые блоки ASA вместо этого используют стандартные «маски подсетей».
Я бы даже не пытался создать сеть с несмежными «битами подсети» в маске, потому что многие программы следовали бы новым тенденциям / стандартам и отвергали бы такой дизайн сети. Даже если бы я использовал старое программное обеспечение, я бы, вероятно, хотел бы, чтобы мою сеть можно было легко модифицировать, чтобы можно было использовать более новое программное обеспечение без необходимости переделки сети. Таким образом, смежные «биты подсети» - единственный путь.
Если бы вам задали вопрос на тесте, я бы с уверенностью сказал, что все 1 должны быть в начале адреса. Это то, что любой здравомыслящий тестер хотел бы, чтобы большинство учеников изучали в наши дни.