Snabbstart: Skapa en privat Lösning för Azure DNS med Azure PowerShell

Den här artikeln visar hur du skapar en Azure DNS Private Resolver med hjälp av Azure PowerShell. Om du föredrar kan du slutföra denna quickstart genom att använda Azure-portalen.

Note

Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. För att lära dig hur du migrerar till Az PowerShell-modulen, se Migrera Azure PowerShell från AzureRM till Az.

Azure DNS Private Resolver är en ny tjänst som gör att du kan köra frågor mot privata Azure DNS-zoner från en lokal miljö och vice versa utan att distribuera VM-baserade DNS-servrar. Mer information, inklusive fördelar, funktioner och regional tillgänglighet, finns i Vad är Azure DNS Private Resolver.

Följande bild sammanfattar konfigurationen som används i den här artikeln:

Konceptuell bild som visar komponenterna i den privata upplösaren.

Prerequisites

Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.

Den här artikeln förutsätter att du har installerat Az Azure PowerShell-modulen.

Installera modulen PowerShell Az.DnsResolver

Note

Om du tidigare har installerat Az.DnsResolver-modulen för utvärdering under privat förhandsversion kan du avregistrera och ta bort den lokala PSRepository som skapades. Installera sedan den senaste versionen av Az.DnsResolver-modulen med hjälp av stegen i den här artikeln.

Installera modulen Az.DnsResolver.

Install-Module Az.DnsResolver

Bekräfta att Modulen Az.DnsResolver har installerats. Den aktuella versionen av den här modulen är 0.2.1.

Get-InstalledModule -Name Az.DnsResolver

Ange prenumerationskontext i Azure PowerShell

Ansluta PowerShell till Azure-molnet.

Connect-AzAccount -Environment AzureCloud

Om det finns flera prenumerationer används det första prenumerations-ID:t. Om du vill ange ett annat prenumerations-ID använder du följande kommando.

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

Registrera namnområdet för Microsoft.Network-providern för ditt konto.

Innan du kan använda Microsoft.Network-tjänster med din Azure-prenumeration måste du registrera microsoft.network-namnområdet:

Använd följande kommando för att registrera namnområdet Microsoft.Network.

Register-AzResourceProvider -ProviderNamespace Microsoft.Network

Skapa en DNS-matchningsinstans

Important

Steg för att verifiera att resurser har skapats är inte valfria. Hoppa inte över de här stegen. Stegen fyller i variabler som kan användas i senare procedurer.

Skapa en resursgrupp som ska vara värd för resurserna. Resursgruppen måste finnas i en region som stöds. I det här exemplet är platsen westcentralus.

New-AzResourceGroup -Name myresourcegroup -Location westcentralus

Skapa ett virtuellt nätverk i resursgruppen som du skapade.

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

Skapa en DNS-resolver i det virtuella nätverk som du skapade.

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

Kontrollera att DNS-upplösaren har skapats framgångsrikt och att statusen är ansluten (valfritt). I utdata är dnsResolverStateAnsluten.

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

Skapa en inkommande DNS-matchningsslutpunkt

Skapa ett undernät i det virtuella nätverket

Skapa ett undernät i det virtuella nätverket (Microsoft.Network/virtualNetworks/undernät) från DET IP-adressutrymme som du tidigare tilldelade. Undernätet måste vara minst /28 i storlek (16 IP-adresser).

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

Skapa den inkommande slutpunkten

Skapa en inkommande slutpunkt för att aktivera namnmatchning från en lokal eller en annan privat plats med hjälp av en IP-adress som ingår i ditt privata virtuella nätverksadressutrymme.

Tip

Med PowerShell kan du ange att ip-adressen för inkommande slutpunkter ska vara dynamisk eller statisk.
Om slutpunktens IP-adress anges som dynamisk ändras inte adressen om inte slutpunkten tas bort och ometableras. Vanligtvis tilldelas samma IP-adress igen under återetablering.
Om slutpunktens IP-adress är statisk kan den anges och återanvändas om slutpunkten återskapas. Den IP-adress som du väljer kan inte vara en reserverad IP-adress i undernätet.

Följande kommandon etablerar en dynamisk IP-adress:

$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

