Чтобы найти адрес сети и диапазон обычных узлов, определите размер блока по префиксу и найдите блок, в который попадает адрес. Первый адрес блока будет адресом сети, последний — broadcast; между ними расположены обычные узлы.
Ниже — два разбора и шесть задач для самостоятельной работы. Во всех восьми условиях адреса сети и broadcast не назначаются узлам.
Что означают записи
IPv4-адрес состоит из четырёх чисел, разделённых точками. Каждое такое число называют октетом. Запись после косой черты — префикс: он показывает, сколько из 32 бит адреса относятся к сетевой части.
В задачах с префиксами от /24 до /30 меняется последний октет. Пусть h = 32 − префикс. Тогда размер блока равен 2^h адресов, а число обычных узлов в условиях этих задач — 2^h − 2. Адрес broadcast служит широковещательным адресом сети.
Это правило применяем только к рассматриваемым обычным сетям /24–/30. Не переносите его без дополнительных условий на /31, /32 или IPv6. Для проверки адресов можно использовать модуль ipaddress стандартной библиотеки Python.
Разбор 1: блок из 32 адресов
Дан учебный IPv4-адрес 192.0.2.123/27. Найдите адрес сети, broadcast, первый и последний обычный узел и число обычных узлов. Для этой задачи адреса сети и broadcast не назначаются узлам.
- На часть узла остаётся 32 − 27 = 5 бит. Размер блока: 2^5 = 32 адреса.
- Границы блоков последнего октета начинаются с 0, 32, 64, 96, 128 и так далее. Число 123 находится в блоке от 96 до 127.
- Адрес сети — 192.0.2.96, broadcast — 192.0.2.127.
- Первый обычный узел следует за адресом сети: 192.0.2.97. Последний стоит перед broadcast: 192.0.2.126.
- Число обычных узлов: 32 − 2 = 30.
Проверка границ: 96 ≤ 123 ≤ 127, значит исходный адрес попал в найденный блок.
Разбор 2: блок из 16 адресов
Дан учебный IPv4-адрес 198.51.100.44/28. Найдите адрес сети, broadcast, первый и последний обычный узел и число обычных узлов. Для этой задачи адреса сети и broadcast не назначаются узлам.
Здесь h = 32 − 28 = 4, поэтому блок содержит 2^4 = 16 адресов. Начала соседних блоков — 32 и 48: число 44 находится между ними. Значит, нужный блок идёт от 32 до 47 включительно.
- Адрес сети: 198.51.100.32.
- Broadcast: 198.51.100.47.
- Первый обычный узел: 198.51.100.33.
- Последний обычный узел: 198.51.100.46.
- Число обычных узлов: 16 − 2 = 14.
Проверим число узлов по границам: 46 − 33 + 1 = 14. Единицу добавляем потому, что считаем оба крайних адреса диапазона.
Шесть задач для самостоятельной работы
В каждой задаче найдите пять результатов в указанном порядке. Сначала запишите размер блока и его границы, затем сравните ответ с ключом.
3. Дан учебный IPv4-адрес 203.0.113.77/24. Найдите адрес сети, broadcast, первый и последний обычный узел и число обычных узлов. Для этой задачи адреса сети и broadcast не назначаются узлам.
4. Дан учебный IPv4-адрес 192.0.2.201/25. Найдите адрес сети, broadcast, первый и последний обычный узел и число обычных узлов. Для этой задачи адреса сети и broadcast не назначаются узлам.
5. Дан учебный IPv4-адрес 198.51.100.99/26. Найдите адрес сети, broadcast, первый и последний обычный узел и число обычных узлов. Для этой задачи адреса сети и broadcast не назначаются узлам.
6. Дан учебный IPv4-адрес 203.0.113.22/29. Найдите адрес сети, broadcast, первый и последний обычный узел и число обычных узлов. Для этой задачи адреса сети и broadcast не назначаются узлам.
7. Дан учебный IPv4-адрес 192.0.2.102/30. Найдите адрес сети, broadcast, первый и последний обычный узел и число обычных узлов. Для этой задачи адреса сети и broadcast не назначаются узлам.
8. Дан учебный IPv4-адрес 198.51.100.201/27. Найдите адрес сети, broadcast, первый и последний обычный узел и число обычных узлов. Для этой задачи адреса сети и broadcast не назначаются узлам.
Ключ и проверка
| № | Размер блока | Адрес сети | Broadcast | Первый узел | Последний узел | Число узлов |
|---|---|---|---|---|---|---|
| 3 | 256 | 203.0.113.0 | 203.0.113.255 | 203.0.113.1 | 203.0.113.254 | 254 |
| 4 | 128 | 192.0.2.128 | 192.0.2.255 | 192.0.2.129 | 192.0.2.254 | 126 |
| 5 | 64 | 198.51.100.64 | 198.51.100.127 | 198.51.100.65 | 198.51.100.126 | 62 |
| 6 | 8 | 203.0.113.16 | 203.0.113.23 | 203.0.113.17 | 203.0.113.22 | 6 |
| 7 | 4 | 192.0.2.100 | 192.0.2.103 | 192.0.2.101 | 192.0.2.102 | 2 |
| 8 | 32 | 198.51.100.192 | 198.51.100.223 | 198.51.100.193 | 198.51.100.222 | 30 |
Типичная ошибка — принять следующий адрес сети за broadcast текущего блока. Например, в задаче 8 следующий блок начинается с 224, поэтому текущий заканчивается на 223. Проверяйте, что исходный адрес лежит между найденными границами, а число узлов на два меньше размера блока.
Если ребёнок интересуется тем, как эти темы связаны с обучением, пригодится статья о программировании для детей: с какого возраста и с чего начать.