Многоадресная рассылка (mDNS) для Linux Server

Фон:

Я использую сервер Linux в локальной сети, которая работает как веб-сервер и центральный коммуникационный сервер. Этот сервер связывается с несколькими узлами в системе. После инициализации узла узел отправляет свой IP-адрес на центральный коммуникационный сервер. Однако для того, чтобы узнать пункт назначения, куда отправлять этот IP-адрес, узлу необходимо знать IP-адрес сервера. Чтобы разрешить сервер, я был направлен на использование mDNS.

Похоже, что установка avahi на сервере включает многоадресную рассылку для сервера Linux.

sudo apt-get install avahi-daemon

Затем имя хоста сервера можно изменить на то, где многоадресная рассылка разрешит IP-адрес сервера в

hostname.local

Вопрос 1:

Должны ли узлы также иметь установленный демон avahi, чтобы эта схема работала? Если это так, есть ли способ обойти это или включить многоадресную передачу для узлов другим способом. Я сомневаюсь, так как не уверен, что у микроконтроллера есть возможность установить этот демон, поскольку ESP8226 используется в качестве модуля WiFi. (Я знаю, что ESP8226 поддерживает mDNS, я просто не знаю, как именно).

Вопрос 2:

Если пользователь пытается получить доступ к странице на веб-сервере, могут ли они просто ввести имя mDNS в браузер для выдачи запроса? Или им также нужно установить avahi-daemon? Если это компьютер с Windows, пытающийся получить доступ к приложению, я не могу гарантировать, что у них будет встроена эта функциональность. Опять же, если это требуется, есть ли способ обойтись без наличия демона?

Обновление: ESP8226 поддерживает mDNS, однако клиентский mDNS не встроен. Однако здесь есть клиентская библиотека mDNS для ESP8226: https://github.com/mrdunk/esp8266_mdns

1 ответ

Вопрос 1: К сожалению, для использования mDNS вам нужно установить avahi или bonjour (win / mac). Удачи в компиляции avahi для микроконтроллера! Я никогда не использовал mDNS с Wi-Fi, но это действительно очень обычный многоадресный трафик.

Вопрос 2: Вы можете использовать имя mDNS для http, avahi полностью интегрирует его с DNS. Я фактически использовал это, чтобы загрузить акции NFS. Помните, что если вы используете vhosts, добавьте hostname.local в качестве псевдонима для vhost или чего-то еще.

Если эти контроллеры подключаются к бизнес-сети, "центральный коммуникационный сервер" должен иметь возможность управлять локальным ИТ-отделом (по крайней мере, статический IP-адрес). Так что скажите им, что вам нужна запись A для "centralcommsserver" или чего угодно, а затем позвольте вашему контроллеру искать centralcommsserver.

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