Frage Hostnamen - Worum geht es?


Ich bin kürzlich dazu gezwungen worden, etwas Systemadministrator-Arbeit zu leisten, während das ist nicht etwas, das ich absolut liebe, ich habe gelesen, experimentiert und viel gelernt.

Es gibt einen grundlegenden Aspekt der Serverkonfiguration, den ich nicht erfassen konnte - Hostnamen.

In Ubuntu zum Beispiel sollte man den Hostnamen so einstellen (laut Linode-Bibliothek):

echo "plato" > /etc/hostname
hostname -F /etc/hostname

Datei: / etc / hosts

127.0.0.1        localhost.localdomain        localhost
12.34.56.78      plato.example.com            plato

ich nehme an, dass plato ist ein beliebiger Name und das plato.example.com ist der FQDN.

Jetzt sind meine Fragen:

  • Ist es obligatorisch?
  • Zu welchem ​​Zweck?
  • Wo wird es gebraucht / gebraucht?
  • Warum kann ich nicht "localhost" als Hostnamen für jede Maschine definieren?
  • Muss ich einen DNS-Eintrag für die plato.example.com FQDN?
  • Sollte plato.example.com als umgekehrter DNS-Eintrag für meine IP verwendet werden?

Gibt es auch "Best Practices" für die Auswahl von Hostnamen? Ich habe Leute gesehen, die griechische Buchstaben, Planetennamen und sogar mythologische Figuren benutzten ... Was passiert, wenn uns die Buchstaben / Planeten ausgehen?

Es tut mir leid, wenn das eine dumme Frage ist, aber ich war noch nie so begeistert von Netzwerkkonfigurationen.


49
2018-01-28 13:10


Ursprung


Ich denke, Chris S ist hier nicht zu Hause. Die Frage - was ist ein System-Hostname und in welcher Beziehung steht er zu DNS - ist ein gültiger. - larsks
@ Chris S: Ich verstehe, glaub mir. Ich versuchte es einmal zu lesen, aber das Ganze strich mich unglaublich verwirrend. Ich strebe nicht danach, eine SA zu sein, ich versuche nur, die Grundlagen ein wenig besser zu verstehen. - Alix Axel
Dies sollte zum Community-Wiki gehen - lynxman
@lynxman: Das stört mich nicht, aber warum? - Alix Axel
Weil es sehr interessant ist :) - lynxman


Antworten:


Heutzutage kann ein System mehrere Schnittstellen mit jeweils mehreren Adressen haben, und jeder Adresse können sogar mehrere DNS-Einträge zugeordnet sein. Was bedeutet ein "System-Hostname"?

Viele Anwendungen verwenden den Hostnamen des Systems als Standard-ID, wenn sie an anderer Stelle kommunizieren. Wenn Sie beispielsweise Syslog-Nachrichten auf einem zentralen Server erfassen, werden alle Nachrichten mit dem Hostnamen des ursprünglichen Systems markiert. In einer idealen Welt würden Sie dies wahrscheinlich ignorieren (weil Sie dem Client nicht unbedingt vertrauen wollen), aber das Standardverhalten - wenn Sie all Ihre Systeme "localhost" nennen würden - würde zu einer Menge von Protokollnachrichten führen, die Sie wäre nicht in der Lage, mit einem bestimmten System zu assoziieren.

Wie andere Leute darauf hingewiesen haben, ist der Hostname des Systems auch eine nützliche Kennung, wenn Sie feststellen, dass Sie remote auf eine Systemnummer zugreifen. Wenn Sie fünf Fenster an ein System mit dem Namen "localhost" angeschlossen haben, werden Sie es schwer haben, sie aufrecht zu erhalten.

In ähnlicher Weise versuchen wir, den Hostnamen des Systems mit dem Hostnamen übereinzustimmen, den wir für den administrativen Zugriff auf ein System verwenden. Dies hilft, Verwirrung zu vermeiden, wenn auf das System Bezug genommen wird (in E-Mails, Konversationen, Dokumentationen usw.).

In Bezug auf DNS:

Sie möchten ordnungsgemäße DNS-Einträge für die Vorwärts- und Rückwärtssuche für Ihre Anwendungen haben, um Verwechslungen zu vermeiden. Du brauchst etwas Eintrag weiterleiten (Name -> IP-Adresse), damit Personen bequem auf Ihre Anwendung zugreifen können. Das Reverse-Entry-Match ist aus mehreren Gründen sinnvoll - zum Beispiel hilft es Ihnen, die Anwendung richtig zu identifizieren, wenn Sie die entsprechende IP-Adresse in einem Protokoll finden.

