Рассмотрим принцип расчёта IP-сетей вручную, и где может сложиться такая ситуация.

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

Представим себе ситуацию, что провайдер оставил нам только адрес шлюза и маску подсети. Как определить IP-адрес, чтобы гарантировано попасть в нужный диапазон? Или разрешено использовать только небольшой пул адресов при этом нужно выбрать адрес, последний в пуле. Как его определить?

Другая ситуация: нужно разбить сеть на части, чтобы прогонять трафик через виртуальные сети (VLAN) при этом необходимо использовать пулы адресов разного размера по числу оборудования в каждом сегменте. Как выбрать необходимую длину подсети? Ответить на эти вопросы может IP-арифметика.                             

Мы специально приведём бумажный вариант иллюстраций, потому что пока не подключена сеть, многие вещи будут недоступны. В этом случае карандаш и листок бумаги — это единственные "вычислительные" приспособления.

 

Про классовую адресацию

IP-адреса разделяются [https://www.cisco.com/c/en/us/support/docs/ip/routing-information-protocol-rip/13788-3.html , https://habr.com/ru/post/129664/] на глобальные и локальные, классовые (Classful) и бесклассовые (CIDR - Classless Interdomain Routing). В глобальных сетях IP-адреса повторяться не могут, а в локальных сетях уникальности нет.

Глобальная классовая адресация имеет следующие диапазоны адресов:

· класс А: 1.0.0.0 – 126.255.255.255;

· класс В: 128.0.0.0 – 191.255.255.255;

· класс С: 192.0.0.0 – 223.255.255.255;

· класс D: 224.0.0.0 - 239.255.255.255 – диапазон IP-адресов для групповых\многоадресных рассылок;

· класс E: 240.0.0.0 – 255.255.255.255 – диапазон выделен для экспериментов.

Здесь же имеются и специфические\зарезервированные диапазоны адресов:

· 0.0.0.0 – 0.255.255.255 – выделяются для маршрута по умолчанию, то есть назначается в качестве IP-адреса источника при отсутствии связи хоста с DHCP-сервером;

· 127.0.0.0 – 127.255.255.255 – адреса обратной связи (loopback), то есть для передачи данных самому себе в качестве тестирования, зачастую 127.0.0.1 – является локальным адресом хоста (localhost);

· 169.254.0.0 – 169.254.255.255 – присваивается хосту в случае, когда DHCP-сервер недоступен.

Неотъемлемой частью IP-адресации является маска, которая необходима для разделения зарезервированной части IP-адреса сети от свободной, а свободная часть как раз и будет задействована под распределение адресов для устройств. В классовой адресации маска соответствует длине октета, то есть /8, /16, /24, в чём и состоит основная нерациональность распределения IP-адресов. С маской /8 количество IP-адресов составит 16 777 214, с маской /16 - 65 534, а с маской /24 IP-адресами будут обеспечены 254 хоста.

Формула расчёта количества IP-адресов выглядит так: 2n – 2. “-2” означает, что всегда есть 2 IP-адреса, которые нельзя назначать устройствам, первый – всегда является адресом сети, а последний – широковещательный.

Для локальных сетей выделены несколько диапазонов, адреса которых в разных компаниях могут повторяться, но не могут использоваться для интернет:

· 10.0.0.0 – 10.255.255.255.255 – назначаются хостам в крупных компаниях;

· 172.16.0.0 – 172.31.255.255 – применяется в организациях средних масштабов;

· 192.168.0.0 – 192.168.255.255 – задействуется в фирмах мелких и средних масштабов.

 

Перевод в двоичную систему исчисления

Как раз смысл IP-арифметики и заключается в преобразовании адресов из 10й системы исчисления в 2ю, применении маски, высчитывании количества адресов для хостов и перевода обратно в 10е представление.

В 2й системе исчисления применяются только “0” и “1”. Возьмём для примера сеть 192.168.0.0 с маской /24. Первый способ перевода чисел в 2ю систему из 10й – это деление на 2. Для нас это менее удобно, поэтому подробнее остановимся на втором, который состоит из 4х шагов:

1. каждая цифра IP-адреса представляет собой октет в 2й системе исчисления и состоит из 8 бит. Для удобства сначала представим числа в виде всех нулей, то есть 00000000.00000000.00000000.00000000. Здесь нужно знать, что максимальное значение в одном октете – 256, которое получается при возведении 2 в степень 8 (8 бит). Однако, задействованы в качестве IP-адресов для устройств могут только 254, так как первый (заканчивается на 0) – это сеть, а последний (все единицы) – броадкаст;

2. в каждом октете, начиная справа, напишем числа, возведя 2 последовательно в каждую степень (2 в 0, 2 в 1,…. 2 в 7), получится такой ряд чисел: 128 64 32 16 8 4 2 1. Если их сложить, то получится максимальное значение октета;

3. установим “1” вместо “0” там, где будет соответствие числа IP-адреса с числом октета. В нашем случае первый октет IP-адреса сети будет выглядеть так:

11000000 (128+64), второй – 10101000 (128+32+8), третий – 00000000 (0), четвёртый – 00000000 (0);

переведём маску в 2ое представление, которая имеет следующий вид: 11111111.11111111.11111111.00000000. Отсюда видно (см. рис. 1), что под IP-адреса устройств отведён полностью последний октет, 3й – зарезервирован под подсети, а 1й и 2й – указывают на сеть. Также становится понятным, почему маска пишется как “/24” (24 бита отведено), а в 10й системе исчисления она выглядит как 255.255.255.0.

Рисунок 1. Расчёт IP-адресов в классовой адресации.

В рассмотренной сети будет 254 IP-адреса для сетевых устройств. IP-адрес 192.168.ххх.255 назначить нельзя, так как это последний адрес, который является широковещательным (broadcast). Если какой-то адрес хоста нужно представить в 2м виде, то делается это аналогичным образом (см. рис. 1).

 

Бесклассовая адресация

В бесклассовой адресации выделение IP-адресов происходит более рационально, нежели в классовой.

В бесклассовой адресации задействуются по максимуму все биты адресного пространства. Здесь применяется маска переменной длины (VLSM - Variable Length Subnet Mask), которая позволяет регулировать количество IP-адресов хостов и количество подсетей в большую или меньшую сторону. В ней используется не фиксированное число октетов (1, 2 или 3), а любое число бит IP-адреса [2]. Например, применяя маску /13 количество IP-адресов будет 524 286, с маской /27 – 30, с маской /6 будут обеспечены IP-адресами 67 108 862 хостов.                                                                                                                                                                                                                                                                                                                                                                                                                            

При использовании масок переменной длины действует одно простое правило: чем маска сети меньше, тем больше отводится IP-адресов для устройств и наоборот, чем больше маска, тем больше в сети будет подсетей.       

Приведём пример. По всей области открывается сеть фаст-фуд из 300 бургерных, в каждой из которой будет 3 устройства: 2 ПК и Wi-Fi-роутер.

В этом случае правильным будет разбить сеть 192.168.0.0 на большое количество подсетей с малым количеством IP-адресов, а значит увеличить маску с /24 до /29. Маска получится 11111111.11111111.11111111.11111000 (29 единиц), а в 10й системе исчисления - 255.255.255.248, то есть из последнего октета мы забираем 5 бит. Также правильным будет написать больше информации по поставленной задаче, а именно: начальный и конечный адреса в каждой подсети, широковещательный адрес, количество IP-адресов (см. рис. 2). 

 

Рисунок 2. Расчёт IP-адресов в бесклассовой адресации.

Некоторые системные администраторы учат наборы CIDR наизусть, типа /26 - 255.255.255.192 - 62 (количество хостов в подсети), как таблицу умножения, чтобы не заморачиваться с расчётами. Это не сильно труднее заучить, чем "бело-оранжевый, оранжевый, бело-зелёный, синий, бело-синий...".

 

Обратная маска

Обратную маску (Wildcard mask) [3] удобно применять при создании списков доступа для целых подсетей.

Например, для 25го филиала, нужно всем пользователям запретить пинги и доступ в интернет, где IP-адрес подсети 192.168.25.0/29. Обратная маска в этом случае будет 0.0.0.7. В 10м представлении её можно получить путём вычитания существующей маски 255.255.255.248 из полной – 255.255.255.255; в 2й системе исчисления такое вычитание выглядит как инверсия свободных бит (см. рис. 3). Обратная маска не имеет короткой записи, как прямая маска.

Рисунок 3. Расчёт обратной маски.

 

Художества на бумаге

Завершающим действием может быть хотя бы примерный рисунок сети.

Самый простой вариант отобразить сеть наглядно – нанести её на листке бумаги. Здесь придираться не к чему, так как cхема всё равно будет дорабатываться: будут меняться соединения, добавляться оборудование, изменяться имена\назначение. Свой вариант художеств предоставлен на рисунке 4, где R – маршрутизатор, S – свитч, SRV – сервер.

 

Рисунок 4. Сеть на бумаге.

 

Достоинства: без калькулятора можно рассчитывать необходимые сетевые параметры для устройств.

Недостатки: нужны хотя бы элементарные знания о различных системах исчислениях, о сетях.

Вывод: теоретические знания по расчёту сетей необходимы для системного администратора так же, как и знание таблицы умножения и принципа составления пропорций - они относятся к азам ИТ-области. Тем более такие знания могут пригодиться в течение трудовой деятельности в полевых\строительных условиях на удалённых объектах