Wie leitet man DNS zu einem bestimmten Port um?

Veröffentlicht 8. September 2024

Problem: DNS-Umleitung auf einen bestimmten Port

DNS leitet den Datenverkehr normalerweise an den Standardport eines Servers weiter. Manchmal ist es jedoch nötig, ihn an einen anderen Port zu senden. Dies kann vorkommen, wenn mehrere Dienste unter einer IP-Adresse laufen oder spezielle Netzwerke eingerichtet werden. Die Herausforderung besteht darin, DNS anzuweisen, den Datenverkehr an einen bestimmten Port zu senden, ohne den Domainnamen zu ändern oder Clients zu Änderungen aufzufordern.

Lösung: Verwendung von SRV-Einträgen für portspezifische DNS-Umleitung

Was sind SRV-Einträge?

SRV-Einträge sind DNS-Einträge, die Informationen über verfügbare Dienste bereitstellen. Sie ermöglichen es, den Standort von Servern für bestimmte Dienste innerhalb einer Domain anzugeben. SRV-Einträge enthalten Details wie Hostname, Portnummer und Protokoll für einen Dienst.

Die Hauptbestandteile eines SRV-Eintrags umfassen:

  • Service: Der Name des Dienstes
  • Protokoll: Das verwendete Protokoll (meist TCP oder UDP)
  • Domainname: Die Domain, die den Dienst anbietet
  • TTL (Time to Live): Wie lange der Eintrag zwischengespeichert werden soll
  • Priorität: Bestimmt, welcher Server zuerst versucht wird
  • Gewichtung: Wird für Lastverteilung zwischen Servern mit gleicher Priorität verwendet
  • Port: Die Portnummer, auf der der Dienst läuft
  • Ziel: Der Hostname des Servers, der den Dienst bereitstellt

Tipp: Priorität und Gewichtung in SRV-Einträgen verstehen

Priorität und Gewichtung in SRV-Einträgen arbeiten zusammen für Lastverteilung und Failover. Niedrigere Prioritätswerte werden zuerst versucht. Wenn mehrere Einträge die gleiche Priorität haben, bestimmt die Gewichtung die Wahrscheinlichkeit der Auswahl. Zum Beispiel werden zwei Einträge mit den Gewichtungen 60 und 40 ungefähr zu 60% bzw. 40% der Zeit ausgewählt.

Wie SRV-Einträge portspezifische Umleitung ermöglichen

SRV-Einträge folgen einer spezifischen Struktur, die Service-Mapping ermöglicht:

_service._protocol.name TTL class SRV priority weight port target

Diese Struktur ermöglicht es, DNS-Abfragen auf bestimmte Ports umzuleiten. Durch Angabe der Portnummer im SRV-Eintrag können Sie den Datenverkehr zum korrekten Dienst leiten, auch wenn dieser auf einem nicht-standardmäßigen Port läuft.

SRV-Einträge ordnen Dienste bestimmten Ports zu, indem sie:

  1. Den Dienst und das Protokoll identifizieren (z.B. _http._tcp)
  2. Den Domainnamen angeben
  3. Die Priorität und Gewichtung für Lastverteilung festlegen
  4. Die Portnummer für den Dienst definieren
  5. Auf den Ziel-Hostnamen verweisen

Ein SRV-Eintrag könnte beispielsweise so aussehen:

_http._tcp.example.com. 3600 IN SRV 10 60 8080 server1.example.com.

Dieser Eintrag würde HTTP-Verkehr für example.com auf server1.example.com auf Port 8080 leiten, anstatt auf den Standard-HTTP-Port 80.

Schritt-für-Schritt-Anleitung zur Implementierung der DNS-Umleitung auf bestimmte Ports

Einrichten von SRV-Einträgen

Um SRV-Einträge für verschiedene Subdomains und Ports einzurichten:

  1. Greifen Sie auf Ihre DNS-Verwaltungsoberfläche zu.
  2. Erstellen Sie einen neuen SRV-Eintrag für jede Subdomain- und Port-Kombination.
  3. Verwenden Sie dieses Format für Ihre SRV-Einträge:

_service._protocol.subdomain.domain.com. TTL IN SRV priority weight port target

Beispiel:

_http._tcp.sub1.example.com. 3600 IN SRV 10 100 8080 server1.example.com. _http._tcp.sub2.example.com. 3600 IN SRV 10 100 8081 server2.example.com.

In diesen Beispielen:

  • Dienst: HTTP
  • Protokoll: TCP
  • TTL: 3600 Sekunden (1 Stunde)
  • Priorität: 10 für beide Einträge
  • Gewichtung: 100 für beide Einträge
  • Ports: 8080 und 8081
  • Ziele: server1.example.com und server2.example.com

Tipp: SRV-Eintragsfelder verstehen

Jedes Feld in einem SRV-Eintrag dient einem bestimmten Zweck:

  • Priorität: Niedrigere Werte haben höhere Priorität.
  • Gewichtung: Wird zur Lastverteilung unter Einträgen mit gleicher Priorität verwendet.
  • Port: Die Portnummer, auf der der Dienst läuft.
  • Ziel: Der Hostname des Rechners, der den Dienst bereitstellt.

Konfigurieren von A-Einträgen

A-Einträge sind bei der Verwendung von SRV-Einträgen erforderlich, da sie die IP-Adresse für den Ziel-Hostnamen bereitstellen. So richten Sie A-Einträge ein:

  1. Erstellen Sie in Ihrer DNS-Verwaltungsoberfläche einen A-Eintrag für jeden Ziel-Hostnamen in Ihren SRV-Einträgen.
  2. Verwenden Sie dieses Format:

hostname.domain.com. TTL IN A IP_address

Beispiel:

server1.example.com. 3600 IN A 192.0.2.10 server2.example.com. 3600 IN A 192.0.2.11

Diese A-Einträge verknüpfen die Ziel-Hostnamen in Ihren SRV-Einträgen mit ihren IP-Adressen. Dies ermöglicht DNS, den Pfad vom Domainnamen zur IP-Adresse und zum Port für jeden Dienst aufzulösen.