Opties voor DNS-naamomzetting voor virtuele Linux-machines in Azure

Let op

In dit artikel wordt verwezen naar CentOS, een Linux-distributie die de status End Of Life (EOL) nadert. Houd rekening met uw gebruik en plan dienovereenkomstig. Zie de Richtlijnen voor het einde van de levensduur van CentOS voor meer informatie.

Van toepassing op: ✔️ Flexibele schaalsets voor Linux-VM's ✔️

Azure biedt standaard DNS-naamomzetting voor alle virtuele machines die zich in één virtueel netwerk bevinden. U kunt uw eigen DNS-naamomzettingsoplossing implementeren door uw eigen DNS-services te configureren op uw virtuele machines die door Azure worden gehost. De volgende scenario's moeten u helpen bij het kiezen van de scenario's die geschikt zijn voor uw situatie.

Het type naamomzetting dat u gebruikt, is afhankelijk van hoe uw virtuele machines en rolinstanties met elkaar moeten communiceren.

In de volgende tabel ziet u scenario's en bijbehorende oplossingen voor naamomzetting:

Scenario Oplossing Achtervoegsel
Naamomzetting tussen rolinstanties of virtuele machines in hetzelfde virtuele netwerk Naamomzetting die Azure biedt hostnaam of volledig gekwalificeerde domeinnaam (FQDN)
Naamomzetting tussen rolinstanties of virtuele machines in verschillende virtuele netwerken Door de klant beheerde DNS-servers die query's doorsturen tussen virtuele netwerken voor omzetting door Azure (DNS-proxy). Zie Naamomzetting met uw eigen DNS-server. Alleen FQDN
Oplossing van on-premises computers en servicenamen van rolinstanties of virtuele machines in Azure Door de klant beheerde DNS-servers (bijvoorbeeld on-premises domeincontroller, lokale alleen-lezen domeincontroller of een secundaire DNS-synchronisatie met behulp van zoneoverdrachten). Zie Naamomzetting met uw eigen DNS-server. Alleen FQDN
Oplossing van Azure-hostnamen van on-premises computers Query's doorsturen naar een door de klant beheerde DNS-proxyserver in het bijbehorende virtuele netwerk. De proxyserver stuurt query's door naar Azure voor oplossing. Zie Naamomzetting met uw eigen DNS-server. Alleen FQDN
Omgekeerde DNS voor interne IP-adressen Naamomzetting met uw eigen DNS-server N.v.t.

Naamomzetting die Azure biedt

