Udostępnij przez


Szybki start: Utwórz Prywatny Rozwiązywacz DNS Azure za pomocą Azure PowerShell

W tym artykule opisano kroki tworzenia pierwszej prywatnej strefy i rekordu DNS przy użyciu programu Azure PowerShell. Jeśli wolisz, możesz wykonać ten Szybki Start przy użyciu Portalu Azure.

Note

Zalecamy użycie modułu Azure Az PowerShell do interakcji z Azure. Aby rozpocząć, zobacz Instalowanie programu Azure PowerShell. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Azure DNS Private Resolver to nowa usługa, która umożliwia wykonywanie zapytań dotyczących prywatnych stref Azure DNS ze środowiska lokalnego oraz w odwrotnym kierunku, bez konieczności wdrażania serwerów DNS opartych na maszynach wirtualnych. Aby uzyskać więcej informacji, w tym korzyści, możliwości i dostępność regionalną, zapoznaj się z Co to jest Azure DNS Private Resolver.

Na poniższej ilustracji przedstawiono podsumowanie konfiguracji użytej w tym artykule:

Ilustracja koncepcyjna przedstawiająca komponenty prywatnego resolvera.

Prerequisites

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

W tym artykule założono, że zainstalowałeś moduł Az dla Azure PowerShell.

Instalowanie modułu Az.DnsResolver programu PowerShell

Note

Jeśli wcześniej zainstalowano moduł Az.DnsResolver do oceny podczas prywatnej wersji zapoznawczej, możesz wyrejestrować i usunąć utworzone lokalne repozytorium PSRepository. Następnie zainstaluj najnowszą wersję modułu Az.DnsResolver, wykonując kroki opisane w tym artykule.

Zainstaluj moduł Az.DnsResolver.

Install-Module Az.DnsResolver

Upewnij się, że zainstalowano moduł Az.DnsResolver. Bieżąca wersja tego modułu to 0.2.1.

Get-InstalledModule -Name Az.DnsResolver

Ustawianie kontekstu subskrypcji w programie Azure PowerShell

Łączenie programu PowerShell z chmurą platformy Azure.

Connect-AzAccount -Environment AzureCloud

Jeśli istnieje wiele subskrypcji, zostanie użyty pierwszy identyfikator subskrypcji. Aby określić inny identyfikator subskrypcji, użyj następującego polecenia.

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

Zarejestruj przestrzeń nazw dostawcy Microsoft.Network dla swojego konta.

Aby móc korzystać z usług Microsoft.Network w ramach subskrypcji platformy Azure, musisz zarejestrować przestrzeń nazw Microsoft.Network:

Użyj następującego polecenia, aby zarejestrować przestrzeń nazw Microsoft.Network.

Register-AzResourceProvider -ProviderNamespace Microsoft.Network

Utwórz instancję rozwiązywania DNS

Important

Kroki umożliwiające sprawdzenie lub potwierdzenie pomyślnego utworzenia zasobów nie są opcjonalne. Nie pomijaj tych kroków. Kroki wypełniają zmienne, które mogą być używane w późniejszych procedurach.

Utwórz grupę zasobów do hostowania zasobów. Grupa zasobów musi znajdować się w obsługiwanym regionie. W tym przykładzie lokalizacja to WestCentralUS.

New-AzResourceGroup -Name myresourcegroup -Location westcentralus

Utwórz sieć wirtualną w utworzonej grupie zasobów.

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

Utwórz program rozpoznawania nazw DNS w utworzonej sieci wirtualnej.

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

Sprawdź, czy resolver DNS został pomyślnie utworzony i jest w stanie połączenia (opcjonalnie). W wyniku dnsResolverState jest Połączony.

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

Utwórz przychodzący punkt końcowy resolvera DNS

Tworzenie podsieci w sieci wirtualnej

Utwórz podsieć w sieci wirtualnej (Microsoft.Network/virtualNetworks/subnets) z wcześniej przypisanej przestrzeni adresowej IP. Podsieć musi mieć rozmiar co najmniej /28 (16 adresów IP).

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

Utwórz przychodzący punkt końcowy

Utwórz przychodzący punkt końcowy, aby włączyć rozpoznawanie nazw ze środowiska lokalnego lub innej lokalizacji prywatnej przy użyciu adresu IP będącego częścią prywatnej przestrzeni adresowej sieci wirtualnej.

Tip

Za pomocą programu PowerShell można określić adres IP przychodzącego punktu końcowego jako dynamiczny lub statyczny.
Jeśli adres IP punktu końcowego jest określony jako dynamiczny, adres nie zmienia się, chyba że punkt końcowy zostanie usunięty i ponownie aprowizowany. Zazwyczaj ten sam adres IP zostanie ponownie przypisany podczas ponownej aprowizacji.
Jeśli adres IP punktu końcowego jest statyczny, można go określić i ponownie użyć, jeśli punkt końcowy zostanie przypisany na nowo. Wybrany adres IP nie może być zastrzeżonym adresem IP w podsieci.

