Найти тему
Евгений Дергунов

Определение адресных параметров сети по IP-адресу и префиксу

Для работы компьютера (ноутбука, смартфона и т.п.) в сети устройству присваивается IP-адрес. Как правило, вместе с информацией об адресе узла можно узнать и маску сети (или префикс). Маска сети указывает на количество бит в IP-адресе, отведенных под номер сети. Соответственно оставшиеся биты используются под номер узла. Маска и префикс — это разные записи одного и того же значения. Записывается только одно из них. В операционных системах Windows обычно используется маска, в операционных системах на основе Linux могут применяться оба варианта записи. Приведем пример.

-2

Запись в левом столбце идентична записи в правом. Используется один из приведенных вариантов.

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

Рассмотрим два примера для решения подобных задач.

Ⅰ Пример. IP-адрес узла и префикс:

10.0.0.10/25

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

Ход решения:

1. Переведем IP-адрес и префикс сети в двоичную систему счисления. Двоичный код адреса запишем первым, ниже запишем префикс. Число, обозначающее префикс показывает количество бит, отведенных под номер сети. В данном случае это 25 единиц, остальное нули (так как IP-адрес четвертой версии протокола IP состоит из 32 бит). В данном виде записывается маска в двоичной системе счисления. Биты адреса и префикса записываем на одной вертикальной линии.

Принимаем нумерацию бит справа налево. То есть самый правый бит нумеруем как первый, а самый левый как тридцать второй. Затем определим границу сети в соответствии с маской (по правую сторону от границы должны быть только нули, по левую сторону – только единицы), в данном случае граница сети проходит между восьмым и седьмым битами (под номер сети отводится 25 бит).

-3

2. Определяем номер сети и маску сети. Для этого все биты, принадлежащие IP-адресу узла и находящиеся справа от границы сети, заменяем нулями, а те биты, что слева, – переписываем без изменений:

-4

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

10.0.0.0.

Префикс записанный в первом пункте в двоичном коде также переводим в десятичную систему счисления и вычисляем маску сети:

255.255.255.128

3. Находим широковещательный адрес данной сети. Для этого все, что в номере сети находится слева от границы, записываем без изменений, а все, что справа, - заполняем единицами:

-5

Переводим широковещательный адрес в десятичную систему счисления:

10.0.0.127.

4. Теперь необходимо определить диапазон и количество адресов узлов в сети. Нужно понимать, что нумерация сети состоит из непрерывного диапазона адресов. При этом самый первый адрес (не обязательно заканчивающийся на ноль) - это адрес сети, а самый последний - это широковещательный адрес сети (для групповой рассылки всем узлам сети). Соответственно адресация узлов каждой сети находится между этими двумя значениями. Таким образом, для того чтобы вычислить адрес первого узла в сети, необходимо к номеру сети прибавить единицу (10.0.0.1), а для того чтобы определить адрес последнего узла, - от широковещательного адреса сети отнять единицу (10.0.0.126). Получаем следующий диапазон адресов узлов:

10.0.0.1 – 10.0.0.126.

Таким образом, максимальное количество адресов в сети 10.0.0.0/25 составляет 126 (от 10.0.0.1 до 10.0.0.126).

Пример записи решения:

-6

(1 строка – IP-адрес узла, 2 – номер сети, 3 – маска сети, 4 – широковещательный адрес сети)

Преобразуем все записи из двоичной системы счисления в десятичную:

Номер сети: 10.0.0.0

Маска: 255.255.255.128

Широковещательный IP-адрес: 10.0.0.127

Адрес первого узла в сети: 10.0.0.1

Адрес последнего узла в сети: 10.0.0.126

Количество адресов (максимально возможное количество узлов в данной сети) составляет 126 единиц.

Ⅱ Пример. IP-адрес узла и префикс:

3.0.3.110/20

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

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

1. Переведем IP-адрес и префикс сети в двоичную систему счисления, Граница сети в соответствии с маской (по правую сторону от границы должны быть только нули, по левую сторону – только единицы) проходит между тринадцатым (13) и двенадцатым (12) битами (под номер сети отводится 20 бит):

-7

2. Определяем номер сети. Для этого все биты, что находятся справа от границы сети, заменяем нулями, а те биты, что слева, – переписываем без изменений:

-8

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

3.0.0.0

Префикс записанный в первом пункте в двоичном коде также переводим в десятичную систему счисления и вычисляем маску сети:

255.255.240.0

3. Определим широковещательный адрес данной сети. Для этого все, что слева от границы, записываем без изменений, как в номере сети, а все, что справа, - заполняем единицами:

-9

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

3.0.15.255

4. Определяем диапазон адресов узлов в сети. Для того чтобы вычислить адрес первого узла в сети, необходимо к номеру сети прибавить единицу (3.0.0.1), а для того чтобы определить адрес последнего узла, - от широковещательного адреса сети отнять единицу (3.0.15.254). Получаем следующий диапазон адресов узлов: 3.0.0.1 – 3.0.15.254. Таким образом, максимальное количество адресов в сети 3.0.0.0/20 составляет 4094.

Пример записи решения:

-10

(1 – IP-адрес узла, 2 – номер сети, 3 – маска сети, 4 – номер адреса широкого вещания)

Номер сети: 3.0.0.0

Маска: 255.255.240.0

Номер адреса широкого вещания: 3.0.15.255

1-ый узел в сети: 3.0.0.1

Последний узел в сети: 3.0.15.254

Количество адресов (максимально возможное количество узлов в данной сети) составляет 4094 единиц.

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

3.0.0.1 – 3.0.0.255 (то есть 255 адресов)

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

3.0.1.0

При третьем байте равным единицы, четвертый байт будет изменяться следующим образом

3.0.1.0 – 3.0.1.255 (то есть 256 адресов)

далее

3.0.2.0 - 3.0.2.255 (256 адресов)

и так далее

...

3.0.14.0 - 3.0.14.255 (256 адресов)

последний байт

3.0.15.0. - 3.0.15.254 (255 адресов)

Рассчитывая подобным образом получим общее число адресов

255+256*14+255=4094

То есть два диапазона - первый и последний (3.0.0.* и 3.0.15.*) имеют по 255 адресов.

Четырнадцать диапазонов (3.0.1.*, 3.0.2.*, 3.0.3.*, 3.0.4.*, 3.0.5.*, 3.0.6.*, 3.0.7.*, 3.0.8.*, 3.0.9.*, 3.0.10.*, 3.0.11.*, 3.0.12.*, 3.0.13.* и 3.0.14.*) по 256 адресов.

Распределение IP-сети на подсети описано в статье