Автоматическое обнаружение ethernet-устройств
Может что-нибудь из этого?
http://en.wikipedia.org/wiki/Zero-configuration_networking
http://en.wikipedia.org/wiki/Zero-configuration_networking
Смущает, что он немного для другого.
посмотрел еще также:
SNMP
UPnP
но они также подходят с натяжкой
посмотрел еще также:
SNMP
UPnP
но они также подходят с натяжкой
RRCP есть
Почему SNMP broadcast - это для чего-то другого?
LLDP есть, но там устройства периодичкски сами вещают вроде бы.
LLDP и CDP не коммутируются уважающими себя коммутаторами 
Они оба предназначены для L1-обнаружения, а не L2, как хочет автор.

Они оба предназначены для L1-обнаружения, а не L2, как хочет автор.
Почему SNMP broadcast - это для чего-то другого?ну типа нужно ставить IP-адреса на все устройства?
LLDP и CDP не коммутируются уважающими себя коммутаторамиЭто да, но если у него топология соответствующая, то может и подойдёт.
Они оба предназначены для L1-обнаружения, а не L2, как хочет автор.
Ещё можно multicast-адрес "повесить", наверное, и на пинги отвечать.
Я сомневаюсь, что он собирается изобретать для общения с этими устройствами свой собственный протокол 3 уровня.
Хотя если устройства пассивные, то адрес по DHCP они словить не смогут, да и IPv6 RA обработать тоже.
Хотя если устройства пассивные, то адрес по DHCP они словить не смогут, да и IPv6 RA обработать тоже.
Ещё можно multicast-адрес "повесить", наверное, и на пинги отвечать.В IPv6 по умолчанию вроде как ff02::1 (All nodes on the local network segment) должен отзываться. В IPv4 224.0.0.1 для этих целей тоже есть, но там вроде оно появляется, если включен какой-нибудь ещё мультикаст-адрес, если правильно помню.
Ещё есть какие-то SLP и SSDP.
ну типа нужно ставить IP-адреса на все устройства?IP-адрес есть на каждом устройстве, но возможен вариант, когда он не принадлежит местной подсети
Маршрутизация и открытый порт SNMP не решают?
IP-адрес есть на каждом устройстве, но возможен вариант, когда он не принадлежать местной подсети
В идеале для мониторинга и управления сеть должна быть отделенна от основной и независима от основной.
Маршрутизация и открытый порт SNMP не решают?это - сведение задачи к более сложной, учитывая, что бродкасты обычно не маршрутизируются
IP-адрес есть на каждом устройстве, но возможен вариант, когда он не принадлежит местной подсетиВ этом предложении речь идет о том, что устройство ошибочно имеет адрес не из "правильной" сети (притащили из другого места, забыли перенастроить) или специально подключено к другому L2-сегменту сети?
первый вариант - притащили из другого места или забыли перенастроить
Ну тогда броадкаст SNMP с 255.255.255.255 на 255.255.255.255 должен сработать нормально.
могут пострадать невиновные
А насколько глубоко доступен сетевой стек на устройствах для ковыряния? Не нужно ли плясать от этого?
каким это образом?
А насколько глубоко доступен сетевой стек на устройствах для ковыряния?на устройствах недо-linux. поэтому с одной стороны можно поковырять что хочешь, а с другой стороны - сильно менять стандартный функционал не хочется, потому что это усложняет портирование и создает проблемы в работе ПО.
на устройствах недо-linuxipv6 включен? Тогда как я уже говорил:
ping6 ff02::1%eth0
ipv6 включен? Тогда как я уже говорил:нет, не включен. нафиг он там? админы с ним всё равно работать не умеют.
нафиг он там?Хотя бы для того, чтобы можно было сделать как я написал.

админы с ним всё равно работать не умеют.А им и не надо ничего делать. link-local адреса сами настроятся, а тебе больше ничего не надо.
link-local адреса сами настроятся, а тебе больше ничего не надо.получу я ip6 адреса и что с ними дальше делать?
это же надо каждую прогу проверить, что она корректно работает с ip6 и каждому пользователю объяснить, что такое ip6, как с ним работать, и как из него получить нормальный ip4.
Почему SNMP broadcast - это для чего-то другого?спасибо. пока на нем и остановился.
ps
когда смотрел snmp, то увидел там только сбор значений, а discovery сходу не увидел
получу я ip6 адреса и что с ними дальше делать?Ну ты узнаешь, что устройство в сети есть. Вопрос ведь так стоял.

Можно ещё MAC узнать из аналога ARP-таблицы.
это же надо каждую прогу проверить, что она корректно работает с ip6 и каждому пользователю объяснить, что такое ip6, как с ним работать, и как из него получить нормальный ip4.Т.е. тебе нужно IP-адрес узнать, а не просто обнаружить ethernet-устройство?
Ну в общем для IPv4 тоже можно 224.0.0.1 попингать. Но у меня, например, по умолчанию стоит net.ipv4.icmp_echo_ignore_broadcasts = 1, и оно не отвечает на такие запросы. Но если это можно выключить или другие умолчания, то можно пользоваться.
Ну или в сторону всяких service location / zeroconf смотреть, если что посложнее надо.
Ну тогда броадкаст SNMP с 255.255.255.255 на 255.255.255.255 должен сработать нормально.reverse path фильтры всякие такое не фильтруют, кстати?
> каким это образом?
ну не ожидают увидеть пакет от 255.255.255.255
индусы, которые писали прошивку, могли не обработать такой случай
или обработать каким-нибудь странным образом
ну не ожидают увидеть пакет от 255.255.255.255
индусы, которые писали прошивку, могли не обработать такой случай
или обработать каким-нибудь странным образом
> индусы, которые писали прошивку, могли не обработать такой случай
> или обработать каким-нибудь странным образом
Имею опыт работы с такими индусами.
Индусы даже не представляют себе, что такое может быть.
---
"Мы диалектику учили не по Гегелю,
Бряцанием боёв она врывалась в стих..."
> или обработать каким-нибудь странным образом
Имею опыт работы с такими индусами.
Индусы даже не представляют себе, что такое может быть.
---
"Мы диалектику учили не по Гегелю,
Бряцанием боёв она врывалась в стих..."
Оставить комментарий
Dasar
Есть самодельные устройства, подключаемые по ethernet.Хочется автоматически обнаруживать их наличие в сети через какой-нибудь стандартный протокол.
Какие стандартные протоколы есть для этого?
Достаточно обнаружения внутри одного сегмента. Устройства должны быть пассивными (т.е. по своей инициативе вещать ничего не должны, а должны отвечать только при наличие запроса).
Можно, конечно, просто сделать свой broadcast запрос, но хочется чего-нибудь стандартного.