Задача об IP-адресах и забывчивых сотрудниках
Задача для всех, кто увлекается темой сетей и логикой.
Условие
Руководство компании придумало, как повысить эффективность департамента, и разделило его на отделы поменьше. Так появилось четыре команды: автоматизации, эксплуатации, дебаггинга и общего администрирования.
На еженедельной встрече руководитель рассказал сотрудникам, кто и в какую команду переходит. Но шестеро коллег все забыли: Аркадий, Елисей, Ангелина, Юрий, Яна и Мирон. Они знают только свои новые IP-адреса, записанные на стикерах.
- 10.41.2.176/29 — Юрий;
- 10.10.9.222/29 — Аркадий;
- 10.10.9.218/29 — Яна;
- 10.35.87.8/25 — Ангелина;
- 10.41.2.178/29 — Мирон;
- 10.10.9.227/29 — Елисей.
Также известно, что в администрировании оказалось два человека, один из которых неправильно записал последнюю цифру своего адреса. В эксплуатацию попали двое, а в дебаге — девушка.
Задача
Помогите определить, в какие команды попали сотрудники компании.
Решение
Для начала возьмем префикс /29, который встречается в большинстве адресов. Он указывает на то, что для сети используются 29 битов. Это означает, что оставшиеся три бита используются для адресации устройств в этой подсети (32 — 29 = 3).
Выясним количество адресов в подсети с этим префиксом. Для расчета нужно использовать формулу 2 в степени 𝑛, где 𝑛 — количество оставшихся битов:
Количество адресов будет равно двум в третьей степени, то есть их восемь штук. Первый равен адресу подсети, а последний — широковещательный для данной подсети, он не назначается для ПК. Маска подсети /29 в десятичном формате будет выглядеть так: 255.255.255.248.
Теперь возьмем первое условие нашей задачи: в администрирование попали два человека, один из которых неправильно записал свой адрес. Находим в списке представленных адресов попарно похожие:
- 10.10.9.222/29 у Аркадия и 10.10.9.218/29 у Яны;
- 10.41.2.178/2 у Мирона и 10.41.2.176/29 у Юрия.
Выясняем адрес подсети, в которой находится адрес Аркадия, для этого переписываем его в двоичном коде:
10.10.9.222 → 00001010.00001010.00001001.11011110
Маска подсети 255.255.255.248 будет такой:
11111111.11111111.11111111.11111000
Чтобы получить адрес подсети, нужно выполнить побитовую операцию «И» между IP-адресом и сетевой маской:
00001010.00001010.00001001.11011110 (IP-адрес)
И
11111111.11111111.11111111.11111000 (Сетевая маска)
--------------------------------------------------------
00001010.00001010.00001001.11011000 (Адрес подсети)
Переводим адрес подсети в десятичный формат: 10.10.9.216.
Первый адрес 10.10.9.216, а 10.10.9.223 — последний (широковещательный). В диапазон 10.10.9.216–10.10.9.223 подсети 10.10.9.216/24 попадают адреса Аркадия (10.10.9.222/29) и Яны (10.10.9.218/29). Они оба верны, значит, ребята попали в команду эксплуатации.
Переходим к Мирону — 10.41.2.178/29. Повторяем те же действия, чтобы узнать адрес его подсети, и получаем 10.41.2.176/29.
Значение совпадает с адресом Юрия (10.41.2.176/29) — значит, молодой человек ошибся. Из условия мы знаем, что в администрирование попали два человека, один из которых неправильно записал последнюю цифру своего адреса. Все совпадает: получается, в этой команде работают Юрий и Мирон.
Остались Елисей и Ангелина, команда дебага и команда автоматизации. Мы знаем, что в дебаггинг попала девушка, значит, это Ангелина. Получается, Елисей перешел в автоматизацию.
Ответ
- Юрий и Мирон — администрирование;
- Аркадий и Яна — эксплуатация;
- Ангелина — команда дебаггинга;
- Елисей — автоматизация.