Понимание материала в этом разделе является ключевой основой для понимания сетевых технологий в целом! Это самый большой раздел в данном пособии, наберитесь терпения.

Поясним как классовая адресация привела к быстрой растрате адресов, начнем с правил группировки адресов (очень важно их понять!):

  • Все IP адреса в одной группе не должны быть разделены маршрутизатором (router).
  • Все IP адреса разделенные маршрутизатором должны быть в разных группах.

Эти правила работают и по сей день, под группой адресов подразумевается номер сети (Network Address), который обозначает диапазон адресов.

Разберем пример растраты адресов, при классовой адресации. Допустим есть компания, которой выделили несколько номеров сетей (групп адресов) например, 156.1.0.0 – 156.8.0.0 (всего 8 диапазонов класса B).

Рисунок 4.5 Пример растраты адресов при классовой адресации
Рисунок 4.5 Пример растраты адресов при классовой адресации


На рисунке 4.5 представлена схема сети с распределенной адресацией. В данном примере каждый маршрутизатор имеет по 3 адреса, по одному на каждом интерфейсе (под интерфейсом подразумевается разъем, куда вставляется провод), эти адреса принадлежат разным номерам сети (согласно правилам “группировки адресов”, описанным выше!). Сеть 156.4.0.0 находится между двумя маршрутизаторами (R1 и R3), эта сеть обозначает диапазон допустимых IP адресов 156.4.0.1 – 156.4.255.254, порядка 65 тысяч адресов, при этом из этого диапазона мы используем только 2 адреса, все оставшиеся 65 тысяч мы нигде не можем использовать (согласно правилам “группировки адресов”, описанным выше!). В этом и заключается растрата адресов в классовой адресации.

Бесклассовая адресация реализуется за счет займа бит из хостовой части, той части, которая в классовой адресации используется для обозначения конкретных адресов. Теперь схематично представим IP адрес до и после применения технологии займа бит при бесклассовой адресации.

Рисунок 4.6 Схематичное различие классовой и бесклассовой адресации
Рисунок 4.6 Схематичное различие классовой и бесклассовой адресации


В представленных схемах есть общая часть под названием Network – биты используемые для определения номера сети данного класса (в нашем случае класса В) и часть Host – биты для определения ip адресов конечным устройствам. Также присутствует часть SubNet – биты, занятые из хостовой части, для увеличения длины номера сети. В верхней схеме представленный адрес принадлежит номеру сети – 156.4.0.0, обозначающий допустимый диапазон – 156.4.0.1 – 156.4.255.254. В нижней части представлен адрес, принадлежащий номеру сети 156.4.20.0, обозначающий допустимый диапазон – 156.4.20.1 – 156.4.20.254. Т.е. за счет займа бит мы добились разбиения номера сети класса В – 156.4.0.0 на 256 новых номеров сетей с 156.4.0.0 по 156.4.255.0. С бесклассовой адресацией можно дробить классовую и на более маленькие диапазоны, об этом далее.


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

Классовые маски

Изучение Сетевых Масок лучше начать с самых простых масок – классовых масок:

  • 255.0.0.0 – маска класса А, в двоичном виде – 11111111.00000000.00000000.00000000
  • 255.255.0.0 – маска класса В, в двоичном виде – 11111111.11111111.00000000.00000000
  • 255.255.255.0 – маска класса С, в двоичном виде 11111111.11111111.11111111.00000000

Если вы не понимаете, что означает запись маски в “двоичном виде”, то рекомендую вернуться к разделу “IP адресация” и после прочтения потренироваться переводить числа из десятичной системы исчисления в двоичную.


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

Например, номер сети класса В – 176.130.0.0 с маской 255.255.0.0. Первые два октета 176.130 будут блокироваться под номер сети, что не так интересно, как если бы мы использовали маску 255.255.255.0, где будут блокироваться три октета 172.130.0, оставшийся октет будет использоваться для определения конечных IP адресов (172.130.0.1-172.130.0.254). Самое время, ввести понятие префикса.