Beachten Sie, dass ich hier von "Anwendungen" und nicht von "Systemen" spreche, weil - insbesondere bei Webservern - mehrere IP-Adressen auf einem System vorhanden sind, die mit verschiedenen Hostnamen und Diensten verknüpft sind.

Versuchen, Name zu IP-Mappings in Ihrem zu behalten /etc/hosts Datei wird schnell schwierig, da Sie eine zunehmende Anzahl von Systemen verwalten. Es ist sehr einfach für die lokale Hosts-Datei, in Bezug auf DNS nicht mehr synchron zu sein, was möglicherweise zu Verwirrung und in einigen Fällen zu Fehlfunktionen führt (weil etwas versucht, an eine IP-Adresse zu binden, die beispielsweise nicht mehr auf dem System vorhanden ist).


26
2018-01-28 13:33



Vielen Dank für Ihre Antwort. Ich bin immer noch verwirrt, wenn ich die Datei / etc / hosts verwalten sollte (oder muss), anstatt mich nur auf die DNS-Einträge zu verlassen. - Alix Axel
Ich ignoriere generell /etc/hosts zugunsten von DNS. Dies reduziert die Anzahl der Stellen, an denen Informationen über Name -> Adresszuordnung gepflegt werden müssen. Auf dem Großteil der Systeme, die ich pflege, /etc/hosts enthält nur den einzelnen Eintrag für localhost. - larsks
Wenn Sie mit Clustern arbeiten - wie Ganeti oder einem Linux-HA / Corosync-Cluster - wird / etc / hosts verwendet, um unter den Mitgliedern des Clusters zu sprechen. Es ist schlecht, wenn man sich ausschließlich auf DNS verlässt, da sich der DNS-Dienst auf diesen Clustern befindet und während einer Knotenänderung migriert oder offline ist, so dass / etc / hosts und ein korrekter Hostname Ihnen viel Spaß machen. - coredump
In Bezug auf "einzigartig" versuchen wir eher "einzigartig" zu sein als "muss" einzigartig sein, richtig? Da es so viele Server gibt und sie sich alle in demselben Umfang befinden, ist es unmöglich, "einzigartig" zu sein. Ist dieses Verständnis korrekt? - shenkwen


Du könntest jeden Hostnamen auf "localhost" setzen, aber es ist sehr praktisch alix@plato ~ $ in Ihrer Eingabeaufforderung, wenn Sie Maschinen über SSH verwalten. Remote-Verwaltung von Servern kann sehr verwirrend werden, wenn Sie dies nicht tun.

Ein korrekter FQDN ist wichtig, wenn Sie einen Webserver oder einen Mail-Server hosten. Diese Art von Server-Anwendungen wissen gerne, "wen" sie laufen.

Um ein gutes Benennungsschema zu wählen, verweise ich auf Sie diese sehr beliebte Frage .

Ein FQDN wird nur nützlich, wenn es für einen anderen Computer sinnvoll ist. Es gibt drei Ebenen:

  • Ein Computer in Ihrem lokalen Netzwerk hat einen Eintrag in seiner Host-Datei, die auf diesen Computer verweist
  • Sie haben einen DNS-Server, der in Ihrem lokalen Netzwerk ausgeführt wird, und jeder lokale Computer, der es als DNS-Server verwendet, kennt nun Plato mit Namen.
  • Sie registrieren einen Domain-Namen und jetzt weiß die ganze Welt, auf welchen Rechner der Name plato.alixaxel.com zeigt.

Wenn Sie E-Mails versenden oder Webseiten an die Außenwelt senden, ist die dritte die, die Sie haben möchten. In den meisten anderen Fällen können Sie mit einem lokalen DNS oder sogar mit dem Bearbeiten von Hosts-Dateien auskommen.

In diesem Fall können Sie einfach einen Domänennamen (plato.alixnetwork kann als FQDN in Ordnung sein) für die Verwendung in Ihrem lokalen Netzwerk erstellen. Der einzige zusätzliche Vorteil des "alixnetwork" -Teils (des Domain-Namens) ist die Bequemlichkeit, wenn Sie ein anderes lokales Netzwerk haben, von dem Sie es unterscheiden möchten.


10
2018-01-28 13:21



