Schnellstart: Erstellen einer Azure DNS Private Resolver-Instanz mithilfe von Azure PowerShell

In diesem Artikel wird Schritt für Schritt beschrieben, wie Sie Ihre erste private DNS-Zone und Ihren ersten DNS-Eintrag mithilfe von Azure PowerShell erstellen. Sie können für diese Schnellstartanleitung auch das Azure-Portal verwenden.

Hinweis

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren von Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

Azure DNS Private Resolver ist ein neuer Dienst, mit dem Sie private Zonen in Azure DNS von einer lokalen Umgebung aus abfragen können (und umgekehrt), ohne VM-basierte DNS-Server bereitstellen zu müssen. Weitere Informationen, einschließlich Vorteile, Funktionen und regionaler Verfügbarkeit, finden Sie unter Was ist Azure DNS Private Resolver?.

Die folgende Abbildung fasst das Setup zusammen, das in diesem Artikel verwendet wird:

Konzeptuelle Abbildung der Komponenten des Private Resolvers.

Voraussetzungen

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

Dieser Artikel setzt voraus, dass Sie das Azure PowerShell-Modul „Az“ installiert haben.

Installieren des PowerShell-Moduls „Az.DnsResolver“

Hinweis

Wenn Sie zuvor das Az.DnsResolver-Modul zur Auswertung während der privaten Vorschau installiert haben, können Sie die Registrierung aufheben und das erstellte lokale PSRepository löschen. Installieren Sie dann die neueste Version des Az.DnsResolver-Moduls mithilfe der in diesem Artikel beschriebenen Schritte.

Installieren Sie das Az.DnsResolver-Modul.

Install-Module Az.DnsResolver

Bestätigen Sie, dass das Az.DnsResolver-Modul installiert wurde. Die aktuelle Version dieses Moduls ist 0.2.1.

Get-InstalledModule -Name Az.DnsResolver

Festlegen des Abonnementkontexts in Azure PowerShell

Verbinden Sie PowerShell mit der Azure-Cloud.

Connect-AzAccount -Environment AzureCloud

Wenn mehrere Abonnements vorhanden sind, wird die erste Abonnement-ID verwendet. Verwenden Sie den folgenden Befehl, um eine andere Abonnement-ID anzugeben.

Select-AzSubscription -SubscriptionObject (Get-AzSubscription -SubscriptionId <your-sub-id>)

Registrieren Sie den Anbieternamespace „Microsoft.Network“ für Ihr Konto.

Bevor Sie Microsoft.Network-Dienste mit Ihrem Azure-Abonnement verwenden können, müssen Sie den Microsoft.Network-Namespace registrieren:

Verwenden Sie den folgenden Befehl, um den Microsoft.Network-Namespace zu registrieren.

Register-AzResourceProvider -ProviderNamespace Microsoft.Network

Erstellen einer DNS-Resolverinstanz

Wichtig

Schritte, um zu überprüfen oder zu bestätigen, ob Ressourcen erfolgreich erstellt wurden, sind nicht optional. Überspringen Sie diese Schritte nicht. Die Schritte füllen Variablen auf, die in späteren Prozeduren verwendet werden können.

Erstellen Sie eine Ressourcengruppe zum Hosten der Ressourcen. Die Ressourcengruppe muss sich in einer unterstützten Region befinden. In diesem Beispiel ist der Standort „westcentralus“.

New-AzResourceGroup -Name myresourcegroup -Location westcentralus

Erstellen Sie ein virtuelles Netzwerk in der Ressourcengruppe, die Sie erstellt haben.

New-AzVirtualNetwork -Name myvnet -ResourceGroupName myresourcegroup -Location westcentralus -AddressPrefix "10.0.0.0/8"

Erstellen Sie einen DNS-Resolver im virtuellen Netzwerk, das Sie erstellt haben.

New-AzDnsResolver -Name mydnsresolver -ResourceGroupName myresourcegroup -Location westcentralus -VirtualNetworkId "/subscriptions/<your subs id>/resourceGroups/myresourcegroup/providers/Microsoft.Network/virtualNetworks/myvnet"

Überprüfen Sie, ob der DNS-Resolver erfolgreich erstellt wurde und der Zustand „Verbunden“ ist (optional). In der Ausgabe ist dnsResolverState auf Verbunden (Connected) festgelegt.

