Как вычислять маски подсети и распределять IP-адреса?

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

Основные понятия

IP-адрес

IP-адрес (Internet Protocol address) – это уникальный идентификатор устройства в сети. Он состоит из четырех октетов (чисел от 0 до 255), разделенных точками, например, 192.168.1.100. IP-адрес версии 4 (IPv4) представляет собой 32-битное число, где каждый октет занимает 8 бит.

Типы IP-адресов

Публичные IP-адреса

Публичные IP-адреса используются для уникальной идентификации устройств в интернете и позволяют им напрямую взаимодействовать друг с другом. Распределением публичных адресов управляет иерархическая система организаций: IANA (Internet Assigned Numbers Authority) на глобальном уровне, региональные интернет-регистры (RIR) на континентальном уровне и локальные интернет-регистры (LIR), такие как интернет-провайдеры и хостинг-компании, на местном уровне.

Частные IP-адреса

Частные IP-адреса используются для идентификации устройств внутри локальных сетей и не могут быть использованы для прямого доступа в интернет без применения технологий трансляции адресов (NAT). Зарезервированные диапазоны частных адресов:

  • 10.0.0.0 - 10.255.255.255
  • 172.16.0.0 - 172.31.255.255
  • 192.168.0.0 - 192.168.255.255

Маска подсети

Маска подсети определяет, какая часть IP-адреса относится к сети, а какая – к устройствам (хостам) в этой сети. Она также состоит из четырех октетов и представляется в виде, например, 255.255.255.0. IP-адрес и маска подсети используются совместно для определения границ сети.

Префикс CIDR

Префикс CIDR (Classless Inter-Domain Routing) указывает количество бит, используемых для сетевой части IP-адреса. Он записывается в виде косой черты и числа после IP-адреса, например, /24. Префикс CIDR позволяет гибко распределять IP-адреса, создавая сети разных размеров.

Классы IP-адресов (устаревшие)

В прошлом использовалась классовая система адресации, которая делила IP-адреса на классы A, B и C в зависимости от размера сети. Каждый класс имел фиксированную длину префикса и диапазон значений первого октета:

  • Класс A:

    • Диапазон первого октета: 1-126
    • Префикс сети: /8 (8 бит для сети, 24 бита для хостов)
    • Вместимость: ~16 миллионов хостов
    • Предназначение: очень крупные сети (например, национальные провайдеры)
  • Класс B:

    • Диапазон первого октета: 128-191
    • Префикс сети: /16 (16 бит для сети, 16 бит для хостов)
    • Вместимость: ~65 тысяч хостов
    • Предназначение: средние и крупные сети (например, университеты, корпорации)
  • Класс C:

    • Диапазон первого октета: 192-223
    • Префикс сети: /24 (24 бита для сети, 8 бит для хостов)
    • Вместимость: 254 хоста
    • Предназначение: небольшие сети (например, домашние или офисные)

Однако эта система была признана неэффективной и заменена бесклассовой маршрутизацией CIDR.

Таблица масок подсети

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

Префикс Маска подсети Количество IP-адресов Количество используемых IP-адресов
/0 0.0.0.0 4 294 967 296 4 294 967 294
/1 128.0.0.0 2 147 483 648 2 147 483 646
/2 192.0.0.0 1 073 741 824 1 073 741 822
/3 224.0.0.0 536 870 912 536 870 910
/4 240.0.0.0 268 435 456 268 435 454
/5 248.0.0.0 134 217 728 134 217 726
/6 252.0.0.0 67 108 864 67 108 862
/7 254.0.0.0 33 554 432 33 554 430
/8 255.0.0.0 16 777 216 16 777 214
/9 255.128.0.0 8 388 608 8 388 606
/10 255.192.0.0 4 194 304 4 194 302
/11 255.224.0.0 2 097 152 2 097 150
/12 255.240.0.0 1 048 576 1 048 574
/13 255.248.0.0 524 288 524 286
/14 255.252.0.0 262 144 262 142
/15 255.254.0.0 131 072 131 070
/16 255.255.0.0 65 536 65 534
/17 255.255.128.0 32 768 32 766
/18 255.255.192.0 16 384 16 382
/19 255.255.224.0 8 192 8 190
/20 255.255.240.0 4 096 4 094
/21 255.255.248.0 2 048 2 046
/22 255.255.252.0 1 024 1 022
/23 255.255.254.0 512 510
/24 255.255.255.0 256 254
/25 255.255.255.128 128 126
/26 255.255.255.192 64 62
/27 255.255.255.224 32 30
/28 255.255.255.240 16 14
/29 255.255.255.248 8 6
/30 255.255.255.252 4 2
/31 255.255.255.254 2 2 (специальный случай)
/32 255.255.255.255 1 1 (специальный случай)

