CIDR: что такое бесклассовая междоменная маршрутизация?

Интернет огромен, но даже в этой огромной глобальной сети не хватает места. Система IP-адресов в том виде, в котором мы используем ее сейчас (IPv4), давно исчерпала себя. Все возможные адреса (по крайней мере, 4 294 967 296) уже присвоены. Для решения этой проблемы несколько десятилетий назад пришлось придумать решение. CIDR помогает продлить количество доступных адресов.

То, что задумывалось как временное решение, действует уже более 20 лет. А поскольку до повсеместного внедрения IPv6 еще далеко, CIDR, вероятно, будет существовать еще долгие годы. Это достаточная причина, чтобы узнать больше о междоменной маршрутизации класса.

Почему был разработан CIDR?

Уже в 1993 году стало ясно, что Интернет развивается быстрее, чем предполагалось вначале. Поэтому требовалось решение, которое означало отказ от сетевых классов. Изначально IP-адреса были разделены на пять классов. Если компания хотела подключиться к Интернету, она должна была выбрать IP-адрес из соответствующего класса. Для каждого класса для идентификации сетей использовалось разное количество октетов (четыре числовых блока IP-адреса). Оставшиеся октеты определяли количество хостов в сети.

Класс A Класс B Класс C Класс D Класс E
0.0.0.0 — 127.255.255.255 128.0.0.0 — 191.255.255.255 192.0.0.0 — 223.255.255.255 224.0.0.0 — 239.255.255.255 240.0.0.0 — 255.255.255.255

Например, в сети класса А может разместиться более 16 миллионов хостов, но доступны только 128 (0-127) из них. В классе B, с другой стороны, было возможно чуть больше 16 000 сетей, но каждая сеть могла содержать 65 534 хоста. В сетях класса C оставался только один октет, и в них можно было разместить только 254 (1-254, поскольку 0 и 255 всегда зарезервированы) хоста.

Это показывает, что в большинстве случаев классификация была непрактичной. Для многих компаний сеть всего с 254 участниками была слишком маленькой, а для нескольких тысяч хостов требовались самые маленькие сети. В конечном итоге это приводило к большим потерям, поскольку компаниям неизбежно приходилось собирать неиспользуемые адреса. Чтобы лучше удовлетворять потребности пользователей Интернета, было решено сделать размеры сетей более гибкими, уменьшить размер таблиц маршрутизации в интернет-маршрутизаторах и замедлить уменьшение количества доступных IP-адресов.

Таблицы маршрутизации находятся в маршрутизаторе и помогают найти путь к нужному адресу назначения. Пакеты данных проходят через множество узлов от места отправления до места назначения. Чтобы маршрутизаторы могли распознать, как выглядит оптимальный путь через сеть, в соответствующую таблицу подается информация. Размер файла растет экспоненциально, когда необходимо ввести путь для каждой возможной цели. Поскольку CIDR объединяет адреса в блоки, больше нет необходимости хранить так много информации в таблицах маршрутизации. Это означает, что несколько адресов объединяются в один маршрут.

Как работает CIDR?

В основе CIDR лежит идея масок подсети. Маска накладывается на IP-адрес и создает подсеть: сеть, подчиненную Интернету. Маска подсети сигнализирует маршрутизатору, какая часть IP-адреса назначена хостам (отдельным участникам сети), а какая определяет сеть.

Вместо добавления маски подсети спецификация в виде суффиксов также может быть интегрирована непосредственно в IP-адрес с помощью бесклассовой междоменной маршрутизации. Но это не только сокращает отображение: CIDR также позволяет создавать сверхсети в дополнение к подсетям. Это означает, что можно не только более точно разделить сеть на подсети, но и объединить несколько сетей.

Суперсети важны, например, если компания имеет несколько филиалов, но хочет работать со всеми компьютерами в одной сети. Суперсети позволяют объединить несколько сетей в один маршрут, поэтому эту технологию также называют агрегацией маршрутов (т.е. группировкой маршрутов). Это означает, что пакеты данных отправляются только в один пункт назначения — независимо от того, где расположены узлы.

Факт

VLSM является важной частью CIDR: маска подсети переменной длины позволяет реализовать подсети с переменной длиной, а не только в порядке возрастания размеров сетевых классов.

Нотация CIDR

IP-адрес позволял в прошлом определить, к какому классу он принадлежит. Например, сети класса C располагались между адресами 192.0.0.0 и 223.255.255.255. Маска подсети (например, 255.255.255.0) является как бы маской поверх IP-адреса и указывает хосты. В формате CIDR эта информация хранится в виде суффикса в самом IP-адресе. Однако основной принцип остается тем же: суффикс определяет, какие места (биты) IP-адреса представляют идентификатор сети и, следовательно, какие биты автоматически составляют диапазон идентификатора хоста. Если вы хотите понять это в деталях, имеет смысл рассмотреть маску подсети в ее двоичной форме:

255.255.255.0 ≙ 11111111 11111111 11111111 00000000

В нотации CIDR эта маска подсети (класса C) будет иметь вид /24, поскольку первые 24 бита определяют сетевой компонент IP-адреса. С помощью VLSM можно не только полностью заполнять октеты единицами или нулями, но и создавать более гибкие подсети. Например, маска /25 соответствует двоичному значению 1111111111 1111111111 1111111111 10000000, что в свою очередь (в точечно-десятичной нотации) соответствует 255.255.255.128.

Примечание

Даже в случае CIDR и VLSM биты в масках подсети всегда должны быть заполнены слева направо и не могут быть случайным образом установлены в 1 или 0.

Блоки CIDR: объяснение и таблица

