Panoramica del servizio DNS in Azure

Il cloud pubblico di Microsoft offre diversi servizi tra i quali Azure DNS, che consente di ospitare e gestire domini DNS (Domain Name System) pubblici e privati nell’ambiente Azure. In questo articolo vengono riportate le caratteristiche della soluzione, i possibili casi d’uso e vengono affrontati i vantaggi nell’adottare questa soluzione.

Risoluzione dei nomi pubblici

Il servizio Azure DNS può essere utilizzato per la risoluzione dei nomi dei domini pubblici. Azure non consente l’acquisto diretto di domini pubblici, ma supponendo di disporre di un dominio pubblico, è possibile utilizzare il servizio DNS di Azure per la risoluzione dei nomi relativi al proprio dominio.

Per farlo è necessario procedere con la creazione di una DNS Zone, questa la procedura per attivarla dal portale Azure:

Figura 1 – Creazione della DNS Zone

Nel processo di attivazione di una zona DNS viene richiesto di specificare anche la location del Resource Group, che determina dove vengono mantenuti i metadati associati alla zona DNS. Il servizio Azure DNS è infatti globale e non associato ad una specifica location di Azure.

Il processo di creazione è molto rapido e, al termine della creazione del servizio, si possono individuare i name server che è possibile utilizzare per la zona creata.

Figura 2 – Name Server per la DNS Zone creata

Dopo aver creato la DNS Zone in Azure è necessario delegare la risoluzione dei nomi per il dominio ai name server di Azure. Ogni Registar ha il proprio strumento per la gestione dei nomi, dove è possibile specificare i record NS, facendoli puntare ai quattro Name Server forniti dal servizio Azure DNS.

A questo punto è possibile aggiungere e gestire eventuali record DNS pubblici sulla propria zona DNS ospitata in ambiente Azure.

Figura 3 – Aggiunta di un record DNS

Risoluzione dei nomi privati

Nelle Virtual Network di Azure è disponibile di default il servizio DNS integrato nella piattaforma, che consente la risoluzione dei nomi dei sistemi su di esse attestate (Azure-provided). In alternativa è possibile specificare dei custom DNS Server. Il servizio Azure DNS estende queste possibilità abilitando nuovi scenari, grazie alla possibilità di utilizzare il servizio Azure DNS, non solo per gestire la risoluzione dei nomi per domini pubblici, ma al momento in preview, viene data la possibilità di attivare una zona DNS privata. Per le zone DNS private le Virtual Network che possono usufruire del servizio di risoluzione dei nomi, prendono il nome di resolution virtual networks. Mentre le registration virtual network sono quelle VNet per le quali è previsto il mantenimento degli hostname quando viene creata una VM, quando questa cambia il proprio indirizzo IP oppure quando viene rimossa.

La creazione di una zona DNS privata al momento è possibile farla con comandi PowerShell e non dal portale Azure.

Figura 4 – Comandi PowerShell per la creazione di una zona DNS privata

Utilizzando il commando PowerShell New-AzDnsZone è possibile specificare che si tratta di una zona privata tramite il parametro ZoneType valorizzato a Private. Se si desidera utilizzare la zona privata solo per la risoluzione dei nomi, senza far avvenire la creazione automatica dei record DNS, è possibile specificare il parametro ResolutionVirtualNetworkId, in caso contrario, se si vuole anche la registrazione automatica dei nomi è opportuno specificare il parametro RegistrationVirtualNetworkId. A questo proposito attualmente l’associazione iniziale come Registration\Resolution Virtual Network è possibile solo se la VNet non ha sistemi attestati su di essa.

Al termine dell’esecuzione dei comandi PowerShell sarà possibile vedere la zona privata anche dal portale Azure. Le zone private al momento si distinguono dalle altre in quanto non presentano l’elenco dei Name Server. Risulta comunque possibile registrare e gestire i record DNS, non solo tramite PowerShell o CLI, ma anche dal portale.

Figura 5 – Esempio di zona DNS privata presente nel portale Azure.

Scenari di utilizzo

La presenza delle Private Zone nel servizio Azure DNS consente di essere adottato in differenti scenari.

Risoluzione dei nomi per una singola Virtual Network

In questo scenario si ha un’unica Virtual Network che usufruisce del servizio Azure DNS privato per la risoluzione dei nomi interni. Tale risoluzione è totalmente privata e può essere usufruita da tutte le risorse attestate su quella specifica VNet.

Figura 6 – Azure Private DNS per una singola VNet

Risoluzione dei nomi tra Virtual Network differenti

Questo scenario è comunemente utilizzato quando più Virtual Network devono accedere allo stesso servizio Azure DNS privato. L’adozione di questo scenario è tipico in presenza di architetture Hub-Spoke, dove la rete di Hub può essere associata alla zona privata dell’Azure DNS in modalità Registration, mentre le varie reti di spoke possono essere associate come Resolution virtual network.

Figura 7 – Azure Private DNS per due VNet

Funzionalità di Split-Horizon

Si ricade in questo scenario quando per la stessa zona DNS si ha l’esigenza di ottenere risoluzione dei nomi differenti in base a dove si trova il client, in ambiente Azure oppure in Internet.

Figura 8 – Azure Private DNS in uno scenario di Split-Horizon

Costo della soluzione

Il costo dell’Azure DNS è dato da due elementi:

  • Numero di zone DNS ospitate in Azure (pubbliche o private).
  • Numero di query DNS ricevute.

Per ottenere i dettagli dei costi dell’Azure DNS è possibile consultare la pagina ufficiale.

Vantaggi

La possibilità di poter ospitare le zone DNS in Azure introduce una serie di vantaggi, tra i quali:

  • Il servizio DNS può essere erogato utilizzando gli strumenti nativi offerti dalla piattaforma Azure, senza dover utilizzare soluzioni DNS custom, risparmiando così sui tempi e sui costi.
  • Il servizio consente di utilizzare tutte le tipologie di record DNS più comuni: A, AAAA, CNAME, MX, PTR, SOA, SRV, e TXT.
  • Viene fornita la gestione automatica dei record DNS per le macchine virtuali presenti su specifiche Virtual Network di Azure.
  • La risoluzione privata dei nomi DNS può avvenire in modo condiviso anche tra Virtual Network differenti, a differenza di quanto offre il servizio di risoluzione dei nomi fornito di default sulle VNet. Questo consente di ampliare i possibili scenari di utilizzo e semplificare le architetture, grazie anche alle funzionalità di Split-horizon.
  • La soluzione può essere totalmente gestita tramite i tool Azure conosciuti (PowerShell, Azure Resource Manager templates, e REST API), riducendo così la curva di apprendimento per l’effettiva adozione.

Conclusioni

Il servizio Azure DNS consente di ospitare i propri domini DNS in Azure, fornendo la possibilità di gestirli con le stesse credenziali, le stesse politiche di billing e di supporto degli altri servizi Azure. L’introduzione del servizio Azure DNS Private Zones introduce un importante elemento che, quando sarà rilasciato ufficialmente, sarà da tenere in considerazione nel disegno delle proprie architetture Azure, al fine di semplificarle e renderle maggiormente efficienti. Azure DNS fornisce inoltre elevati livelli di affidabilità, scalabilità, sicurezza e disponibilità, in quanto basato sulla global network di Microsoft, difficilmente ottenibili con soluzioni di terze parti.