Меню Закрыть

Make controller discoverable on l2 network

Содержание

Не всегда удобно использовать L2 discovery (обнаружение), например когда не хочется иметь несколько контроллеров, а добавить все зоны в один (sites).
Для этого есть возможность использовать L3 discovery, т.е. когда точки и контроллер находятся в разных сетях, разумеется контроллер должен быть доступен для точки.

По умолчанию точка ищет контроллер с hostname unifi, можно скофигурировать DNS чтобы резолвилось имя unifi.

Второй способ — вручную задать адрес контроллера:

Troubleshooting

Если возникают проблемы с различными ошибками, например Server Reject.
Такое бывает когда точки были изучены другим контроллером, найти причины не удалось, самый простой способ сбросить точку.

После этого на AP можно зайти по стандартному логину/паролю — ubnt/ubnt и снова выполнить команду set-inform.

Общие сведения:

Читатели узнают о разных протоколах 3-го уровня используемых для UAP.
В ситуациях, когда невозможно или нежелательно использование контроллера в помещении, вы можете использовать его через облачный сервис или NOC.
С новым проектом мы можем:

  • • Создать виртуальный контроллер на EC2 на Amazon.
  • • Настроить несколько точек доступа и настроить гостевые порталы.
  • • На площадке пользователя открыть браузер для доступа к контроллеру на облачном сервисе.
  • • Настроить DHCP сервер, DNS сервер, или использовать UniFi Discovery утилиту для того, чтобы все локальные точки доступа передавали информацию обратно контроллеру.
  • • Последующий контроль и мониторинг можно проводить откуда угодно, и Amazon предоставит отличные настройки фаервола для этих целей.

Смотрите также:

Содержание

  • 1. Первоначальная настройка
  • 2. Утилита Discovery
  • 3. DNS
  • 4. DHCP опция 43
  • 5. SSH

Первоначальная настройка

Ознакомьтесь с принципами работы UniFi (например, где точка доступа и контроллер находятся в одинаковых L2) перед тем, как перейти к управлению L3. В управлении L3 добавлено много новых частей (что добавляет некоторые сложности).
UniFi по умолчанию имеет следующий информационный URL: http://unifi:8080/inform . Таким образом, цель использования DHCP опции 43 или DNS в том, чтобы точка доступа узнала IP контроллера.

Утилита Discovery

Не везде возможно установить настраиваемый DHCP сервер, а тем более DNS сервер. Вот в такие моменты можно использовать утилиту UniFi Discovery . Она получает пакеты данных от точек доступаUniFi и позволяет назначить точке доступа любой URL. (показываются только точки доступа, с настройками по умолчанию или без связи с контроллером)
Утилита UniFi Discovery установлена вместе с контроллером UniFi.

  • • В Windows, она находится в Меню Пуск(Start Menu)->Ubiquiti UniFi->UniFi-Discover
  • • В Mac, /Applications/UniFi-Discover.app (или используйте Spotlight для поиска).
  • • Запустите «java -jar unifi_base/lib/ace.jar discover».
Читайте также:  Dark souls 3 косплей

Для выполнения L3 адаптации с утилитой discovery:

  • 1. Подождите, пока появится точка доступа.
  • 2. Если точка доступа не настроена по умолчанию, то нажмите «reset», установите SSH имя пользователя/пароль и нажмите «Apply».
  • 3. Нажмите «manage», смените информационный URL и поставьте SSH имя пользователя/пароль ubnt/ubnt , нажмите «Apply».
  • 4. Откройте в браузере удаленный UniFi контроллер и Вы увидите надпись «Ожидает подтверждения» («Pending Approval»).
  • 5. Нажмите «approve». Статус сменится на «Adopting», игнорируйте его, так как он изменится на «Адаптация не удалась» («Adoption Failed») или "Отключен"("Disconnected").
  • 6. СНова выполните пункт [3] снова (не нужно ждать окончания действия в пункте [5]).
  • 7. Точка доступа теперь управляется контроллером.

Утилита Discovery работает с версиями ПО 1.2.3 и 1.3.2. После адаптации контроллер обновит эти точки автоматически.

DNS

  • • Вам нужно настроить DNS сервер, чтобы присвоить ’unifi’ IP адресу контроллера. Убедитесь, что точке доступа можно присвоить имя домена контроллера. Например, если Вы настраиваете http://XYZ:8080/inform , то сделайте пинг от точки доступа, чтобы определить, доступен ли XYZ.
  • • Или использовать FQDN для информационного URL, http://FQDN:8080/inform.
  • • Поиск и устранение неисправностей — Точка доступа (с постоянным IP) не подключается к L3 контроллеру
  • • Убедитесь, что Вы установили IP DNS при настройке точки доступа с DHCP на постоянный IP. В противном случае, точка доступа не сможет подключаться к DNS для получения имени домена контроллера.
  • • Если точка доступа перезагружалась (нажатием на кнопку перезагрузки), убедитесь, что вы дважды отправили информацию о местонахождении контроллера к точке доступа (используя утилиту discovery) (это будет улучшено в версии 2.3.0).