Naast de omzetting van openbare DNS-namen biedt Azure interne naamomzetting voor virtuele machines en rolinstanties die zich in hetzelfde virtuele netwerk bevinden. In virtuele netwerken die zijn gebaseerd op Azure Resource Manager, is het DNS-achtervoegsel consistent in het virtuele netwerk; de FQDN is niet nodig. DNS-namen kunnen worden toegewezen aan zowel netwerkinterfacekaarten (NIC's) als virtuele machines. Hoewel voor de naamomzetting die Azure biedt geen configuratie is vereist, is het niet de juiste keuze voor alle implementatiescenario's, zoals te zien is in de voorgaande tabel.

Functies en overwegingen

Functies:

  • Er is geen configuratie vereist voor het gebruik van naamomzetting die Azure biedt.
  • De naamomzettingsservice die Azure biedt, is maximaal beschikbaar. U hoeft geen clusters van uw eigen DNS-servers te maken en te beheren.
  • De naamomzettingsservice die Azure biedt, kan samen met uw eigen DNS-servers worden gebruikt om zowel on-premises als Azure-hostnamen op te lossen.
  • Naamomzetting wordt geleverd tussen virtuele machines in virtuele netwerken zonder dat de FQDN nodig is.
  • U kunt hostnamen gebruiken die uw implementaties het beste beschrijven in plaats van te werken met automatisch gegenereerde namen.

Overwegingen:

  • Het DNS-achtervoegsel dat door Azure wordt gemaakt, kan niet worden gewijzigd.
  • U kunt uw eigen records niet handmatig registreren.
  • WINS en NetBIOS worden niet ondersteund.
  • Hostnamen moeten compatibel zijn met DNS. Namen mogen alleen 0-9, a-z en '-' gebruiken, en ze kunnen niet beginnen of eindigen met een '-'. Zie RFC 3696 Section 2.
  • DNS-queryverkeer wordt beperkt voor elke virtuele machine. Beperking mag niet van invloed zijn op de meeste toepassingen. Als aanvraagbeperking wordt waargenomen, moet u ervoor zorgen dat caching aan de clientzijde is ingeschakeld. Zie Het meeste halen uit naamomzetting die Azure biedt voor meer informatie.

Optimaal profiteren van naamomzetting die Azure biedt\

Caching aan clientzijde:

Sommige DNS-query's worden niet via het netwerk verzonden. Caching aan de clientzijde helpt de latentie te verminderen en de tolerantie voor netwerkconsistentie te verbeteren door terugkerende DNS-query's uit een lokale cache op te lossen. DNS-records bevatten een TTL (Time-To-Live), waarmee de cache de record zo lang mogelijk kan opslaan zonder dat dit van invloed is op de nieuwheid van records. Als gevolg hiervan is caching aan de clientzijde geschikt voor de meeste situaties.

Sommige Linux-distributies bevatten standaard geen caching. We raden u aan om een cache toe te voegen aan elke virtuele Linux-machine nadat u hebt gecontroleerd of er nog geen lokale cache is.

Er zijn verschillende DNS-cachingpakketten, zoals dnsmasq, beschikbaar. Hier volgen de stappen voor het installeren van dnsmasq op de meest voorkomende distributies:

  1. Installeer het dnsmasq-pakket:
sudo apt-get install dnsmasq
  1. Schakel de dnsmasq-service in:
sudo systemctl enable dnsmasq.service
  1. Start de dnsmasq-service:
sudo systemctl start dnsmasq.service

Nieuwe pogingen aan de clientzijde

DNS is voornamelijk een UDP-protocol. Omdat het UDP-protocol de levering van berichten niet garandeert, verwerkt het DNS-protocol zelf logica voor opnieuw proberen. Elke DNS-client (besturingssysteem) kan verschillende logica voor opnieuw proberen vertonen, afhankelijk van de voorkeur van de maker:

  • Windows-besturingssystemen proberen het opnieuw na één seconde en vervolgens na nog eens twee, vier en nog eens vier seconden.
  • De standaardinstellingen voor Linux worden na vijf seconden opnieuw geprobeerd. U moet dit wijzigen om het vijf keer opnieuw te proberen met intervallen van één seconde.

Als u de huidige instellingen wilt controleren op een virtuele Linux-machine, 'cat /etc/resolv.conf', bekijkt u de regel 'opties', bijvoorbeeld:

sudo cat /etc/resolv.conf
options timeout:1 attempts:5

Het /etc/resolv.conf bestand wordt automatisch gegenereerd en mag niet worden bewerkt. De specifieke stappen die de regel 'opties' toevoegen, variëren per distributie:

Ubuntu (gebruikt resolvconf)

  1. Voeg de regel met opties toe aan /etc/resolvconf/resolv.conf.d/head het bestand.
  2. Uitvoeren sudo resolvconf -u om bij te werken.

SUSE (maakt gebruik van netconf)

  1. Voeg toe timeout:1 attempts:5 aan de NETCONFIG_DNS_RESOLVER_OPTIONS="" parameter in /etc/sysconfig/network/config.
  2. Uitvoeren sudo netconfig update om bij te werken.

CentOS by Rogue Wave Software (voorheen OpenLogic) (maakt gebruik van NetworkManager)

  1. Toevoegen RES_OPTIONS="timeout:1 attempts:5" aan /etc/sysconfig/network.
  2. Uitvoeren systemctl restart NetworkManager om bij te werken.

Naamomzetting met uw eigen DNS-server

Uw naamomzettingsbehoeften kunnen verder gaan dan de functies die Azure biedt. U kunt bijvoorbeeld DNS-omzetting tussen virtuele netwerken vereisen. Voor dit scenario kunt u uw eigen DNS-servers gebruiken.

DNS-servers in een virtueel netwerk kunnen DNS-query's doorsturen naar recursieve resolvers van Azure om hostnamen op te lossen die zich in hetzelfde virtuele netwerk bevinden. Een DNS-server die in Azure wordt uitgevoerd, kan bijvoorbeeld reageren op DNS-query's voor zijn eigen DNS-zonebestanden en alle andere query's doorsturen naar Azure. Met deze functionaliteit kunnen virtuele machines zowel uw vermeldingen in uw zonebestanden als hostnamen zien die Azure biedt (via de doorstuurserver). Toegang tot de recursieve resolvers van Azure wordt geboden via het virtuele IP-adres 168.63.129.16.

Dns-doorsturen maakt ook DNS-omzetting tussen virtuele netwerken mogelijk en stelt uw on-premises machines in staat om hostnamen op te lossen die Azure biedt. Als u de hostnaam van een virtuele machine wilt oplossen, moet de virtuele DNS-servermachine zich in hetzelfde virtuele netwerk bevinden en worden geconfigureerd voor het doorsturen van hostnaamquery's naar Azure. Omdat het DNS-achtervoegsel verschilt in elk virtueel netwerk, kunt u regels voor voorwaardelijk doorsturen gebruiken om DNS-query's naar het juiste virtuele netwerk te verzenden voor omzetting. In de volgende afbeelding ziet u twee virtuele netwerken en een on-premises netwerk dat DNS-omzetting tussen virtuele netwerken uitvoert met behulp van deze methode:

DNS-omzetting tussen virtuele netwerken

Wanneer u naamomzetting gebruikt die Azure biedt, wordt het interne DNS-achtervoegsel aan elke virtuele machine verstrekt met behulp van DHCP. Wanneer u uw eigen oplossing voor naamomzetting gebruikt, wordt dit achtervoegsel niet geleverd aan virtuele machines omdat het achtervoegsel interfereert met andere DNS-architecturen. Als u wilt verwijzen naar machines op FQDN of om het achtervoegsel op uw virtuele machines te configureren, kunt u PowerShell of de API gebruiken om het achtervoegsel te bepalen:

  • Voor virtuele netwerken die worden beheerd door Azure Resource Manager, is het achtervoegsel beschikbaar via de netwerkinterfacekaartresource . U kunt de azure network public-ip show <resource group> <pip name> opdracht ook uitvoeren om de details van uw openbare IP weer te geven, waaronder de FQDN-naam van de NIC.

Als het doorsturen van query's naar Azure niet aan uw behoeften voldoet, moet u uw eigen DNS-oplossing opgeven. Uw DNS-oplossing moet:

  • Geef de juiste hostnaamomzetting op, bijvoorbeeld via DDNS. Als u DDNS gebruikt, moet u mogelijk het opruimen van DNS-records uitschakelen. DHCP-leases van Azure zijn erg lang en opruiming kan DNS-records voortijdig verwijderen.
  • Geef de juiste recursieve resolutie op om het oplossen van externe domeinnamen mogelijk te maken.
  • Toegankelijk zijn (TCP en UDP op poort 53) van de clients die het bedient en toegang hebben tot internet.
  • Worden beveiligd tegen toegang vanaf internet om bedreigingen van externe agents te beperken.

Notitie

Als u virtuele machines in Azure DNS-servers gebruikt, schakelt u IPv6 uit en wijst u een openbaar IP-adres op exemplaarniveau toe aan elke virtuele DNS-server.