Następujące polecenia udostępniają dynamiczny adres IP:

$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

Użyj następujących poleceń, aby określić statyczny adres IP. Nie używaj zarówno dynamicznych, jak i statycznych zestawów poleceń.

Musisz określić adres IP w podsieci, która została utworzona wcześniej. Wybrany adres IP nie może być zastrzeżonym adresem IP w podsieci.

Następujące polecenia udostępniają statyczny adres IP:

$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

Potwierdź punkt końcowy przychodzącego połączenia

Upewnij się, że punkt końcowy dla ruchu przychodzącego został utworzony i został przydzielony adres IP w przypisanej podsieci.

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

Tworzenie wychodzącego punktu końcowego resolvera DNS

Tworzenie podsieci w sieci wirtualnej

Utwórz podsieć w sieci wirtualnej (Microsoft.Network/virtualNetworks/subnets) z przestrzeni adresów IP, którą wcześniej przydzieliłeś, innej niż twoja podsieć przychodząca (snet-inbound). Podsieć ruchu wychodzącego musi również mieć rozmiar co najmniej /28 (16 adresów IP).

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

Utwórz punkt końcowy wychodzący

Wychodzący punkt końcowy umożliwia warunkowe przekazywanie nazw z platformy Azure do zewnętrznych serwerów DNS.

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

Potwierdzanie wychodzącego punktu końcowego

Upewnij się, że punkt końcowy wychodzący został utworzony i otrzymał adres IP w obrębie przypisanej podsieci.

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

Utwórz zestaw reguł przekierowania DNS

Utwórz zestaw reguł przesyłania dalej DNS dla utworzonego zewnętrznego punktu końcowego.

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

Potwierdzanie zestawu reguł przesyłania dalej DNS

Upewnij się, że zestaw reguł przekazywania dalej został utworzony.

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

Linki sieci wirtualnej umożliwiają rozwiązywanie nazw dla sieci wirtualnych, które są połączone z punktem końcowym skierowanym na zewnątrz przy użyciu zestawu reguł przekazywania DNS.

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

Upewnij się, że utworzono łącze sieci wirtualnej.

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

Utwórz drugą sieć wirtualną, aby symulować środowisko lokalne lub inne.

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

Potwierdzanie drugiej sieci wirtualnej

Upewnij się, że utworzono drugą sieć wirtualną.

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

Tworzenie reguł przekazywania

Utwórz regułę przekazywania dla zestawu reguł do co najmniej jednego docelowego serwera DNS. Musisz określić w pełni kwalifikowaną nazwę domeny (FQDN) z kropką końcową. Polecenie cmdlet New-AzDnsResolverTargetDnsServerObject ustawia domyślny port jako 53, ale można również określić unikatowy 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

W tym przykładzie:

  • 10.0.0.4 to przychodzący punkt końcowy programu rozpoznawania.
  • 192.168.1.2 i 192.168.1.3 to lokalne serwery DNS.
  • 10.5.5.5 to ochrona usługi DNS.

Important

Reguły przedstawione w tym przewodniku szybkiego startu to przykłady reguł, które mogą być używane w określonych scenariuszach. Żadne reguły przesyłania dalej opisane w tym artykule nie są wymagane. Należy zachować ostrożność, aby przetestować reguły przekazywania i upewnić się, że reguły nie powodują problemów z rozpoznawaniem nazw DNS.

Jeśli w zestawie reguł dołączysz regułę z symbolami wieloznacznymi, upewnij się, że docelowa usługa DNS może rozpoznać publiczne nazwy DNS. Niektóre usługi platformy Azure mają zależności od rozpoznawania nazw publicznych.

Przetestuj prywatny resolver

Teraz powinno być możliwe wysyłanie ruchu DNS do swojego resolvera DNS i rozwiązywanie rekordów na podstawie zestawów reguł przekazywania, w tym:

  • Prywatne strefy usługi Azure DNS połączone z siecią wirtualną, w której wdrożono resolver.
  • Strefy DNS w publicznej przestrzeni nazw DNS w internecie.
  • Prywatne strefy DNS, które są hostowane lokalnie.

Usuwanie rozpoznawania nazw DNS

Aby usunąć rozwiązywacz DNS, najpierw należy usunąć punkty końcowe przychodzące zasobu, które zostały utworzone w rozwiązywaczu. Po usunięciu przychodzących punktów końcowych można usunąć nadrzędny program rozpoznawania nazw DNS.

Usuń przychodzący punkt końcowy

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

Usuwanie zestawu reguł przesyłania dalej DNS

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

Usuń wychodzący punkt końcowy

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

Usuń resolver DNS

Remove-AzDnsResolver -Name mydnsresolver -ResourceGroupName myresourcegroup

Dalsze kroki