Перейти к содержанию
    

Уникальное сетевое имя устройства.

Имеется устройство, которое может иногда подключаться к Ethernet (в основном для целей конфигурирования) посредством встроенного HTTP-сервера. Устройство не предназначено для удалённого подключения к своему HTTP-серверу через Интернет, но в отдельных случаях должно позволять такую возможность. В основном оно должно работать в локальной сети.

Может подключаться как просто к выделенному сетевому интерфейсу PC, так и быть подключено к сети через роутер.

Имеет возможность как статического задания IP-адреса (и др. параметров сети) так и имеет DHCP-клиент.

Каждое устройство будет иметь уникальный серийный номер.

 

Вопрос тут: Как наиболее удобно и дружественно дать пользователю возможность адресации устройства в браузере?

Свой IP-адрес (статический) устройство может хранить в энергонезависимой памяти, но пользователь этот адрес должен иметь возможность изменить. Или должен иметь возможность не задумываясь об IP-адресах и пр. особенностях сети, подключить устройство в сеть и тут же открыть в браузере страницу настройки устройства (на лезя в конфигурацию роутера, не ставя никаких доп. программ). Устройство думаю будет поставляться пользователям с включенным по умолчанию DHCP-клиентом.

Т.е. - у пользователя есть только браузер на компе/планшете в этой сети, в которую воткнуто наше устройство. И всё. Пользователь должен легко достучаться до устройства. Данная сеть может не иметь выхода в инет (только локальная).

 

Пока вижу такие способы:

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

2. Использовать WINS. Регистрировать в WINS имя устройства (NetBIOS-имя), состоящее из фиксированного префикса (для всех таких устройств) + серийный номер (пользователь может посмотреть его на корпусе устройства). Также на этом же WINS можно регистрировать второе имя, общее для всех устройств (для более простой адресации к устройству без его сер.номера в случае, если устройство такое в сети одно). NetBIOS имена под виндой разрешаются автоматически в строке браузера, но как тут дело обстоит "не под виндой" интересно?

3. Использовать DNS c обновлением записей. Но есть сомнения в доступности такой службы в любой локальной сети, а тем более при прямом подключении к сетевому интерфейсу ПК.

 

У кого есть какие мысли/соображения по этому поводу? У кого есть опыт решения подобной задачи? Как сделать более удобно/совместимо/стандартно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

используйте фиксированный, дефолтный ip и обеспечьте возможность сброса настроек на фабричные

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

используйте фиксированный, дефолтный ip и обеспечьте возможность сброса настроек на фабричные

Мы конечно рассматриваем такую возможность, но имхо - это неудобно, так как устройство хранит кучу конфигурационной информации - всё сбрасывать нельзя.

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

К тому же: устройство не имеет внешних органов управления, кроме Ethernet-интерфейса. И даже может находиться в труднодоступном месте (внутри некоей машины), а наружу будет выведен только его Ethernet-интерфейс.

И ещё - внутри вышеуказанной машины может быть более одного нашего устройства (но подключен к Ethernet в каждый момент времени может быть только одно). Помнить сетевую инфу о каждом устройстве тут сложно.

 

Идеально было-бы если бы пользователь просто воткнул Ethernet-разъём в нужный экземпляр устройства, в адресной строке браузера набрал некое уникальное для каждого устройства (или общее для всех устройств, но уникальное в сети) имя и получил доступ к нему.

Такому сценарию работы удовлетворяют только 3 способа, указанные в первоначальном сообщении. Может есть другие?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Каждое устройство имеет второй, фиксированный IP-адрес.

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

 

Огурцов предложил стандартный и годный способ, можете дополнить его своим п.2 (тоже одно из стандартных решений).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

 

есть ещё 169.254.0.0/16, но я хз как там с кроссплатформенностью, возможно не очень.

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

можно конечно поступить некрасиво и раздать фиксированные адреса железкам из этого диапазона, но что оно будет делать при конфликте адресов не знаю.

 

железке ещё можно быть DHCP и DNS сервером для прямого подключения.

тогда действительно ничего не надо кроме как вбить имя в адресную строку.

но вот последствия от включения такого устройства в какую-нибудь сеть где уже есть свой DHCP могут быть довольно интересными :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Идеально было-бы если бы пользователь просто воткнул Ethernet-разъём в нужный экземпляр устройства, в адресной строке браузера набрал некое уникальное для каждого устройства (или общее для всех устройств, но уникальное в сети) имя и получил доступ к нему.

