1.5.2 Разбиения адресного пространства сети на подсети
Важным элементом разбиения адресного пространства Internet являются подсети. Подсеть — это подмножество сети, не пересекающееся с другими подсетями. Это означает, что сеть организации (скажем, сеть класса С) может быть разбита на фрагменты, каждый из которых будет составлять подсеть. Реально, каждая подсеть соответствует физической локальной сети (например, сегменту Ethernet). Вообще говоря, подсети придуманы для того, чтобы обойти ограничения физических сетей на число узлов в них и максимальную длину кабеля в сегменте сети. Например, сегмент тонкого Ethernet имеет максимальную длину 185 м и может включать до 32 узлов. Самая маленькая сеть — класса С — может состоять из 254 узлов. Для того, чтобы достичь этой цифры, надо объединить несколько физических сегментов сети. Сделать это можно либо с помощью физических устройств (например, репитеров), либо при помощи машин-шлюзов. В первом случае разбиения на подсети не требуется, т.к. логически сеть выглядит как одно целое. При использовании шлюза сеть разбивается на подсети (рисунок 2.17).
На рисунке 5.3 изображен фрагмент сети класса B — 144.206.0.0, состоящий из двух подсетей — 144.206.130.0 и 144.206.160.0. В центре схемы — машина шлюз, связывающая подсети. Эта машина имеет два сетевых интерфейса и, соответственно, два IP-адреса.
Рис. 5.3. Схема разбиения адресного пространства сети на подсети.
В принципе, разбивать сеть на подсети необязательно. Можно использовать адреса сетей другого класса (с меньшим максимальным количеством узлов). Но при этом возникает, как минимум, два неудобства: в сети, состоящей из одного сегмента Ethernet, весь адресный пул сети не будет использован, т.к., например, для сети класса С (самой маленькой с точки зрения количества узлов в ней), из 254 возможных адресов можно использовать только 32.
Все машины за пределами организации, которым разрешен доступ к компьютерам сети данной организации, должны знать шлюзы для каждой из сетей. Структура сети становится открытой во внешний мир. Любые изменения структуры могут вызвать ошибки маршрутизации. При использовании подсетей внешним машинам надо знать только шлюз всей сети организации. Маршрутизация внутри сети — это ее внутреннее дело.
Разбиение сети на подсети использует ту часть IP-адреса, которая закреплена за номерами хостов. Администратор сети может замаскировать часть IP-адреса и использовать ее для назначения номеров подсетей. Фактически, способ разбиения адреса на две части, теперь будет применятся к адресу хоста из IP-адреса сети, в которой организуется разбиение на подсети.
Маска подсети — это четыре байта, которые накладываются на IP-адрес для получения номера подсети. Например, маска 255.255.255.0 позволяет разбить сеть класса В на 254 подсети по 254 узла в каждой. На рисунке 2.18 приведено маскирование подсети 144.206.160.0 из предыдущего примера.
На приведенной схеме (рисунок 5.4) сеть класса B (номер начинается с 10) разбивается на подсети маской 255.255.224.0. При этом первые два байта задают адрес сети и не участвуют в разбиении на подсети. Номер подсети задается тремя старшими битами третьего байта маски. Такая маска позволяет получить 6 подсетей. Для нумерации подсети нельзя использовать номер 000 и номер 111. Номер 160 задает 5-ю подсеть в сети 144.206.0.0. Для нумерования машин в подсети можно использовать оставшиеся после маскирования 13 битов, что позволяет создать подсеть из 8190 узлов. Честно говоря, в настоящее время такой сети в природе не существует и РНЦ «Курчатовский Институт», которому принадлежит сеть 144.206.0.0, рассматривает возможность пересмотра маски подсетей. Перестроить сеть, состоящую из более чем 400 машин, не такая простая задача, так как ей управляет 4 администратора, которые должны изменить маски на всех машинах сети. Ряд компьютеров работает в круглосуточном режиме и все изменения надо произвести в тот момент, когда это минимально скажется на работе пользователей сети. Данный пример показывает насколько внимательно следует подходить к вопросам планирования архитектуры сети и ее разбиения на подсети. Многие проблемы можно решить за счет аппаратных средств построения сети.

Рис. 5.4. Схема маскирования и вычисления номера подсети.
К сожалению, подсети не только решают, но также и создают ряд проблем. Например, происходит потеря адресов, но уже не по причине физических ограничений, а по причине принципа построения адресов подсети. Как было видно из примера, выделение трех битов на адрес подсети не приводит к образованию 8-ми подсетей. Подсетей образуется только 6, так как номера сетей 0 и 7 использовать в силу специального значения IP-адресов, состоящих из 0 и единиц, нельзя. Таким образом, все комбинации адресов хоста внутри подсети, которые можно было бы связать с этими номерами, придется забыть. Чем шире маска подсети (чем больше места отводится на адрес хоста), тем больше потерь. В ряде случаев приходится выбирать между приобретением еще одной сети или изменением маски. При этом физические ограничения могут быть превышены за счет репитеров, хабов и т. п.
Как разделить сеть на подсети
Компьютеры большинства компаний и небольших фирм объединяют в единую сеть. Таким способом можно упростить обмен данными между узлами, разворачивать серверные приложения на мощном компьютере в сети, с которым взаимодействуют все подключенные устройства, и при этом обеспечить доступ в интернет. Но часто возникает необходимость объединять несколько устройств в отдельную сеть. Для этого следует знать, как разделить сеть на подсети, не меняя ее архитектуру.
Разделение сети на подсети самостоятельно
Поскольку большинство организаций не используют сети класса B, в рамках которых могут быть соединены между собой 65534 устройства, рассмотрим пример разделения сетей класса C. Наиболее распространенный вариант разбиения – с помощью маски.
Маска подсети — это цифровой шаблон, с помощью которого можно определить принадлежность устройства, обладающего уникальным адресом (IP), к той или иной подсети. Данный шаблон может быть представлен в двух видах: в десятичном и двоичном видах. Но последний на практике не используют, однако общее число единиц в записи суммируют и указывают через дробь в конце десятичной записи.
Например, 192.168.109.0/32, где число 32 характеризует сумму единиц в двоичной записи.
Предположим, существует сеть, в состав которой входит некоторое количество компьютеров, 3 свитча (коммутатора) и 3 маршрутизатора.
Провайдером была выделена сеть 192.168.0.0/24.
Разделим ее на 6 подсетей, при этом число устройств в каждой будет различным: 100, 50, 20, 2, 2, 2. Деление начинают с участка, к которому подключено наибольшее число устройств. Как видно, короткая запись маски – 24, что означает, что ее можно представить в таком виде: 255.255.255.0.
Чтобы разбить сеть на 2 подсети, необходимо сменить маску с «24» на «25» и применить ее к сети. В созданных подсетях 192.168.0.0/25 и 192.168.0.128/25 для IP узлов выделено 7 бит. Число доступных адресов можно рассчитать следующим способом: 2^7-2 = 126, что больше 100.
Теперь разделим подсеть 192.168.0.128/25 на 2 подсети, для чего используем маску 26. Число доступных адресов – 2^6-2 = 62, поскольку теперь для адресов устройств выделено 6 бит. В итоге получили 2 подсети: 192.168.0.128/26 и 192.168.0.192/26.
Подобным способом используем маску 27 для очередного деления на 2 подсети. Число устройств – 2^5-2 = 30, что больше 20. Получаем подсети 192.168.0.192/27 и 192.168.0.224/27.
Для создания 3 подсетей с подключенными по 2 устройства к каждой, из общего IP-адреса достаточно выделить всего 2 бита под адреса. Общее число бит в IP-адресе – 32. Получаем маску: 32-2=30. Применяем ее для сети 192.168.0.224, получаем 3 новых подсети: 192.168.0.224/30, 192.168.0.228/30, 192.168.0.232/30.
Таким способом сеть была поделена на 6 подсетей. Однако можно значительно упростить задачу, воспользовавшись одним из онлайн-сервисов.
Как разделить сеть на подсети онлайн VLSM Calculator
Данный онлайн-сервис позволяет разделить сеть на требуемое число подсетей с использованием сетевой маски. На странице содержится форма, с несколькими полями. В первом требуется ввести адрес исходной сети, указав через «/» биты маски. Чтобы изменить количество подсетей, необходимо найти на форме поле с соответствующим названием и ввести требуемое значение, зафиксировать его нажатием на «Изменить». Форма примет вид с определенным числом подсетей, которые характеризуются буквенным обозначением («Название») и числом устройств («Размер»). Необходимо заполнить поля «Размер» в зависимости от требуемого числа устройств в подсетях и нажать кнопку «Отправить».
Разделить сеть на подсети онлайн — http://www.vlsm-calc.net/?lang=ru

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