Danke Kenny, ich denke, mein Hauptbezweifelt ist, warum es wichtig ist, dass ein Web / Mail-Server einen richtigen FQDN hat. Was macht einen "richtigen" FQDN aus? Soll ich den Hostnamen der Domain einfach voranstellen und auf die öffentliche IP-Adresse verweisen? Ich habe den Eindruck, dass ich A / AAAA DNS-Einträge mit dem Hostnamen erstellen muss, nein? - Alix Axel
Es hängt davon ab, was Sie erreichen möchten. Wenn Sie keine E-Mails senden oder Webseiten mit plato an die Welt liefern, brauchen Sie keinen globalen DNS-Eintrag für diesen Computer zu erstellen. - Kenny Rasschaert
"Sie registrieren einen Domain-Namen und jetzt weiß die ganze Welt, auf welche Maschine der Name plato.alixaxel.com zeigt." - Ich verstehe das nicht. Weiß nicht die ganze Welt, auf welche Maschine der Name plato.alixaxel.com verweist, indem er die DNS-Auflösung von "alixaxel.com" überprüft? Was hat es mit dem Festlegen eines FQDN in einer zufälligen Maschine zu tun? - shenkwen


Ein grundlegender Überblick. Hostname sind nur Zeiger; Sie könnten einen bestimmten Namen dem Hostnamen zuweisen, auf den der Rechner verweist, aber er könnte mehrere haben. Einige Dienste, bemerkenswerte E-Mail und HTTP verlassen sich auf Domänennamen, um zu wissen, wo Dienste lokalisiert werden sollten und wie sie zu ihnen gelangen.

Vor langer Zeit wurden all diese Namen (die wiederum nur Zeiger auf IP-Adressen sind) in einer Datei namens " hosts. Als das System wuchs, waren sie nicht in der Lage, die Datei über alle relevanten Computer synchronisiert zu halten, die an den verschiedenen miteinander verbundenen Netzwerken teilnahmen. Also wurde das DNS-System erfunden. Wenn Sie eine Namenssuche ausführen, überprüft es immer zuerst die Hosts-Datei und dann das DNS-System. Windows kann auch andere Systeme wie WINS oder NetBIOS überprüfen.

Wenn Sie einen Eintrag in eine hosts Datei, Sie ordnen es nicht dem Computer zu. Die Zuweisung eines Hostnamens, wie er vom Computer verwendet wird, erfolgt in den Konfigurationsdateien (on * nix systems) und System Properties in Windows-Systemen (Windows-System kann auch NIC-spezifische Suffixe haben).

Einträge in der hosts Datei, wie das DNS-System, sind nur eine Zuordnung von einem Hostnamen zu einer IP-Adresse. Um den Hostnamen 'localhost' zu verwenden (es gibt nichts besonderes, es ist ein Hostname wie alle anderen), muss er der Loopback-Schnittstelle zugeordnet werden (so dass er immer auf den lokalen Computer zeigt). Damit dies funktioniert, verfügen alle Computer über diese Standardzuordnung in ihren hostsDatei, könnte aber möglicherweise entfernt werden, wenn Sie diesen Hostnamen nicht verwenden möchten.

Wie andere bereits angemerkt haben, ist es sehr nützlich, einem Computer einen Hostnamen zuzuweisen. Wenn Sie mit dem Computer verbunden sind, können Sie den Hostnamen anzeigen lassen, wenn Sie sich anmelden, oder als Eingabeaufforderung oder an einer beliebigen Anzahl anderer Orte. Dies erleichtert die Identifizierung des Computers, mit dem Sie verbunden sind. Wenn Sie diesen Hostnamen in DNS einrichten oder in alle hosts Dateien können Sie eine Verbindung zum Computer herstellen, indem Sie auf seinen Hostnamen verweisen, anstatt die IP-Adresse ständig zu kennen. (Noch nützlicher, wenn der Computer DHCP verwendet, da sich die Adresse ändern könnte. Wenn der Computer DNS aktualisiert, würde der DNS-Eintrag auf die neue IP-Adresse zeigen; Sie könnten trotzdem eine Verbindung herstellen, ohne die neue IP-Adresse zu kennen, da Sie den DNS-Namen kennen ).

Es gibt viele andere Anwendungen von beiden hosts und DNS, aber ich vermute, du hast mehr Fragen als Antworten, wenn du das alles liest.


8
2018-01-28 13:41



+1 für die Zeit, um eine gute Antwort trotz Ihrer anfänglichen Gefühl der Frustration mit der Frage zu schreiben. - Kenny Rasschaert
Tolle Erklärung! Wenn mein Verständnis richtig ist, den FQDN in die /etc/hosts ist nicht notwendig, hätte der Hostname in einem DNS-Eintrag das gleiche Ergebnis, oder? - Alix Axel
@ Alix, korrigieren, wenn der Eintrag in DNS ist (und DNS funktioniert ordnungsgemäß) und dann in der hosts Datei wäre überflüssig. Auch der Eintrag in der hosts Datei würde DNS überschreiben (nützlich für das Testen manchmal, ärgerlich, wenn Sie es vergessen). Beachten Sie, dass dies alles in Bezug auf A- und AAAA-Datensätze ist, es gibt andere Arten von Datensätzen für Hostnamen, aber ich habe sie aus Gründen der Übersichtlichkeit weggelassen. - Chris S
Danke Chris, das macht alles viel klarer. - Alix Axel


