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:
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()
Erstellen einer virtuellen Netzwerkverknüpfung mit einem DNS-Weiterleitungsregelsatz
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 der virtuellen Netzwerkverknüpfung
Bestätigen Sie, dass die virtuelle Netzwerkverknüpfung erstellt wurde.
$virtualNetworkLink = Get-AzDnsForwardingRulesetVirtualNetworkLink -DnsForwardingRulesetName $dnsForwardingRuleset.Name -ResourceGroupName myresourcegroup
$virtualNetworkLink.ToJsonString()
Erstellen eines zweiten virtuellen Netzwerks und Verknüpfen dieses Netzwerks mit Ihrem DNS-Weiterleitungsregelsatz
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
Löschen Sie die virtuelle Netzwerkverknüpfung.
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