Администраторы часто используют деление сетей с целью упрощения взаимодействия с устройствами, подключенными к ней. Представленный способ расчета не является сложным, но можно значительно сэкономить время, воспользовавшись онлайн-сервисом.
Главное руководство по подсетям (включая 10 лучших калькуляторов подсетей)

Подсети помогают уменьшить перегрузку сети. Подсеть — широко используемая практика управления сетью, которая включает в себя разбиение сети на разделы. Подсеть создает несколько взаимосвязанных сетей в одном адресном пространстве, рассматривая каждый раздел как подсеть или «подсеть», а не набор независимых сетей..
Подсеть выделяет IP-адреса устройствам в сегментированной сети. Выделение областей адресов может быть головной болью, и по мере роста вашей сети вы не сможете вручную управлять IP-адресами. Разделение вашей сети сопряжено со многими сложностями, но в большинстве случаев здравый смысл фактически обеспечивает ваш лучший инструмент. Планирование также важно.
В этом руководстве рассматриваются некоторые основные вопросы адреса, которые необходимо учитывать при разделении сети, а также инструменты и методы, необходимые для управления новой конфигурацией адресного пространства..
Почему подсеть?
Типичная локальная сеть состоит из проводов, соединяющих между собой устройства, которые обеспечивают связь нескольких конечных точек, таких как настольные ПК, принтеры, серверы и даже телефоны.. В какой-то момент в сети трафик, предназначенный для нескольких конечных точек, будет передаваться по одному кабелю.. Данные передаются по сети в виде электронного импульса, подаваемого на провод.
Когда электричество подается на провод, оно мгновенно овладевает всей длиной этого кабеля. Только один источник сигнала может работать на провод одновременно..
Если несколько конечных точек отправляют данные одновременно, расходы, которые представляют данные, смешиваются. Это называется «столкновениеИ делает транспортируемые данные бессмысленными. Таким образом, столкновения следует избегать. Это предотвращение столкновений управляется сетевой картой каждого подключенного устройства. Он проверит линию, чтобы убедиться, что на ней нет текущего заряда, а затем подаст свой сигнал на кабель..
Перегрузка возникает, когда к одному проводу подключено слишком много конечных точек. В этом случае количество времени, которое каждое устройство должно ждать, чтобы получить четкий снимок на проводе, делает сеть «медленной». Во избежание того, что один пользователь захламляет сеть и блокирует всех остальных, передачи данных разделяются на ломти. Приложение, получающее данные, проверит последовательность поступающих пакетов и соберет их данные в поток..
Сетевая карта должна проверять доступность сети для каждого отправляемого пакета.. Когда многие конечные точки используют один и тот же провод, молчание на линии, которая дает передающей сетевой карте возможность отправить следующий пакет, становится редким. Таким образом, принимающее приложение должно дольше ждать завершения передачи.
В вашей сети может быть очень эффективное оборудование, но если у вас слишком много конечных точек, разделяющих провод, пользователи будут жаловаться, что сеть работает медленно и это мешает им эффективно выполнять свою работу. В этой ситуации лучше всего разбить сеть на подсети..
— точка реализации
После того, как вы разбили свою сеть на разделы, вам необходимо подсчитать количество устройств, которые у вас есть в каждой подсети, и назначить IP-адреса каждому. Адреса в каждой подсети должны быть смежными. Это означает, что вам нужно зарезервировать диапазон IP-адресов для каждой подсети. Расчет этого диапазона является предметом IP-подсетей. Итак, теперь вы узнаете о подсети сети.
Что такое подсеть?
Термин «подсеть» особенно относится к соображениям адресации для системы, которая включает подсети. В IP-сети вы используете IP-адрес. Это идентификатор, состоящий из четырех 8-битных чисел, разделенных точкой («.»). Каждое восьмибитное двоичное число известно как октет.
Последовательность чисел работает на основе 256. Каждое число в адресе представляет базовое двоичное число из восьми битов. Наибольшее восьмизначное двоичное число — 11111111, что в нашей обычной десятичной системе счисления составляет 255..
Итак, адреса работают в порядке от 0.0.0.1 до 0.0.0.255, а затем следующий адрес вверх — 0.0.1.0. Максимально допустимое число в любом адресном пространстве — 255.255.255.255.. Поскольку это просто представление двоичных чисел, фактический максимальный двоичный адрес действительно равен 11111111.11111111.11111111.11111111. В двоичной версии IP-адреса есть 32 числа, и каждое из них может быть только нулем или единицей..
Каждое устройство в вашей сети должно иметь уникальный IP-адрес. Эта уникальность относится только к вашей сети, поэтому это не имеет значения, если какая-то другая сеть где-то еще использует те же адреса, что и вы. Однако вы не можете иметь один и тот же IP-адрес, назначенный устройству в одной подсети, а также устройству в другой подсети. В сетевой терминологии каждое устройство, которому необходим уникальный IP-адрес для связи по сети, называется «хостом».
Широковещательный адрес и сетевой адрес
Распределение адресов вашей подсети разделит доступный диапазон адресов на диапазон, зарезервированный для каждой подсети.. Диапазон адресов для подсети всегда начинается с четного числа и заканчивается нечетным числом. Первый номер диапазона обозначается как идентификатор сети. Последнее число в диапазоне становится «Идентификатор трансляции,”, Что означает, что любые сообщения, отправленные на этот IP-адрес, принимаются всеми устройствами в подсети..
— точка реализации
Когда вы планируете область адресов для каждой из ваших подсетей, вам необходимо добавить в диапазон еще два адреса — идентификатор сети и идентификатор широковещательной передачи..
Система подсетей имеет еще один элемент адреса, который является «маска подсети.Это разделяет IP-адрес для подсети на элемент сети и элемент хоста. Не существует фиксированной точки для разделения между сетевым и хостовым разделами адреса. Длина каждой части указывается маской подсети.
— точка реализации
Вам не нужно делать адресное пространство для каждой подсети одинакового размера. Так, Вы должны рассчитать требования к адресам каждой подсети индивидуально.
Следующий раздел этого руководства объяснит эту проблему более подробно.
Маска подсети
Маска подсети IP даст вам идентификатор сети для любой данной подсети. Если вы берете IP-адрес устройства в подсети и применяете к нему маску подсети с помощью логической алгебры, вы получаете идентификатор сети. Помните, что идентификатор сети также является первым адресом в диапазоне, выделенном для подсети..
Эта система математического вывода позволяет сетевому оборудованию определять, к какому сегменту сети относится сообщение, используя маску подсети.. Понимание системы подсетей позволяет правильно настроить подсети и распределить правильный пул адресов для каждой подсети..
Все значения маски будут для определенного числа бит слева, а оставшиеся позиции заполнены нулями. Количество единиц в маске дает длину маски. Количество нулей в маске указывает длину подсети, что позволяет назначать уникальные IP-адреса устройствам, подключенным к подсети. Эту вторую часть адреса иногда называют «битами хоста». Чем длиннее длина подсети, тем больше адрес вы получаете в пуле для этой подсети. Нет правильной длины для маскировки, это просто вопрос того, сколько адресов хостов вам нужно в каждой подсети.
Существует только ограниченное количество форматов для маски подсети из-за требования, чтобы все они в IP-адресе были смежными и начинались с первой позиции слева. Местоположение последней «1» в маске подсети идентифицирует октет маски. Маска может появляться в любом из четырех октетов в маске подсети. Конечное число в десятичной версии маски всегда равно 255, 254, 252, 248, 240, 224, 192 или 128. Это связано с тем, что эти числа соответствуют двоичным октетам 11111111, 11111110, 11111100, 11111000, 11110000, 11100000 11000000, 10000000.
Вот список допустимых масок подсети:
| 255.255.255.254 | 31 | 4 | 1 | 2 |
| 255.255.255.252 | 30 | 4 | 2 | 4 |
| 255.255.255.248 | 29 | 4 | 3 | 8 |
| 255.255.255.240 | 28 | 4 | 4 | 16 |
| 255.255.255.224 | 27 | 4 | 5 | 32 |
| 255.255.255.192 | 26 | 4 | 6 | 64 |
| 255.255.255.128 | 25 | 4 | 7 | 128 |
| 255.255.255.0 | 24 | 3 | 8 | 256 |
| 255.255.254.0 | 23 | 3 | 9 | 512 |
| 255.255.252.0 | 22 | 3 | 10 | 1024 |
| 255.255.248.0 | 21 | 3 | 11 | 2048 |
| 255.255.240.0 | 20 | 3 | 12 | 4096 |
| 255.255.224.0 | 19 | 3 | 13 | 8192 |
| 255.255.192.0 | 18 | 3 | 14 | 16384 |
| 255.255.128.0 | 17 | 3 | 15 | 32768 |
| 255.255.0.0 | 16 | 2 | 16 | 65536 |
| 255.254.0.0 | 15 | 2 | 17 | 131072 |
| 255.252.0.0 | 14 | 2 | 18 | 262144 |
| 255.248.0.0 | 13 | 2 | 19 | 524288 |
| 255.240.0.0 | 12 | 2 | 20 | 1048576 |
| 255.224.0.0 | 11 | 2 | 21 | 2097152 |
| 255.192.0.0 | 10 | 2 | 22 | 4194304 |
| 255.128.0.0 | 9 | 2 | 23 | 8388608 |
| 255.0.0.0 | 8 | 1 | 24 | 16777216 |
В каждом случае, показанном в таблице выше, количество адресов хостов, доступных в пуле, на два меньше, чем общее количество адресов, созданных маской подсети. Это потому что первый и последний адреса в диапазоне зарезервированы как сетевой адрес (идентификатор сети) и широковещательный адрес (идентификатор вещания).
Эти значения маски являются десятичным представлением фактической двоичной маски. Итак, на самом деле маска 255.255.255.240 это 11111111.11111111.11111111.11110000.
Применение маски к IP-адресу требует использования булевой алгебры и работы с двоичными версиями адреса и маски, а не с десятичной версией.
С логическим И каждый бит в одной и той же позиции двух чисел должен быть установлен для того, чтобы этот бит был установлен в результатах. Если любой из этих двух битов равен нулю, результат для этой позиции в числе будет равен нулю.
Учитывая сетевой IP-адрес 60.15.20.200 и маску подсети 255.255.255.240, вы должны И двоичные числа для этих адресов вместе со следующими результатами:
В этом примере длина маски равна 28, а длина подсети равна 4. Когда вы И эта маска подсети обращаетесь к какому-либо двоичному адресу, первые 28 бит в адресе будут появляться в неизмененных результатах. Последние четыре бита адреса будут стерты и заменены нулями.
Если у вас есть сетевой идентификатор для адреса, вы легко сможете найти широковещательный идентификатор. Поскольку длина подсети равна 4, этот диапазон адресов содержит 16 членов. Итак, вам просто нужно добавить 16 к IP-адресу идентификатора сети. Это дает вам 60.15.20.208. тем не мение, идентификатор трансляции всегда должен быть нечетным числом, и идентификатор сети является одним из набора из 16 адресов, поэтому вычтите 1, и вы знаете, что идентификатор широковещания для этой подсети равен 60.15.20.207. Устройствам в этой подсети могут быть назначены адреса с 60.15.20.193 по 60.15.20.206..
Обозначение подсети: CIDR
Еще один момент, о котором вам нужно знать, это стандарт обозначений, используемый для подсетей.. Длина маски может быть добавлена к идентификатору сети, чтобы вы могли быстрее понять размер подсети.. Это следует из идентификатора после косой черты. Таким образом, в нашем примере эта область подсети может быть записана как 60.15.20.192/28. Учитывая, что вся длина любой маски подсети равна 32, информация о том, что длина маски равна 28, говорит о том, что часть подсети имеет 4 цифры..
Эта нотация относится к системе подсетей, которая относится к методологии маршрутизации, называемой Бесклассовая интернет-маршрутизация доменов, который сокращен до CIDR и произносится как «сидр». Это очень гибкий способ разделения адресного пространства сети, чем в более ранней системе на основе классов использовались разные диапазоны битов для подсетей. Вам не нужно изучать методы, основанные на классах, потому что CIDR заменил оригинальный метод подсетей и намного удобнее для пользователя.
Ярлыки подсетей
Вам действительно нужно выполнять вычисления для сегментов, включая и после замены единиц на нули в маске подсети. В приведенном выше примере вы должны знать, учитывая, что первые три сегмента адреса имеют значение 255, что у идентификатора сети будут одинаковые первые три сегмента данного IP-адреса. Продолжая наш пример, вам просто нужно скопировать 60.15.20 и сосредоточиться на последнем сегменте адреса.
Калькулятор программиста может помочь вам вычислить двоичные числа, а также может предоставить вам функцию AND, поэтому вам не нужно записывать вычисления на бумаге. Обычный калькулятор в Windows может предоставить эту возможность. Вам просто нужно нажать на меню гамбургера в левом верхнем углу и выбрать Программист из настроек параметров.

