4. IPv4-адресация После создания bridge необходимо назначить ему IP-адрес. Это точка входа в управление роутером и основа для всех сервисов (DHCP, DNS, firewall).
IPv4 адрес на bridge- Код: выделить все
/ip address
add address=195.0.1.254/24 comment="ip on bridge" interface=bridge1 network=195.0.1.0
Здесь:
- 195.0.1.254 — адрес роутера в LAN
- /24 — маска сети
- bridge1 — интерфейс LAN
Практика: обычно шлюз делают первый или последний адрес сети — это не принципиально, важно соблюдать единообразие.
Почему адрес вешается именно на bridgeIP-адрес назначается не на физические интерфейсы, а на bridge — это и есть точка маршрутизации для всей локальной сети:
Это:
- шлюз для клиентов
- DNS (если используется локальный резолвер)
- точка, через которую пойдёт NAT и firewall
Bridge — это логический интерфейс, объединяющий все LAN-порты.
Назначая IP на него, мы автоматически делаем доступными все порты и Wi-Fi в том числе.
Если повесить IP на отдельный порт:
- часть сети станет «вне управления»
- DHCP не сможет корректно работать
- появятся странные баги с доступом
Если понадобится организовать доступ в сегмент сети с другой адресацией, то порт, через который подключается такой сегмент, вводить в бридж не нужно, так же как порт для подключения к провайдеру. Принцип тот же и с гостевыми сетями WiFi. При данной схеме можно довольно гибко ограничивать доступ между сетями через firewall.
DHCP-сервер IPv4После создания bridge и добавления в него интерфейсов следующим шагом идёт назначение адресации.
Именно на этом этапе сеть "оживает" — появляется шлюз, DHCP и базовая связность.
Сначала создаётся пул адресов:
- Код: выделить все
/ip pool
add name=LanPool ranges=195.0.1.200-195.0.1.250 comment="pool for lan"
Затем сам DHCP-сервер:
- Код: выделить все
/ip dhcp-server
add name=dhcp1 interface=bridge1 address-pool=LanPool lease-time=3h comment="Server For LAN on Bridge1"
И сеть с параметрами:
- Код: выделить все
/ip dhcp-server network
add address=195.0.1.0/24 \
gateway=195.0.1.254 \
dns-server=195.0.1.254 \
domain=free-adm.ru \
ntp-server=195.0.1.254 \
comment="Main LAN"
Практические моменты:
- пул начинается не с .1 — нижняя часть диапазона оставлена под статику
- DNS указывает на сам роутер → удобно для локальной зоны
- lease-time = 3h — компромисс между стабильностью и обновлением
DHCP клиент (WAN)Интернет-интерфейс получает IPv4 от провайдера:
- Код: выделить все
/ip dhcp-client
add interface=ether1 name=ether1 use-peer-dns=no use-peer-ntp=no comment="dhcp isp"
Отключение `use-peer-dns` и `use-peer-ntp` сделано осознанно:
- DNS управляется вручную (см. следующий раздел)
- исключается "подмена" настроек от провайдера
4a. IPv6-адресация IPv6 адресацияIPv6 в этой конфигурации приходит через WireGuard (route64), но локальная адресация всё равно должна быть задана, поскольку WireGuard не поддерживает DHCP ни в каком виде. Используется статически назначенный адрес с длинной префикса /64:
- Код: выделить все
/ipv6 address
add address=fe80::1 advertise=no comment="Manual address" interface=bridge1
add address=2a11:6c7:1202:6200::254 comment="Route64 For Bridge Lan" interface=bridge1
Что здесь важно:
- fe80::1 — link-local адрес (служебный) задан вручную (не обязательно, но даёт предсказуемость)
- глобальный префикс /64` — стандарт для LAN, без вариантов
- адрес `::254` используется как gateway (аналог IPv4 .254)
Что это даётПосле этого этапа:
- роутер доступен по IP
- есть точка для DHCP
- есть база для DNS
- готов фундамент для firewall
Типичные ошибки- Назначение IP не на bridge, а на ether-порт
- Несовпадение сети и пула DHCP
- Отсутствие IPv6-адреса при использовании IPv6
РезюмеIP-адрес на bridge — это фундамент всей конфигурации.
Если здесь ошибка — дальше ломается всё: от DHCP до firewall.
Раздача IPv6 (RA / ND)Вместо DHCPv6 для базовой сети используется Router Advertisement:
- Код: выделить все
/ipv6 nd
set [ find default=yes ] interface=bridge1 advertise-dns=yes mtu=1412
Это даёт:
- автоматическую настройку адреса (SLAAC)
- раздачу DNS
- корректный MTU (актуально при туннелях, например WireGuard)
Важно:
- DHCPv6 (для конечных узлов) здесь не используется — и это нормальная практика
- клиенты в сети назначают адреса сами, на основе префикса полученного от DHCPv6 PD
Prefix Delegation (DHCPv6-PD) на MikroTik: полный разборЧто такое Prefix Delegation и зачем он нуженPrefix Delegation (PD) — это механизм DHCPv6, позволяющий маршрутизатору запросить у вышестоящего провайдера (или другого роутера) не просто один адрес, а целую подсеть для использования на своих внутренних интерфейсах.
Если говорить просто: ваш роутер получает по WAN один IPv6-адрес для себя и делегированный префикс (например, `/56` или `/60`), который можно нарезать на `/64` и раздать клиентам в локальной сети.
Базовая настройка на основном роутере (DHCPv6-сервер)Предположим, у вас есть блок `2a11:6c7:1202:6200::/56`. Создаём пул и DHCPv6-сервер:
- Код: выделить все
/ipv6 pool
add name=DinamicPool prefix=2a11:6c7:1202:6200::/56 prefix-length=64
/ipv6 dhcp-server
add address-pool=DinamicPool interface=bridge1 name=server1
Параметр `prefix-length=64` жёстко определяет, что из этого пула будут выдаваться только `/64`.
Это первая важная особенность RouterOS: один пул — одна длина префикса. Если клиент запросит `/62`, сервер просто проигнорирует запрос, потому что пул так не умеет.
Проблема: как выдать несколько префиксов одному клиентуДопустим, к основному роутеру подключен тестовый роутер, у которого несколько внутренних интерфейсов. Каждому нужен свой `/64`. Как их получить?
Стандартный DHCPv6-PD использует для различения запросов от одного клиента поле
IAID (Identity Association Identifier). Один клиент с одним DUID может запросить несколько префиксов, если использует разные IAID.
Но RouterOS не позволяет задать IAID вручную. Более того, нельзя создать два DHCPv6-клиента на одном физическом интерфейсе. Это программное ограничение.
Решение: делегирование крупного блокаПравильный путь — не пытаться получить несколько `/64` по отдельности, а запросить один более крупный префикс, которого хватит на все внутренние сети. Например, `/60` содержит 16 подсетей `/64`.
Шаг 1: Планирование адресного пространстваСначала разбиваем `/56` на блоки `/60`, чтобы избежать пересечений:
- Код: выделить все
/56 -> 16 блоков /60:
2a11:6c7:1202:6200::/60 <- для динамической раздачи
2a11:6c7:1202:6210::/60 <- для тестового роутера
2a11:6c7:1202:6220::/60 <- для следующего
Шаг 2: Настройка основного роутераСоздаём отдельный пул для делегирования `/60`:
- Код: выделить все
/ipv6 pool
add name=Pool60 prefix=2a11:6c7:1202:6210::/60 prefix-length=60
Создаём статическую привязку (binding) для тестового роутера, где указываем его DUID и отдельный пул:
- Код: выделить все
/ipv6 dhcp-server binding
add address=2a11:6c7:1202:6210::/60 duid=0x00030001080027feb9f8 iaid=0 pool=Pool60 server=server1
Параметр `pool=Pool60` — ключевой. Он переопределяет пул по умолчанию и позволяет выдать клиенту префикс другой длины, чем `DinamicPool`.
Шаг 3: Настройка тестового роутера (клиента)- Код: выделить все
/ipv6 dhcp-client
add add-default-route=yes interface=ether1 pool-name=P1 pool-prefix-length=64 request=prefix
Параметр `pool-prefix-length=64` указывает, что полученный префикс нужно нарезать на `/64` внутри пула `P1`.
Теперь назначаем адреса на внутренние интерфейсы:
- Код: выделить все
/ipv6 address
add address=::1 from-pool=P1 interface=ether2
add address=::1 from-pool=P1 interface=ether3
Важный момент: RouterOS (начиная с версий 7.22+) автоматически раздаёт разные `/64` из пула на разные интерфейсы! Первый интерфейс получает первую подсеть (`6210::1/64`), второй — следующую (`6211::1/64`), и так далее. Ручная нарезка не требуется.
Тонкости и обнаруженные "грабли"- Prefix-length в пуле — жёсткое ограничение
Если в пуле `prefix-length=64`, а клиент просит `/62` — сервер отказывает. Нельзя из одного пула выдавать префиксы разной длины. Нужны отдельные пулы. - Статическая привязка становится INVALID при смене пула
Если изменить `prefix-length` в пуле, к которому привязан клиент, его статическая привязка становится INVALID без предупреждения. - Родительский пул не нужен
Сам делегированный `/56` нигде не используется и не создаётся как отдельный пул. Он существует только как "граница ответственности" для планирования подсетей. RouterOS ничего о нём не знает. - Автоматическая нарезка работает
В свежих версиях RouterOS конструкция `from-pool` + `pool-prefix-length` заставляет роутер автоматически нарезать делегированный префикс на `/64` и распределять по интерфейсам. Это поведение стало стабильным примерно с версий 7.22-7.23. - Два клиента на одном интерфейсе — нельзя
Программное ограничение RouterOS. Обходится либо VLAN-костылями, либо (правильно) делегированием более крупного блока. - IAID задать вручную нельзя
MikroTik вычисляет IAID автоматически из внутреннего ID интерфейса. В версиях 7.23+ разработчики активно дорабатывают гибкость управления пулами (появился `from-pool-policy`), возможно, в будущем появится и ручное управление IAID.
Что в итогеРабочая схема для раздачи нескольких префиксов через один кабель:
- На основном роутере: пул для динамической раздачи (`/60` с `prefix-length=64`) и отдельные пулы для делегирования крупных блоков (`/60` с `prefix-length=60`).
- Статическая привязка с явным указанием пула для каждого нижестоящего роутера.
- На тестовом роутере: один DHCPv6-клиент, `pool-prefix-length=64`, адреса через `from-pool` на каждом внутреннем интерфейсе.
Схема проверена на RouterOS 7.22.1 (основной) и 7.23rc4 (тестовый). Работает стабильно, адреса нарезаются автоматически.
- Код: выделить все
/ipv6 dhcp-server
add address-pool=DinamicPool comment="For Dinamic Prefix" insert-queue-before=bottom interface=bridge1 name=server1 \
prefix-pool=DinamicPool
/ipv6 dhcp-server binding
add address=2a11:6c7:1202:6200::/64 duid=0x00030001080027feb9f8 iaid=0 server=server1
add address=2a11:6c7:1202:6210::/60 duid=0x000300010c9504fd0000 iaid=2 life-time=3d prefix-pool=Delegation-TestRouter \
server=server1
РезюмеНа этом этапе у нас уже есть:
- единая L2 сеть (bridge)
- шлюз IPv4 и IPv6
- DHCP для IPv4
- DHCPv6 PD для раздачи префиксов для тестовых сетей
- SLAAC для раздачи IPv6 адресов конечным устройствам
Сеть полностью работоспособна на уровне L3, и можно переходить к:
- DNS (локальная зона + DoH)
- либо сразу к firewall (если нужен минимальный базовый доступ)