Окей, получил я свой USW и уже сделал пару постов (извиняюсь перед теми, кому этот USW не интересен и кто не хочет, чтобы форумы засоряли вопросами и всяким прочим... По моим наблюдениям, информации про этот коммутатор почти нет — что он умеет и как его настроить. Конечно, то, что я хочу сделать, выходит за рамки обычного использования, но это явно возможно.
Теперь я понимаю, что "EdgeSwitch" — это "правильный" выбор, и уверен, что это первая реакция на этот пост, но я не вижу причин, почему USW нельзя использовать и как минимум иметь CLI для кастомных задач. Управление коммутатором из облака важно для меня на нескольких площадках, для всех портов, кроме первых десяти, и держать два коммутатора кажется излишним для реализации этой цели.
Так что надеюсь на помощь от сообщества и сотрудников в том, как можно улучшить возможности USW, чтобы он стал обязательным для большинства. Прикладываю свои заметки, чтобы начать обсуждение того, что можно сделать прямо сейчас, ожидая обновлений прошивки с новыми функциями. В основном хотелось бы найти способ вручную включать некоторые функции третьего уровня.
1. Хочу использовать CLI для внесения временных изменений (которые будут сбрасываться при перезагрузке коммутатора).
2. Желательно использовать telnet, так как связь не обязательно должна быть защищённой, и с коммутатором будет работать скрипт. Подойдет и HTTP или WebSocket. Не уверен, как именно USW общается с контроллером (или наоборот — контроллер с USW при изменении конфигурации). Думаю, имитировать это несложно.
ПРИМЕЧАНИЕ: Мне удалось без проблем запустить telnet-сервер через telnetd по SSH. Нужно как-то настроить его автозапуск, но для моих целей это не должно быть сложно.
3. Идея в том, чтобы я мог переключить порт на новый VLAN через CLI, но возможно в будущем понадобятся и другие функции управляемого коммутатора...
Я не очень продвинутый пользователь Linux bash, но вот что нашёл на данный момент:
В директории /usr/bin есть процесс "ubntbox" и "ubntconf" — при запуске выводят следующее:
US.v3.3.5# ubntbox
Usage: ubntbox <tool>
Supported tools:
ubntconf
cfgmtd
fwupdate.real
factorytest
swctrl
Похоже, запуск этих инструментов — то, что мне нужно, но, насколько я знаю, справки или описания у них нет, что нормально, если хотя бы базово объяснят, как их использовать для настройки по потребности.
К слову: ubntconf — это ссылка на ubntbox
-rwxr-xr-x 1 bradynap admin 634.0K Apr 16 10:49 ubntbox
lrwxrwxrwx 1 bradynap admin 7 Apr 16 10:50 ubntconf -> ubntbox
Если смотреть в процесс ubntbox, видно логи и можно понять, что отправка правильных команд — это то, что мне нужно. Осталось понять, как их правильно форматировать. Ниже небольшой фрагмент из логов, которые появляются при выполнении:
cat /usr/bin/ubntbox
%s.%s(): port %2d vlan %d [%02x:%02x:%02x:%02x:%02x:%02x] now %lu first_seen %u last_seen %u [%s]
%s.%s(): port %2d vlan %d [%02x:%02x:%02x:%02x:%02x:%02x] now %lu first_seen %u last_seen %u
%s.%s(): ipaddr %s hostname %s [%s]
%s.%s(): ipaddr %s hostname %s
%s.%s(): port %d: unable to get port type (%d) [%s]
%s.%s(): port %d: unable to get port type (%d)
%s.%s(): port %d: unable to get port admin state (%d) [%s]
%s.%s(): port %d: unable to get port admin state (%d)
%s.%s(): port %d: unable to get port link state (%d) [%s]
%s.%s(): port %d: unable to get port link state (%d)
%s.%s(): port %d: unable to get port link speed (%d) [%s]
%s.%s(): port %d: unable to get port link speed (%d)
%s.%s(): port %d: unable to get port autoneg config (%d) [%s]
%s.%s(): port %d: unable to get port autoneg config (%d)
%s.%s(): port %d: unable to get flowctrl mode (%d) [%s]
%s.%s(): port %d: unable to get flowctrl mode (%d)
%s.%s(): port %d: unable to get port mtu (%d)
Примечание: похоже, что запуск ubntbox <tool> -h даёт простые инструкции по использованию команды. Продолжу в следующем посте.
Теперь я понимаю, что "EdgeSwitch" — это "правильный" выбор, и уверен, что это первая реакция на этот пост, но я не вижу причин, почему USW нельзя использовать и как минимум иметь CLI для кастомных задач. Управление коммутатором из облака важно для меня на нескольких площадках, для всех портов, кроме первых десяти, и держать два коммутатора кажется излишним для реализации этой цели.
Так что надеюсь на помощь от сообщества и сотрудников в том, как можно улучшить возможности USW, чтобы он стал обязательным для большинства. Прикладываю свои заметки, чтобы начать обсуждение того, что можно сделать прямо сейчас, ожидая обновлений прошивки с новыми функциями. В основном хотелось бы найти способ вручную включать некоторые функции третьего уровня.
1. Хочу использовать CLI для внесения временных изменений (которые будут сбрасываться при перезагрузке коммутатора).
2. Желательно использовать telnet, так как связь не обязательно должна быть защищённой, и с коммутатором будет работать скрипт. Подойдет и HTTP или WebSocket. Не уверен, как именно USW общается с контроллером (или наоборот — контроллер с USW при изменении конфигурации). Думаю, имитировать это несложно.
ПРИМЕЧАНИЕ: Мне удалось без проблем запустить telnet-сервер через telnetd по SSH. Нужно как-то настроить его автозапуск, но для моих целей это не должно быть сложно.
3. Идея в том, чтобы я мог переключить порт на новый VLAN через CLI, но возможно в будущем понадобятся и другие функции управляемого коммутатора...
Я не очень продвинутый пользователь Linux bash, но вот что нашёл на данный момент:
В директории /usr/bin есть процесс "ubntbox" и "ubntconf" — при запуске выводят следующее:
US.v3.3.5# ubntbox
Usage: ubntbox <tool>
Supported tools:
ubntconf
cfgmtd
fwupdate.real
factorytest
swctrl
Похоже, запуск этих инструментов — то, что мне нужно, но, насколько я знаю, справки или описания у них нет, что нормально, если хотя бы базово объяснят, как их использовать для настройки по потребности.
К слову: ubntconf — это ссылка на ubntbox
-rwxr-xr-x 1 bradynap admin 634.0K Apr 16 10:49 ubntbox
lrwxrwxrwx 1 bradynap admin 7 Apr 16 10:50 ubntconf -> ubntbox
Если смотреть в процесс ubntbox, видно логи и можно понять, что отправка правильных команд — это то, что мне нужно. Осталось понять, как их правильно форматировать. Ниже небольшой фрагмент из логов, которые появляются при выполнении:
cat /usr/bin/ubntbox
%s.%s(): port %2d vlan %d [%02x:%02x:%02x:%02x:%02x:%02x] now %lu first_seen %u last_seen %u [%s]
%s.%s(): port %2d vlan %d [%02x:%02x:%02x:%02x:%02x:%02x] now %lu first_seen %u last_seen %u
%s.%s(): ipaddr %s hostname %s [%s]
%s.%s(): ipaddr %s hostname %s
%s.%s(): port %d: unable to get port type (%d) [%s]
%s.%s(): port %d: unable to get port type (%d)
%s.%s(): port %d: unable to get port admin state (%d) [%s]
%s.%s(): port %d: unable to get port admin state (%d)
%s.%s(): port %d: unable to get port link state (%d) [%s]
%s.%s(): port %d: unable to get port link state (%d)
%s.%s(): port %d: unable to get port link speed (%d) [%s]
%s.%s(): port %d: unable to get port link speed (%d)
%s.%s(): port %d: unable to get port autoneg config (%d) [%s]
%s.%s(): port %d: unable to get port autoneg config (%d)
%s.%s(): port %d: unable to get flowctrl mode (%d) [%s]
%s.%s(): port %d: unable to get flowctrl mode (%d)
%s.%s(): port %d: unable to get port mtu (%d)
Примечание: похоже, что запуск ubntbox <tool> -h даёт простые инструкции по использованию команды. Продолжу в следующем посте.