В этом режиме вы можете выполнять операции И над двоичными или десятичными числами. Результаты расчетов показаны в обоих форматах.

Маскировка подсети переменной длины
Учебное пособие по подсетям в этом руководстве основано на CIDR, что обеспечивает большую гибкость в размере пулов адресов, которые вы назначаете каждой подсети. Фактически вам не нужно ограничивать вашу систему использованием только одной маски подсети. Вы можете назначить пулы адресов разных размеров для каждой подсети. Это известно как «маскировка подсети переменной длины»(VLSM). Подсеть на основе классов резервирует разделы всего адресного пространства для отдельных классов, причем каждый класс имеет маску подсети по умолчанию. Там нет таких фиксированных точек с VLSM.
Помните, что адресация подсети является функцией маршрутизации. Поэтому, если вы хотите использовать маскировку подсети переменной длины, вы должны быть уверены, что ваше сетевое оборудование может справиться с методологией.. Большинство сетевых устройств оборудованы для управления различными протоколами маршрутизации.. К счастью, большинство из этих систем маршрутизации могут справиться с VLSM.
В частности, вы можете использовать VLSM с протоколом информации о маршрутизации v2 (RIPv2), протоколом от интегрированной промежуточной системы к интегрированной системе (IS-IS), усовершенствованным протоколом маршрутизации внутреннего шлюза (EIGRP) и открытым кратчайшим путем в первую очередь (OSPF) и границей Протокол шлюза (BGP) может справиться с VLSM. Почти все маршрутизаторы совместимы с системой RIPv1 и могут фактически использовать этот протокол в качестве настройки по умолчанию. Вы должны убедиться, что изменили это предпочтение, потому что RIPv1 не может справиться с VLSM.
— точка реализации
Когда вы вычисляете диапазоны адресов для каждой из ваших подсетей, вам нужно выбрать маску подсети, которая даст вам достаточно хостов в этой подсети. Итак, вам нужно округлить распределение адресов до следующего возможного размера блока. Например, если у вас есть подсети, которые содержат 67, 18 и 45 устройств, Прежде всего необходимо добавить два адреса в каждый раздел для идентификатора сети и идентификатора широковещания.. Таким образом, вам нужны диапазоны адресов, которые содержат 69, 20 и 47 адресов.
Глядя на таблицу доступных начальных точек подсети выше, вы можете видеть, что, хотя у вас могут быть адресные пространства разных размеров, есть фиксированные точки, в которых может начинаться диапазон адресов. У вас не может быть диапазона адресов 69, поэтому вы должны округлить и выделить 128 адресов этой подсети. Подсеть, которой нужно 20 IP-адресов, получит распределение 32, а подсеть, которой нужно 47 адресов, получит 64.
Следовательно, вам нужно работать с распределением подсетей 128 + 32 + 64, которое работает на 224. Хотя эта стратегия создает пробелы в адресном пространстве, это более эффективно, чем метод подсетей фиксированной длины что потребовало бы, чтобы каждая подсеть имела одинаковый размер адресного пространства. VLSM позволяет гораздо большее количество подсетей.
При расчете начальной точки вашего адреса вам придется снова округлять, потому что нет диапазона адресов подсети, который дает вам 224 IP-адреса. Следующий пункт даст вам 256 адресов. Это начальный адрес 255.255.255.0.
Ваша первая подсеть будет иметь адрес 255.255.255.0. Оставшееся пространство в диапазоне адресов необходимо и для этой первой подсети, а также для двух других подсетей. Таким образом, вы будете делить диапазон адресов в два раза больше. Вот почему маскирование подсети переменной длины иногда называют «подсеть подсеть.»
Обратитесь к таблице выше снова. Следующая возможная начальная точка подсети — 255.255.255.128. Таким образом, диапазон адресов для вашей крупнейшей подсети будет находиться в диапазоне от 255.255.255.0 до 255.255.255.127. Идентификатор сети для этой подсети будет 255.255.255.0 и Идентификатор трансляции будет 255.255.255.127. В этом диапазоне доступно 126 IP-адресов. Вам нужно 67 адресов, поэтому в этой области будет запасным 59 адресов. Это дает вам много возможностей для добавления новых устройств в эту подсеть.
Адрес 255.255.255.128 будет Идентификатор сети для вашей следующей подсети. Вам нужно 45 адресов для этой сети, но вы должны выделить диапазон 64. Идентификатор сети и Идентификатор трансляции занимает два из этого распределения, поэтому вы будете обращаться к 45 устройствам, а затем иметь 17 запасных IP-адресов. Идентификатор трансляции для этой подсети будет 255.255.255.191.
Идентификатор сети для вашей последней подсети будет 255.255.255.192. Эта подсеть содержит 18 устройств, и вам также нужно Идентификатор сети и Идентификатор трансляции, так что это адресное пространство будет содержать 32 адреса, оставляя 12 запасных IP-адресов. Broadcast ID для этой подсети будет 255.255.255.223. Это оставляет адресные пространства для новых подсетей между 255.255.255.224 и 255.255.255.253.
Подсеть Калькуляторы
Как указано выше, стандартный калькулятор Windows может помочь вам определить членство в пуле адресов подсети. Также стоит попробовать некоторые удобные калькуляторы, специально предназначенные для подсетей. Многие из этих калькуляторов подсетей доступны онлайн и работают независимо от того, какая у вас операционная система..
Вот наш список Лучшие бесплатные калькуляторы подсетей:
- SolarWinds Advanced Subnet Calculator — бесплатный инструмент, работающий на Windows
- Tech-FAQ Subnet Calculator — бесплатная утилита, которая работает на Windows
- Подсеть ниндзя — бесплатный онлайн калькулятор
- Spiceworks Subnet Calculator — бесплатный онлайн-инструмент
- Калькулятор подсети IP — еще один бесплатный онлайн-инструмент
- Подсеть Calc — бесплатно и написано для Mac
- VLSM (CIDR) Subnet Calculator — бесплатный онлайн калькулятор, специализирующийся на подсетях переменной длины
- Ipcalc — онлайн или может быть установлен на Linux
- Sipcalc — утилита командной строки для Linux
- IP Subnet Calculator — инструмент для Windows и Linux
Мастер IP подсети
Подсеть не так сложна, если вы используете специализированный калькулятор и внедряете CIDR вместо IP-маршрутизации на основе классов.
Если сложность распределения диапазонов для каждой подсети и подсети не позволяет вам разделить сеть, у вас должна быть уверенность в том, что стратегия будет глубже рассмотрена.
Возможность вычисления областей подсети является важной частью сертификации сетевой инженерии. Если вы надеетесь стать Сертифицированный Cisco специалист по сетевым технологиям или Cisco Certified Network Associate, вам понадобятся навыки подсетей под вашим поясом. Вы не сможете сдать экзамены CCENT 100-101 или CCNA 200-120, не освоив эти методы..
Изображение: подсеть от Брэндона Леона через Flickr. Лицензировано в соответствии с CC BY-SA 2.0
Основы компьютерных сетей. Тема №5. Понятие IP адресации, масок подсетей и их расчет

