Ich war kürzlich "gezwungen", eine Sysadmin-Arbeit zu verrichten, aber das ist nichts, was ich absolut liebe. Ich habe viel gelesen, experimentiert und gelernt.
Es gibt einen grundlegenden Aspekt der Serverkonfiguration, den ich nicht erfassen konnte - Hostnamen .
In Ubuntu sollte man zum Beispiel den Hostnamen so einstellen (gemäß der Linode Library ):
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, das 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?
- Warum kann ich nicht für jeden Rechner "localhost" als Hostnamen definieren?
- Muss ich einen DNS-Eintrag für den
plato.example.com
FQDN einrichten ? - 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 verwendeten ... Was passiert, wenn wir keine Buchstaben / Planeten mehr haben?
Es tut mir leid, wenn dies eine dumme Frage ist, aber ich war noch nie zu begeistert von Netzwerkkonfigurationen.
quelle
Antworten:
Heutzutage verfügt ein System möglicherweise über mehrere Schnittstellen mit jeweils mehreren Adressen, und mit jeder Adresse können sogar mehrere DNS-Einträge verknüpft sein. Was bedeutet ein "System-Hostname" überhaupt?
Viele Anwendungen verwenden den Systemhostnamen als Standardkennung, wenn sie an anderer Stelle kommunizieren. Wenn Sie beispielsweise Syslog-Nachrichten auf einem zentralen Server sammeln, werden alle Nachrichten mit dem Hostnamen des Ursprungssystems gekennzeichnet. In einer idealen Welt würden Sie dies wahrscheinlich ignorieren (weil Sie dem Client nicht unbedingt vertrauen möchten), aber das Standardverhalten - wenn Sie alle Ihre Systeme als "localhost" bezeichnen - würde zu einer Reihe von Protokollmeldungen führen, die Sie erhalten würde nicht in der Lage sein, mit einem bestimmten System zu assoziieren.
Wie andere Leute bereits betont haben, ist der System-Hostname auch eine nützliche Kennung, wenn Sie aus der Ferne auf eine Reihe von Systemen zugreifen. Wenn Sie fünf Fenster an ein System mit dem Namen "localhost" angeschlossen haben, fällt es Ihnen schwer, sie gerade zu halten.
In ähnlicher Weise versuchen wir, den Hostnamen des Systems mit dem Hostnamen abzugleichen, den wir für den Administratorzugriff auf ein System verwenden. Dies vermeidet Verwechslungen beim Verweisen auf das System (in E-Mails, Gesprächen, Dokumentationen usw.).
In Bezug auf DNS:
Sie möchten für Ihre Anwendungen korrekte DNS-Einträge in Vorwärts- und Rückwärtsrichtung haben, um Verwirrung zu vermeiden. Sie benötigen eine Weiterleitung (Name -> IP-Adresse), damit Benutzer bequem auf Ihre Anwendung zugreifen können. Die umgekehrte Eingabe ist aus mehreren Gründen hilfreich. Beispielsweise können Sie die Anwendung besser identifizieren, wenn Sie die entsprechende IP-Adresse in einem Protokoll finden.
Beachten Sie, dass ich hier von "Anwendungen" und nicht von "Systemen" spreche, da es - insbesondere bei Webservern - üblich ist, mehrere IP-Adressen auf einem System zu haben, die unterschiedlichen Hostnamen und Diensten zugeordnet sind.
Der Versuch, die Zuordnungen von Namen zu IP-Adressen in Ihrer
/etc/hosts
Datei beizubehalten, wird schnell schwierig, da Sie eine zunehmende Anzahl von Systemen verwalten. Es ist sehr einfach, dass die lokale Hosts-Datei in Bezug auf DNS nicht mehr synchron ist, was zu Verwirrung und in einigen Fällen zu Fehlfunktionen führen kann (z. B. weil versucht wird, eine Bindung an eine IP-Adresse herzustellen, die auf dem System nicht mehr vorhanden ist).quelle
/etc/hosts
im Allgemeinen zugunsten von DNS. Dies reduziert die Anzahl der Stellen, an denen Informationen zur Zuordnung von Name -> Adresse gespeichert werden müssen. Auf dem Großteil der Systeme, die ich pflege,/etc/hosts
enthält nur der einzelne Eintrag fürlocalhost
.Sie könnten jeden Hostnamen auf "localhost" setzen, aber es ist sehr praktisch, ihn
alix@plato ~ $
in der Eingabeaufforderung zu haben, wenn Sie Computer über ssh verwalten. Wenn Sie dies nicht tun, kann die Remoteverwaltung von Servern sehr verwirrend werden.Ein korrekter FQDN ist wichtig, wenn Sie einen Webserver oder einen Mailserver hosten. Solche Serveranwendungen möchten wissen, auf wem sie ausgeführt werden.
Um ein gutes Benennungsschema zu wählen, verweise ich Sie auf diese sehr beliebte Frage .
Ein vollqualifizierter Domänenname wird nur dann nützlich, wenn er für einen anderen Computer von Bedeutung ist. Hierfür gibt es drei Ebenen:
Wenn Sie E-Mails senden oder Webseiten nach außen senden, ist die dritte Welt diejenige, die Sie haben möchten. In den meisten anderen Fällen können Sie mit einem lokalen DNS auskommen oder sogar Hosts-Dateien bearbeiten.
In diesem Fall können Sie einfach einen Domainnamen (plato.alixnetwork kann als vollqualifizierter Domänenname in Frage kommen) für die Verwendung in Ihrem lokalen Netzwerk erstellen. Der einzige Mehrwert des "alixnetwork" -Teils (des Domainnamens) ist die Benutzerfreundlichkeit, wenn Sie ein anderes lokales Netzwerk haben, von dem Sie es unterscheiden möchten.
quelle
Eine grundlegende Übersicht. Hostname sind nur Zeiger; Sie können einen bestimmten Hostnamen als Hostnamen zuweisen, auf den der Computer verweist, es können jedoch auch mehrere Hostnamen vorhanden sein. Einige Dienste, insbesondere E-Mail und HTTP, sind auf Domänennamen angewiesen, um zu wissen, wo sich die Dienste befinden und wie sie zu ihnen gelangen.
Vor langer Zeit wurden all diese Namen (die wiederum nur auf IP-Adressen verweisen) in einer Datei namens verfolgt
hosts
. Als das System wuchs, war es ihnen nicht möglich, die Datei auf allen relevanten Computern, die an den verschiedenen miteinander verbundenen Netzwerken beteiligt waren, synchron zu halten. So wurde das DNS-System erfunden. Wenn Sie eine Namenssuche durchführen, wird immer noch zuerst die Hosts-Datei und dann das DNS-System überprüft. Windows überprüft möglicherweise auch andere Systeme wie WINS oder NetBIOS.Wenn Sie einen Eintrag in eine
hosts
Datei einfügen, weisen Sie ihn nicht dem Computer zu. Das Zuweisen eines Hostnamens wie vom Computer verwendet erfolgt in den Konfigurationsdateien (auf * nix-Systemen) und in den Systemeigenschaften in Windows-Systemen (Windows-Systeme können auch NIC-spezifische Suffixe haben).Einträge in der
hosts
Datei sind wie das DNS-System nur eine Zuordnung von einem Hostnamen zu einer IP-Adresse. Um den Hostnamen 'localhost' zu verwenden (es ist nichts Besonderes daran, es ist ein Hostname wie alle anderen), muss er der Loopback-Schnittstelle zugeordnet werden (sodass er immer auf den lokalen Computer verweist). Damit dies funktioniert, haben alle Computer diese Standardzuordnung in ihrerhosts
Datei. Sie kann jedoch möglicherweise entfernt werden, wenn Sie diesen Hostnamen nicht verwenden möchten.Wie andere angemerkt haben, ist es außerdem sehr nützlich, einem Computer einen Hostnamen zuzuweisen. Wenn eine Verbindung zum Computer besteht, kann der Hostname beim Anmelden, als Eingabeaufforderung oder an einer beliebigen anderen Stelle angezeigt werden. Dies erleichtert die Identifizierung des Computers, mit dem Sie verbunden sind. Wenn Sie diesen Hostnamen in DNS einrichten oder in alle
hosts
Dateien einfügen, können Sie eine Verbindung zum Computer herstellen, indem Sie auf seinen Hostnamen verweisen, anstatt ständig seine IP-Adresse kennen zu müssen. (Noch nützlicher, wenn der Computer DHCP verwendet, da sich die Adresse ändern kann. Wenn der Computer DNS aktualisiert, zeigt der DNS-Eintrag auf die neue IP-Adresse. Sie können dennoch eine Verbindung herstellen, ohne die neue IP-Adresse zu kennen, da Sie den DNS-Namen kennen ).Es gibt viele andere Verwendungsmöglichkeiten für beide
hosts
und DNS, aber ich vermute, Sie haben mehr Fragen als Antworten, wenn Sie all dies lesen.quelle
/etc/hosts
es nicht erforderlich, den FQDN in das Feld zu setzen. Wenn der Hostname in einem DNS-Eintrag enthalten ist, wird das gleiche Ergebnis erzielt, oder?hosts
überflüssig , ihn in der Datei zu haben. Auch der Eintrag in derhosts
Datei würde DNS überschreiben (nützlich zum Testen manchmal, ärgerlich, wenn Sie es aber vergessen). Beachten Sie, dass dies alles in Bezug auf A- und AAAA-Datensätze gilt. Es gibt andere Arten von Datensätzen für Hostnamen, aber ich habe sie aus Gründen der Klarheit weggelassen.Jeder Host sollte einen aussagekräftigen Namen erhalten. Der Hostname kann mehrere Zwecke erfüllen:
1- Es hilft Ihnen zu erkennen, an welcher Stelle Sie gerade arbeiten.
2- Die Verwendung von in
/etc/hosts
und / oder DNS-Einträgen konfigurierten Namen ist einfacher als das Speichern vieler IP-Adressen.3- Localhost ist ein reservierter Name für den aktuellen Computer (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 erleichtert Ihnen die Verwaltung erheblich. Außerdem hilft es Ihren Kunden, auf Ihre Server zuzugreifen.
quelle
Nur als Randnotiz: Die ordnungsgemäße Vorwärts- und Rückwärtsauflösung von DNS ist der absolute Eckpfeiler jeder IT-Installation auf diesem Planeten. Unterschätzen Sie niemals die Notwendigkeit eines gut gepflegten DNS und einer korrekten Auflösung von Hostnamen!
quelle
Haftungsausschluss: Die Hauptfrage bezieht sich auf Linux-Systeme. Wenn Sie sich nicht für die Windows-Seite des Problems interessieren, können Sie diese Antwort ignorieren.
Auf jeden Fall wird in Windows-Systemen der Hostname, abgesehen von allen in anderen Antworten genannten Punkten, vom Betriebssystem selbst für Netzwerk- und Authentifizierungszwecke verwendet. speziell:
LocalSystem
undNetworkService
Benutzerkonten ausgeführt werden. Diese können sich bei anderen Systemen mit den Anmeldeinformationen des Systems authentifizieren, auf dem sie ausgeführt werden. Auf diese Weise kann beispielsweise ein Prozess, derNetworkService
auf SystemA ausgeführt wird, auf einen freigegebenen Ordner auf dem System zugreifen, indem dem Benutzerkonto von SystemA Berechtigungen für den Ordner erteilt werden.quelle
Viele Sites und / oder vermeintliche Administratoren geben jetzt an, dass das Attribut "Hostname" den vollqualifizierten Domänennamen der Betriebssysteminstanz enthält, wodurch alle Auflösungen, an die der Domänenname angehängt wird, "unterbrochen" werden:
quelle