Эта таблица является удобным справочником для быстрого определения параметров сети по заданному префиксу.

В таблице масок подсети для префиксов /31 и /32 указаны специальные случаи. Давайте подробнее рассмотрим, что это означает.

  1. Префикс /31 (255.255.255.254):

    • Этот префикс позволяет создать сеть, состоящую всего из двух IP-адресов.
    • В обычной ситуации один адрес используется для идентификации сети, а другой - для широковещательного адреса, что делает невозможным назначение адресов хостам.
    • Однако в специальном случае с префиксом /31 оба адреса можно использовать для назначения хостам, так как широковещательный адрес не требуется.
    • Этот подход обычно используется для point-to-point (точка-точка) соединений, где необходимо только два IP-адреса, например, для прямого соединения двух маршрутизаторов.
  2. Префикс /32 (255.255.255.255):

    • Этот префикс создает сеть, состоящую только из одного IP-адреса.
    • Обычно один адрес не может быть использован, так как он зарезервирован для идентификации сети.
    • Однако в специальном случае с префиксом /32 этот единственный адрес может быть назначен хосту.
    • Такой подход часто используется для loopback-адресов (например, 127.0.0.1) или для определения конкретного хоста в сети.

Эти специальные случаи отличаются от обычных ситуаций, когда адрес сети и широковещательный адрес нельзя назначать хостам. Префиксы /31 и /32 позволяют более эффективно использовать IP-адреса в определенных сценариях, таких как point-to-point соединения или идентификация отдельных хостов.

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

Примеры распределения IP-адресов

Рассмотрим несколько примеров распределения IP-адресов в сетях с разными префиксами CIDR.

Пример 1

Блок IP-адресов: 192.168.1.0/24

  1. Найдите префикс /24 в таблице.
  2. Маска подсети: 255.255.255.0
  3. Количество IP-адресов: 256
  4. Количество используемых IP-адресов: 254

Распределение адресов:

  • Адрес сети: 192.168.1.0
  • Используемые адреса: 192.168.1.1 - 192.168.1.254
  • Широковещательный адрес: 192.168.1.255

Пример 2

Блок IP-адресов: 10.0.0.0/22

  1. Префикс /22 в таблице.
  2. Маска подсети: 255.255.252.0
  3. Количество IP-адресов: 1024
  4. Количество используемых IP-адресов: 1022

Распределение адресов:

  • Адрес сети: 10.0.0.0
  • Используемые адреса: 10.0.0.1 - 10.0.3.254
  • Широковещательный адрес: 10.0.3.255

Перевод IP-адреса из десятичного в двоичный вид:

IP-адрес состоит из четырех октетов, каждый из которых представляет собой число от 0 до 255. Чтобы перевести IP-адрес в двоичный вид, нужно перевести каждый октет в 8-битное двоичное число, а затем объединить их.

Пример перевода октета в двоичный вид:

  • Октет: 192
  • Двоичное представление: 11000000

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

Когда мы делим число на 2, мы по сути спрашиваем: “Сколько раз число 2 помещается в этом числе?” Частное представляет собой количество раз, которое 2 помещается в числе, а остаток - это то, что остается после деления.

Пример перевода октета 192 в двоичный вид:

  • 192 / 2 = 96 (остаток 0) - 2 помещается в 192, 96 раз, остатка нет.
  • 96 / 2 = 48 (остаток 0) - 2 помещается в 96, 48 раз, остатка нет.
  • 48 / 2 = 24 (остаток 0) - 2 помещается в 48, 24 раза, остатка нет.
  • 24 / 2 = 12 (остаток 0) - 2 помещается в 24, 12 раз, остатка нет.
  • 12 / 2 = 6 (остаток 0) - 2 помещается в 12, 6 раз, остатка нет.
  • 6 / 2 = 3 (остаток 0) - 2 помещается в 6, 3 раза, остатка нет.
  • 3 / 2 = 1 (остаток 1) - 2 помещается в 3, 1 раз, остаток 1.
  • 1 / 2 = 0 (остаток 1) - 2 не помещается в 1, частное 0, остаток 1.

Записываем остатки в обратном порядке: 11000000

Повторяем этот процесс для каждого октета IP-адреса и объединяем результаты.

Пример перевода IP-адреса 192.168.1.100 в двоичный вид:

  • 192: 11000000
  • 168: 10101000
  • 1: 00000001
  • 100: 01100100

Объединяем двоичные представления октетов: 11000000.10101000.00000001.01100100

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

Заключение

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

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

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