Другое

DHCP не работает в VLAN 1 на Mikrotik: решение проблемы

Решаем проблему с DHCP в VLAN 1 на Mikrotik CCR1036. Узнайте о конфликте native VLAN, настройке PVID и bridge vlan таблицы для корректной работы DHCP релея.

Почему клиенты не получают DHCP‑адреса в VLAN 1?

Ситуация:

  • Настроен DHCP‑сервер на Windows
  • Сеть состоит из маршрутизаторов Mikrotik CCR 1036 и управляемых коммутаторов
  • Открыт новый филиал в соседнем здании
  • Необходимо передать трафик с тегированием VLAN 3
  • На другой стороне стоит такой же Mikrotik CCR 1036, который принимает тег и передает дальше в коммутаторы

Проблема:
DHCP‑клиенты не получают адреса в VLAN 1, в то время как на других VLAN все работает нормально.

Конфигурация Mikrotik:

spoiler/interface bridge
add name="bridge for sip"
add name="bridge local" vlan-filtering=yes
/interface vlan
add interface="bridge local" name=vlan1 vlan-id=1
add interface="bridge local" name=vlan37 vlan-id=37
add interface="bridge local" name=vlan120 vlan-id=120
/interface list
add name=WAN
add name=LAN
/port
set 0 name=serial0
/interface bridge port
add bridge="bridge local" interface=sfp-sfpplus1
add bridge="bridge local" interface=ether1
add bridge="bridge local" interface=sfp-sfpplus3
add bridge="bridge local" interface=sfp-sfpplus4
add bridge="bridge local" interface=sfp-sfpplus5
add bridge="bridge local" interface=sfp-sfpplus6
add bridge="bridge local" interface=sfp-sfpplus7
add bridge="bridge for sip" interface=sfp-sfpplus8
add bridge="bridge local" interface=sfp-sfpplus9
add bridge="bridge local" interface=sfp-sfpplus10
add bridge="bridge local" interface=sfp-sfpplus11
add bridge="bridge local" interface=sfp-sfpplus12
add bridge="bridge local" interface=sfp28-1
add bridge="bridge local" interface=sfp28-2
add bridge="bridge for sip" interface=sfp-sfpplus2
/ipv6 settings
set disable-ipv6=yes
/interface bridge vlan
add bridge="bridge local" tagged="sfp-sfpplus1,sfp-sfpplus3,sfp-sfpplus4,sfp-sfpplus5,sfp-sfpplus6,bridge local" vlan-ids=37
add bridge="bridge local" tagged="sfp-sfpplus1,sfp-sfpplus3,sfp-sfpplus4,sfp-sfpplus5,sfp-sfpplus6,bridge local" vlan-ids=120
add bridge="bridge local" tagged="sfp-sfpplus1,sfp-sfpplus3,sfp-sfpplus4,sfp-sfpplus5,sfp-sfpplus6,bridge local" vlan-ids=1
/interface list member
add interface=sfp-sfpplus2 list=LAN
add interface=sfp-sfpplus3 list=LAN
add interface=sfp-sfpplus4 list=LAN
add interface=sfp-sfpplus5 list=LAN
add interface=sfp-sfpplus6 list=LAN
add interface=sfp-sfpplus7 list=LAN
add interface=sfp-sfpplus8 list=LAN
add interface=sfp-sfpplus9 list=LAN
add interface=sfp-sfpplus10 list=LAN
add interface=sfp-sfpplus11 list=LAN
add interface=sfp-sfpplus12 list=LAN
add interface=sfp28-1 list=LAN
add interface=sfp28-2 list=LAN
add interface=ether1 list=WAN
add interface=sfp-sfpplus1 list=LAN
/interface ovpn-server server
add mac-address=FE:5C:71:DA:42:55 name=ovpn-server1
/ip address
add address=192.168.22.220/22 interface=vlan1 network=192.168.22.0
add address=192.168.11.1/24 interface="bridge for sip" network=192.168.11.0
add address=192.168.37.43/26 interface=vlan37 network=192.168.37.0
/ip dhcp-client
add default-route-tables=main interface=vlan1
add default-route-tables=main interface=vlan120
/ip dhcp-relay
add dhcp-server=192.168.22.10,192.168.22.11 disabled=no interface=vlan1 local-address=192.168.22.220 local-address-as-src-ip=yes name=sww
add dhcp-server=192.168.22.10,192.168.22.11 disabled=no interface=vlan120 local-address=10.127.120.31 name="sww net"
/ip dns
set servers=192.168.22.11,192.168.22.10
/ip firewall nat
add action=masquerade chain=srcnat out-interface="bridge local" src-address=192.168.11.0/24
/ip ipsec profile
set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5
/ip service
set ftp disabled=yes
set ssh disabled=yes
set telnet disabled=yes
set www disabled=yes
set api disabled=yes
set api-ssl disabled=yes
/system clock
set time-zone-name=Europe/Moscow
/system identity
set name=SWW
/system ntp client
set enabled=yes
/system ntp client servers
add address=1.ru.pool.ntp.org
add address=2.ru.pool.ntp.org
add address=3.ru.pool.ntp.org
/system routerboard settings
set enter-setup-on=delete-key

Что может быть причиной проблемы и как ее исправить?

Наиболее вероятной причиной проблемы является некорректная настройка обработки VLAN 1 в режиме vlan-filtering=yes, так как VLAN 1 часто используется как native/untagged VLAN, что создает конфликт с требованием тегирования в bridge vlan таблице.


