Инфраструктура / MikroTik

DHCP

Сервер, клиент и аренды

Как устроен адрес в этой схеме

Маршрутизатор раздаёт адреса только внутрь моста. Внешний порт остаётся клиентом провайдера. Если повесить DHCP-сервер на ether1, офис начнёт отвечать на чужие Discover в сети провайдера — так делать нельзя.

/ip address add address=192.168.88.1/24 interface=bridge comment="lan gateway"
/ip pool add name=pool-lan ranges=192.168.88.10-192.168.88.254
/ip dhcp-server add name=dhcp-lan interface=bridge address-pool=pool-lan lease-time=10h disabled=no
/ip dhcp-server network add address=192.168.88.0/24 gateway=192.168.88.1 \
    dns-server=192.168.88.1,1.1.1.1 domain=office.lan ntp-server=192.168.88.1

lease-time=10h достаточно для рабочего дня и ноутбуков, которые уносят домой: утром клиент спокойно продлевает аренду. Для цеха с текучкой адресов ставьте 1h–2h, иначе пул забивается «мёртвыми» арендами.

Сам маршрутизатор как DNS

Клиентам в опции DHCP указан 192.168.88.1. Значит, на RouterOS должен быть включён рекурсивный резолвер, но только для своих.

/ip dns set allow-remote-requests=yes servers=1.1.1.1,8.8.8.8
/ip firewall filter add chain=input action=accept protocol=udp dst-port=53 in-interface=bridge
/ip firewall filter add chain=input action=accept protocol=tcp dst-port=53 in-interface=bridge
/ip firewall filter add chain=input action=drop protocol=udp dst-port=53 in-interface=ether1
/ip firewall filter add chain=input action=drop protocol=tcp dst-port=53 in-interface=ether1

Порядок правил важен. Разрешение для моста должно стоять выше общего drop на input, если такой drop уже есть в конце цепочки.

Постоянные аренды

Принтеру, камере и точке на PoE адрес лучше зафиксировать по MAC, а не надеяться, что динамическая аренда «и так не изменится».

/ip dhcp-server lease add address=192.168.88.20 mac-address=AA:BB:CC:11:22:33 \
    server=dhcp-lan comment="printer-floor-2"
/ip dhcp-server lease add address=192.168.88.21 mac-address=AA:BB:CC:44:55:66 \
    server=dhcp-lan comment="ap-meeting"

Адрес из статической аренды не обязан лежать внутри динамического пула, но обязан попадать в 192.168.88.0/24 и не совпадать с адресом самого моста. .1 занят шлюзом, .2–.9 оставлены под такие записи.

DHCP-клиент на WAN

/ip dhcp-client add interface=ether1 add-default-route=yes use-peer-dns=no \
    use-peer-ntp=yes disabled=no comment="isp"

use-peer-dns=no, потому что резолвер выше уже смотрит на 1.1.1.1 и 8.8.8.8. DNS провайдера можно принять, если канал режет сторонние резолверы — тогда уберите эту опцию и не дублируйте серверы вручную.

Проверка: /ip dhcp-client print должен показать статус bound и ненулевой адрес. Маршрут по умолчанию появляется в /ip route print where dst-address=0.0.0.0/0.

Ретранслятор

Если DHCP живёт на другом сервере, а MikroTik только мост между VLAN, сервер на самом роутере не включают. Вместо него — relay на интерфейсе, где клиенты шлют Discover.

/ip dhcp-relay add name=relay-lan interface=bridge dhcp-server=10.16.0.5 \
    local-address=192.168.88.1 disabled=no

Одновременно сервер и relay на одном интерфейсе не держат: отвечают оба, клиент берёт случайный адрес.

Чего не делать