
Ich habe einen Server (Debian) mit zwei Netzwerkschnittstellen, auf denen ich mehrere Dienste und Domänen hosten möchte. Mir ist nicht ganz klar, wie die Hosts-Datei eingerichtet werden soll. Beispiel:
eth0, bound to WAN interface 1.2.3.4:
mail.example.com
www.example.com
eth0:1, bound to WAN interface 1.2.3.5:
www.other-domain.com
eth1, bound to LAN 192.168.1.123:
some-clever-hostname
Wie sollte meine Hosts-Datei aussehen? (einschließlich localhost, localhost.localdomain usw.) Sollte ich für einige dieser Einträge DNS verwenden? Für welche?
Danke!
BEARBEITEN: Was wäre, wenn ich beispielsweise in einer Testumgebung keinen DNS-Server nutzen könnte?
Antwort1
Einsetzen undlocalhost
/etc/hostname
127.0.0.1 localhost.localdomain localhost
in /etc/hosts
ist in Ordnung. Die Zuordnungen können in DNS festgelegt werden, und Sie können den Rest explizit festlegen (Apache hat ServerName in virtuellen Hosts konfiguriert usw.).
Antwort2
Multi-Homed-Systeme im Vergleich zu Multi-Domain-Systemen unter Linux (oder Windows oder jedem anderen Rechner, der TCP/IP verwendet) sind zwei völlig unterschiedliche Dinge.
Multi-Domain-Systeme:
Der Server selbst benötigt nur einen Hostnamen und es funktioniert viel besser, wenn es nicht der Name des Webservers ist. Unabhängig davon, ob Sie sich hinter einem NAT-Router befinden, muss dieser auf die öffentliche IP-Adresse verweisen, die den Server identifiziert, nicht auf die private IP-Adresse. Bei mehreren IP-Adressen muss er auf die primäre IP-Adresse des Servers verweisen. Geben Sie dann den angegebenen Hostnamen ein, der im DNS aufgelöst werden soll. Größere Unternehmen haben möglicherweise ein Nummerierungssystem. Server001, Server002, Server003 usw.
12.34.56.78 server001.mydomain.com server001
127.0.0.1 localhost.localdomain.local localhost
Das Hinzufügen von .local zu localhost.localdomain ist nicht erforderlich, aber Voraussetzung für die Einrichtung von Multi-Homed-Systemen. Ich füge es einfach aus Gewohnheit hinzu. Alle anderen Domänen werden bei korrekter Einrichtung über den Webserver abgewickelt. Abgesehen von Webservern ist alles, was benötigt wird, solange die DNS-IP-Adresse auf den Server (E-Mail usw.) verweist. Wenn Sie sich hinter einem NAT-Router befinden, können Sie einen internen Hostnamen mit .local einrichten. Meistens ist dies nicht erforderlich, kann aber einige Probleme auf schwierigeren Systemen lösen.
12.34.56.78 server001.mydomain.com server001
10.0.0.78 server001.mydomain.local server001
127.0.0.1 localhost.localdomain.local localhost
Multi-Homed-Systeme:
Hier haben Sie physisch mehrere Netzwerkkarten, die mit unterschiedlichen Netzwerken verbunden sind. Am häufigsten ist ein öffentliches Netzwerk auf einer Schnittstelle und ein gesichertes privates Netzwerk auf einer anderen Schnittstelle. So können Sie beispielsweise Webdienste auf der öffentlichen Schnittstelle und eine gesicherte Datenbank auf einem separaten Server auf einer privaten Schnittstelle haben. Dies funktioniert ohne die Einrichtung eines Multi-Homed-Systems, löscht aber eine Menge SYN-TIMEOUT-Verbindungen, wenn es stark ausgelastet ist. Nehmen wir also an, wir haben einen Webserver (Server001) auf 12.34.56.50 : 10.0.0.50 und einen internen Datenbankserver (Server002) auf 10.0.0.51. Beide Server müssen in /etc/hosts mit der Direktive .local aufeinander abgebildet werden.
/etc/hosts server001
12.34.56.50 server001.mydomain.com server001
127.0.0.1 localhost.localdomain.local localhost
10.0.0.50 server.001.mydomain.local server001
10.0.0.51 server002.mydomain.local server002
/etc/hosts server002
10.0.0.1 server002.mydomain.local server002
127.0.0.1 localhost.localdomain.local localhost
10.0.0.50 server.001.mydomain.local server001