После долгих поисков я не смог найти простую инструкцию, как добавить опцию 43 в DHCP на Mikrotik и заставить мои точки доступа подключаться к удалённому контроллеру, поэтому решил написать её сам.
Моя конфигурация: Mikrotik 750 (OS v5.4) (стандартные настройки), контроллер Unifi 2.2 на Ubuntu в VMWARE (публичный IP: 192.168.200.10).
1. Переведите ваш публичный IP в HEX. Значение опции 43 должно быть в HEX, чтобы работало.
192 = C0, 168 = A8, 200 = C8, 10 = 0A
2. Значение вашей опции 43 будет «0x0104» + HEX-значение IP. В моём примере это: «0x0104C0A8C80A»
3. Откройте терминал на Mikrotik или подключитесь по SSH и введите:
/ip dhcp-server option add code=43 name=unifi value=0x0104C0A8C80A
/ip dhcp-server network set 0 dhcp-option=unifi
У меня роутер был со стандартной конфигурацией, поэтому была только одна сеть с ID 0. Вы можете выполнить команду «/ip dhcp-server network print», чтобы увидеть список сетей и выбрать нужный ID.
4. Подключите вашу точку доступа UAP – она должна получить эти настройки и появиться на удалённом контроллере Unifi с запросом на подключение.
Решение проблем:
Устаревшие UAP имеют старую прошивку, которая не запрашивает опцию 43 через DHCP. Я на это потратил кучу времени. Я заметил это, включив логирование DHCP и посмотрев пакеты DHCP Discover – там не было запроса «VendorSpecific» (то есть опции 43). Если у вас такие точки доступа, есть несколько вариантов:
1. Обновить прошивку в лаборатории, подключив их к локальному контроллеру, приняв и затем перезагрузив с помощью «скрепки».
2. Использовать tool для обнаружения (discovery tool), чтобы заставить их подключиться.
3. Использовать DNS. Лично мне этот способ не нравится, но он работает даже со старой прошивкой. В конфигурации DHCP-сервера укажите доменное имя, которым вы управляете, и добавьте A-запись unifi, указывающую на удалённый контроллер. Некоторые считают это проще, чем опция 43, но если у вас несколько контроллеров, придётся создавать много поддоменов и т.п. При этом это доменное имя будет использоваться по умолчанию на всех устройствах в сети.
Моя конфигурация: Mikrotik 750 (OS v5.4) (стандартные настройки), контроллер Unifi 2.2 на Ubuntu в VMWARE (публичный IP: 192.168.200.10).
1. Переведите ваш публичный IP в HEX. Значение опции 43 должно быть в HEX, чтобы работало.
192 = C0, 168 = A8, 200 = C8, 10 = 0A
2. Значение вашей опции 43 будет «0x0104» + HEX-значение IP. В моём примере это: «0x0104C0A8C80A»
3. Откройте терминал на Mikrotik или подключитесь по SSH и введите:
/ip dhcp-server option add code=43 name=unifi value=0x0104C0A8C80A
/ip dhcp-server network set 0 dhcp-option=unifi
У меня роутер был со стандартной конфигурацией, поэтому была только одна сеть с ID 0. Вы можете выполнить команду «/ip dhcp-server network print», чтобы увидеть список сетей и выбрать нужный ID.
4. Подключите вашу точку доступа UAP – она должна получить эти настройки и появиться на удалённом контроллере Unifi с запросом на подключение.
Решение проблем:
Устаревшие UAP имеют старую прошивку, которая не запрашивает опцию 43 через DHCP. Я на это потратил кучу времени. Я заметил это, включив логирование DHCP и посмотрев пакеты DHCP Discover – там не было запроса «VendorSpecific» (то есть опции 43). Если у вас такие точки доступа, есть несколько вариантов:
1. Обновить прошивку в лаборатории, подключив их к локальному контроллеру, приняв и затем перезагрузив с помощью «скрепки».
2. Использовать tool для обнаружения (discovery tool), чтобы заставить их подключиться.
3. Использовать DNS. Лично мне этот способ не нравится, но он работает даже со старой прошивкой. В конфигурации DHCP-сервера укажите доменное имя, которым вы управляете, и добавьте A-запись unifi, указывающую на удалённый контроллер. Некоторые считают это проще, чем опция 43, но если у вас несколько контроллеров, придётся создавать много поддоменов и т.п. При этом это доменное имя будет использоваться по умолчанию на всех устройствах в сети.