сконфигурируйте ему файл hosts на все девайсы

ip можно сформировать из uid контроллера

если есть маршрутизатор, то неуникальную часть адреса сети можно взять с него, тогда ip девайса получится какой-то полудинамический чтоли

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Ну и что что задействован? Естественно надо иметь голову на плечах.

Протокол ARP, кроме прочего, имеет функционал предназначенный для проверки занятости IP-адреса.

И эту функцию надо всегда реализовывать. И она у меня уже давно реализована во всех девайсах: устройство при старте проверяет занятость IP-адреса и только после этого садится на него. И делает такую проверку периодически всё время работы.

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

 

Огурцов предложил стандартный и годный способ, можете дополнить его своим п.2 (тоже одно из стандартных решений).

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

 

1) фиксированный начальный адрес вроде 192.168.1.1 с возможностью изменения

Это уже всё есть. Сброс неудобен, я уже писал почему. Его сделаем только если ничего хорошего не придумаем.

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

 

2) дополниетльное ПО

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

 

да и с обращением по имени проблем не решает. какой кто получит адрес неизвестно.

Есть протоколы преобразования имени в адрес: DNS, WINS, ...(что-то ещё, что я надеюсь мне здесь подскажут).

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

 

железке ещё можно быть DHCP и DNS сервером для прямого подключения.

Я думаю это уже черезчур - реализовывать в железке ещё и такой сервер. Сервер на порядки сложнее клиента.

Проще тогда сделать второй, фиксированный IP-адрес (способ 1 из первого сообщения).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну и что что задействован? ...устройство при старте проверяет занятость IP-адреса и только после этого садится на него.

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

 

...разъём Ethernet вполне может быть вынесен в легко-доступное место. И желательно всё сделать имея только его.

Разъем может быть легко вынесен, а кнопка - нет? Понятно, что "лишняя" деталь, но польза от нее есть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

сконфигурируйте ему файл hosts на все девайсы

Мне хотелось бы всё-таки услышать дельные идеи. От людей "в теме"...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если браузеры железно могут разрешать имена через NetBIOS имена от DHCP, то это был бы самый простой для меня способ - закинуть в DHCP-сервер NetBIOS-имя железки.

Не железно. То есть Windows работать будет, но и только.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

 

Разъем может быть легко вынесен, а кнопка - нет? Понятно, что "лишняя" деталь, но польза от нее есть.

Разъём Ethernet вполне возможно будет вынесен в удобное место из глубины агрегата посредством кабеля-удлинителя.

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

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

 

Не железно. То есть Windows работать будет, но и только.

Вы о чём? Веб-браузеры под виндой для разрешения неизвестных имён в адресной строке кроме DNS и WINS могут использовать DHCP? Где это описано? Есть ссыль?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы о чём? Веб-браузеры под виндой для разрешения неизвестных имён в адресной строке кроме DNS и WINS могут использовать DHCP? Где это описано? Есть ссыль?

Зачем ссылка? Вы что сниферу своему не верите. Да в DHCP ответе клиента передается имя дивайса по которому в Windows можно потом к нему обращаться.

Но нынче больше популярен Bonjour

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы о чём? Веб-браузеры под виндой для разрешения неизвестных имён в адресной строке кроме DNS и WINS могут использовать DHCP? Где это описано? Есть ссыль?

Коряво выразился, наверное. Имелось в виду, что NetBIOS имена будут нормально жить только под виндой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зачем ссылка? Вы что сниферу своему не верите. Да в DHCP ответе клиента передается имя дивайса по которому в Windows можно потом к нему обращаться.

Я вообще не о том. Ясно, что раз там есть это имя, то оно как-то туда попадает и, если исключить метафизические способы, то очевидно его туда сообщает DHCP-клиент в процессе общения с сервером. Значит поместить его туда - не проблема и для моего устройства.

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

Ведь DHCP-клиенты обычно оперируют с блоком данных на DHCP-сервере только для своего адреса, а не ищут по его базе чужие адреса.

Или всё-таки - могут искать?

 

 

Коряво выразился, наверное. Имелось в виду, что NetBIOS имена будут нормально жить только под виндой.

В описании WINS читал, что его функционал включён в SAMBA, который есть и под линух. Не знаю только насколько это стандартно и распространённо (под линухом).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не знаю только насколько это стандартно и распространённо (под линухом).

По умолчанию самбу не ставят (во всяком случае, не видел такого).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...