Använd följande kommandon för att ange en statisk IP-adress. Använd inte både dynamiska och statiska uppsättningar med kommandon.

Du måste ange en IP-adress i undernätet som skapades tidigare. Den IP-adress som du väljer kan inte vara en reserverad IP-adress i undernätet.

Följande kommandon etablerar en statisk IP-adress:

$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

Bekräfta din inkommande slutpunkt

Säkerställ att den inkommande slutpunkten har skapats och att du har allokerat en IP-adress i det tilldelade undernätet.

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

Skapa en utgående DNS-resolverslutpunkt

Skapa ett undernät i det virtuella nätverket

Skapa ett undernät i det virtuella nätverket (Microsoft.Network/virtualNetworks/undernät) från DET IP-adressutrymme som du tidigare tilldelade, annat än ditt inkommande undernät (snet-inbound). Det utgående undernätet måste också vara minst /28 i storlek (16 IP-adresser).

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

Skapa den utgående slutpunkten

En utgående ändpunkt möjliggör villkorlig vidarebefordran av namnuppslagning från Azure till externa DNS-servrar.

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

Bekräfta slutpunkten för utgående trafik

Bekräfta att den utgående slutpunkten skapades och allokerade en IP-adress i det tilldelade undernätet.

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

Skapa vidarebefordringsregeluppsättning för DNS-resolver

Skapa en regeluppsättning för DNS-vidarebefordran för den utgående slutpunkt som du skapade.

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

Bekräfta regeluppsättningen för DNS-vidarebefordran

Bekräfta att regeluppsättningen för vidarebefordran har skapats.

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

Virtuella nätverkslänkar möjliggör namnupplösning för virtuella nätverk som är kopplade till en utgående slutpunkt med en regeluppsättning för DNS-vidarebefordran.

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

Bekräfta att länken för det virtuella nätverket har skapats.

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

Skapa ett andra virtuellt nätverk för att simulera en lokal eller annan miljö.

$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>

Bekräfta det andra virtuella nätverket

Bekräfta att det andra virtuella nätverket har skapats.

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

Skapa regler för vidarebefordran

Skapa en vidarebefordransregel för en regeluppsättning till en eller flera DNS-målservrar. Du måste ange det fullständigt kvalificerade domännamnet (FQDN) med en avslutande punkt. Cmdleten New-AzDnsResolverTargetDnsServerObject anger standardporten som 53, men du kan också ange en unik port.

$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

I det här exemplet:

  • 10.0.0.4 är lösenlösarens inkommande slutpunkt.
  • 192.168.1.2 och 192.168.1.3 är lokala DNS-servrar.
  • 10.5.5.5 är en skyddande DNS-tjänst.

Important

Reglerna som visas i den här snabbstarten är exempel på regler som kan användas för specifika scenarier. Ingen av de vidarebefordringsregler som beskrivs i den här artikeln krävs. Var noga med att testa dina vidarebefordransregler och se till att reglerna inte orsakar DNS-matchningsproblem.

Om du inkluderar en jokerteckenregel i regeluppsättningen kontrollerar du att DNS-måltjänsten kan matcha offentliga DNS-namn. Vissa Azure-tjänster har beroenden för offentlig namnmatchning.

Testa den privata matcharen

Nu bör du kunna skicka DNS-trafik till DNS-matcharen och matcha poster baserat på dina regler för vidarebefordran, inklusive:

  • Privata Azure DNS-zoner som är länkade till det virtuella nätverket där matcharen distribueras.
  • DNS-zoner i det offentliga INTERNET DNS-namnområdet.
  • Privat DNS zoner som finns lokalt.

Ta bort en DNS-resolver

För att ta bort DNS-resolvern måste de inkommande slutpunkterna för resursen som skapats inom resolvern först tas bort. När de inkommande slutpunkterna har tagits bort kan den överordnade DNS-resolven tas bort.

Ta bort den inkommande slutpunkten

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

Ta bort regeluppsättningen för DNS-vidarebefordran

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

Ta bort den utgående slutpunkten

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

Ta bort DNS-matcharen

Remove-AzDnsResolver -Name mydnsresolver -ResourceGroupName myresourcegroup

Nästa steg