Внешний вид
Кейс №5 (строительная лаба №2): DHCP-сервер на CHR + перехват rogue DHCP
Дата: 2026-09-29 Задача: построить DHCP на CHR для lab-lan и перевести клиентов со статики на автоматику (лаба №2 из дорожной карты). Статус: ✅ построено; по пути пойман и нейтрализован rogue DHCP-сервер
Построенная конфигурация (CHR)
routeros
/ip pool add name=lab-pool ranges=192.168.100.100-192.168.100.200
/ip dhcp-server add name=lab-dhcp interface=ether2 address-pool=lab-pool
/ip dhcp-server network add address=192.168.100.0/24 gateway=192.168.100.1 dns-server=192.168.100.1
/ip dhcp-server enable lab-dhcpКлиент (alpine1): /etc/network/interfaces → iface eth0 inet dhcp, сетевой сервис перезапущен.
Происшествие: мятежный DHCP
Симптом при переводе на DHCP: udhcpc: Timeout, server 192.168.100.11 not responding (позже — server 192.168.100.200 not responding), адрес получался через раз, линк «плавал».
Диагностика:
- Lease на CHR появлялся и биндился — настоящий сервер работал;
- но в эфире lab-lan отвечал ещё кто-то, чей Offer содержал server-id = собственный адрес самого клиента — bogus-предложение, на которое udhcpc безуспешно пытался закончить DORA.
Улика: осиротевший процесс dnsmasq --conf-file=.../lab-lan.conf (PID 110378, запущен 28.09, когда сеть lab-lan имела иную конфигурацию; пережил несколько переопределений сети и потерял управление libvirt).
Действие: sudo pkill -f "lab-lan.conf" → эфир очистился, DHCP стабилизировался.
Закрепление результата: резервирование
Чтобы клиент сохранял адрес (и чтобы не ломать SSH-доступ при смене аренды):
routeros
/ip dhcp-server lease make-static [find mac-address=52:54:00:D4:81:0F]
/ip dhcp-server lease set [find mac-address=52:54:00:D4:81:0F] address=192.168.100.11Итог: alpine1 получает 192.168.100.11 по DHCP (default route metric 202), интернет работает.
Уроки (двойные)
- Пул DHCP не должен пересекаться со статикой (.1 роутер, .11/.12 клиенты-резервы, .254 хост). Иначе — конфликт адресов.
- Rogue DHCP — классическая полевая неисправность: посторонний сервер в сегменте (клиент воткнул свой роутер «вторым концом» в сеть, кривой свитч с DHCP, осиротевший процесс). Симптом: «интернет то есть, то нет», странные адреса у клиентов (не из пула провайдера), Offer'ы с невозможным server-id. Лечение: найти и выключить источник; защита на свитчах — DHCP snooping.
- Инфраструктурный мусор (сиротские процессы) — реальный источник «мистики»: пересоздавая виртуальные сети, контролируй, что старые демоны умирают (
ps aux | grep dnsmasq). metric 202на default route — приметка маршрута, полученного по DHCP (udhcpc).
Следующие шаги
- alpine2 — перевести на DHCP так же (с резервированием .12).
- Лаба №6: VLAN на CHR + изоляция клиентов.