Префикс

Префикс (prefix) – количество единиц в маске (подразумевая маску в двоичном виде).


Для маски 255.255.255.0 префикс будет выглядеть так – /24. Мы знаем, что 255 можно представить в двоичном виде как 8 единиц, в этой маске число 255 встречается 3 раза, следовательно единиц в маске 24. Вот так и получается префикс. Еще один простой пример для закрепления. Для маски 255.255.0.0 префикс будет выглядеть так – /16, т.к. число 255 встречается два раза. Префикс нужен для краткой записи маски например, строка 176.130.0.0 255.255.255.0 и строка 176.130.0.0/24, означает одно и тоже.

Сложные маски

Когда маска “не классовая” и начинает дробить октет, ее можно отнести к “сложной маске”. Представим все значения, которые могут быть в октете маски:

  • 0 в двоичном виде 00000000
  • 128 в двоичном виде 10000000
  • 192 в двоичном виде 11000000
  • 224 в двоичном виде 11100000
  • 240 в двоичном виде 11110000
  • 248 в двоичном виде 11111000
  • 252 в двоичном виде 11111100
  • 254 в двоичном виде 11111110
  • 255 в двоичном виде 11111111

Вернемся к нашему номеру сети класса В – 176.130.0.0, теперь нам надо, чтобы конечный диапазон адресов был меньше 254 (меньше класса C). Возьмем маску 255.255.255.240 (кратко, с префиксом, выглядит так – 176.130.0.0/28) представим номер сети и маску в двоичном виде.

176.130.0.0 10110000.10000010.00000000.00000000
255.255.255.240 11111111.11111111.11111111.11110000

Если вы не понимаете, что означает запись из “нулей и единиц”, то рекомендую вернуться к разделу “IP адресация” и после прочтения потренироваться переводить числа из десятичной системы исчисления в двоичную.

Еще раз повторим – единицами маска ограничивает номер сети (Network Address), а нулями определяются “свободные” биты для конечных адресов, которые будут в диапазоне. В последнем октете маски четыре нуля (смотрим на двоичный вид), таким образом, мы можем заключить, что в нашем примере будут изменяться только последние 4 бита. Представим весь диапазон получившихся IP адресов.

10110000.10000010.00000000.00000000 176.130.0.0
10110000.10000010.00000000.00000001 176.130.0.1
10110000.10000010.00000000.00000010 176.130.0.2
10110000.10000010.00000000.00000011 176.130.0.3
10110000.10000010.00000000.00000100 176.130.0.4
10110000.10000010.00000000.00000101 176.130.0.5
10110000.10000010.00000000.00000110 176.130.0.6
10110000.10000010.00000000.00000111 176.130.0.7
10110000.10000010.00000000.00001000 176.130.0.8
10110000.10000010.00000000.00001001 176.130.0.9
10110000.10000010.00000000.00001010 176.130.0.10
10110000.10000010.00000000.00001011 176.130.0.11
10110000.10000010.00000000.00001100 176.130.0.12
10110000.10000010.00000000.00001101 176.130.0.13
10110000.10000010.00000000.00001110 176.130.0.14
10110000.10000010.00000000.00001111 176.130.0.15

Всего в диапазоне получилось 16 IP адресов, из них два зарезервировано 176.130.0.0 (номер сети) и 176.130.0.15 (широковещательный адрес). А что же такое 176.130.0.16? Это новый номер сети, который обозначает диапазон 176.130.0.17 – 176.130.0.30, 176.130.0.31 – широковещательный, а 176.130.0.32 – снова новый номер сети и т.д.

Определение номеров сетей

