реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Уникальное сетевое имя устройства., Возможные способы получения имени.
jcxz
сообщение Aug 19 2017, 11:06
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 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 обновлением записей. Но есть сомнения в доступности такой службы в любой локальной сети, а тем более при прямом подключении к сетевому интерфейсу ПК.

У кого есть какие мысли/соображения по этому поводу? У кого есть опыт решения подобной задачи? Как сделать более удобно/совместимо/стандартно?
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Aug 19 2017, 11:20
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



используйте фиксированный, дефолтный ip и обеспечьте возможность сброса настроек на фабричные
Go to the top of the page
 
+Quote Post
jcxz
сообщение Aug 19 2017, 11:34
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Огурцов @ Aug 19 2017, 14:20) *
используйте фиксированный, дефолтный ip и обеспечьте возможность сброса настроек на фабричные

Мы конечно рассматриваем такую возможность, но имхо - это неудобно, так как устройство хранит кучу конфигурационной информации - всё сбрасывать нельзя.
Можно конечно сбросить только конфиг сети. Но и вводить потом (после сброса) сетевые параметры не гуд: предполагается, что пользователь устройства - не профессионалом в сетевых технологиях. Ему надо как попроще подключиться, без возможности ошибиться в адресе/маске/шлюзе и т.п.
К тому же: устройство не имеет внешних органов управления, кроме Ethernet-интерфейса. И даже может находиться в труднодоступном месте (внутри некоей машины), а наружу будет выведен только его Ethernet-интерфейс.
И ещё - внутри вышеуказанной машины может быть более одного нашего устройства (но подключен к Ethernet в каждый момент времени может быть только одно). Помнить сетевую инфу о каждом устройстве тут сложно.

Идеально было-бы если бы пользователь просто воткнул Ethernet-разъём в нужный экземпляр устройства, в адресной строке браузера набрал некое уникальное для каждого устройства (или общее для всех устройств, но уникальное в сети) имя и получил доступ к нему.
Такому сценарию работы удовлетворяют только 3 способа, указанные в первоначальном сообщении. Может есть другие?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 19 2017, 11:43
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(jcxz @ Aug 19 2017, 14:06) *
1. Каждое устройство имеет второй, фиксированный IP-адрес.

Боже упаси так делать! Вот радости-то будет тем, у кого этот адрес уже задействован.

Огурцов предложил стандартный и годный способ, можете дополнить его своим п.2 (тоже одно из стандартных решений).
Go to the top of the page
 
+Quote Post
_pv
сообщение Aug 19 2017, 12:17
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



1) фиксированный начальный адрес вроде 192.168.1.1 с возможностью изменения (для возможности работы не напрямую а в большой сети) и сброса к начальным настройкам.
но для прямого подключения требует от пользователя правильно сконфигурировать свой сетевой интерфейс который может оказаться совсем не 192.168.1.0/8.

2) дополниетльное ПО которое будет общаться с железкой броадкастами / сканировать диапазоны адресов и менять усройству соответственно настройки сети и/или просто подскажет правильный ip адрес пользователю который надо в браузере открыть.

есть ещё 169.254.0.0/16, но я хз как там с кроссплатформенностью, возможно не очень.
ну и опять же если у пользователя локальный сетевой интерфейс вдруг уже как попало сконфигурирован на какой-нибудь 10.х.х.х то ему всё равно в настройки лезть придётся. да и с обращением по имени проблем не решает. какой кто получит адрес неизвестно.
можно конечно поступить некрасиво и раздать фиксированные адреса железкам из этого диапазона, но что оно будет делать при конфликте адресов не знаю.

железке ещё можно быть DHCP и DNS сервером для прямого подключения.
тогда действительно ничего не надо кроме как вбить имя в адресную строку.
но вот последствия от включения такого устройства в какую-нибудь сеть где уже есть свой DHCP могут быть довольно интересными sm.gif
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Aug 19 2017, 12:39
Сообщение #6


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(jcxz @ Aug 19 2017, 11:34) *
Идеально было-бы если бы пользователь просто воткнул Ethernet-разъём в нужный экземпляр устройства, в адресной строке браузера набрал некое уникальное для каждого устройства (или общее для всех устройств, но уникальное в сети) имя и получил доступ к нему.

сконфигурируйте ему файл hosts на все девайсы
ip можно сформировать из uid контроллера
если есть маршрутизатор, то неуникальную часть адреса сети можно взять с него, тогда ip девайса получится какой-то полудинамический чтоли
Go to the top of the page
 
