Быстрый и надежный расчет IPv4 сети

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

Структура IPv4 адреса

IP-адрес состоит из 32-бит, например, 158.4.73.39 и делится на 4 октета по 8 бит.

Первый октет равен 158=128+0+0+16+8+4+2+0 в десятичной форме, и если мы преобразуем его в двоичный формат, то он будет равен 1001 1110 (добавил пробел для удобства восприятия). Соответственно для второго октета равного 4=0+0+0+0+0+4+0+0, представление в двоичном формате — 0000 0100. Для третьего октета, равного 73=0+64+0+0+8+0+0+1, двоичный вид будет следующим — 0100 1001. И для замыкающего четвертого октета 39=0+0+32+0+0+4+2+1 получаем 0010 0111.

Маска сети также представляет собой 32-битное бинарное число, где количество единиц, начиная со старшего октета (левая часть числа), определяет размер сети. Двойка, возведенная в степень количества нулей, определяет количество возможных хостов без двух адресов: первый адрес — это адрес самой сети, последний адрес отводится для широковещательных запросов.

Для примера возьмем /23 маску, то есть в 32 битах старшие 23 единицы; число в десятичном виде  —255.255.252.0, в двоичной форме — 1111 1111.1111 1111.1111 1110.0000 0000 (пробелы добавлены для удобства восприятия).

Адрес широковещательных запросов служит для отправки пакетов всем узлам сети.

Для расчета адреса широковещательных запросов представим нашу сеть 158.4.73.39/23 в промежуточной форме. Так как 2 старших октета заданной маски сети состоят полностью из единиц, то нам нет необходимости преобразовывать старшие 2 октета IP-адреса в двоичную форму. Мы будем использовать для расчета адресации узлов младшие 2 октета.

Промежуточная форма записи

Отсекаем слева старшие 23 бита из 32 , так как они не участвуют в расчете разрешенных IP-адресов для узлов нашей сети.

Как результат, мы получаем промежуточную форму записи (расчет 2-х младших октетов возьмем из предыдущих абзацев) исходного IP-адреса 4 версии протокола для упрощения расчета:

158.4.0100 1001.0010 0111

  1. Для расчета подсети возьмем промежуточную форму записи IP-адреса и заменим младшие 32-23=9 бит на нули 158.4.0100100 0.00000000, преобразуем адрес в обычную десятичную форму: 158.4.0^7+2^6+0^5+2^4+0^3+0^2+0^1+0^0.0^7+0^6+0^5+0^4+0^3+0^2+2^1+0^0=158.4.0+64+0+0+8+0+0+0.0=158.4.72.0 (третий октет изменился с 73 на 72).
  2. Для расчета первого адреса сети возьмем промежуточную форму записи IP-адреса и заменим младшие 32-23=9 бит на нули, кроме самого младшего; а младший бит заменим на 1 и преобразуем адрес в обычную десятичную форму 158.4.0100100 0.00000001: 158.4.0^7+2^6+0^5+2^4+0^3+0^2+0^1+0^0.0^7+0^6+0^5+0^4+0^3+0^2+2^1+0^1=158.4.72.1
  3. Для расчета последнего адреса сети возьмем промежуточную форму записи IP-адреса и заменим младшие 32-23=9 бит на единицы кроме самого младшего, а младший бит заменим на 0 и преобразуем адрес в обычную десятичную форму 158.4.0100100 1.11111110: 158.4.0^7+2^6+0^5+2^4+0^3+0^2+0^1+2^0.2^7+2^6+2^5+2^4+2^3+2^2+2^1+0^1=158.4.73.254
  4. Для расчета адреса широковещательных запросов возьмем промежуточную форму записи IP-адреса и заменим младшие 32-23=9 бит на единицы, преобразуем адрес в обычную десятичную форму 158.4.0100100 1.11111111: 158.4.0^7+2^6+0^5+2^4+0^3+0^2+0^1+2^0.2^7+2^6+2^5+2^4+2^3+2^2+2^1+2^1=158.4.73.255

Краткая форма записи итоговых расчетов

Таким образом мы получили таблицу:

158.4.01001001.00100111 — IP-адрес с маской 11111111.11111111.11111110.00000000

158.4.0100100 0.00000000 — адрес сети

158.4.0100100 0.00000001 — первый IP-адрес сети

158.4.0100100 1.11111110 — последний IP-адрес

158.4.0100100 1.11111111 — адрес для отправки широковещательных запросов в сеть

Крайне рекомендую для формирования навыка проделать подобное упражнение для адресов:

192.168.168.184/30

172.16.197.231/23

10.199.199.199/26

Для быстрой проверки рекомендую воспользоваться калькулятором

https://quickpages.ru/ip-calculator/

Предыдущая запись Маршрутизатор — определяем типы атак Следующая запись Оптимальный размер MTU — снижаем нагрузку на сеть

Оцените статью
Информационный ресурс для любителей компьютеров и IT технологий