Содержание


Основные причины проблемы DHCP в VLAN 1

Проблема с DHCP в VLAN 1 на Mikrotik CCR1036 при включенном vlan-filtering связана с несколькими ключевыми аспектами:

  1. VLAN 1 как default/native VLAN: В большинстве сетей VLAN 1 используется как untagged/native VLAN. Однако при включенном vlan-filtering все трафик должен явно разрешаться в bridge vlan таблице.

  2. Отсутствие PVID настроек: В вашей конфигурации bridge порты не имеют настроек PVID (Port VLAN ID), что критично для правильной работы с untagged трафиком.

  3. Конфликт тегирования: В текущей конфигурации VLAN 1 добавлен как tagged member, что не соответствует его роли как native VLAN.


Конфликт с native VLAN

Как отмечено в документации Mikrotik, при использовании vlan-filtering необходимо явно обрабатывать native VLAN:

“VID=1 is used as default in many places and can thus cause unexpected behaviour. Bridge port ether2 needs to have pvid setting as well.”

Решение: Необходимо настроить порты, которые должны принимать untagged трафик для VLAN 1, с правильным PVID:

/interface bridge port
set [ find bridge="bridge local" interface=ether1 ] pvid=1
set [ find bridge="bridge local" interface=sfp-sfpplus1 ] pvid=1

Неправильная настройка bridge vlan таблицы

В текущей конфигурации VLAN 1 добавлен как tagged member, что не соответствует его роли как native VLAN. Правильная настройка должна включать как tagged, так и untagged порты:

/interface bridge vlan
# Для VLAN 1 - native VLAN, некоторые порты untagged
add bridge="bridge local" untagged="ether1,sfp-sfpplus1" tagged="bridge local" vlan-ids=1
# Для других VLAN - только tagged
add bridge="bridge local" tagged="sfp-sfpplus1,sfp-sfpplus3,sfp-sfpplus4,sfp-sfpplus5,sfp-sfpplus6,bridge local" vlan-ids=37
add bridge="bridge local" tagged="sfp-sfpplus1,sfp-sfpplus3,sfp-sfpplus4,sfp-sfpplus5,sfp-sfpplus6,bridge local" vlan-ids=120

Проблемы с DHCP relay

Настройка DHCP‑релея в вашей конфигурации может быть некорректна:

  1. Интерфейс relay: DHCP relay настроен на vlan1 интерфейсе, но при vlan-filtering трафик может не доходить до этого интерфейса.

  2. Local-address: Параметр local-address указан как 192.168.22.220, который находится в той же подсети, что и DHCP серверы.

Рекомендуемая настройка DHCP relay:

/ip dhcp-relay
add dhcp-server=192.168.22.10,192.168.22.11 disabled=no interface=vlan1 local-address=192.168.22.220 local-address-as-src-ip=yes name=sww

Решение и рекомендуемая конфигурация

Полная последовательность действий для исправления проблемы:

1. Настройка PVID для портов

/interface bridge port
set [ find bridge="bridge local" interface=ether1 ] pvid=1
set [ find bridge="bridge local" interface=sfp-sfpplus1 ] pvid=1

2. Корректировка bridge vlan таблицы

/interface bridge vlan
remove [ find bridge="bridge local" vlan-ids=1 ]
add bridge="bridge local" untagged="ether1,sfp-sfpplus1" tagged="bridge local" vlan-ids=1
add bridge="bridge local" tagged="sfp-sfpplus1,sfp-sfpplus3,sfp-sfpplus4,sfp-sfpplus5,sfp-sfpplus6,bridge local" vlan-ids=37
add bridge="bridge local" tagged="sfp-sfpplus1,sfp-sfpplus3,sfp-sfpplus4,sfp-sfpplus5,sfp-sfpplus6,bridge local" vlan-ids=120

3. Проверка DHCP relay

Убедитесь, что DHCP relay настроен правильно и интерфейс vlan1 имеет IP‑адрес в той же подсети, что и DHCP серверы.

4. Проверка firewall rules

Проверьте, нет ли firewall правил, блокирующих DHCP трафик (порты 67–68 UDP).


Дополнительные проверки

  1. Проверка connectivity: Убедитесь, что вы можете пропинговать DHCP серверы с Mikrotik.

  2. Проверка DHCP запросов: Используйте сниффер для проверки, достигают ли DHCP запросы сервера.

  3. Проверка коммутаторов: Убедитесь, что коммутаторы настроены корректно и передают трафик VLAN 1 как untagged на соответствующих портах.

  4. Проверка версии RouterOS: Некоторые версии RouterOS имели проблемы с DHCP в VLAN 1 – обновите до последней стабильной версии.


Заключение

Основная проблема DHCP в VLAN 1 на Mikrotik CCR1036 при включенном vlan-filtering заключается в неправильной настройке обработки native VLAN. Ключевые решения:

  1. Настроить PVID = 1 для портов, принимающих untagged трафик.
  2. Исправить bridge vlan таблицу, добавив untagged порты для VLAN 1.
  3. Убедиться в корректности настройки DHCP relay.
  4. Проверить отсутствие блокировок на firewall.

После внесения этих изменений DHCP клиенты в VLAN 1 должны успешно получать адреса от Windows DHCP сервера.

Авторы
Проверено модерацией
Модерация