Приветствую вас на очередном выпуске. И сегодня речь пойдет о том, какие бывают IP-адреса, и как ими пользоваться. Что такое маска подсети, как она считается, и для чего она нужна. Как делить сети на подсети и суммировать их. Заинтересовавшихся приглашаю к прочтению.
P.S. Возможно, со временем список дополнится.
Начнем, или уже продолжим, с самого популярного, заезженного и больного. Это IP-адреса. На протяжении 4-х статей это понятие встречалось по несколько раз, и скорее всего вы уже либо сами поняли для чего они, либо нагуглили и почитали о них. Но я обязан вам это рассказать, так как без ясного понимания двигаться дальше будет тяжело.
Итак IP-адрес — это адрес, используемый узлом на сетевом уровне. Он имеет иерархическую структуру. Что это значит? Это значит, что каждая цифра в его написании несет определенный смысл. Объясню на очень хорошем примере. Примером будет номер обычного телефона — +74951234567. Первой цифрой идет +7. Это говорит о том, что номер принадлежит зоне РФ. Далее следует 495. Это код Москвы. И последние 7 цифр я взял случайными. Эти цифры закреплены за районной зоной. Как видите здесь наблюдается четкая иерархия. То есть по номеру можно понять какой стране, зоне он принадлежит. IP адреса придерживаются аналогично строгой иерархии. Контролирует их организация IANA(англ. Internet Assigned Numbers Authority). Если на русском, то это «Администрация адресного пространства Интернет». Заметьте, что слово «Интернет» с большой буквы. Мало кто придает этому значение, поэтому объясню разницу. В англоязычной литературе термин «internet» используется для описания нескольких подключённых друг к другу сетей. А термин «Internet» для описания глобальной сети. Так что примите это к сведению.
Несмотря на то, что тема статьи больше теоретическая, нежели практическая, я настоятельно рекомендую отнестись к ней со всей серьезностью, так как от нее зависит понимание дальнейших тем, а особенно маршрутизации. Не для кого, я думаю, не секрет, что мы привыкли воспринимать числовую информацию в десятичном формате (в числах от 0-9). Однако все современные компьютеры воспринимают информацию в двоичном (0 и 1). Не важно при помощи тока или света передается информация. Вся она будет воспринята устройством как есть сигнал (1) или нет (0). Всего 2 значения. Поэтому был придуман алгоритм перевода из двоичной системы в десятичную, и обратно. Начну с простого и расскажу, как выглядят IP адреса в десятичном формате. Вся эта статья посвящена IP адресам версии 4. О версии 6 будет отдельная статья. В предыдущих статьях, лабах, да и вообще в жизни, вы видели что-то вроде этого «193.233.44.12». Это и есть IP адрес в десятичной записи. Состоит он из 4-х чисел, называемых октетами и разделенных между собой точками. Каждое такое число (октет) может принимать значение от 0 до 255. То есть одно из 256 значений. Длина каждого октета равна 8 битам, а суммарная длина IPv4 = 32 битам. Теперь интересный вопрос. Каким образом этот адрес воспримет компьютер, и как будет с ним работать?
Можно конечно набить это в калькулятор, коих навалом в Интернете, и он переведет его в двоичный формат, но я считаю, что переводить вручную должен уметь каждый. Особенно это касается тех, кто планирует сдавать экзамен. У вас не будет под рукой ничего, кроме бумаги и маркера, и полагаться придется только на свои навыки. Поэтому показываю, как это делать вручную. Строится таблица.
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|
| x | x | x | x | x | x | x | x |
Вместо «x» записывается либо 1, либо 0. Таблица разделена на 8 колонок, каждая из которых несет в себе 1 бит (8 колонок = 8 бит = 1 октет). Расположены они по старшинству слева направо. То есть первый (левый) бит — самый старший и имеет номер 128, а последний (правый) — самый младший и имеет номер 1. Теперь объясню, откуда эти числа взялись. Так как система двоичная, и длина октета равна 8-ми битам, то каждое число получается возведением числа 2 в степень от 0 до 7. И каждая из полученных цифр записывается в таблицу от большего к меньшему. То есть слева направо. От 2 в 7-ой степени до 2 в 0-ой степени. Приведу таблицу степеней 2-ки.
Думаю теперь понятно, каким образом строится таблица. Давайте теперь разберем адрес «193.233.44.12» и посмотрим, как он выглядит в двоичном формате. Разберем каждый октет отдельно. Возьмем число 193 и посмотрим, из каких табличных комбинаций оно получается. 128 + 64 + 1 = 193.
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|
| 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 |
Те числа, которые участвовали в формировании комбинации получают 1, а все остальные получают 0.
Берем первый октет 233. 128 + 64 + 32 + 8 + 1.
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|
| 1 | 1 | 1 | 0 | 1 | 0 | 0 | 1 |
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|
| 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 |
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|
| 1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
Получаю 128 + 64 + 16 + 4 + 1 = 213.
Вычисляю второй блок.
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|
| 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 |
Считаю 128 + 32 + 16 + 4 = 180.
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|
| 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 |
128 + 64 + 1 = 193.
И напоследок четвертый.
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
Собираем результаты вычислений и получаем адрес 213.180.193.3. Ничего тяжелого, чистая арифметика. Если тяжело и прям невыносимо трудно, то попрактикуйтесь. Сначала может показаться страшным, так как многие закончили учебу лет 10 назад и многое позабыли. Но уверяю, что как только набьете руку, считать будет гораздо легче. Ну а для закрепления дам вам несколько примеров для самостоятельного расчета (под спойлером будут ответы, но открывайте их только когда прорешаете сами).
1) 10.124.56.220
2) 113.72.101.11
3) 173.143.32.194
4) 200.69.139.217
5) 88.212.236.76
6) 01011101.10111011.01001000.00110000
7) 01001000.10100011.00000100.10100001
8) 00001111.11011001.11101000.11110101
9) 01000101.00010100.00111011.01010000
10) 00101011.11110011.10000010.00111101
Теперь IP-адреса не должны быть чем-то страшным, и можно углубиться в их изучение.
Выше мы говорили о структуре телефонных номеров и их иерархии. И вот на заре рождения Интернета в том представлении, в каком мы его привыкли видеть, возник вопрос. Вопрос заключался в том, что IP-адреса нужно как-то сгруппировать и контролировать выдачу. Решением было разделить все пространство IP-адресов на классы. Это решение получило название классовая адресация (от англ. Classful). Она уже давно устарела, но практически в любой книге на нее отводятся целые главы и разделы. Cisco тоже не забывает про это и в своих учебных материалах рассказывает про нее. Поэтому я пробегусь по этой теме и покажу, чем она блистала с 1981 по 1995 год.
Пространство было поделено на 5 классов. Каждому классу был назначен блок адресов.
Начнем с класса A. Если внимательно посмотреть на таблицу, то можно заметить, что этому блоку дан самый большой блок адресов, а если быть точным, то половина всего адресного пространства. Предназначался данный класс для крупных сетей. Структура этого класса выглядит следующим образом.
В чем суть. Первый октет, то есть 8 бит, остаются за адресом сети, а 3 последних октета (то есть оставшиеся 24 бита) назначаются хостам. Вот для того, чтобы показать, какой кусок относится к сети, а какой к хостам, используется маска. По структуре записи она аналогична записи IP-адреса. Отличие маски от IP-адресов в том, что 0 и 1 не могут чередоваться. Сначала идут 1, а потом 0. Таким образом, там где есть единица, значит это участок сети. Чуть ниже, после разбора классов, я покажу, как с ней работать. Сейчас главное знать, что маска класса A — 255.0.0.0. В таблице еще упомянут какой-то первый бит и для класса A он равен 0. Этот бит как раз нужен для того, чтобы сетевое устройство понимало, к какому классу оно принадлежит. Он же еще задает начальный и конечный диапазон адресов. Если в двоичном виде записать на всех октетах единицы, кроме первого бита в первом октете (там всегда 0), то получится 127.255.255.255, что является границей класса A. Например, возьмем адрес 44.58.63.132. Мы знаем, что у класса A первый октет отдается под адрес сети. То есть «44» — это адрес сети, а «58.63.132» — это адрес хоста.
Поговорим про класс B
Этому классу был дан блок поменьше. И адреса из этого блока предназначались для сетей средних масштабов. 2 октета отданы под адрес сети, и 2 — под адрес хостов. Маска у B класса — 255.255.0.0. Первые биты строго 10. А остальные меняются. Перейдем к примеру: 172.16.105.32. Два первых октета под адрес сети — «172.16». А 3-ий и 4-ый под адрес хоста — «105.32».
Этот класс обделили адресами и дали ему самый маленький блок. Он был предназначен для мелких сетей. Зато этот класс отдавал целых 3 октета под адрес сети и только 1 октет — под хосты. Маска у него — 255.255.255.0. Первые биты 110. На примере это выглядит так — 192.168.1.5. Адрес сети «192.168.1», а адрес хоста «5».
Классы D и E. Я неcпроста объединил их в один. Адреса из этих блоков зарезервированы и не могут назначаться сетям и хостам. Класс D предназначен для многоадресной рассылки. Аналогию можно привести с телевидением. Телеканал вещает группе лиц свой эфир. И те, кто подключены, могут смотреть телепередачи. То есть в распоряжение администраторов могут попасть только 3 первых класса.
Напомню, что первые биты у класса D — это 1110. Пример адреса — 224.0.0.5.
А первые биты у класса E — это 1111. Поэтому, если вдруг увидите адрес вида 240.0.0.1, смело говорите, что это адрес E класса.
Про классы обмолвились. Теперь озвучу вопрос, который мне недавно задали. Так зачем тогда маски? У нас итак хосты понимают в каком они классе. Но суть вот в чем. Например, у вас есть маленький офис, и вам нужен блок IP-адресов. Никто не будет вам выдавать все адреса класса C. А дадут только его кусок. Например 192.168.1.0 с маской 255.255.255.0. Так вот эта маска и будет определять вашу границу. Мы уже говорили, что октет варьируется в значении от 0 до 255. Вот этот 4 октет полностью в вашем распоряжении. За исключением первого адреса и последнего, то есть 0 и 255 в данном случае. Первый адрес — это адрес сети (в данном случае 192.168.1.0), а последний адрес — широковещательный адрес (192.168.1.255). Напомню, что широковещательный адрес используется в том случае, когда надо передать информацию всем узлам в сети. Поэтому есть правило. Если вам надо узнать номер сети, то все биты относящиеся к хосту обращаете в 0, а если широковещательный, то все биты — в 1. Поэтому, если из 256 адресов забирается 2 адреса, то на назначение хостам остается 254 адреса (256 — 2). На собеседованиях и экзаменах часто любят спрашивать: «Количество IP-адресов в сети?» и «Сколько доступных IP-адресов в сети для назначения хостам?». Два разных вопроса, которые могут поставить в тупик. Ответом на первый будет — все адреса, включая адрес сети и широковещательный адрес, а на второй вопрос — все адреса, кроме адреса сети и широковещательного адреса.
Теперь углубимся в изучении маски.
Я записал адрес класса C 192.168.1.1 с маской 255.255.255.0 в десятичном и двоичном формате. Обратите внимание на то, как выглядит IP-адрес и маска в двоичном формате. Если в IP-адресе 0 и 1 чередуются, то в маске сначала идут 1, а потом 0. Эти биты фиксируют адрес сети и задают размер. По таблице выше можно сделать вывод, что в двоичном виде маска представлена последовательностью 24 единиц подряд. Это говорит о том, что целых 3 октета выделено под сеть, а 4 октет свободен под адресацию для хостов. Здесь ничего необычного. Это стандартная маска класса C.
Но вот в чем загвоздка. Например, в вашем офисе 100 компьютеров, и расширяться вы не планируете. Зачем плодить сеть из 250+ адресов, которые вам не нужны?! На помощь приходит разделение на подсети. Это очень удобная вещь. Объясню принцип на примере того же класса C. Как бы вы не хотели, но трогать 3 октета нельзя. Они фиксированы. Но вот 4 октет свободен под хосты, поэтому его можно трогать. Заимствуя биты из хостового куска, вы дробите сеть на n-ое количество подсетей и, соответственно, уменьшаете в ней количество адресов для хостов.
Попробуем это воплотить в реальность. Меняю маску. Заимствую первый бит из хостовой части(то есть 1-ый бит 4-ого октета выставляю в единицу). Получается следующая маска.
Данная маска делит сеть на 2 части. Если до дробления у сети было 256 адресов(от 0 до 255), то после дробления у каждого куска будет по 128 адресов(от 0 до 127 и от 128 до 255).
Теперь посмотрю, что изменится в целом с адресами.
Красным цветом я показал те биты, которые зафиксированы и не могут изменяться. То есть маска ей задает границу. Соответственно биты помеченные черным цветом определены для адресации хостов. Теперь вычислю эту границу. Чтобы определить начало, надо все свободные биты(помеченные черным цветом) обратить в ноль, а для определения конца обратить в единицы. Приступаю.
То есть в четвертом октете меняются все биты, кроме первого. Он жестко фиксирован в рамках этой сети.
Теперь посмотрим на вторую половину сети и вычислим ее адреса. Деление у нас производилось заимствованием первого бита в 4-ом октете, значит он является делителем. Первая половина сети получалась, когда этот бит принимал значение 0, а значит вторая сеть образуется, когда этот бит примет значение 1. Обращаю этот бит в 1 и посмотрю на границы.
Приведу в десятичный вид.
Соответственно .128 и .255 назначать хостам нельзя. Значит в доступности 128-2=126 адресов.
Вот таким образом можно при помощи маски управлять размером сети. Каждый заимствованный бит делит сеть на 2 части. Если откусить 1 бит от хостовой части, то поделим на 2 части (по 128 адресов), 2 бита = 4 части (по 64 адреса), 3 бита = 8 (по 32 адреса) и так далее.
Если вы рассчитали количество бит, отдаваемые под хосты, то количество доступных IP-адресов можно вычислить по формуле
В книге У. Одома по подготовке к CCNA R&S приведена хорошая формула для расчета битов, отдаваемых на подсеть и хосты:
N + S + H = 32, где N — кол-во битов сети (класс A — 8 бит, B — 16 бит, C — 24 бита), S — кол-во заимствованных битов на подсеть (это то, что мы делали выше, когда заимствовали 1 бит из хостовой части), H — кол-во бит отводимых хостам.
Внесу ясность и объясню, как и где применять эти формулы.
Нам выдали сеть 172.16.0.0 и попросили создать 120 подсетей со 180 хостами и записать маску. Приступим.
В качестве шпаргалки, и для быстроты вычисления, я ниже подготовил таблицу степеней двойки.
Двигаемся дальше. Первое главное условие, при использовании классовой адресации — это то, что должна использоваться одна маска для всех подсетей. То есть, если у вас для одной подсети маска 255.255.255.0, то для другой подсети она не может быть 255.255.255.128.
Теперь смотрим на выданную сеть. Путем логических размышлений понимаем, что это адрес класса B. А значит его N (кол-во битов сети) = 16. Ок. Значит на хосты выделено тоже 16 бит. Вспоминаем условия задачи. Нужно создать 120 подсетей. «Откусывать» биты от сетевой части запрещено, значит кусаем от хостовой части.
Теперь нужно взять такое кол-во бит, чтобы хватило для 120 подсетей, однако оставляло достаточное кол-во под биты для хоста. Смотрим на таблицу выше. Если взять 7 бит, то получим 128. 128>120, следовательно попадаем под условие. Если возьмем 6 бит, то получим 64. 64<128, поэтому не попадаем под условие и отбрасываем этот вариант.
Ок. Выяснили, что S надо выделить не меньше 7 бит. Теперь посмотрим, что осталось под хосты.
Если N + S + H = 32 => H = 32 — (N + S) => H = 32 — (16 + 7) = 9. Смотрим на таблицу выше (или возводим 2 в 9 степень в уме) и получаем число 512. Отнимаем 2 (адрес сети и широковещательный адрес) и получаем 510 адресов. Нам нужно 180, а значит под условие мы попадаем причем с большим запасом. В таких случаях вам предоставляется право выбора. Сделать больше подсетей или хостов на подсеть. Объясняю, что это значит. У нас есть 9 бит на хосты. Если мы возьмем 8 бит, то получим число 256. 256 — 2 = 254 адреса. Этот вариант нам тоже подходит. Возьмем 7 бит. Получаем 128. Даже не отнимая 2 адреса, становится понятно, что это меньше 180 => данный вариант отбрасывается сразу. Итого получаем, что минимальное количество для подсети — 7 бит, а для хостов — 8 бит. Поэтому свободный бит можно отдать либо на подсеть, либо на хосты. Маска получается сложением N и S. В нашем случае получаем, если под подсеть отдаем 7 бит, то получаем 23. В десятичном виде маска будет выглядеть 255.255.254.0. А если отдадим под подсеть 8 бит, то получим 24 (или в десятичном виде 255.255.255.0). Иногда бывает, что под задачу существует всего одна маска. Ну и, конечно, могут быть случаи, когда маска не попадает не под какие условия. В этих случаях нужно брать сеть другого класса или доказывать заказчику, что это невозможно.
Думаю теперь понятно, как работала классовая адресация, и как ее рассчитывали. Возможно с первого раза голова не переварит этого, поэтому перечитывайте еще раз и повнимательнее. Как только начнет что-то проясняться, потренируйтесь на задачках, которые я оставлю.
1) Записать маску для проекта: сеть 172.16.0.0. 250 подсетей и 220 хостов.
2) Записать маску для проекта: сеть 10.0.0.0. 2000 подсетей и 1500 хостов.
3) Записать маску для проекта: сеть 192.168.0.0. 4 подсети и 60 хостов.
На этом разговор про классовые сети начну закруглять и подведу итоги. Классовая адресация — это зарождение сегодняшнего интернета, и именно с нее все началось. Поэтому плюсов у нее много, и за это создателям спасибо. Но, как вы могли заметить, у нее было жесткая привязка к одной маске. За счет этого IP-адреса использовались не экономно и расточительно. А в связи с бурным ростом Интернета адресов стало не хватать, и срочно нужно было вносить изменения.
Поняли ведущие умы, что использовать классовые сети не удобно и нужно от них отказываться. Это привело к созданию бесклассовой адресации и маскам переменной длины, о чем мы ниже поговорим. Но перед этим пару слов о видах IP-адресов. Несмотря на то, что переход от классовой адресации к бесклассовой предполагал экономию IP-адресов, на деле эта проблема все равно решалась не полностью. Все упиралось в саму технологию IPv4. Объясню почему. Выше я говорил, что длина IP адреса равна 32 бита. Каждый бит может принимать значение 0 или 1, то есть два значения. Соответственно, чтобы вычислить все комбинации, надо возвести 2 в 32-ую степень. Получаем 4294967296 адресов. Если вычесть отсюда зарезервированные для специальных нужд и прочего, то останется примерно 4.2 млрд. адресов, когда на Земле проживает около 7.3 млрд. человек. Поэтому ведущие умы быстро просекли эту фишку и начали искать решение. Они решили выделить некое адресное пространство, которое будет использоваться только в пределах локальной сети и не будет использоваться в Интернете. Это разделило адреса на 2 лагеря: белые или публичные (англ. public) и серые или частные (англ. private).
Привожу диапазон адресов, которые выделены под локальные сети:
1) 10.0.0.0 — 10.255.255.255 с маской 255.0.0.0 (или кратко 10/8).
2) 172.16.0.0 — 172.31.255.255 с маской 255.240.0.0 (или кратко 172.16/12).
3) 192.168.0.0 — 192.168.255.255 (или кратко 192.168/16).
Если честно, я мало где видел применение адресации 172.16.X.X. Обычно в корпоративной среде всегда используется 10.X.X.X, а в домах/квартирах и мелких офисах 192.168.X.X.
Теперь прошу обратить внимание на очень важную вещь, которую многие путают. Не путайте классовую адресацию и диапазон частных адресов. Очень много людей наступают на эти грабли и свято верят, что диапазон частных адресов 10.0.0.0 — 10.255.255.255 — это диапазон A класса.
Разобрались, что такое частные адреса или private адреса. Но это еще не все. Есть еще список зарезервированных адресов, которые не могут светиться в Интернете. По ним написана целая документация на IETF. Привожу ссылку, где можете прочитать оригинал. Я кратко опишу часто встречающиеся.
1) 0.0.0.0/8 — диапазон адресов, используемый хостами для самоидентификации. Обычно это можно увидеть, когда хост пытается получить IP-адрес от DHCP сервера. Так как изначально у него нету IP-адреса, то в поле источника он вставляет адрес из данного диапазона.
2) 127.0.0.0/8 — loopback или localhost адреса. Это IP-адреса, используемые компьютером, чтобы обратиться к самому себе. Очень полезно для проверки работы TCP/IP. Дело в том, что независимо от наличия соединения с Интернетом или локальной сетью, адреса из этого пула должны всегда пинговаться. Если этого не происходит, значит система накрылась или накрывается медным тазом.
3) 169.254.0.0/16 — link-local address или локальные адреса. Автоматически используются хостами при отсутствии DHCP-сервера или его недоступности. Это позволяет быстро организовать локальную сеть и проверить работу узлов. Однако данный пул адресов не маршрутизируется. Следовательно, выйти в Интернет с них не получится.
4) 224.0.0.0/4 — блок адресов, зарезервированный под многоадресную рассылку или multicast. Для тех, кто хочет побольше узнать про multicast, оставляю ссылку.
Бесклассовая адресация (англ. Classless Inter-Domain Routing или CIDR). Описана была в стандарте RFC1519 в 1993 году. Она отказалась от классовых рамок и фиксированной маски. Адреса делятся только на публичные и зарезервированные, о которых написано выше. Если в классовой адресации маска нарезалась единой для всех подсетей, то в бесклассовой — у каждой подсети может быть своя маска. На теории все хорошо и красиво, но нет ничего лучше, чем практика. Поэтому перехожу к ней и объясню, как можно делить на подсети с разным количеством хостов.
В качестве шпаргалки приведу список всех возможных масок.
Представим ситуацию. Вам выдали сеть 192.168.1.0/24 и поставили следующие условия:
1) Подсеть на 10 адресов для гостей.
2) Подсеть на 42 адреса для сотрудников.
3) Подсеть на 2 адреса для соединения 2 маршрутизаторов.
4) Подсеть на 26 адресов для филиала.
Ок. Данная маска показывает, что в нашем распоряжении находятся 256 адресов. По условию эту сеть надо каким-то образом разделить на 4 подсети. Давайте попробуем. 256 очень хорошо делится на 4, давая в ответе 64. Значит один большой блок в 256 адресов можно поделить на 4 равных блока по 64 адреса в каждом. И все было бы прекрасно, но это порождает большое число пустых адресов. Для сотрудников, которым нужно 42 адреса, ладно, может в дальнейшем компания еще наймет. Но вот подсеть для маршрутизаторов, которая требует всего 2 адреса, оставит 60 пустых адресов. Да, вы можете сказать, что это private адреса, и кому дело до них. А теперь представьте, что это публичные адреса, которые маршрутизируются в Интернете. Их и так мало, а тут мы еще будем их отбрасывать. Это не дело, тем более, когда мы можем гибко управлять адресным пространством. Поэтому возвращаемся к примеру и нарежем подсети так, как нам нужно.
Итак, какие подсети должны быть нарезаны, чтобы вместились все адреса, заданные по условию?!
1) Для 10 хостов, наименьшей подсетью будет блок из 16 адресов.
2) Для 42 хостов, наименьшей подсетью будет блок из 64 адресов.
3) Для 2 хостов, наименьшей подсетью будет блок из 4 адресов.
4) Для 26 хостов, наименьшей подсетью будет блок из 32 адресов.
Я понимаю, что не все могут с первого раза в это вникнуть, и в этом нет ничего страшного. Все люди разные и по-разному воспринимают информацию. Для полноты эффекта покажу деление на картинке.
Вот у нас блок, состоящий из 256 адресов.