DHCP опция 43

Для использования DHCP опции 43 Вам нужно настроить DHCP сервер. Пример:

Читайте также:  Яндекс 1997 года картинки

Linux’s ISC DHCP сервер: dhcpd.conf

# .
option space ubnt;
option ubnt.unifi-address code 1 = ip-address;
class "ubnt" <
match if substring (option vendor- ;
option vendor-class-identifier "ubnt";
vendor-option-space ubnt;
>
subnet 10.10.10.0 netmask 255.255.255.0 <
range 10.10.10.100 10.10.10.160;
option ubnt.unifi-address 201.10.7.31; ### UniFi Controller IP ###
option routers 10.10.10.2;
option broadcast-address 10.10.10.255;
option domain-name-servers 168.95.1.1, 8.8.8.8;
# .
>

# assuming your UniFi is at 192.168.3.10
ip dhcp pool

network
default-router
dns-server
option 43 hex 0104C0A8030A # 192.168.3.10 -> CO A8 03 0A

# Why 0104C0A8030A ?
#
# 01: suboption
# 04: length of the payload (must be 4)
# C0A8030A: 192.168.3.10

/ip dhcp-server option add code=43 name=unifi value=0x0104C0A8030A
/ip dhcp-server network set 0 dhcp-option=unifi

# Why 0104C0A8030A ?
#
# 01: suboption
# 04: length of the payload (must be 4)
# C0A8030A: 192.168.3.10

Cisco обладает хорошим протоколом для настройки DHCP опции 43.
Для использования IP контроллера: Вы также можете использовать IP контроллера в информационном URL вместо имени домена.

SSH

Если вы можете использовать SSH для точки доступа, возможно провести L3-адаптацию через CLI команду:

Comments

Copy link Quote reply

mafredri commented Mar 22, 2018

Do you have any experience with the Make controller discoverable on L2 network option in the controller? When enabled, the container IP (e.g. 172.17.0.2) is given to the devices, resulting in:

I could work around it by using —net=host on the container, but that’s just no fun!

Setting Controller Hostname/IP manually and enabling Override inform host with controller hostname/IP seems to work, but I prefer dynamic stuff that just works, hehe.

Any tips or pointers would be much appreciated!

This comment has been minimized.

Copy link Quote reply

This comment has been minimized.

Copy link Quote reply

mafredri commented Mar 22, 2018 •

Unfortunately that’s not sufficient when Make controller discoverable on L2 network is enabled and the controller goes away for a while (e.g. reboot) :-/.

  1. The device determines that it cannot connect to controller
  2. The device discovers a controller over L2
  3. Controller gives it’s IP (container IP)
  4. Device never retries inform address set via mca-cli
Читайте также:  Inktec или ink mate какие лучше

This comment has been minimized.

Copy link Quote reply

This comment has been minimized.

Copy link Quote reply

mafredri commented Mar 22, 2018

Yeah, sadness. It would be beautiful if it worked!

Going to check with Ubiquity if they have any ideas :).

This comment has been minimized.

Copy link Quote reply

mafredri commented Mar 22, 2018

I dug a bit more, and it seems we can set system_ip=192.168.1.XX in /config/data/system.properties which kinda fixes the issue (still hard-coded though).

Would it make sense to set it automatically on container startup? But then we’d have to decide what the correct interface/IP is :/, maybe?

If you think this is something worth pursuing, I wouldn’t mind investigating options / making a PR.

Might also be interesting to see if the setting is runtime changeable or if it requires a service (controller) restart.

This comment has been minimized.

Copy link Quote reply

jessfraz commented Jun 6, 2018

sure a PR is ok 🙂

This comment has been minimized.

Copy link Quote reply

joostvanmourik commented Mar 9, 2019

I dug a bit more, and it seems we can set system_ip=192.168.1.XX in /config/data/system.properties which kinda fixes the issue (still hard-coded though).

Would it make sense to set it automatically on container startup? But then we’d have to decide what the correct interface/IP is :/, maybe?

If you think this is something worth pursuing, I wouldn’t mind investigating options / making a PR.

Might also be interesting to see if the setting is runtime changeable or if it requires a service (controller) restart.

Thanx that fixed it for me, also running on a docker it echos the internal docker network wich is not reachable by the ap’s

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.