|
Уникальное сетевое имя устройства., Возможные способы получения имени. |
|
|
|
Aug 19 2017, 11:06
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Имеется устройство, которое может иногда подключаться к Ethernet (в основном для целей конфигурирования) посредством встроенного HTTP-сервера. Устройство не предназначено для удалённого подключения к своему HTTP-серверу через Интернет, но в отдельных случаях должно позволять такую возможность. В основном оно должно работать в локальной сети. Может подключаться как просто к выделенному сетевому интерфейсу PC, так и быть подключено к сети через роутер. Имеет возможность как статического задания IP-адреса (и др. параметров сети) так и имеет DHCP-клиент. Каждое устройство будет иметь уникальный серийный номер.
Вопрос тут: Как наиболее удобно и дружественно дать пользователю возможность адресации устройства в браузере? Свой IP-адрес (статический) устройство может хранить в энергонезависимой памяти, но пользователь этот адрес должен иметь возможность изменить. Или должен иметь возможность не задумываясь об IP-адресах и пр. особенностях сети, подключить устройство в сеть и тут же открыть в браузере страницу настройки устройства (на лезя в конфигурацию роутера, не ставя никаких доп. программ). Устройство думаю будет поставляться пользователям с включенным по умолчанию DHCP-клиентом. Т.е. - у пользователя есть только браузер на компе/планшете в этой сети, в которую воткнуто наше устройство. И всё. Пользователь должен легко достучаться до устройства. Данная сеть может не иметь выхода в инет (только локальная).
Пока вижу такие способы: 1. Каждое устройство имеет второй, фиксированный IP-адрес. Если пользователь не знает IP-адрес устройства, он просто подключает его напрямую к роутеру (к которому больше ничего не подключено кроме ПК/планшета с браузером) или к сетевой карте. И далее - обращается к устройству по этому адресу, узнаёт и редактирует его основной IP-адрес. И далее может подключить устройство к большой сети, в которой могут быть ещё аналогичные устройства. В большой сети фиксированный IP не будет функционировать (отключится) из-за конфликтов. 2. Использовать WINS. Регистрировать в WINS имя устройства (NetBIOS-имя), состоящее из фиксированного префикса (для всех таких устройств) + серийный номер (пользователь может посмотреть его на корпусе устройства). Также на этом же WINS можно регистрировать второе имя, общее для всех устройств (для более простой адресации к устройству без его сер.номера в случае, если устройство такое в сети одно). NetBIOS имена под виндой разрешаются автоматически в строке браузера, но как тут дело обстоит "не под виндой" интересно? 3. Использовать DNS c обновлением записей. Но есть сомнения в доступности такой службы в любой локальной сети, а тем более при прямом подключении к сетевому интерфейсу ПК.
У кого есть какие мысли/соображения по этому поводу? У кого есть опыт решения подобной задачи? Как сделать более удобно/совместимо/стандартно?
|
|
|
|
|
 |
Ответов
|
Aug 19 2017, 11:34
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Огурцов @ Aug 19 2017, 14:20)  используйте фиксированный, дефолтный ip и обеспечьте возможность сброса настроек на фабричные Мы конечно рассматриваем такую возможность, но имхо - это неудобно, так как устройство хранит кучу конфигурационной информации - всё сбрасывать нельзя. Можно конечно сбросить только конфиг сети. Но и вводить потом (после сброса) сетевые параметры не гуд: предполагается, что пользователь устройства - не профессионалом в сетевых технологиях. Ему надо как попроще подключиться, без возможности ошибиться в адресе/маске/шлюзе и т.п. К тому же: устройство не имеет внешних органов управления, кроме Ethernet-интерфейса. И даже может находиться в труднодоступном месте (внутри некоей машины), а наружу будет выведен только его Ethernet-интерфейс. И ещё - внутри вышеуказанной машины может быть более одного нашего устройства (но подключен к Ethernet в каждый момент времени может быть только одно). Помнить сетевую инфу о каждом устройстве тут сложно. Идеально было-бы если бы пользователь просто воткнул Ethernet-разъём в нужный экземпляр устройства, в адресной строке браузера набрал некое уникальное для каждого устройства (или общее для всех устройств, но уникальное в сети) имя и получил доступ к нему. Такому сценарию работы удовлетворяют только 3 способа, указанные в первоначальном сообщении. Может есть другие?
|
|
|
|
|
Aug 20 2017, 07:44
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 27-02-11
Пользователь №: 63 268

