Szybki start: tworzenie prywatnego rozpoznawania nazw usługi Azure DNS przy użyciu programu Azure PowerShell

W tym artykule przedstawiono kroki umożliwiające utworzenie po raz pierwszy prywatnej strefy i rekordu DNS przy użyciu programu Azure PowerShell. Jeśli wolisz, możesz wykonać ten przewodnik Szybki start przy użyciu witryny Azure Portal.

Uwaga

Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. 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 wysyłanie zapytań do prywatnych stref Azure DNS ze środowiska lokalnego i odwrotnie — 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ści regionalnej, zobacz Co to jest prywatny program rozpoznawania nazw usługi Azure DNS.

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

Ilustracja koncepcyjna zawierająca składniki prywatnego narzędzia rozpoznawania nazw.

Wymagania wstępne

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

W tym artykule założono, że zainstalowano moduł Az programu Azure PowerShell.

Instalowanie modułu Az.DnsResolver programu PowerShell

Uwaga

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

Połączenie programu PowerShell do chmury 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

Tworzenie wystąpienia rozpoznawania nazw DNS

Ważne

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 program rozpoznawania nazw DNS został pomyślnie utworzony, a stan jest połączony (opcjonalnie). W danych wyjściowych dnsResolverState jest Połączenie.

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

Tworzenie przychodzącego punktu końcowego rozpoznawania nazw 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

Tworzenie przychodzącego punktu końcowego

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.

Napiwek

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 ponownie aprowizacji. 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

Potwierdzanie przychodzącego punktu końcowego

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

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

Tworzenie wychodzącego punktu końcowego rozpoznawania nazw DNS

Tworzenie podsieci w sieci wirtualnej

Utwórz podsieć w sieci wirtualnej (Microsoft.Network/virtualNetworks/subnets) z wcześniej przypisanej przestrzeni adresowej IP innej niż 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

Tworzenie wychodzącego punktu końcowego

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 ruchu wychodzącego został utworzony i przydzielony adres IP w przypisanej podsieci.

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

Tworzenie zestawu reguł przesyłania dalej rozpoznawania nazw DNS

Utwórz zestaw reguł przesyłania dalej DNS dla utworzonego punktu końcowego ruchu wychodzącego.

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

Potwierdzanie zestawu reguł przesyłania dalej DNS

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

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

Łącza sieci wirtualnej umożliwiają rozpoznawanie nazw dla sieci wirtualnych połączonych z wychodzącym punktem końcowym z zestawem reguł przesyłania dalej 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.

Ważne

Reguły przedstawione w tym przewodniku Szybki start to przykłady reguł, które mogą być używane w określonych scenariuszach. Żadne z reguł fawardingu opisanych 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.

Testowanie prywatnego rozpoznawania nazw

Teraz powinno być możliwe wysyłanie ruchu DNS do rozpoznawania nazw DNS i rozpoznawanie rekordów na podstawie zestawów reguł przesyłania dalej, w tym:

  • Prywatne strefy usługi Azure DNS połączone z siecią wirtualną, w której wdrożono narzędzie rozpoznawania nazw.
  • Strefy DNS w publicznej przestrzeni nazw DNS w internecie.
  • Prywatna strefa DNS stref hostowanych lokalnie.

Usuwanie rozpoznawania nazw DNS

Aby usunąć program rozpoznawania nazw DNS, najpierw należy usunąć punkty końcowe ruchu przychodzącego zasobu utworzone w narzędziu rozpoznawania nazw. Po usunięciu przychodzących punktów końcowych można usunąć nadrzędny program rozpoznawania nazw DNS.

Usuwanie przychodzącego punktu końcowego

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

Usuwanie wychodzącego punktu końcowego

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

Usuwanie rozpoznawania nazw DNS

Remove-AzDnsResolver -Name mydnsresolver -ResourceGroupName myresourcegroup

Następne kroki