Как удалённо настраивать сетевые параметры (ip-адрес и т.п.)?
Суть примерно такая: есть N экземпляров оборудования, втыкающегося в ethernet-коммутатор. Хочется, чтобы с компа можно было настроить IP-адреса и другие сетевые параметры на этих устройствах. Так, чтобы эта возможность не зависела от наличия/отсутствия DHCP-сервера, от текущих настроек на оборудовании и т.п.
Есть ли какие-то протоколы и/или примеры подобного подхода?
Мне сходу приходит в голову только вариант делать свой велосипед на широковещательных пакетах и различать устройства по мак-адресу.
т.е. велосипедить свой DHCP-сервер ??
зачем ?? если есть рабочий и всемизвестный DHCP.
выдели DHCP в отдельную мелкую коробку, не привязанную к остальным "перемещаемым" серверам и пользуй.
Да, DHCP - это первое, что приходит в голову.
А ответ на вопрос зачем - для случая, когда в сети клиента уже есть DHCP-сервер, который "кто-то когда-то как-то настроил, и мы не хотим ничего менять".
Другой минус - если помирает DHCP-сервер и перезагружается оборудование, то IP-адреса больше никто не получит. Можно на устройстве сохранять последний полученный IP-адрес и использовать его при недоступности DHCP-сервера, но это всё равно свой велосипед делать, как я понимаю.
если статика работоспособна, то не используй DHCP ваапче.
В новую железку вписываешь статический ип, маску и шлюз и засовываешь в сеть - воркает.
продаем клиентам свои Eth-232 преобразователи уж лет 6. в них прошивка со статическими настройками (хотя можно было и DHCP прикрутить). за 6 лет только два человека поинтересовались наличием DHCP. на ответный вопрос "А зачем ??" ничего внятного сказать не смогли - настроил, поставил и забыл до второго пришествия христа.
либо используй совместно, т.е. DHCP выделяет адреса только в определенном диапазоне, а ип вне этого диапазона используются для статических адресов.
Я сформулировал вопрос коряво. В этом и есть суть задачи - прошить в железки статические айпишники. Чтобы сделать это централизованно, и можно было б косяки отследить быстро. А то прошьёшь два одинаковых айпишника случайно, и ищи потом, если железок с полсотни на объекте.
Мне казалось, что я такое где-то видел, и я вспомнил, где.
Устанавливали IP-камеры какие-то, там по умолчанию у всех был один и тот же IP-адрес. Но при монтаже и подключении можно было не заморачиваться с настройкой каждой камеры, а тупо все в один свич воткнуть и потом в софте настроить. Не посмотреть мне уже, что там у них использовалось, наверняка своё что-то
Поддержку в устройство добавить - не проблема) Но у этих протоколов та же суть - клиент запрашивает у сервера.
Может и правда не заморачиваться и просто журнал использовать. Должен дисциплинировать такой подход)
ovegio, я бы вообще это отдал на усмотрение пользователя. ты предоставляешь устройство и качественную инструкцию how-to. все действия пользователя на его усмотрние.
посоветую только сделать "бекдор" для восстановления забытых настроек.
к примеру, у меня прибор настраивается по telnet'у (и по rs232, но такое ни разу кажись не использовали). есть официально описанный бекдор - в течении первых десяти секунд он отвечает на дефолтном адресе (192.168.0.5). если никто не подключился, то переходит на параметры сетевого соединения, записанные в настройках. топорно и эффективно.
из заморочек только наверн скрипт автоматического конфигурирования устройств. т.е. если видит подключившееся устройство со стандартным адресом то вписывать заданные настройки и увеличивать вдрес на еди ницу. да и то никто не просил.
Мы не совсем устройства продаём, а систему целиком ставим (контроллеры, БД, пользовательское ПО). Все IPшники устройств и куча всего остального в БД хранится. Так что в плане настройки сами же являемся пользователями. Клиенты потом уже ничего не перенастраивают.
Хочется просто по возможности ускорить и автоматизировать процесс пуско-наладки.
У нас как раз текущая версия контроллеров, разработанная много лет назад, через rs232 работает. Потом в связи с ростом числа железок перешли на адаптеры Moxa в качестве виртуальных ком-портов. Сейчас начинаем железки со встроенным ethernet использовать на базе STM32f4.
Там даже мак-адресов нет аппаратных, так что вариант с журналом, видимо, всё равно реализовывать.
ovegio, а смысл в аппаратном MAC ??
генерируй програмно через рандом в свободном диапазоне адресов. главное требование к MAC уникальность в пределах сегмента сети, все остальное, особенно в локальной сети, до лампочки.
Если ставишь всю систему, в том числе и сетевую инфраструктуру, то поставить DHCP-сервер, вещъ не тяжелая и очень удобная, либо отдельной железякой либо на один из компов/серверов. и будет тебе счастье.
если MAc-адреса на устройствах генеряться собственным алгоритмом, то можно в адрес внедрить разграничение устройств или что подобное.
Это возможно только если само устройство это умеет, иначе никак.
Роутеры/коммутаторы обычно поддерживают управление по ssh, а это уже можно как-то автоматизировать. Но тут нужно плясать от конкретной железки, чего-то универсального нет.
Железки свои, под них можно что-то написать. Вопрос больше в том, сталкивался ли кто-то раньше с такой задачей или это у меня жажда каких-то изысканных извращений)
ovegio, возьмите для примера любой роутер/коммутатор. Обычно есть веб интерфейс для ручного управления и есть возможность подключаться по ssh к шелу, в шеле есть набор команд, который конфигурирует устройство аналогично веб-интерфейсу (я бы сказал, что управление через ком.строку первично, а веб прикручивается уже к этому механизму). Механизмом управления через ssh можно пользоваться для автоматизации конфигурации оборудования. Задайте в устройстве какие-то адекватные параметры по умолчанию, опишите их в инструкции и с подобным механизмом конфигурации заинтересованные пользователи смогут реализовать собственную конфигурилку.
Если ваш девайс - не сетевой коммутатор/роутер, то есть смысл параметры по умолчанию брать по DHCP.
По моему, был какой-то открытый проект, где делали встраиваемый шел, подобный cisco ios, с конфигурируемыми командами и т.п. Названия, к сожалению, не скажу.
res2001, да, из стандартных вариантов именно эти два:
1. Задать в устройстве параметры по умолчанию, втыкать по одному, конфигурить
2. Использовать по умолчанию DHCP, инфу о полученных адресах брать из логов DHCP-сервера или заранее забивать в настройки DHCP-сервера, вручную прописывая туда MAC-адреса.
Вот то, что выделено жирным, мне не очень нравится. Хочется так: воткнул несколько десятков железок, запустил софтину, она их нашла, сконфигурил им IP вручную, далее они работают по TCP/IP.
Как вариант - использовать DHCP для получения IP-адресов железками, а чтобы находить железки, использовать уже что-то более-менее стандартное, вроде DNS-SD или что там ещё бывает.
ovegio, Инфу брать можно не из логов, а через широковещательную рассылку. В железке простой сервис, который слушает определенный UDP порт и при получении запроса в ответ отправляет свой IP.
Получив IP программа конфигурации уже может дальше конфигурировать устройство любым поддерживаемым способом.
1) на контроллере dhcp сервер, который отвечает только на запросы от определённых MAC / хостнеймов или переданных параметров
2) на клиентах игнорировать ответы от dhcp серверов, если те не передают какой-то параметр
Таким образом вы своим dhcp сервером не будете мешать, потому что отвечать будете лишь на запросы именно вашего оборудования. А ваше оборудование не будет брать IP предложенный первым попавшимся сервером, а будет ждать ответ с определённым параметром.