$dnsResolver = Get-AzDnsResolver -Name mydnsresolver -ResourceGroupName myresourcegroup
$dnsResolver.ToJsonString()

Erstellen eines eingehenden Endpunkts für den DNS-Resolver

Erstellen eines Subnetzes im virtuellen Netzwerk

Erstellen Sie ein Subnetz im virtuellen Netzwerk (Microsoft.Network/virtualNetworks/subnets) aus dem IP-Adressraum, den Sie zuvor zugewiesen haben. Das Subnetz muss mindestens /28 groß sein (16 IP-Adressen).

$virtualNetwork = Get-AzVirtualNetwork -Name myvnet -ResourceGroupName myresourcegroup
Add-AzVirtualNetworkSubnetConfig -Name snet-inbound -VirtualNetwork $virtualNetwork -AddressPrefix "10.0.0.0/28"
$virtualNetwork | Set-AzVirtualNetwork

Erstellen des eingehenden Endpunkts

Erstellen Sie einen eingehenden Endpunkt, um die Namensauflösung von Ihrem Standort oder einem anderen privaten Standort aus zu ermöglichen, indem Sie eine IP-Adresse verwenden, die zum Adressraum Ihres privaten virtuellen Netzwerks gehört.

Tipp

Mithilfe von PowerShell können Sie die IP-Adresse des eingehenden Endpunkts als dynamisch oder statisch angeben.
Wenn die IP-Adresse des Endpunkts als dynamisch angegeben wird, ändert sich die Adresse nur, wenn der Endpunkt gelöscht und erneut bereitgestellt wird. In der Regel wird dieselbe IP-Adresse während der erneuten Bereitstellung noch mal zugewiesen.
Wenn die Endpunkt-IP-Adresse statisch ist, kann sie angegeben und wiederverwendet werden, wenn der Endpunkt erneut bereitgestellt wird. Die von Ihnen ausgewählte IP-Adresse darf keine reservierte IP-Adresse im Subnetz sein.

Mit den folgenden Befehlen wird eine dynamische IP-Adresse bereitgestellt:

$ipconfig = New-AzDnsResolverIPConfigurationObject -PrivateIPAllocationMethod Dynamic -SubnetId /subscriptions/<your sub id>/resourceGroups/myresourcegroup/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/snet-inbound
New-AzDnsResolverInboundEndpoint -DnsResolverName mydnsresolver -Name myinboundendpoint -ResourceGroupName myresourcegroup -Location westcentralus -IpConfiguration $ipconfig

Verwenden Sie die folgenden Befehle, um eine statische IP-Adresse anzugeben. Verwenden Sie nicht sowohl den dynamischen als auch den statischen Befehlssatz.

Sie müssen eine IP-Adresse im Subnetz angeben, das zuvor erstellt wurde. Die von Ihnen ausgewählte IP-Adresse darf keine reservierte IP-Adresse im Subnetz sein.

Mit den folgenden Befehlen wird eine statische IP-Adresse bereitgestellt:

$ipconfig = New-AzDnsResolverIPConfigurationObject -PrivateIPAddress 10.0.0.4 -PrivateIPAllocationMethod Static -SubnetId /subscriptions/<your sub id>/resourceGroups/myresourcegroup/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/snet-inbound
New-AzDnsResolverInboundEndpoint -DnsResolverName mydnsresolver -Name myinboundendpoint -ResourceGroupName myresourcegroup -Location westcentralus -IpConfiguration $ipconfig

Bestätigen des eingehenden Endpunkts

Bestätigen Sie, dass der eingehende Endpunkt erstellt und ihm eine IP-Adresse innerhalb des zugewiesenen Subnetzes zugewiesen wurde.

$inboundEndpoint = Get-AzDnsResolverInboundEndpoint -Name myinboundendpoint -DnsResolverName mydnsresolver -ResourceGroupName myresourcegroup
$inboundEndpoint.ToJsonString()

Erstellen eines ausgehenden Endpunkts für den DNS-Resolver

Erstellen eines Subnetzes im virtuellen Netzwerk

Erstellen Sie ein Subnetz im virtuellen Netzwerk (Microsoft.Network/virtualNetworks/subnets) aus dem IP-Adressraum, den Sie zuvor zugewiesen haben, das sich von Ihrem eingehenden Subnetz (snet-inbound) unterscheidet. Auch das ausgehende Subnetz muss mindestens /28 groß sein (16 IP-Adressen).