Адрес IPv4 состоит из 32 битов. Это становится ясно, если преобразовать десятичную нотацию в двоичный эквивалент: 201.105.7.34 соответствует 11001001 01101001 00000111 00100010. Двоичная нотация — и метод вычисления, с помощью которого работают компьютеры — IP-адрес состоит из 32 цифр, которые могут быть либо 1, либо 0: следовательно, 32 бита. Таким образом, возможные суффиксы в нотации CIDR варьируются от 0 до 32.

Создание подсетей — это создание общностей. 201.105.7.34/24 находится в той же сети, что и 201.105.7.1/24. Суффикс означает, что учитываются только первые 24 бита компонента сети. Для этого они должны быть одинаковыми, если оба адреса принадлежат одной сети. Оставшиеся биты зарезервированы для хост-части. Количество битов, которое вы видите сразу после косой черты в формате CIDR, указывает на количество цифр (слева направо), которые относятся к питанию IP-адреса. В следующей таблице показано, какие маски подсети стоят за нотацией CIDR и сколько адресов хостов они допускают.

Однако не все сети могут предоставлять хосты. Сети с /31 имеют только 2 возможных IP-адреса для хостов, которые затем придется использовать для сетевого адреса (только 0s в части хоста) и широковещательного адреса (только 1s в части хоста). В каждой сети всегда резервируются два адреса: сетевой адрес (только 0s в части хоста), который служит для идентификации сети, и широковещательный адрес (только 1s в части хоста), который используется для передачи всем участникам сети. Таким образом, не все сети имеют возможность предоставлять хосты. Сеть /31 имеет только 2 возможных IP-адреса, которые затем должны использоваться для широковещательного и сетевого адресов. Таким образом, при просмотре таблицы CIDR два адреса всегда должны вычитаться из общего количества доступных адресов. В сети /32, однако, доступен только один адрес, который не позволяет использовать ни широковещательные, ни сетевые адреса.

Сеть /0 включает в себя полное адресное пространство. Она содержит только большую сеть со всеми возможными IP-адресами (минус два) в качестве хостов, поэтому она не считается подсетью. Сети /1 — /7 также не используются для отдельных подсетей. Поскольку возможное число хостов слишком велико, эти сети делятся на дополнительные подсети.

Расчет CIDR: примеры

Принцип, лежащий в основе CIDR, можно более четко объяснить на примерах. Далее мы объясним, как он работает как в подсетях, так и в суперсетях.

Подсеть

Если вы хотите создать подсети (особенно гибкие подсети), недостаточно просто прикрепить к IP-адресу одинаковый суффикс. Важно понимать, что происходит при двоичном преобразовании. Например, 192.168.200.5/30 и 192.168.200.9/30 не принадлежат одной и той же сети. Причину этого можно увидеть, если представить оба адреса и соответствующую маску подсети в виде двоичных чисел. В этом случае требуется логическая связь. Для этого сравниваются два значения, которые будут переданы в сетевой адрес только в том случае, если на той же позиции стоит 1. Комбинации 0 ∧ 0 и 0 ∧ 1 приводят к нулю.

Поэтому оба адреса не находятся в одной сети. Однако они были бы в ней, если бы второй адрес был 192.168.200.6/30.

Чтобы рассчитать, какие IP-адреса доступны вам в подсети, необходимо рассчитать ее площадь. Например, компании необходимо разместить в сети 2.000 хостов. Таблица CIDR говорит нам, что нам нужна сеть /21. В качестве альтернативы это также можно рассчитать. Для этого необходимо построить логарифм: x=log2(2000). Результат (≈10 666) не является натуральным числом, поэтому его можно округлить в большую сторону: 11. Вы можете сформировать подсеть с 211 хосты: 2 048 (необходимо вычесть два адреса для широковещательного и сетевого адреса).

Если вы посмотрите на таблицу, то увидите, что сила 2 возрастает от (/32) до (/0). Таким образом, вы можете вычислить 32-11 = 21, чтобы получить необходимый суффикс подсети (/21).

Номер, присвоенный этим интернет-провайдером, будет (в нашем примере) 210.105.44.170. Мы также переводим эту информацию в двоичную нотацию и используем только что определенную маску.

Первый адрес — сетевой адрес, который не должен использоваться — 210.105.40.0/21. Между ним и широковещательным адресом имеется 2 046 IP-адресов. Самый высокий IP-адрес (широковещательный) — 210.105.47.255/21. Почему так? 2 048 (максимальное количество адресов в подсети), деленное на 256 (количество возможностей в одном октете), дает 8. Это означает, что в третьем октете должно быть восемь значений от 40 до 47, а в четвертом октете — все значения от 0 до 255.

Совет

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

Суперсеть

Предположим, что у компании есть три сайта, три сети и соответствующие им маршрутизаторы. Имеет смысл — также в смысле таблицы маршрутизации — превратить их в суперсеть. Три сети имеют адреса 192.168.43.0, 192.168.44.0 и 192.168.45.0 (возможные маски подсети рядом с IP-адресами сетей в данном контексте имеют значение в первую очередь). Сначала мы сравниваем их в двоичной нотации и используем только те цифры, которые у всех трех адресов общие — слева направо: Начиная с первого отличия, все остальные цифры устанавливаются в ноль.

Таким образом, сетевой адрес суперсети — 192.168.40.0. Чтобы определить соответствующую маску подсети, которая принадлежит этой сети, вы подсчитываете места (биты), которые привели к новому IP-адресу. В нашем примере это 21 бит: 192.168.40.0/21.

Оцените статью
cdelat.ru
Добавить комментарий