Démarrage rapide : Créer une zone Azure DNS privée avec Azure PowerShell
Cet article vous indique la procédure à suivre pour créer votre premier enregistrement et votre première zone DNS privée à l’aide d’Azure PowerShell.
Notes
Nous vous recommandons d’utiliser le module Azure Az PowerShell pour interagir avec Azure. Pour bien démarrer, consultez Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.
Une zone DNS permet d’héberger les enregistrements DNS d’un domaine particulier. Pour commencer à héberger votre domaine dans le DNS Azure, vous devez créer une zone DNS pour ce nom de domaine. Chaque enregistrement DNS pour votre domaine est ensuite créé à l’intérieur de cette zone DNS. Pour publier une zone DNS privée sur votre réseau virtuel, vous spécifiez la liste des réseaux virtuels qui sont autorisés à résoudre les enregistrements dans la zone. On les appelle réseaux virtuels liés. Quand l’inscription automatique est activée, Azure DNS met également à jour les enregistrements de zone chaque fois qu’une machine virtuelle est créée, change d’adresse IP ou est supprimée.
Prérequis
Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
Si vous préférez, vous pouvez suivre ce guide de démarrage rapide en utilisant Azure CLI.
Azure Cloud Shell
Azure héberge Azure Cloud Shell, un environnement d’interpréteur de commandes interactif que vous pouvez utiliser dans votre navigateur. Vous pouvez utiliser Bash ou PowerShell avec Cloud Shell pour utiliser les services Azure. Vous pouvez utiliser les commandes préinstallées Cloud Shell pour exécuter le code de cet article sans avoir à installer quoi que ce soit dans votre environnement local.
Pour démarrer Azure Cloud Shell :
Option | Exemple/Lien |
---|---|
Sélectionnez Essayer dans le coin supérieur droite d’un bloc de codes ou de commandes. La sélection de Essayer ne copie pas automatiquement le code ni la commande dans Cloud Shell. | |
Accédez à https://shell.azure.com ou sélectionnez le bouton Lancer Cloud Shell pour ouvrir Cloud Shell dans votre navigateur. | |
Sélectionnez le bouton Cloud Shell dans la barre de menus en haut à droite du portail Azure. |
Pour utiliser Azure Cloud Shell :
Démarrez Cloud Shell.
Sélectionnez le bouton Copier sur un bloc de codes (ou un bloc de commandes) pour copier le code ou la commande.
Collez le code ou la commande dans la session Cloud Shell en sélectionnant Ctrl+Maj+V sur Windows et Linux ou en sélectionnant Cmd+Maj+V sur macOS.
Sélectionnez Entrer pour exécuter le code ou la commande.
Créer le groupe de ressources
Tout d’abord, créez un groupe de ressources pour contenir la zone DNS :
New-AzResourceGroup -name MyAzureResourceGroup -location "eastus"
Créer une zone DNS privée
Une zone DNS est créée à l’aide de l’applet de commande New-AzPrivateDnsZone
.
L’exemple suivant crée un réseau virtuel nommé myAzureVNet. Il crée ensuite une zone DNS nommée private.contoso.com dans le groupe de ressources MyAzureResourceGroup, puis il lie la zone DNS au réseau virtuel MyAzureVnet et active l’inscription automatique.
Install-Module -Name Az.PrivateDns -force
$backendSubnet = New-AzVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix "10.2.0.0/24"
$vnet = New-AzVirtualNetwork `
-ResourceGroupName MyAzureResourceGroup `
-Location eastus `
-Name myAzureVNet `
-AddressPrefix 10.2.0.0/16 `
-Subnet $backendSubnet
$zone = New-AzPrivateDnsZone -Name private.contoso.com -ResourceGroupName MyAzureResourceGroup
$link = New-AzPrivateDnsVirtualNetworkLink -ZoneName private.contoso.com `
-ResourceGroupName MyAzureResourceGroup -Name "mylink" `
-VirtualNetworkId $vnet.id -EnableRegistration
Si vous souhaitez créer une zone dédiée à la résolution de noms (aucune inscription automatique de nom d’hôte), vous pouvez omettre le paramètre -EnableRegistration
.
Répertorier les zones privées DNS
En omettant le nom de la zone dans Get-AzPrivateDnsZone
, vous pouvez énumérer toutes les zones d’un groupe de ressources. Cette opération renvoie un tableau d’objets de la zone.
$zones = Get-AzPrivateDnsZone -ResourceGroupName MyAzureResourceGroup
$zones
En omettant le nom de zone et le nom du groupe de ressources de Get-AzPrivateDnsZone
, vous pouvez énumérer toutes les zones dans l’abonnement Azure.
$zones = Get-AzPrivateDnsZone
$zones
Créer les machines virtuelles de test
Maintenant, créez deux machines virtuelles afin de pouvoir tester votre zone DNS privée :
New-AzVm `
-ResourceGroupName "myAzureResourceGroup" `
-Name "myVM01" `
-Location "East US" `
-subnetname backendSubnet `
-VirtualNetworkName "myAzureVnet" `
-addressprefix 10.2.0.0/24 `
-OpenPorts 3389
New-AzVm `
-ResourceGroupName "myAzureResourceGroup" `
-Name "myVM02" `
-Location "East US" `
-subnetname backendSubnet `
-VirtualNetworkName "myAzureVnet" `
-addressprefix 10.2.0.0/24 `
-OpenPorts 3389
La création d’une machine virtuelle prendra quelques minutes.
Créer un enregistrement DNS supplémentaire
Vous pouvez utiliser l’applet de commande New-AzPrivateDnsRecordSet
pour créer des jeux d’enregistrements. L’exemple suivant crée un enregistrement avec le nom relatif db dans la zone DNS private.contoso.com, dans le groupe de ressources MyAzureResourceGroup. Le nom complet du jeu d’enregistrements est db.private.contoso.com. Le type d’enregistrement est « A », avec l’adresse IP « 10.2.0.4 », et la durée de vie est de 3600secondes.
New-AzPrivateDnsRecordSet -Name db -RecordType A -ZoneName private.contoso.com `
-ResourceGroupName MyAzureResourceGroup -Ttl 3600 `
-PrivateDnsRecords (New-AzPrivateDnsRecordConfig -IPv4Address "10.2.0.4")
Afficher les enregistrements DNS
Pour répertorier les enregistrements DNS dans votre zone, utilisez :
Get-AzPrivateDnsRecordSet -ZoneName private.contoso.com -ResourceGroupName MyAzureResourceGroup
Tester la zone privée
Maintenant vous pouvez désormais tester la résolution de noms pour votre zone privée private.contoso.com.
Configurer des machines virtuelles pour autoriser l’ICMP entrant
Vous pouvez utiliser la commande test ping pour tester la résolution de nom. Par conséquent, configurez le pare-feu sur les deux machines virtuelles pour autoriser les paquets ICMP entrants.
Connectez-vous à myVM01 à l’aide du nom d’utilisateur et du mot de passe que vous avez utilisés lors de la création de la machine virtuelle.
Ouvrez une fenêtre Windows PowerShell avec des privilèges administrateur.
Exécutez la commande suivante :
New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4
Répétez l’opération pour myVM02.
Faites un test ping sur les machines virtuelles par leur nom
À partir de l’invite de commandes Windows PowerShell myVM02, faites un test ping de myVM01 en utilisant le nom d’hôte enregistré automatiquement :
ping myVM01.private.contoso.com
Vous devriez voir une sortie ressemblant à celle présentée ci-dessous :
PS C:\> ping myvm01.private.contoso.com Pinging myvm01.private.contoso.com [10.2.0.4] with 32 bytes of data: Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Reply from 10.2.0.4: bytes=32 time=1ms TTL=128 Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Ping statistics for 10.2.0.4: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 1ms, Average = 0ms PS C:\>
Maintenant faites un test ping sur le nom db que vous avez créé précédemment :
ping db.private.contoso.com
Vous devriez voir une sortie ressemblant à celle présentée ci-dessous :
PS C:\> ping db.private.contoso.com Pinging db.private.contoso.com [10.2.0.4] with 32 bytes of data: Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Ping statistics for 10.2.0.4: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milliseconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms PS C:\>
Nettoyer les ressources
Lorsque vous n’en avez plus besoin, supprimez le groupe de ressources MyAzureResourceGroup pour supprimer les ressources créées dans cet article.
Remove-AzResourceGroup -Name MyAzureResourceGroup