|
a: mDNS b: NetBIOS c: Captive DNS
Вариант C поломает работу DNS всех устройств в сети поэтому его следует использовать только при соединении точка-точка. Вариант B - Win only, да и Netbios может быть отключен/заблокирован.
Сообщение отредактировал sharikov - Aug 20 2017, 07:46
|
|
|
|
|
Aug 20 2017, 09:33
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(sharikov @ Aug 20 2017, 10:44)  a: mDNS Большое спасибо! Похоже - это именно то, что нужно. Как я понимаю: 1. Устройство вносит 01:00:5E:00:00:FB в MAC-фильтр мультикастных адресов. 2. Ждёт по этому MAC UDP-пакеты для IP=224.0.0.251 порт 5353. 3. Сравнивает имена из этих пакетов со своим именем в формате: имя_устройства-серийный_номер.local (а можно даже несколько имён - одно с серийником, а одно - одинаковое для всех устройств - имя_устройства.local). 4. Обнаружив такой пакет (запрос) отвечает на него со своим IP. Остаются только вопросы: 1. Насколько mDNS общепринят и распространён? Т.е. - можно-ли ожидать, что на некоей системе пользователя, после того как пользователь ввёл имя_устройства в адресной строке браузера, браузер обратился за разрешением этого имени к классическому DNS (если он есть в системе), классический DNS ответил "не знаю такого имени", то запрос разрешения этого имени будет перенаправлен далее в mDNS? (если классического unicast-DNS в системе нет, то запрос сразу должен быть отправлен в mDNS). 2. Нужны-ли специальные настройки роутера, чтобы мультикастные кадры на 01:00:5E:00:00:FB ретранслировались через шлюз в другие подсети или роутеры это делают по дефолту? Хотя это не очень важный вопрос - не будут уходить кадры в другую подсеть - ну и ладно. Вобщем mDNS - это примерно то, что я и хотел. Самый главный вопрос - это п.1. Цитата(sharikov @ Aug 20 2017, 10:44)  b: NetBIOS Да, на прошлой работе в аналогичной задаче именно так и делали (через WINS). Но там были немного другие требования. Вот тут пока неясный для меня момент: В записях DHCP-сервера (внутри своего роутера) я вижу, что для каждого выданного им в аренду IP-адреса, он знает некое "host name". Это "host name" есть и для компа с виндой (для него оно совпадает с NetBIOS-именем компа) и для планшета и телефона с Андроид. И на своём устройстве я могу сообщить это имя DHCP-серверу. Вот если-б веб-браузеры в этой сети, не получив разрешение имени от DNS, разрешали это имя через эти записи DHCP - это было бы тоже решением вопроса. Но похоже браузеры не используют эту инфу из DHCP. Хотя в этом случае всё равно останется открытым вопрос для статического IP в системах без DHCP, но это уже не так критично. Цитата(sharikov @ Aug 20 2017, 10:44)  c: Captive DNS Посмотрю его позже. Цитата(sharikov @ Aug 20 2017, 10:44)  Вариант B - Win only, да и Netbios может быть отключен/заблокирован. Не только Win, но то, что с большой вероятностью может быть выключен - это так.
|
|
|
|
|
Aug 21 2017, 17:20
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(jcxz @ Aug 20 2017, 12:33)  Большое спасибо! Похоже - это именно то, что нужно.... основной вектор уже прозвучал. Но я бы обратил бы Ваше внимание на уже сложившиеся традиции на этот счёт у всевозможных поставщиков IP камер и иже. И именно на такие действия надрочены лохи от продажи и простые обыватели. И вот тут наверное надо определится кто покупатель, кто ЦА. Если профи - ему нужна только стабильность, возможность и простота действа. Чем проще(не путать с самоавтоматикой) и эффективней - тем лучше. Ну и как альтернативу = если девайс достаточно большой, стационар... То я обычно использую ещё один канал = WiFi. 1) альтернатива повышает живучесть 2) можно с любого переносного планшета-смартфона настроить (для инициализации самое то сапорту) 3) стоимость 3 бакса 4) при поддержки дефолтного сервера - логинится сразу при включении вайфай и запуске броузера. удачи вам (круглый)
|
|
|
|
|
Aug 21 2017, 18:26
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(kolobok0 @ Aug 21 2017, 20:20)  Но я бы обратил бы Ваше внимание на уже сложившиеся традиции на этот счёт у всевозможных поставщиков IP камер и иже. И именно на такие действия надрочены лохи от продажи и простые обыватели. И вот тут наверное надо определится кто покупатель Покупатели будут разные. Я почитал внимательнее про mDNS и пр. Всё это - части одного множества называемого "Zeroconf": https://ru.wikipedia.org/wiki/ZeroconfТ.е. - это целый набор методов. Что-то из них работает под виндами (разными версиями), что-то - под линухом и т.п. Т.е. - чтобы более-менее обеспечить попадание в цель, нужно реализовывать всю их совокупность (или значительную часть). Так что пока отложил это на будущее - может реализую потом. Пока пойду первым путём (из первого поста). Назначу второй фиксированный IP из области Link-local (169.254.1.0 ... 169.254.254.255). Вроде всё должно работать в любом случае. Цитата(kolobok0 @ Aug 21 2017, 20:20)  Ну и как альтернативу = если девайс достаточно большой, стационар... То я обычно использую ещё один канал = WiFi. Это конечно хорошо, но этот вопрос несколько из иной оперы.
|
|
|
|
Сообщений в этой теме
jcxz Уникальное сетевое имя устройства. Aug 19 2017, 11:06 aaarrr Цитата(jcxz @ Aug 19 2017, 14:06) 1. Кажд... Aug 19 2017, 11:43 jcxz Цитата(aaarrr @ Aug 19 2017, 14:43) Боже ... Aug 19 2017, 20:52  aaarrr Цитата(jcxz @ Aug 19 2017, 23:27) Ну и чт... Aug 19 2017, 21:01   jcxz Цитата(aaarrr @ Aug 20 2017, 00:01) Тогда... Aug 19 2017, 21:17    AlexandrY Цитата(jcxz @ Aug 20 2017, 00:17) Вы о чё... Aug 19 2017, 21:48     jcxz Цитата(AlexandrY @ Aug 20 2017, 00:48) За... Aug 19 2017, 22:07      aaarrr Цитата(jcxz @ Aug 20 2017, 01:07) Не знаю... Aug 19 2017, 22:25    aaarrr Цитата(jcxz @ Aug 20 2017, 00:17) Вы о чё... Aug 19 2017, 21:54  aaarrr Цитата(jcxz @ Aug 19 2017, 23:52) Если бр... Aug 19 2017, 21:04 _pv 1) фиксированный начальный адрес вроде 192.168.1.1... Aug 19 2017, 12:17
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|