Jedem Wirt sollte ein aussagekräftiger Name gegeben werden. Der Hostname kann mehrere Zwecke erfüllen:

1- Es hilft Ihnen zu erkennen, an dem Sie gerade arbeiten.

2- Verwenden von Namen, die in konfiguriert sind /etc/hosts und / oder DNS-Aufzeichnungen ist einfacher als das Auswendiglernen vieler IP-Adressen.

3- Localhost ist ein reservierter Name für den aktuellen Rechner (Adresse 127.0.0.1).

4- DNS-Einträge sind nützlich, um Ihre Server öffentlich zugänglich zu machen.

Die Auswahl eines geeigneten Namens für jeden Server hilft Ihnen bei Ihrer Verwaltung. Außerdem hilft es Ihren Clients beim Zugriff auf Ihre Server.


5
2018-01-28 13:19





Nur als Randnotiz: Richtiges Vorwärts- und Rückwärts-Arbeiten Die DNS-Auflösung ist der absolute Eckpfeiler jeder IT-Installation auf diesem Planeten. Unterschätze niemals die Notwendigkeit einer gut gepflegten DNS und korrekten Hostnamenauflösung!


2
2018-01-28 13:40



Ich kann nicht verstehen, warum es wichtig ist. Ich habe einen Linode-Server, der viele Websites hostet. Ich verstehe den Zweck der Einstellung Hostname nicht, ich lasse es so wie es ist, was "Ubuntu" ist. Dieser Server läuft seit ein paar Jahren und ich habe keinerlei Probleme. Ich stelle deine Antwort nicht in Frage, ich versuche nur zu verstehen, warum der Hostname wichtig ist. Wann würde ich mir wünschen, dass ich einen Hostnamen richtig gesetzt hätte? - shenkwen
@Shenkwen - wenn du ehrlich gesagt nur einen Server hast, kannst du es nennen, was immer dein Herz begehrt, und das ist natürlich egal. Sobald die Anzahl der Server größer als 1 ist, müssen Sie neue Probleme lösen, und die korrekte Benennung ist ein wichtiges Werkzeug. - mfinni


Haftungsausschluss: Die Hauptfrage bezieht sich auf Linux-Systeme. Wenn Sie also nicht an der Windows-Seite des Problems interessiert sind, können Sie diese Antwort ignorieren.

Wie auch immer, in Windows-Systemen wird der Hostname abgesehen von allen in anderen Antworten erwähnten Punkten tatsächlich von der O.S. selbst, für Netzwerk- und Authentifizierungszwecke; speziell:

  • Jedes System, sei es ein Domänenmitglied oder kein Domänenmitglied, muss einen eindeutigen Namen haben im selben Netzwerk (d. h. im selben IP-Subnetz), andernfalls wird ein Namenskonflikt auftreten und verschiedene Netzwerkdienste (hauptsächlich Datei- und Druckerfreigabe) werden nicht funktionieren.
  • Alle Systeme, die Mitglieder derselben Active Directory-Domäne sind, müssen unabhängig von den Netzwerkgrenzen einen eindeutigen Namen haben.
  • In einer Domänenumgebung fungiert der Hostname eines Systems als Sicherheitsprinzipal und kann für die Remoteauthentifizierung verwendet werden (denken Sie einfach daran als Benutzerkonto für die Maschine); Es kann Berechtigungen und Zugriffsrechte zugewiesen werden und kann zu Sicherheitszwecken in Gruppen angeordnet werden. Dies wirkt sich auf alle Prozesse aus, die mit dem integrierten System ausgeführt werden LocalSystem und NetworkService Benutzerkonten, die sich unter Verwendung der Anmeldeinformationen des Systems, auf dem sie ausgeführt werden, bei anderen Systemen authentifizieren können; dies ermöglicht z.B. ein Prozess läuft als NetworkServiceauf SystemA, um auf einen freigegebenen Ordner auf SystemB zuzugreifen, indem dem Benutzerkonto von SystemA Berechtigungen für den Ordner erteilt werden.

1
2017-10-14 14:22





Viele Sites und / oder vermeintliche "Admins" geben nun an, dass das Attribut 'hostname' den FQDN der OS-Instanz enthält, der jede Auflösung "bricht", an die der 'domainname' angehängt wird:

Hostname
  system1.domain1.org

Klingeln hostname
  - kann system1.domain1.org.domain1.org nicht auflösen


-1
2017-12-02 00:16



Können Sie eine Referenzquelle für Ihre Aussage bereitstellen? - Dave M