+Quote Post
jcxz
сообщение Aug 19 2017, 20:52
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(aaarrr @ Aug 19 2017, 14:43) *
Боже упаси так делать! Вот радости-то будет тем, у кого этот адрес уже задействован.

Ну и что что задействован? Естественно надо иметь голову на плечах.
Протокол ARP, кроме прочего, имеет функционал предназначенный для проверки занятости IP-адреса.
И эту функцию надо всегда реализовывать. И она у меня уже давно реализована во всех девайсах: устройство при старте проверяет занятость IP-адреса и только после этого садится на него. И делает такую проверку периодически всё время работы.
Более того: в описании протокола DHCP приведена настоятельная рекомендация DHCP-клиентам после получения ими IP от сервера, делать проверку этого IP через ARP-тест и, если выданный IP-адрес окажется занятым, посылать DHCP-серверу сообщение о занятости IP-адреса (даже спец.сообщение для такого случая завели). И после этого заново запускать процедуру получения IP от DHCP.

Цитата(aaarrr @ Aug 19 2017, 14:43) *
Огурцов предложил стандартный и годный способ, можете дополнить его своим п.2 (тоже одно из стандартных решений).

Я написал почему этот способ очень неудобен для нас: устройство находится в труднодоступном месте внутри чужого агрегата. Разбирать агрегат для переконфигурирования или считывания телеметрии с него или обновления прошивки - не вариант. А вот разъём Ethernet вполне может быть вынесен в легко-доступное место. И желательно всё сделать имея только его.

Цитата(_pv @ Aug 19 2017, 15:17) *
1) фиксированный начальный адрес вроде 192.168.1.1 с возможностью изменения

Это уже всё есть. Сброс неудобен, я уже писал почему. Его сделаем только если ничего хорошего не придумаем.
Поймите: устройство наше - это не бытовая настольная безделушка, в которой несложно на боку пимпочку для сброса сделать. А юзеры они такие - забывчивые. И не такое забывают. laughing.gif

Цитата(_pv @ Aug 19 2017, 15:17) *
2) дополниетльное ПО

Этого не будет.

Цитата(_pv @ Aug 19 2017, 15:17) *
да и с обращением по имени проблем не решает. какой кто получит адрес неизвестно.

Есть протоколы преобразования имени в адрес: DNS, WINS, ...(что-то ещё, что я надеюсь мне здесь подскажут).
Возможно, что такой функционал есть даже в DHCP-протоколе. Когда смотрел инфу о выданных моим DHCP-сервером арендах IP, я вижу в записи о IP-аренде моего компа его NetBOS-имя! Т.е. - получается, что DHCP-сервер как-то эту инфу получает и может её хранить. Вопрос только - может ли веб-браузер получить от DHCP эту инфу для разрешения неизвестного имени (подобно DNS)??? Если браузеры железно могут разрешать имена через NetBIOS имена от DHCP, то это был бы самый простой для меня способ - закинуть в DHCP-сервер NetBIOS-имя железки.

Цитата(_pv @ Aug 19 2017, 15:17) *
железке ещё можно быть DHCP и DNS сервером для прямого подключения.

Я думаю это уже черезчур - реализовывать в железке ещё и такой сервер. Сервер на порядки сложнее клиента.
Проще тогда сделать второй, фиксированный IP-адрес (способ 1 из первого сообщения).
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 19 2017, 21:01
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(jcxz @ Aug 19 2017, 23:27) *
Ну и что что задействован? ...устройство при старте проверяет занятость IP-адреса и только после этого садится на него.

Тогда в том случае, если адрес занят, механизм "аварийного доступа" работать без бубна не будет.

Цитата(jcxz @ Aug 19 2017, 23:27) *
...разъём Ethernet вполне может быть вынесен в легко-доступное место. И желательно всё сделать имея только его.

Разъем может быть легко вынесен, а кнопка - нет? Понятно, что "лишняя" деталь, но польза от нее есть.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Aug 19 2017, 21:02
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Огурцов @ Aug 19 2017, 15:39) *
сконфигурируйте ему файл hosts на все девайсы

Мне хотелось бы всё-таки услышать дельные идеи. От людей "в теме"...
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 19 2017, 21:04
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(jcxz @ Aug 19 2017, 23:52) *
Если браузеры железно могут разрешать имена через NetBIOS имена от DHCP, то это был бы самый простой для меня способ - закинуть в DHCP-сервер NetBIOS-имя железки.

