CIDR - МЕЖКЛАССОВАЯ МЕЖДОМЕННАЯ МАРШРУТИЗАЦИЯ

На самом деле, для меня это очень сложная тема, я упорно ее не понимаю, но на собеседованиях спрашивают и поэтому решил описать здесь своими словами суть вопроса в отчаянной попытке разобраться что это за зверь и с чем его едят.  Сейчас временно выложу чужую статью, потом, когда переосмыслю, то исправлю ее на полностью свою.

 

 ... Далее статья откуда-то из этих ваших интернетов.

Когда-то давным-давно 32-битное адресное пространство сети Интернет было разделено на три основных класса сетей: класс А, класс В и класс С. Сети класса А имели то свойство, что первый октет (восемь битов) IP-адреса определял собственно сеть, а оставшиеся биты использовались организацией, которая управляла сетью, для того, чтобы различать узлы сети. Большинство организаций, управляющих сетями класса А, разделяли их на подсети, добавляя к схеме адресации еще один уровень иерархии. В сетях класса В два первых октета использовались для определения сети, а оставшиеся два - для определения отдельных узлов, а в сетях класса С для определения сети отводилось три октета и лишь один для определения узлов.

К сожалению, эта система мелких, средних и крупных сетей не всегда была удобна. Многие организации были достаточно велики, чтобы выйти за пределы сети класса С, которая могла содержать максимум 254 узла, но недостаточно велики, чтобы занять целый класс В, сеть которого могла вместить 65534 узла. Но многие из этих организаций получили все-таки сети класса В в свое распоряжение. Как следствие, свободные сети класса В были очень быстро занесены в красную книгу.

Для решения этой проблемы и создания сетей, которые имели бы соответствующий требованиям размер, была разработана бесклассовая междоменная маршрутизация (Classless Inter-Doma-in Routing, или CIDR, произносится как "сайдр"). Как видно из названия, CIDR избавляется от классов А, В и С. В системе CIDR для идентификации сети может использоваться не фиксированное число октетов (один, два или три), но любое число битов IP-адреса.
Так, к примеру, если организации нужно адресное пространство примерно в четыре раза большее, чем адресное пространство сети класса В, власть предержащие могут определить длину идентификатора сети в 14 битов, таким образом, оставляя 18 битов (в четыре раза больше узлов, чем в сети класса В) на используемое адресное пространство.

Совершенно естественно, что пришествие CIDR сделало "классовую" терминологию устаревшей, хотя она до сих пор довольно часто используется в разговорах.

Итак, чтобы обозначить конкретную CIDR-сеть, следует указать конкретное значение старших битов, присваиваемое организации в записи через точку, а также число битов, определяющих сеть. Две части записи разделяются символом "слэш".
15/8 - прежняя сеть класса А, которая "начинается" с восьмибитной последовательности 00001111.
Прежняя сеть класса В 128.32.0.0 теперь идентифицируется как 128.32/16.
А сеть 192.168.0.128/25 состоит из 128 IP-адресов, начиная с адреса 192.168.0.128 и заканчивая адресом 192.168.0.255.


Самый простой способ расчитать сеть по CIDR-записи - воспользоваться "сетевым калькулятором" от SolarWinds.Net.
Локальная ссылка: SolarWinds-Subnet-Calculator.exe (11.2MB).

Но пользоваться костылями - сисадмину не к лицу. :) Я не стану описывать "для начинающих", что все IP на самом деле записываются лишь "для людей" в десятичном виде, а для компов все IP выглядят как обычные двоичные 32-рарядные числа, например:
123.45.224.73 = 01111011 00101101 11100000 01001001
(двоичное число в компе является слитным, я лишь "для удобства людей" разделил его по группам - октетам).

Однажды я "расписал" способ расчета следующим образом:

"Давай посмотрим, как я это посчитал в уме:
В твоем примере 123.45.224.0/19 (кстати, это можно записать и как 123.45.224/19, т.к. последний нуль - не значим) за цифры после слеша от 32 до 24 отвечает "четвертый" октет слева,
от 23 до 16 - "третий" октет,
от 15 до 8 - "второй",
от 7 до 0 - "первый".
Спрашиваемая тобой запись - 123.45.224/19
Поскольку 19 входит в третий октет, то его и считаем: 24 - 19 = 5.
То есть двойка в пятой степени, которая равна 32: 2^5 = 32.
Смотрим, откуда начинается подсеть - с 224.
Прибавляем к 224 полученные 32: 224 + 32 = 256, то есть 255.
Четвертый октет оказыватеся полностью "заполненным" ("заполнение" нулями адресов IP идет от 32 к 0; у нас получается, что граница "четвертого" октета, которая находится на 24, "пройдена" по пути от 32 к 19) - вписываем и его.

Итого: 123.45.224.0 - 123.45.255.255

Теперь находим маску:
запись "/19" означает, как мы уже посчитали выше, 2^5=32
Следовательно, предпоследний октет у маски будет 256 - 32 = 224

Теперь сводим все воедино:
Запись 123.45.224.0/19 означает диапазон IP-адресов 123.45.224.0 - 123.45.255.255 с маской 255.255.224.0"

 

P.S

Последние слова в моей жизни будут такими: "Я нихуя не понял"!..