После деления на 4 части получается следующая картинка.

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

Как видите, в свободном доступе осталось куча адресов, которые мы в дальнейшем сможем использовать. Можно посчитать точную цифру. 256 — (64 + 32 + 16 + 4) = 140 адресов.
Вот столько адресов мы сэкономили. Двигаемся дальше и ответим на следующие вопросы:
— Какими будут сетевые и широковещательные адреса?
— Какие адреса можно будет назначить хостам?
— Как буду выглядеть маски?
Механизм деления на подсети с разной маской получил название VLSM (от англ. Variable Length Subnet Mask) или маска подсети переменной длины. Дам важный совет! Начинайте адресацию с самой большой подсети. Иначе вы можете попасть на то, что адреса начнут перекрываться. Поэтому сначала планируйте сеть на бумаге. Нарисуйте ее, изобразите в виде фигур, просчитайте вручную или на калькуляторе и только потом переходите настройке в боевых условиях.
Итак, самая большая подсеть состоит из 64 адресов. С нее и начнем. Первый пул адресов будет следующий:
Адрес подсети — 192.168.1.0.
Широковещательный адрес — 192.168.1.63.
Пул адресов для назначения хостам от 192.168.1.1 до 192.168.1.62.
Теперь выбор маски. Тут все просто. Отнимаем от целой сети нужный кусок и полученное число записываем в октет маски. То есть 256 — 64 = 192 => маска 255.255.255.192 или /26.
Дальше идет подсеть поменьше. Состоит она из 32 адресов. Если первая заканчивалась на .63, то эта будет начинаться с .64:
Адрес подсети — 192.168.1.64.
Широковещательный адрес — 192.168.1.95.
Пул адресов для назначения хостам будет от 192.168.1.65 до 192.168.1.94.
Маска: 256 — 32 = 224 => 255.255.255.224 или /27.
3-я подсеть, которая предназначена для филиала, начнет старт с .96:
Адрес подсети — 192.168.1.96.
Широковещательный адрес — 192.168.1.111.
Пул адресов для назначения хостам будет от 192.168.1.97 до 192.168.1.110.
Маска: 256 — 16 = 240 => 255.255.255.240 или /28.
Ну и для последней подсети, которая уйдет под интерфейсы, соединяющие роутеры, будет начинаться с .112:
Адрес подсети — 192.168.1.112.
Широковещательный адрес — 192.168.1.115.
Разрешенными адресами будут 192.168.1.113 и 192.168.1.114.
Маска: 256 — 4 = 252 => 255.255.255.252 или /30.
Замечу, что адрес 192.168.1.115 является последним используемым адресом. Начиная с 192.168.1.116 и до .255 свободны.
Вот таким образом, при помощи VLSM или масок переменной длины, мы экономно создали 4 подсети с нужным количеством адресов в каждой. Думаю это стоит закрепить задачкой для самостоятельного решения.
Разделите сеть 192.168.1.0/24 на 3 разные подсети. Найдите и запишите в каждой подсети ее адреса, широковещательный адрес, пул разрешенных к выдаче адресов и маску. Указываю требуемые размеры подсетей:
1) Подсеть на 120 адресов.
2) Подсеть на 12 адресов.
3) Подсеть на 5 адресов.
1) Адрес подсети — 192.168.1.0.
Широковещательный адрес — 192.168.1.127.
Пул адресов для назначения хостам будет от 192.168.1.1 до 192.168.1.126.
Маска: 256 — 128 = 128 => 255.255.255.128 или /25.
2) Адрес подсети — 192.168.1.128.
Широковещательный адрес — 192.168.1.143.
Пул адресов для назначения хостам будет от 192.168.1.129 до 192.168.1.142.
Маска: 256 — 16 = 240 => 255.255.255.240 или /28.
3) Адрес подсети — 192.168.1.144.
Широковещательный адрес — 192.168.1.151.
Пул адресов для назначения хостам будет от 192.168.1.145 до 192.168.1.150.
Маска: 256 — 8 = 248 => 255.255.255.248 или /29.
Теперь, когда вы знаете, как делить сети на подсети, самое время научиться собирать подсети в одну общую подсеть. Иначе это называется суммированием или summarization. Суммирование чаще всего используется в маршрутизации. Когда у вас в таблице маршрутизатора несколько соседних подсетей, маршрутизация которых проходит через один и тот же интерфейс или адрес. Скорее всего этот процесс лучше объяснять при разборе маршрутизации, но учитывая то, что тема маршрутизации и так большая, то я объясню процесс суммирования в этой статье. Тем более, что суммирование это сплошная математика, а в этой статье мы ею и занимаемся. Ну что же, приступлю.
Представим, что у меня компания состоящая из главного здания и корпусов. Я работаю в главном здании, а в корпусах коллеги. Хоть у меня и главное здание, но в нем всего 4 подсети:
— 192.168.0.0/24
— 192.168.1.0/24
— 192.168.2.0/24
— 192.168.3.0/24
Тут коллеги с соседнего здания очухались и поняли, что у них слетела конфигурация на маршрутизаторе, а бекапов нет. Наизусть они не помнят, какие в главном здании подсети, но помнят, что они находятся рядом друг с другом, и просят прислать одну суммированную. Теперь у меня возникает задача, как их суммировать. Для начала я переведу все подсети в двоичный вид.
Посмотрите внимательно на таблицу. Как видите, у 4 подсетей первые 22 бита одинаковые. Соответственно, если я возьму 192.168.0.0 с маской /22 или 255.255.252.0, то покрою свои 4 подсети. Но обратите внимание на 5 подсеть, которую я специально ввел. Это подсеть 192.168.4.0. 22-ой бит у нее отличается от предыдущих 4-х, а значит выше выбранное не покроет эту подсеть.
Ок. Теперь я отправлю коллегам суммированную подсеть, и, если они все правильно пропишут, то маршрутизация до моих подсетей будет работать без проблем.
Возьмем тот же пример и немного изменим условия. Нас попросили прислать суммарный маршрут для подсетей 192.168.0.0 и 192.168.1.0. Я не поленюсь и создам еще одну таблицу.
Обратите внимание, что у 2 первых подсетей одинаковые не 22 бита, а 23 бита. Это значит, что их можно просуммировать еще компактнее. В принципе работать будет и так, и так. Но как говорилось в одной рекламе: «Если нет разницы — зачем платить больше?». Поэтому старайтесь суммировать, не задевая при этом соседние подсети.
Таким образом, переводя подсети в двоичный формат и находя одинаковые биты, можно их суммировать.
Вообще суммирование полезно применять, когда надо объединить несколько подсетей, расположенных вблизи друг с другом. Это позволит сэкономить ресурсы маршрутизаторов. Однако это не всегда возможно. Просуммировать, например, подсеть 192.168.1.0 и 192.168.15.0, не захватив при этом соседние подсети, невозможно. Поэтому перед суммированием стоит подумать над ее целесообразностью. Поэтому повторюсь еще раз, что начинать какую-либо революцию надо на бумажке. Ну и для закрепления материала оставлю небольшую задачу.
1) 10.3.128.0
2) 10.3.129.0
3) 10.3.130.0
4) 10.3.131.0
Просуммируйте подсети и найдите маску, которая сможет покрыть их, не задевая при этом соседние подсети.
Исходя из этого, ответом будет 10.3.128.0/22 (255.255.252.0)