Три часа ночи, роутер MikroTik не раздаёт IP — и половина сети лежит. Разбираем, как настроить DHCP-сервер, избежать типичных ошибок и заставить его работать стабильно.
Типичная ситуация: поставил MikroTik (RouterOS), настроил интернет, а клиенты не получают адреса. Или получают, но через раз. Или вообще кто-то в сети раздаёт свой DHCP — и всё идёт наперекосяк.
Почему так происходит?
dhcp server can not run on slave interface — классика.failed to give out ip address pool dhcp is empty — тоже частый гость.Короче, если у тебя MikroTik не раздаёт DHCP — начинай с этих трёх пунктов.
Пул — это диапазон IP, которые будет раздавать DHCP-сервер. Например, 192.168.88.100-192.168.88.200.
Через WinBox:
IP → Pool.+ и задаём имя (например, lan-pool) и диапазон.Через CLI:
bash/ip pool add name=lan-pool ranges=192.168.88.100-192.168.88.200
⚠️ Не делай пул слишком большим. 100–200 адресов для домашней сети — более чем достаточно. Если у тебя офис на 500 устройств — тогда да, расширяй.
Теперь создаём сам сервер и привязываем его к интерфейсу.
Через WinBox:
IP → DHCP Server.DHCP Setup и выбираем интерфейс (например, bridge-lan).lan-pool), шлюз (192.168.88.1), DNS-серверы (например, 8.8.8.8 и 1.1.1.1) и время аренды (по умолчанию — 3 дня).Через CLI:
bash/ip dhcp-server add name=lan-dhcp interface=bridge-lan address-pool=lan-pool
/ip dhcp-server network add address=192.168.88.0/24 gateway=192.168.88.1 dns-server=8.8.8.8,1.1.1.1
🔍 Нюанс: Если у тебя VLAN, настрой отдельный DHCP-сервер для каждого VLAN. Не пытайся раздавать адреса из одного пула на разные сети — это путь к проблемам.
Если при попытке запустить DHCP-сервер ты видишь ошибку dhcp server can not run on slave interface, значит, интерфейс, к которому ты привязываешь сервер, является slave. Например, если ты пытаешься запустить DHCP на порту, который входит в bridge.
Как исправить:
bridge-lan), а не на отдельных портах.Через CLI:
bash/interface bridge port remove [find interface=ether2]
💡 Совет: Если у тебя MikroTik с несколькими портами, лучше объедини их в bridge и запускай DHCP на нём. Так проще управлять сетью.
DHCP-сервер может раздавать не только IP-адреса, но и дополнительные параметры — так называемые DHCP options. Например:
Через WinBox:
IP → DHCP Server → Networks.Options.42 (NTP) и указываем значение (например, pool.ntp.org).Через CLI:
bash/ip dhcp-server network set [find address=192.168.88.0/24] dhcp-option=42,pool.ntp.org
🔧 Пример: Если у тебя в сети IP-телефоны Yealink, им нужен TFTP-сервер для загрузки прошивки. Тогда добавляем
Option 66с адресом TFTP-сервера.
Чтобы определённое устройство всегда получало один и тот же IP, используй статические аренды (static leases).
Через WinBox:
IP → DHCP Server → Leases.Make Static.192.168.88.50).Через CLI:
bash/ip dhcp-server lease add address=192.168.88.50 mac-address=AA:BB:CC:DD:EE:FF server=lan-dhcp
📌 Важно: IP должен входить в пул адресов, но не должен быть в диапазоне динамической раздачи. Например, если пул
192.168.88.100-192.168.88.200, зарезервируй адреса ниже100или выше200.
Если DHCP-сервер находится в другой подсети (например, в офисе за VPN), используй DHCP Relay. Он будет пересылать запросы от клиентов к серверу.
Через WinBox:
IP → DHCP Relay.ether1) и адрес DHCP-сервера (например, 10.0.0.1).Через CLI:
bash/ip dhcp-relay add name=relay1 interface=ether1 dhcp-server=10.0.0.1
🔄 Как это работает: Клиент отправляет запрос на получение IP. MikroTik перехватывает его и пересылает на DHCP-сервер в другой сети. Сервер отвечает, и MikroTik передаёт ответ клиенту.
Если кто-то в твоей сети поднимет свой DHCP-сервер (например, на ноутбуке), он может начать раздавать некорректные адреса — и сеть сломается. Чтобы этого избежать, используй DHCP Snooping. Он блокирует все DHCP-ответы, кроме тех, что приходят с доверенных портов.
Через CLI:
bash/interface bridge settings set dhcp-snooping=yes
/interface bridge port set [find interface=ether2] trusted=yes
🛡️ Как настроить:
trusted.Причины:
Что делать:
Log → DHCP.IP → Pool.IP → DHCP Server.Interface → Bridge.Причины:
Что делать:
IP → DHCP Server → Networks.IP → Routes.IP → Firewall → NAT.Причины:
Что делать:
Interface → Bridge.IP → DHCP Server → Networks.Причины:
Что делать:
IP → DHCP Client./ip dhcp-client renew [find interface=ether1].| Команда | Описание |
|---|---|
/ip dhcp-server print | Показать все DHCP-серверы |
/ip dhcp-server lease print | Показать все аренды |
/ip dhcp-server lease remove [find mac-address=AA:BB:CC:DD:EE:FF] | Удалить аренду |
/ip dhcp-server network print | Показать сети |
/ip dhcp-relay print | Показать relay |
/interface bridge settings print | Показать настройки bridge (включая DHCP Snooping) |
/log print where message~"dhcp" | Показать логи DHCP |
Если всё настроено правильно, но DHCP всё равно не работает — перезагрузи MikroTik. Иногда помогает.
Короче, DHCP на MikroTik — это не сложно, если знать подводные камни. Теперь у тебя есть всё, чтобы настроить его правильно и забыть о проблемах с раздачей адресов.