Ist es möglich, über seinen Hostnamen eine Verbindung zu einem Gerät herzustellen?

7

Ich erstelle ein kleines Gerät unter Linux mit einem Webserver. Ich möchte, dass es Plug-and-Play ist, eine Verbindung zu einem Netzwerk herstellt und unter einem abstrakten Namen darauf zugreift.

Ist es möglich, nur mit seinem Hostnamen auf ein Gerät zuzugreifen?

Matroska
quelle

Antworten:

11

In einigen Netzwerken - ja. Aber auf Ihrem täglichen TCP / IP - Netzwerk, der Hostname muss eine IP - Adresse übersetzbar sein, sonst Kunden nicht wissen , was zu verbinden.

Es gibt jedoch mehrere vorhandene Protokolle für die Suche nach lokalen Namen:

  • Windows verwendet traditionell NetBIOS-Namensdienste zum Auflösen von Hostnamen anderer Computer im selben LAN mithilfe von UDP-Broadcasts. Ihr Server muss die nmbdSamba-Komponente ausführen , damit sie mit NetBIOS erkannt werden kann.

    Neuere Windows-Versionen unterstützen auch LLMNR , das mDNS ähnelt, jedoch weniger Funktionen bietet und IPv6 erfordert. Unter Linux systemd-resolvedwird ein LLMNR-Client vorhanden sein. Keine Ahnung von anderen Betriebssystemen. Wahrscheinlich nicht erwägenswert.

    Die neuesten Versionen von Windows 10 unterstützen auch mDNS.

  • OS X verwendet mDNS ("Multicast-DNS"), manchmal auch als Bonjour bekannt, für die gleichen Zwecke. (Beachten Sie, dass mDNS im Allgemeinen keine bloßen Hostnamen wie NetBIOS auflöst. Stattdessen ist es auf die .localDomäne beschränkt.) Für mDNS benötigt Ihr Server avahi-daemon.

    Neuere Windows 10.19xx verfügen über eine integrierte mDNS-Unterstützung (sind jedoch deaktiviert). Ältere Windows-Versionen können mDNS-Namen auflösen, wenn Bonjour installiert ist (normalerweise als Teil von iTunes), und OS X sollte NetBIOS unterstützen, wenn "Windows-Dateifreigabe" oder ein ähnlicher Dienst aktiviert ist.

  • Desktop-orientierte Linux-Systeme verfügen häufig über vorkonfigurierte NetBIOS- und mDNS-Resolver. (Das heißt, sie führen beide nmbdund avahi-daemonsowie die entsprechenden glibc-NSS-Module aus /etc/nsswitch.conf.)

  • Schließlich hält die meisten „Home - Router“ eine lokale DNS - Domäne ( .lan, .homeu. A. ) nach Host - Namen erhalten sie von DHCP - Anfragen von Rechnern im LAN gesendet. Je nachdem, was Ihr Server verwendet, dhcpcdbenötigt er die hostnameOption " ", während er dhclient" send host-name = gethostname()" verwendet.

user1686
quelle