$virtualNetwork = Get-AzVirtualNetwork -Name myvnet -ResourceGroupName myresourcegroup
Add-AzVirtualNetworkSubnetConfig -Name snet-outbound -VirtualNetwork $virtualNetwork -AddressPrefix "10.1.1.0/28"
$virtualNetwork | Set-AzVirtualNetwork

Erstellen des ausgehenden Endpunkts

Ein ausgehender Endpunkt ermöglicht die bedingte Weiterleitung der Namensauflösung von Azure an externe DNS-Server.

New-AzDnsResolverOutboundEndpoint -DnsResolverName mydnsresolver -Name myoutboundendpoint -ResourceGroupName myresourcegroup -Location westcentralus -SubnetId /subscriptions/<your sub id>/resourceGroups/myresourcegroup/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/snet-outbound

Bestätigen des ausgehenden Endpunkts

Bestätigen Sie, dass der ausgehende Endpunkt erstellt und ihm eine IP-Adresse innerhalb des zugewiesenen Subnetzes zugewiesen wurde.

$outboundEndpoint = Get-AzDnsResolverOutboundEndpoint -Name myoutboundendpoint -DnsResolverName mydnsresolver -ResourceGroupName myresourcegroup
$outboundEndpoint.ToJsonString()

Erstellen eines Weiterleitungsregelsatzes für den DNS-Resolver

Erstellen Sie einen DNS-Weiterleitungsregelsatz für den von Ihnen erstellten ausgehenden Endpunkt.

New-AzDnsForwardingRuleset -Name myruleset -ResourceGroupName myresourcegroup -DnsResolverOutboundEndpoint $outboundendpoint -Location westcentralus

Bestätigen des DNS-Weiterleitungsregelsatzes

Bestätigen Sie, dass der Weiterleitungsregelsatz erstellt wurde.

$dnsForwardingRuleset = Get-AzDnsForwardingRuleset -Name myruleset -ResourceGroupName myresourcegroup
$dnsForwardingRuleset.ToJsonString()

Virtuelle Netzwerkverknüpfungen ermöglichen die Namensauflösung für virtuelle Netzwerke, die mit einem ausgehenden Endpunkt verknüpft sind, mit einem DNS-Weiterleitungsregelsatz.

$vnet = Get-AzVirtualNetwork -Name myvnet -ResourceGroupName myresourcegroup 
$vnetlink = New-AzDnsForwardingRulesetVirtualNetworkLink -DnsForwardingRulesetName $dnsForwardingRuleset.Name -ResourceGroupName myresourcegroup -VirtualNetworkLinkName "vnetlink" -VirtualNetworkId $vnet.Id -SubscriptionId <your sub id>

Bestätigen Sie, dass die virtuelle Netzwerkverknüpfung erstellt wurde.

$virtualNetworkLink = Get-AzDnsForwardingRulesetVirtualNetworkLink -DnsForwardingRulesetName $dnsForwardingRuleset.Name -ResourceGroupName myresourcegroup 
$virtualNetworkLink.ToJsonString()

Erstellen Sie ein zweites virtuelles Netzwerk, um eine lokale oder andere Umgebung zu simulieren.

$vnet2 = New-AzVirtualNetwork -Name myvnet2 -ResourceGroupName myresourcegroup -Location westcentralus -AddressPrefix "12.0.0.0/8"
$vnetlink2 = New-AzDnsForwardingRulesetVirtualNetworkLink -DnsForwardingRulesetName $dnsForwardingRuleset.Name -ResourceGroupName myresourcegroup -VirtualNetworkLinkName "vnetlink2" -VirtualNetworkId $vnet2.Id -SubscriptionId <your sub id>

Bestätigen des zweiten virtuellen Netzwerks

Bestätigen Sie, dass das zweite virtuelle Netzwerk erstellt wurde.

$virtualNetworkLink2 = Get-AzDnsForwardingRulesetVirtualNetworkLink -DnsForwardingRulesetName $dnsForwardingRuleset.Name -ResourceGroupName myresourcegroup 
$virtualNetworkLink2.ToJsonString()

Erstellen von Weiterleitungsregeln

Erstellen Sie eine Weiterleitungsregel für einen Regelsatz an einen oder mehrere DNS-Zielserver. Sie müssen den vollqualifizierten Domänennamen (FQDN) mit einem Punkt am Ende angeben. Das Cmdlet New-AzDnsResolverTargetDnsServerObject legt den Standardport auf 53 fest, aber Sie können auch einen eindeutigen Port angeben.

