Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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:
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()
Tworzenie łącza sieci wirtualnej do zestawu reguł przesyłania dalej DNS
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>
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.
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
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
Usuń wychodzący punkt końcowy
Remove-AzDnsResolverOutboundEndpoint -DnsResolverName mydnsresolver -ResourceGroupName myresourcegroup -Name myoutboundendpoint
Usuń resolver DNS
Remove-AzDnsResolver -Name mydnsresolver -ResourceGroupName myresourcegroup