Есть способ определения шага, с которым появляется новый номер сети (этот метод работает для “сложных” масок). Надо взять октет из маски, который не равен 0 или 255 и вычесть это число из 256. Продолжая разбирать наш пример с маской 255.255.255.240, мы получим 256 – 240 = 16, т.е. это шаг появления нового номера сети:

  • 176.130.0.0/28
  • 176.130.0.16/28
  • 176.130.0.32/28
  • 176.130.0.48/28
  • 176.130.0.224/28
  • 176.130.0.240/28
  • 176.130.1.0/28, обратите внимание, когда номер сети получается со значением октета 256 (в нашем примере 176.130.0.256), следует обнулить этот октет, а к октету стоящему перед ним прибавить 1
  • 176.130.1.16/28
  • 176.130.1.32/28
  • 176.130.1.240/28
  • 176.130.2.0/28
  • 176.130.2.16/28
  • и т.д.

Разберем еще одну нестандартную маску для закрепления, например, 255.255.255.252 (префикс 30), для другого номера 200.133.33.0. Вычисляем шаг, 256 – 252 = 4, т.е. через каждые 4 адреса появляется новый номер сети:

Номер сети Широковещательный адрес Диапазон допустимых адресов
200.133.33.0/30 200.133.33.3 200.133.33.1-200.133.33.2
200.133.33.4/30 200.133.33.7 200.133.33.5 – 200.133.33.6
200.133.33.8/30 200.133.33.11 200.133.33.9 – 200.133.33.10
200.133.33.12/30 200.133.33.15 200.133.33.13-200.133.33.14
200.133.33.248/30 200.133.33.251 200.133.33.249-200.133.33.250
200.133.33.252/30 200.133.33.255 200.133.33.253-200.133.33.254
200.133.34.0/30 200.133.34.3 200.133.34.1-200.133.34.2

Если вы дошли до середины этого раздела и вам до сих пор не понятно “зачем все это”, то настоятельно рекомендую не задавать себе этот вопрос и продолжать впитывать представленную здесь информацию. Озарение придет при выполнении практических работ (в частности лабораторных). В конце раздела вам подготовлен тренировочный калькулятор.

Нахождение номера сети по IP адресу

Пример 1

Теперь можно переходить к другим заданиям, например, находить номер сети, имея лишь IP адрес и префикс. Разберем вот этот пример – 93.25.144.147/26. В начале запишем маску – 255.255.255.192 (8 единиц.8 единиц.8 единиц.2 единицы, итого 26 единиц). Вычисляем шаг, через который будет появляться новый номер сети – 256-192=64. Обнулим октет, который подвергся дроблению – 93.25.144.0. Начинаем прибавлять шаг, пока не дойдем до нужного нам номера сети:

  • 93.25.144.0/26
  • 93.25.144.64/26
  • 93.25.144.128/26 – номер сети, который нам нужен, обозначает диапазон 93.25.144.129 -93.25.144.190, в этот диапазон входит наш адрес (93.25.144.147)
  • 93.25.144.192/26

Также, с помощью шага можно вычислить количество допустимых IP адресов в диапазоне, 64-2 (мы вычитаем первый адрес, это номер сети и последний адрес – широковещательный) итого получаем 62 адреса, которые мы можем назначить конечным устройствам (хостам).

Пример 2

Теперь мы усложним задачу. Разберем новый пример 150.150.150.150/22. Запишем маску – 255.255.252.0 (8 единиц.8единиц.6 единиц.0 единиц). Вычисляем шаг, через который будет появляться новый номер сети 256-252=4. Обнулим октет, который подвергся дроблению и следующий за ним октет – 150.150.0.0. Начинаем прибавлять шаг, пока не дойдем до нужного нам номера:

  • 150.150.0.0/22
  • 150.150.4.0/22
  • 150.150.8.0/22
  • 150.150.140.0/22
  • 150.150.144.0/22
  • 150.150.148.0/22 – номер сети, который нам нужен, обозначает диапазон 150.150.148.1 – 150.150.151.254 (адреса 150.150.148.0 и 150.150.151.255 зарезервированы)
  • 150.150.152.0/22

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

