Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
Страницы: 1
RSS
Общий доступ к псевдонимам клиентов между сайтами?, UniFi Network
 
У нас есть 7 офисов, между которыми перемещаются сотрудники. Есть ли способ передавать Клиентский Алиас, который мы назначаем, с одного офиса на другой, без взлома базы данных конфигурации? Назначать имена всем MAC-адресам каждого iPhone и ноутбука в каждом офисе — настоящее мучение. Спасибо, Скотт
 
С каждым новым сайтом это становится всё более раздражающим. С точками доступа (AP) на каждом сайте это было просто неудобно. А теперь, когда на каждом сайте появились коммутаторы и VLAN, и всё это связывается с главным офисом (HQ), все устройства, находящиеся в HQ, начинают появляться через широковещательные рассылки на удалённых сайтах, и теперь у меня на каждом сайте по тысяче клиентов. Следить за этим просто невозможно.
 
Привет, Scooter133! Жаль это слышать. У всех наших сайтов есть свои подсети, они соединены через L2L VPN. Поскольку мы не проксируем VLAN «локальных сайтов» через туннель, широковещательные рассылки не проходят, что и предотвращает описанную проблему. Однако остается вопрос общего использования «Client Alias» для роуминга между нашими сайтами на контроллере. Если учесть, что некоторые люди управляют разъединёнными сайтами, было бы здорово, если бы можно было просто поставить галочку для связанных между собой сайтов, чтобы они могли совместно использовать свой «Client Alias». Это здорово помогло бы отслеживать роуминг пользователей и избавило бы нас от ручного переприсваивания их на каждый посещаемый сайт.
 
Я в той же ситуации: у нас 13 сайтов, клиенты перемещаются между ними. Не должен же я вручную вводить одного и того же клиента на всех 13 сайтах. Вся эта информация уже есть в контроллере. На мой взгляд, это простое решение. Речь идет о поправке, которая не требует взлома, знания PHP, изгибов на йогу или изучения SQL. Просто добавьте опцию «Делить псевдонимы клиентов между сайтами» с выбором нужных сайтов для совместного использования псевдонимов. Всё. Обновляешь псевдоним клиента на Сайте А, и если «bob laptop» переходит на Сайт B, он просто отображается там как «bob laptop». Легко и просто. Я люблю Unifi, и эта функция — очень простое дополнение, которое точно нужно гораздо большему числу людей, чем вы думаете. Они просто молчат и страдают. Спасибо за всё, что вы делаете, Ubiquiti. Обожаю вашу продукцию.
 
В таком случае я советую попробовать это в тестовой среде, так как я ещё не проверял это в подобном случае. Скорее всего, всё будет работать, но на всякий случай...😉
 
Нет гостевых сетей. У нас несколько SSID, все они с защитой WPA2.
 
Вам, вероятно, потребуется использовать только этот набор атрибутов:{
"hostname": "02AA01AC421305R1",
"mac": "18:b4:30:0e:5e:9d",
"name": "Nest - Suite 209",
"note": "",
"noted": false
}. Эти устройства связаны с гостевыми сетями на разных площадках или с WPA2-защищёнными не-гостевыми сетями? Обычно можно создать нового клиента для сайта, например, заблокировав или разблокировав его через API.
 
