Warum sollte ich einen vollqualifizierten Domänennamen anstelle der IP-Adresse des Servers verwenden?


29

Bei meiner Arbeit mit Servern bin ich auf Konfigurationsdateien gestoßen, in denen Sie die Adresse eines externen Servers eingeben sollten. Ich habe einige der Server-IP - Adresse direkt verwenden gesehen, aber ich habe viele Empfehlungen zu verwenden , um einen Hostnamen gehört Fully Qualified Domain Name (FQDN) statt. Warum sollte ich anstelle der direkten IP-Adresse einen Hostnamen verwenden?

Wenn Sie einen Hostnamen verwenden, benötigen Sie einen lokalen DNS-Server, der jeden Hostnamen mit einer IP-Adresse verknüpft. Was ist der Nachteil zwischen der Verwendung eines Hostnamens oder einer IP-Adresse?


5
Wenn Sie dynamische IPs haben, ist es wahrscheinlich einfacher, nur den DNS-Eintrag zu ändern. und warum ein lokaler DNS-Server? Warum nicht einfach alle Maschinen mit öffentlich auflösbaren IPs versehen? Ein weiterer Nachteil von IPs ist, dass sie, auch wenn sie nicht dynamisch sind, wahrscheinlich immer noch vom physischen Standort abhängen, was die Migration an einen anderen Standort erschwert. Im Grunde klingt es so, als würden Sie fragen, warum DNS erfunden wurde. Diese Frage wurde an anderer Stelle schon oft beantwortet.
Janus Troelsen

1
Es war schon immer eine Empfehlung (zum Beispiel in RFCs), auf Anwendungsebene nur Hostnamen zu behandeln. Einige Anwendungen funktionieren jedoch nur mit IP. Trotzdem bin ich selbst schuldig, meine Geräte häufig über IP anstelle des Hostnamens zu kontaktieren - aber diese schlechte Angewohnheit wird sicherlich aufhören, sobald wir vollständig auf IPv6 migriert sind :)
Hagen von Eitzen,

Natürlich sichert der externe Server die gesamte Kommunikation mit SSL, und die SSL-Zertifikate werden für den FQDN signiert, und Ihre Anwendung kann den richtigen Server nicht überprüfen, wenn Sie die IP-Adresse verwenden. Recht? : |
TessellatingHeckler

1
@HagenvonEitzen Sicher, dass Sie niemals tippen werden ::1? :-)
ein CVn

Antworten:


54

Durch die Verwendung einer IP-Adresse wird sichergestellt, dass Sie sich nicht auf einen DNS-Server verlassen. Es hat auch den Vorteil, dass Angriffe durch DNS-Spoofing verhindert werden.

Die Verwendung eines vollqualifizierten Domänennamens anstelle einer IP-Adresse bedeutet, dass Sie bei einer Migration Ihres Dienstes auf einen Server mit einer anderen IP-Adresse den Eintrag im DNS einfach ändern können, anstatt zu versuchen, überall festzustellen, wo die IP-Adresse verwendet wird .

Dies ist besonders nützlich, wenn Sie viele Server und Dienste von mehreren Personen konfigurieren lassen.


1
Insbesondere, wenn die Kenntnis dieser IP-Adresse auch extern ist, z. B. wenn Kunden, Partner oder Anbieter sie verwenden. Stellen Sie sich vor, statt stackoverflow.com hätten wir alle eine IP-Adresse verwendet, die wir als stackoverflow.com kannten. Dann mussten wir die IP-Adresse ändern. Wie würden sie jedem möglichen Benutzer der Site mitteilen, dass sich die IP geändert hat? Daher Namen.
Brandon

@Brandon es das gleiche sein würde , als ob sie nun aus stackoverflow.com zu heapunderflow.com Der ursprüngliche Vorteil von Domain - Namen zu ändern entschieden ist für die Menschen daran zu erinnern , stackoverflow.comstatt 151.101.1.69. Natürlich erlaubt das heutzutage auch virtuelles Hosting, Subdomains in Bezug auf ihre Eltern und andere Vorteile, die sich aus ihnen ergeben haben.
Ángel

2
Ich denke, der Kern dieser Antwort ist, dass eine Organisation ihren vollqualifizierten Domänennamen besitzt. darf aber nicht seine IP-Adresse besitzen.
Pieter Geerkens

1
Versuchen Sie, HTTPS / Kerberos über IP oder FQDN auszuführen.
Aron

Dies ist buchstäblich der Zweck von DNS.
Leichtigkeit Rennen mit Monica

40

DNS ist nicht nur FQDN = IP

Das Wichtige an DNS ist, dass es mehr als nur A-Einträge (Hostname = IP) bereitstellt. DNS stellt verschiedene Arten von Einträgen wie MX, CNAME, TXT usw. zur Verfügung, die manchmal von einer bestimmten Software benötigt werden. Es ermöglicht mehrere Adressdatensätze, IPv4 + IPv6-Datensätze, dynamische Adressen, Lastenausgleich, geografische ortsbezogene Auflösung, Failover / Redundanz usw. DNS gibt Aufschluss über den aktuellen Status (www.google.com ist der Google-Webdienst, 172.217) .4.110? Was ist das?) Hiermit können Sie diese Einstellungen / Datensätze ändern und von Clients übernehmen lassen, ohne Änderungen an allen Clients vornehmen zu müssen. DNS kann komplexe Dinge tun.

