Определение первого доступного IP-адреса в сети
Предположим у нас имеется адрес сети 172.30.0.64/27. Требуется определить первый доступный адрес в сети.
В любой сети есть два зарезервированных IP-адреса: первый и последний.
Первый адрес любой сети — это адрес сети, последний — широковещательный адрес.
Переведем IP-адрес и маску в двоичный формат (если число двоичных разрядов будет меньше 8, то дополним нулями слева).
Переводим отдельно каждый октет IP-адреса в двоичную систему.
Октет в десятичной системе счисления | Октет в двоичной системе счисления | Октет в двоичной системе счисления (с нулями слева) |
172 | 10101100 | 10101100 |
30 | 11110 | 00011110 |
0 | 0 | 00000000 |
64 | 1000000 | 01000000 |
Далее определим маску в двоичном виде. Запись /27 после IP-адреса говорит о том что в маске 27 единиц и 5 нулей (32-27=5).
Запишем 27 единиц и 5 нулей, и разделим их на группы по 8 бит и получим маску в двоичном виде:
11111111.11111111.11111111.11100000
Далее, для наглядности, запишем IP-адрес и маску вместе (друг под другом)
10101100.00011110.00000000.01000000 — IP-адрес
11111111.11111111.11111111.11100000 — Маска
Биты IP-адреса, которым соответствуют «1» в маске определяют номер сети и они одинаковые для всех адресов одной сети.
Биты IP-адреса, которым соответствуют «0» в маске определяют номер хоста в сети и они разные для всех адресов одной сети.
В сети 172.30.0.64/27 номера хостов будут лежать в диапазоне 00000-11111.
Как мы говорили ранее самый первый номер (00000) зарезервирован для адреса сети, а самый последний (11111) зарезервирован для широковещательного адреса.
Получается, для присвоения хостам в сети доступны номера в диапазоне 00001-11110.
Для определения первого доступного IP-адреса нужно в адресе сети изменить биты, соответствующие номеру хоста на первый доступный номер хоста:
10101100.00011110.00000000.01000001
После этого, переведем биты в десятичный формат и получим первый доступный адрес: 172.30.0.65.