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. 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 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:
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()
Tworzenie łącza sieci wirtualnej do zestawu reguł przesyłania dalej DNS
Łą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>
Potwierdzanie linku sieci wirtualnej
Upewnij się, że utworzono łącze sieci wirtualnej.
$virtualNetworkLink = Get-AzDnsForwardingRulesetVirtualNetworkLink -DnsForwardingRulesetName $dnsForwardingRuleset.Name -ResourceGroupName myresourcegroup
$virtualNetworkLink.ToJsonString()
Utwórz drugą sieć wirtualną i połącz ją z zestawem reguł przesyłania dalej DNS
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
Usuwanie linku sieci wirtualnej
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