Не железно. То есть Windows работать будет, но и только.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Aug 19 2017, 21:17
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(aaarrr @ Aug 20 2017, 00:01) *
Тогда в том случае, если адрес занят, механизм "аварийного доступа" работать без бубна не будет.

Это "механизм аварийного доступа" достаточно чтобы работал только при прямом подключении устройства к сетевой карте компа. Или компа и устройства к одному роутеру, без посторонних устройств.
В других случаях пускай буде выключен. Он и должен быть таким, чтобы отключаться при любом конфликте сразу.

Цитата(aaarrr @ Aug 20 2017, 00:01) *
Разъем может быть легко вынесен, а кнопка - нет? Понятно, что "лишняя" деталь, но польза от нее есть.

Разъём Ethernet вполне возможно будет вынесен в удобное место из глубины агрегата посредством кабеля-удлинителя.
Класть ещё один кабель с кнопкой на конце, да ещё закреплять её, только для того, что кто-то может забыть? Это думаю трудно будет убедить пользователя. Дело в том, что монтировать устройство во многих случаях будет сам пользователь как ему удобнее. Понятно, что если ему нужен Ethernet, он его вынесет в удобное место. А вот кнопку - сомневаюсь. Да и если он её плохо расположит и будут случайные нажатия?
Это всё можно сделать, но имхо - очень неудобно. И самое главное: раз уже есть в наличии Ethernet-дырка, ну неужто нужно городить ещё какие-то костыли, чтобы сделать простую функцию? неужто в таком богатом интерфейсе не найдётся средств реализовать такую простую вещь??? не верю!

Цитата(aaarrr @ Aug 20 2017, 00:04) *
Не железно. То есть Windows работать будет, но и только.

Вы о чём? Веб-браузеры под виндой для разрешения неизвестных имён в адресной строке кроме DNS и WINS могут использовать DHCP? Где это описано? Есть ссыль?
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Aug 19 2017, 21:48
Сообщение #12


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(jcxz @ Aug 20 2017, 00:17) *
Вы о чём? Веб-браузеры под виндой для разрешения неизвестных имён в адресной строке кроме DNS и WINS могут использовать DHCP? Где это описано? Есть ссыль?

Зачем ссылка? Вы что сниферу своему не верите. Да в DHCP ответе клиента передается имя дивайса по которому в Windows можно потом к нему обращаться.
Но нынче больше популярен Bonjour
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 19 2017, 21:54
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(jcxz @ Aug 20 2017, 00:17) *
Вы о чём? Веб-браузеры под виндой для разрешения неизвестных имён в адресной строке кроме DNS и WINS могут использовать DHCP? Где это описано? Есть ссыль?

Коряво выразился, наверное. Имелось в виду, что NetBIOS имена будут нормально жить только под виндой.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Aug 19 2017, 22:07
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(AlexandrY @ Aug 20 2017, 00:48) *
Зачем ссылка? Вы что сниферу своему не верите. Да в DHCP ответе клиента передается имя дивайса по которому в Windows можно потом к нему обращаться.

Я вообще не о том. Ясно, что раз там есть это имя, то оно как-то туда попадает и, если исключить метафизические способы, то очевидно его туда сообщает DHCP-клиент в процессе общения с сервером. Значит поместить его туда - не проблема и для моего устройства.
Вопрос был в другом: когда это имя будет введено в адресной строке браузера на одном из компов, получающих DHCP-адреса в этой сети, станет ли этот комп (или его браузер) обращаться к DHCP-серверу, для разрешения этого имени?
Ведь DHCP-клиенты обычно оперируют с блоком данных на DHCP-сервере только для своего адреса, а не ищут по его базе чужие адреса.
Или всё-таки - могут искать?


Цитата(aaarrr @ Aug 20 2017, 00:54) *
Коряво выразился, наверное. Имелось в виду, что NetBIOS имена будут нормально жить только под виндой.

В описании WINS читал, что его функционал включён в SAMBA, который есть и под линух. Не знаю только насколько это стандартно и распространённо (под линухом).
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 19 2017, 22:25
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(jcxz @ Aug 20 2017, 01:07) *
Не знаю только насколько это стандартно и распространённо (под линухом).

По умолчанию самбу не ставят (во всяком случае, не видел такого).
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 00:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01512 секунд с 7
ELECTRONIX ©2004-2016