Нахождение номера сети по кол-ву пользователей

Поставим задачу сделать три подсети (subnet, это слово появляется, когда мы начинаем дробить классовую адресацию) для 7, 49 и 261 пользователей, при этом не вылезая из диапазона 172.31.0.1 – 172.31.3.254. Мы знаем какие значения могут принимать октеты в маске, следовательно, мы можем вычислить шаг, а из шага мы можем определить количество адресов в диапазоне. Сейчас у нас поставлена задача вычислить диапазоны адресов (номеров сетей) с минимальным подходящим количеством.

Для 7 пользователей

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

  • 256-252=4. Шаг 4 нам не подходит, т.к. всего 2 адреса в этом диапазоне (без номера сети и широковещательного адреса)
  • 256-248=8. Шаг 8 нам не подходит, т.к. всего 6 адресов в этом диапазоне (без номера сети и широковещательного адреса)
  • 256-240=16. Шаг 16 подходит. В диапазоне 14 адресов, а в условиях задачи 7 пользователей (всем хватит и еще прозапас останется 🙂

Теперь вычислим маску – 255.255.255.240, значит префикс будет 28. Итого, получаем – 172.31.0.0/28, тогда диапазон 172.31.0.1 – 172.31.0.14, полностью удовлетворяет нашему количеству пользователей.

Для 49 пользователей

Снова перебираем шаг.

  • 256-240=16. Шаг 16 нам не подходит, т.к. всего 14 допустимых адресов
  • 256-224=32. Шаг 32 нам не подходит, т.к. всего 30 допустимых адресов
  • 256-192=64. Шаг 64 нам подходит. Допустимых адресов 62, что немного больше поставленного условия

Теперь вычислим маску – 255.255.255.192, префикс – 26. Если мы возьмем номер сети 172.31.0.0/26, то адреса из его диапазона будут пересекаться с адресами из 172.31.0.0/28 (который мы нашли ранее), поэтому возьмем следующий доступный номер сети, используя подобранный шаг (прибавим 64)- 172.31.0.64/26, означающий диапазон 172.31.0.65 – 172.31.0.126.

Для 262 пользователей

Формулы для вычисления кол-ва допустимых IP адресов (работает только для сложных масок):
Маска четвертым октетом определяет кол-во допустимых адресов, формула – Х-2 (X – шаг)
Маска третьим октетом определяет кол-во допустимых адресов, формула – 256*Х-2 (X – шаг)
Маска вторым октетом определяет кол-во допустимых адресов, формула – 256*256*Х-2 (X – шаг)

В этом случае одним октетом мы не обойдемся. Для решения этой задачи надо пройти последний октет несколько раз. Применим формулу вычисления допустимых адресов 256*2-2=510. 510 адресов удовлетворяет нашему требованию, т.е. шаг будет два. Этот шаг будет относиться к третьему октету, следовательно маска будет 255.255.254.0, префикс – 23. Теперь определимся с номером сети, 172.31.0.0/23 нам не подходит, т.к. адреса из этого номера будут пересекаться с предыдущими найденными диапазонами. Нам подходит 172.31.2.0/23, который мы вычислили прибавив шаг. Диапазон доступных адресов:172.31.2.1 – 172.31.3.254, что полностью удовлетворяет условию нашей задачи.


Прежде чем переходить к дальнейшему изучению, предлагаю вам потренироваться находить номер сети, зная ip адрес и префикс. Если это дается вам легко, то можете посетить Subnet калькулятор Режим Выживания и получить несколько достижений.


Тренировочный IP калькулятор


Используя предлагаемый IP адрес и префикс, найдите номер сети, широковещательный адрес и диапазон

Номер сети —-
Маска —-
Широковещательный адрес —-
Диапазон —-
Количество адресов —-

version: 2.0



ID: 90 Created: Oct 19, 2016 Modified Mar 22, 2018