Hoe Redirect je DNS naar een Specifieke Poort?

Gepubliceerd 10 juli 2024

Probleem: DNS omleiden naar een specifieke poort

DNS stuurt gewoonlijk verkeer naar de standaardpoort van een server. Soms moet je het naar een andere poort sturen. Dit kan gebeuren wanneer je meerdere diensten op één IP-adres draait of speciale netwerken instelt. De uitdaging is om DNS te vertellen verkeer naar een specifieke poort te sturen zonder de domeinnaam te wijzigen of clients wijzigingen te laten maken.

Oplossing: SRV-records gebruiken voor poortspecifieke DNS-omleiding

Wat zijn SRV-records?

SRV-records zijn DNS-records die informatie verstrekken over beschikbare diensten. Ze stellen je in staat om de locatie van servers voor specifieke diensten binnen een domein te specificeren. SRV-records bevatten details zoals de hostnaam, poortnummer en protocol voor een dienst.

De belangrijkste onderdelen van een SRV-record zijn:

  • Dienst: De naam van de dienst
  • Protocol: Het gebruikte protocol (meestal TCP of UDP)
  • Domeinnaam: Het domein dat de dienst aanbiedt
  • TTL (Time to Live): Hoe lang het record in de cache moet worden bewaard
  • Prioriteit: Bepaalt welke server als eerste te proberen
  • Gewicht: Wordt gebruikt voor load balancing tussen servers met dezelfde prioriteit
  • Poort: Het poortnummer waar de dienst draait
  • Doel: De hostnaam van de server die de dienst levert

Tip: SRV-record prioriteit en gewicht begrijpen

Prioriteit en Gewicht in SRV-records werken samen voor load balancing en failover. Lagere prioriteitswaarden worden eerst geprobeerd. Als meerdere records dezelfde prioriteit hebben, bepaalt het gewicht de kans op selectie. Bijvoorbeeld, twee records met gewichten 60 en 40 zullen respectievelijk ongeveer 60% en 40% van de tijd geselecteerd worden.

Hoe SRV-records poortspecifieke omleiding mogelijk maken

SRV-records volgen een specifieke structuur die service mapping mogelijk maakt:

_dienst._protocol.naam TTL class SRV prioriteit gewicht poort doel

Deze structuur stelt je in staat om DNS-queries om te leiden naar specifieke poorten. Door het poortnummer in het SRV-record te specificeren, kun je verkeer naar de juiste dienst leiden, zelfs als deze op een niet-standaard poort draait.

SRV-records koppelen diensten aan specifieke poorten door:

  1. De dienst en het protocol te identificeren (bijv. _http._tcp)
  2. De domeinnaam te specificeren
  3. De prioriteit en het gewicht voor load balancing in te stellen
  4. Het poortnummer voor de dienst te definiëren
  5. Naar de doel-hostnaam te verwijzen

Een SRV-record zou er bijvoorbeeld zo uit kunnen zien:

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

Dit record zou HTTP-verkeer voor example.com naar server1.example.com op poort 8080 leiden, in plaats van de standaard HTTP-poort 80.

Stapsgewijze handleiding voor het implementeren van DNS-omleiding naar specifieke poorten

SRV-records instellen

Om SRV-records in te stellen voor verschillende subdomeinen en poorten:

  1. Ga naar je DNS-beheerinterface.
  2. Maak een nieuw SRV-record aan voor elke combinatie van subdomein en poort.
  3. Gebruik dit formaat voor je SRV-records:

_dienst._protocol.subdomein.domein.com. TTL IN SRV prioriteit gewicht poort doel

Voorbeeld:

_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 deze voorbeelden:

  • Dienst: HTTP
  • Protocol: TCP
  • TTL: 3600 seconden (1 uur)
  • Prioriteit: 10 voor beide records
  • Gewicht: 100 voor beide records
  • Poorten: 8080 en 8081
  • Doelen: server1.example.com en server2.example.com

Tip: SRV-recordvelden begrijpen

Elk veld in een SRV-record heeft een specifiek doel:

  • Prioriteit: Lagere waarden hebben een hogere prioriteit.
  • Gewicht: Wordt gebruikt voor load balancing tussen records met dezelfde prioriteit.
  • Poort: Het poortnummer waar de dienst draait.
  • Doel: De hostnaam van de machine die de dienst levert.

A-records configureren

A-records zijn nodig bij het gebruik van SRV-records omdat ze het IP-adres voor de doel-hostnaam verstrekken. Om A-records in te stellen:

  1. Maak in je DNS-beheerinterface een A-record aan voor elke doel-hostnaam in je SRV-records.
  2. Gebruik dit formaat:

hostnaam.domein.com. TTL IN A IP_adres

Voorbeeld:

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

Deze A-records koppelen de doel-hostnamen in je SRV-records aan hun IP-adressen. Hierdoor kan DNS het pad van de domeinnaam naar het IP-adres en de poort voor elke dienst oplossen.