Es ist oft ein klarer Vorteil, DNS gegenüber einer direkten IP-Adresse zu verwenden.

FQDNs können eine Anforderung sein

Einige Dinge wie Webserver, die namenbasiertes virtuelles Hosting oder Load Balancer verwenden, usw. erfordern unbedingt, dass Sie sie über einen FQDN oder einen Hostnamen adressieren. Sie bestimmen anhand des FQDN, zu dem Sie eine Verbindung herstellen, wie auf Ihre Anfrage geantwortet werden soll. Die Verbindung über eine IP funktioniert möglicherweise überhaupt nicht.

SSL-Zertifikate werden basierend auf Domänennamen ausgestellt, sodass Sie einige SSL-fähige Dienste möglicherweise nicht (ordnungsgemäß) ohne DNS verwenden können.

Dies ist eine Grabungsabfrage für die Domain google.com, um Ihnen einen Einblick in die Komplexität von DNS zu geben

google.com. 299 IN A 172.217.0.174
google.com. 299 IN AAAA 2607: f8b0: 400b: 807 :: 200e
google.com. 599 IN MX 10 aspmx.l.google.com.
google.com. 599 IN MX 40 alt3.aspmx.l.google.com.
google.com. 59 IN SOA ns2.google.com. dns-admin.google.com. 126990955 900 900 1800 60
google.com. 599 IN MX 30 alt2.aspmx.l.google.com.
google.com. 21599 IN NS ns2.google.com.
google.com. 599 IN MX 20 alt1.aspmx.l.google.com.
google.com. 599 IN MX 50 alt4.aspmx.l.google.com.
google.com. 21599 IN NS ns1.google.com.
google.com. 3599 IN TXT "v = spf1 include: _spf.google.com ~ all"
google.com. 21599 IN CAA 0 Ausgabe "symantec.com"
google.com. 21599 IN NS ns3.google.com.
google.com. 21599 IN NS ns4.google.com.

Yahoo antwortet mit 3 IP-Adressen

$ host -ta yahoo.ca
yahoo.ca hat die Adresse 77.238.184.24
yahoo.ca hat die Adresse 74.6.50.24
yahoo.ca hat die Adresse 98.137.236.24

Vorteil der Verwendung einer IP-Adresse

Für mich ist es normalerweise, wenn DNS irgendwie in die Quere kommen könnte oder nicht verfügbar ist. Im Allgemeinen würde ich DNS für die meisten Dinge verwenden.

Ein Beispiel dafür, wo eine IP-Adresse möglicherweise besser ist, ist, wenn Sie zwei Computer mit einer direkten Verbindung zwischen ihnen (kein Switch) und privaten Netzwerkadressen (z. B. 192.168.1.1 und 192.168.1.2) haben und diese für Hochverfügbarkeitskommunikation verwenden oder DRBD oder einen anderen sehr spezifischen Dienst. In diesem Fall macht das Einrichten von Dingen in DNS wahrscheinlich keinen Sinn. Es ist nicht notwendig, würde die Komplexität erhöhen, Leistungsprobleme verursachen und eine Fehlerquelle darstellen.

Ein weiteres Beispiel ist das Routing. Routing-Tabellen zeichnen IP-Adressen aus verschiedenen Gründen auf.

Eine andere ist das Referenzieren von Nameservern (wie in /etc/resolv.conf). Da Sie ohne Nameserver nichts auflösen können.


Dies ist eine großartige Antwort, aber sie sollte wahrscheinlich auch etwas über vhosted-Dienste aussagen. IP⟷FQDN ist eine Viele-zu-Viele-Zuordnung, keine Viele-zu-Eins-Zuordnung.
flauschiger

Danke und einverstanden. DNS ist sehr hilfreich für namensbasiertes virtuelles Hosting, wenn Sie sich darauf beziehen.
Ryan Babchishin

Ja, darauf bezog ich mich.
flauschiger

Tolle Antwort, die DNS wirklich richtig macht - Lesezeichen für zukünftige Referenz. Ein kleiner Kritikpunkt ist Ihr Kommentar "Routing-Tabellen zeichnen IP-Adressen aus verschiedenen Gründen auf." Was sind die verschiedenen Gründe, auf die Sie sich beziehen? Routingtabellen haben keine andere Wahl, als IPs zu verwenden, da das Routing auf der Internetebene stattfindet, während DNS die Anwendungsschicht verwendet und daher notwendigerweise vom Routing abhängig ist.
Gardenhead

@gardenhead Danke. Beim Routing stimmt das, ich wollte einfach nicht darauf eingehen. Vergib mir meine Wortwahl.
Ryan Babchishin
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.