September 22, 2023

Работа с  калькулятором сетей TCP/IP в PascalАВС.NЕТ

Решим с помощью калькулятора практическую задачу по созданию подсетей.

В некоторой организации сетевому администратору поручили организовать на базе выданного организации ip-адреса 89.16.105.0/24 три подсети емкостью 120, 58 и 15 узлов. С этой целью ему нужно подготовить задание для инженеров и указать в нем диапазоны адресов для каждой подсети.

Проверяем, имеет ли сеть достаточную емкость. Учитываем, что для подсети с n узлами потребуется емкость, равная n+2 (добавляется адрес самой подсети и широковещательный адрес). Потребное количество адресов составляет

(120+2)+(58+2)+(15+2) = 122+ 60 + 17 = 199.

Маска сети /24 означает, что 24 из 32 бит адреса заняты адресом сети, а на долю узлов (они же - хосты) остается 32-24 = 8 бит. Эти 8 бит позволяют завести 2^8 = 256 узлов, так что часть адресов попадут в запас.

Каждая подсеть должна иметь свою битовую маску, поэтому количество узлов в ней должно быть кратно степени двойки. Распределяем адреса для каждой подсети в порядке убывания числа узлов.

1. 2^6 < 122 < 2^7, поэтому для подсети потребуется маска хоста с префиксом /25. 7 бит отводим на узлы подсети, остаются 32-7 = 25 бит для маски адреса. Теперь мы можем с помощью калькулятора рассчитать параметры первой подсети.

## uses School;
Print(new CalcIP('89.16.105.0', 25));

Первая подсеть будет иметь сетевой адрес 89.16.105.0/25, ее широковещательный адрес 89.16.105.127 и диапазон адресов узлов 89.16.105.1 - 89.16.105.120.

2. 2^5 < 60 < 2^6, поэтому для подсети потребуется маска длиной 6 бит; ее префикс /26. Адрес этой подсети на единицу превышает широковещательный адрес предыдущей подсети, т.е. он равен 89.16.105.128.

Print(new CalcIP('89.16.105.128', 26));

Вторая подсеть будет иметь сетевой адрес 89.16.105.128/26, ее широковещательный адрес 89.16.105.191 и диапазон адресов узлов 89.16.105.129 - 89.16.105.188.

2^4 < 17 < 2^5, поэтому для подсети потребуется маска длиной 5 бит; ее префикс /27. Адрес этой подсети на единицу превышает широковещательный адрес предыдущей подсети, т.е. он равен 89.16.105.192.

Print(new CalcIP('89.16.105.192', 27));

Третья подсеть будет иметь сетевой адрес 89.16.105.192/27, ее широковещательный адрес 89.16.105.223 и диапазон адресов узлов 89.16.105.193 - 89.16.105.207.

Конечно, этот же расчет можно было провести и "на бумаге", и с помощью калькулятора из сети Интернет, но целью этого материала было показать, что калькулятор в PascalАВС.NЕТ отлично подходит для решения подобных задач.