zeroconf (bonjour) назначает IP-адреса (.NET)

Я нахожусь на Windows, и я хочу написать инструмент.NET, который дает IP (с Zeroconf) для встроенных устройств в сети.

Я знаком с программированием, но плохо знаком с сетью zeroconf.

Поэтому я задался вопросом, должен ли демон запускаться на каждом встроенном устройстве, которое будет обнаружено? Устройства не имеют Windows или Linux, BS - это Bios и прошивка на C (поддерживается dhcp). Или я могу просто запустить хост с помощью инструмента ZeroConf, который обнаруживает подключенные устройства?

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

В конце концов, я попробовал некоторые учебники по обнаружению сервисов (но я полагаю, что мне это не нужно для назначения IP-адресов?) От Mono.Zeroconf и Codeplex Bonjour, но у меня начались проблемы с ними. (Необходимый демон может не работать) Также я опробовал.NET Wrapper для zeroconf, но также не смог начать работу с ним.

Можете ли вы помочь мне с Zeroconf на Windows?

1 ответ

Решение

Весь смысл ZeroConf, "Сеть с нулевой конфигурацией", заключается в том, что вашим сетевым устройствам требуется нулевая конфигурация (то есть вообще никакой конфигурации) от людей или других серверов в сети.

В вашем сценарии ZeroConf позволяет каждому из ваших встроенных устройств выбрать для себя IP-адрес. Без помощи какого-либо серверного процесса Windows .NET, потому что если бы их нужно было настраивать с помощью чего-то другого, это не был бы "ZeroConf". Выбор собственного IP-адреса официально называется "IPv4 link-local адресация", и как это сделать, определено в RFC 3927. Microsoft называет это "APIPA".

Если вы хотите, чтобы имя хоста ZeroConf (без сервера) сопоставлялось с адресом, вы выполняете многоадресный DNS (mDNS) на каждом из ваших встроенных устройств (и на хосте, который должен находить сопоставления от имен к адресам).

Если вы хотите, чтобы служба ZeroConf (без сервера) объявляла и просматривала службы, вы выполняете Обнаружение службы DNS (DNS-SD) на каждом из ваших встроенных устройств (и на хосте, который должен просматривать эти службы).

Windows уже имеет встроенную поддержку локальной адресации IPv4, но они не делали mDNS и DNS-SD так же, как Apple; они сделали что-то похожее, но несовместимое под названием LLMNR. Если вам нужен настоящий стек IETF ZeroConf для Windows, Apple публикует Bonjour для Windows (очевидно, теперь этот пакет называется "Bonjour Print Services для Windows", но это все еще программное обеспечение Bonjour mDNSResponder ZeroConf).

Другие вопросы по тегам