$targetDNS1 = New-AzDnsResolverTargetDnsServerObject -IPAddress 192.168.1.2 -Port 53 
$targetDNS2 = New-AzDnsResolverTargetDnsServerObject -IPAddress 192.168.1.3 -Port 53
$targetDNS3 = New-AzDnsResolverTargetDnsServerObject -IPAddress 10.0.0.4 -Port 53
$targetDNS4 = New-AzDnsResolverTargetDnsServerObject -IPAddress 10.5.5.5 -Port 53
$forwardingrule = New-AzDnsForwardingRulesetForwardingRule -ResourceGroupName myresourcegroup -DnsForwardingRulesetName myruleset -Name "Internal" -DomainName "internal.contoso.com." -ForwardingRuleState "Enabled" -TargetDnsServer @($targetDNS1,$targetDNS2)
$forwardingrule = New-AzDnsForwardingRulesetForwardingRule -ResourceGroupName myresourcegroup -DnsForwardingRulesetName myruleset -Name "AzurePrivate" -DomainName "azure.contoso.com" -ForwardingRuleState "Enabled" -TargetDnsServer $targetDNS3
$forwardingrule = New-AzDnsForwardingRulesetForwardingRule -ResourceGroupName myresourcegroup -DnsForwardingRulesetName myruleset -Name "Wildcard" -DomainName "." -ForwardingRuleState "Enabled" -TargetDnsServer $targetDNS4

In diesem Beispiel:

  • 10.0.0.4 ist der eingehende Endpunkt des Resolvers.
  • 192.168.1.2 und 192.168.1.3 sind lokale DNS-Server.
  • 10.5.5.5 ist ein schützender DNS-Dienst.

Wichtig

Die in dieser Schnellstartanleitung gezeigten Regeln sind Beispiele für Regeln, die für bestimmte Szenarien verwendet werden können. Es sind keine der in diesem Artikel beschriebenen Regeln erforderlich. Achten Sie darauf, Ihre Weiterleitungsregeln zu testen und sicherzustellen, dass die Regeln keine DNS-Lösungsprobleme verursachen.

Wenn Sie eine Wildcardregel in Ihr Ruleset einschließen, stellen Sie sicher, dass der DNS-Zieldienst öffentliche DNS-Namen auflösen kann. Einige Azure-Dienste weisen Abhängigkeiten von der Auflösung öffentlicher Namen auf.

Testen des privaten Resolvers

Sie sollten jetzt in der Lage sein, DNS-Datenverkehr an Ihren DNS-Resolver zu senden und Datensätze auf der Grundlage Ihrer Regelsätze für die Weiterleitung aufzulösen, einschließlich:

  • Azure DNS Private Zones, die mit dem virtuellen Netzwerk verknüpft sind, in dem der Resolver bereitgestellt wird.
  • DNS-Zonen im DNS-Namespace des öffentlichen Internets.
  • Private DNS-Zonen, die lokal gehostet werden.

Löschen eines DNS-Resolvers

Zum Löschen des DNS-Resolvers müssen zunächst die im Resolver erstellten Endpunkte für eingehende Ressourcen gelöscht werden. Sobald die eingehenden Endpunkte entfernt sind, kann der übergeordnete DNS-Resolver gelöscht werden.

Löschen des eingehenden Endpunkts

Remove-AzDnsResolverInboundEndpoint -Name myinboundendpoint -DnsResolverName mydnsresolver -ResourceGroupName myresourcegroup 
Remove-AzDnsForwardingRulesetVirtualNetworkLink -DnsForwardingRulesetName $dnsForwardingRuleset.Name -Name vnetlink -ResourceGroupName myresourcegroup

Löschen des DNS-Weiterleitungsregelsatzes

Remove-AzDnsForwardingRuleset -Name $dnsForwardingRuleset.Name -ResourceGroupName myresourcegroup

Löschen des ausgehenden Endpunkts

Remove-AzDnsResolverOutboundEndpoint -DnsResolverName mydnsresolver -ResourceGroupName myresourcegroup -Name myoutboundendpoint

Löschen des DNS-Resolvers

Remove-AzDnsResolver -Name mydnsresolver -ResourceGroupName myresourcegroup

Nächste Schritte