Хмм... Вот, у меня есть список клиентов, похожий на показанный ниже, хотя не все клиенты есть на каждом сайте. Если я вызову 'set_sta_name' для клиента, которого нет на другом сайте, как тогда этот user_id будет связаны с клиентом, когда он переместится на этот сайт? К тому же user_id на Сайте A не совпадает с user_id на Сайте B... Похоже, мне нужно гораздо больше обработки данных пользователя... )-:  
Спасибо,  
{  
       "_id": "5591c286b3ac7226ba7c08c1",  
       "_is_guest_by_uap": false,  
       "_is_guest_by_usw": false,  
       "_last_seen_by_uap": 1486686741,  
       "_last_seen_by_usw": 1486658101,  
       "_uptime_by_uap": 30068,  
       "_uptime_by_usw": 307,  
       "ap_mac": "24:a4:3c:20:70:de",  
       "assoc_time": 1486599122,  
       "bssid": "24:a4:3c:2e:1b:c0",  
       "bytes-r": 14,  
       "ccq": 0,  
       "channel": 6,  
       "essid": "EandM-AP",  
       "first_seen": 1435615878,  
       "hostname": "02AA01AC421305R1",  
       "idletime": 8,  
       "ip": "10.1.2.239",  
       "is_guest": false,  
       "is_wired": false,  
       "last_seen": 1486686741,  
       "latest_assoc_time": 1486657794,  
       "mac": "18:b4:30:0e:5e:9d",  
       "name": "Nest - Suite 209",  
       "network": "10.1 Network",  
       "network_id": "558c37c8b3ac7226ba7b932a",  
       "noise": -91,  
       "note": "",  
       "noted": false,  
       "oui": "NestLabs",  
       "powersave_enabled": true,  
       "qos_policy_applied": true,  
       "radio": "ng",  
       "radio_proto": "ng",  
       "rssi": 19,  
       "rx_bytes": 3346396,  
       "rx_bytes-r": 13,  
       "rx_packets": 46104,  
       "rx_rate": 2000,  
       "signal": -72,  
       "site_id": "558c37c7b3ac7226ba7b9309",  
       "sw_depth": 0,  
       "sw_mac": "f0:9f:c2:0c:ee:83",  
       "sw_port": 17,  
       "tx_bytes": 1336691,  
       "tx_bytes-r": 0,  
       "tx_packets": 4927,  
       "tx_power": 17,  
       "tx_rate": 1000,  
       "uptime": 87619,  
       "user_id": "5591c286b3ac7226ba7c08c1",  
       "usergroup_id": "",  
       "vlan": 0  
   },
 
Твоя идея выглядит нормально. Нужно получить клиентов для одного сайта, сохранить их в массив. Потом поочерёдно пройтись по другим сайтам, и для каждого сайта пройтись по массиву клиентов. Для каждого клиента добавить или обновить его данные внутри сайта. В этом процессе можно сделать пару умных ходов и создать массив со всеми клиентами с именами на всех сайтах. В зависимости от общего количества таких клиентов, стоит следить за потреблением памяти в PHP. В качестве альтернативы можно использовать базу данных для управления и хранения всех именованных устройств.
 
У меня запущен API-Browser, хотя мой уровень PHP — примерно начальный. Ладно, у меня есть следующий код, который выводит только станции с атрибутом name.

public function list_client_names($client_mac = null)
{
   if (!$this->is_loggedin) return false;
   $return = array();
   $content_decoded = json_decode($this->exec_curl($this->baseurl.'/api/s/'.$this->site.'/stat/sta/'.$client_mac));
   if (isset($content_decoded->meta->rc)) {
       if ($content_decoded->meta->rc == 'ok') {
           if (is_array($content_decoded->data)) {
               foreach ($content_decoded->data as $client) {
                   if (!$client->name) {
                       $return[]= $client;
                   }
               }
           }
       }
   }

Не совсем понимаю, как сделать поле формы, куда помещать результаты, а затем обрабатывать set_sta_name для другого сайта. Думаю, могу написать цикл ForEach для обработки, но без копирования результатов прямо в php-файл. Кажется, я упёрся в пределы своих знаний )-: Хотелось бы сделать это так:

Site-A -> Site-B, Site-C, Site-D  
Site-B -> Site-A, Site-C, Site-D  
Site-C -> Site-B, Site-A, Site-D  
Site-D -> Site-B, Site-C, Site-A

Спасибо!
 
Вы можете сделать это через API. Если вы знакомы с PHP, посмотрите класс клиента API, который я поддерживаю. Там есть специальная функция, с помощью которой можно задать «имя» устройства: https://github.com/malle-pietje/UniFi-API-browser/blob/master/phpapi/class.unifi.php#L288
 
Я правда единственный, у кого настроен отдельный сайт для каждого офиса, и при этом есть сотрудники, которые перемещаются между этими офисами? Хотя бы возможность экспортировать и импортировать MAC-адреса и псевдонимы была бы кстати.
Страницы: 1
Читают тему (гостей: 1)