Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit onderwerp vindt u informatie over hoe Anycast DNS werkt.
Wat is Anycast?
Anycast is een technologie die meerdere routeringspaden biedt naar een groep eindpunten waaraan elk hetzelfde IP-adres is toegewezen. Elk apparaat in de groep adverteert hetzelfde adres op een netwerk en routeringsprotocollen worden gebruikt om te kiezen welke het beste doel is.
Met Anycast kunt u een staatloze service, zoals DNS of HTTP, schalen door meerdere knooppunten achter hetzelfde IP-adres te plaatsen en ecmp-routering (equal-cost multi-path) te gebruiken om verkeer tussen deze knooppunten te leiden. Anycast verschilt van unicast, waarbij elk eindpunt een eigen, afzonderlijk IP-adres heeft.
Waarom Anycast gebruiken met DNS?
Met Anycast DNS kunt u een DNS-server of een groep servers inschakelen om te reageren op DNS-query's op basis van de geografische locatie van een DNS-client. Dit kan de DNS-reactietijd verbeteren en dns-clientinstellingen vereenvoudigen. Anycast DNS biedt ook een extra redundantielaag en kan helpen beschermen tegen DNS Denial of Service-aanvallen.
Hoe Anycast DNS werkt
Anycast DNS werkt met behulp van routeringsprotocollen zoals Border Gateway Protocol (BGP) voor het verzenden van DNS-query's naar een voorkeurs-DNS-server of -groep DNS-servers (bijvoorbeeld een groep DNS-servers die worden beheerd door een load balancer). Dit ontwerp kan DNS-communicatie optimaliseren door DNS-antwoorden te verkrijgen van een DNS-server die zich het dichtst bij een client bevindt.
Met Anycast adverteren servers die zich op meerdere geografische locaties bevinden elk één, identiek IP-adres aan hun lokale gateway (router). Wanneer een DNS-client een query initieert naar het Anycast-adres, worden de beschikbare routes geëvalueerd en wordt de DNS-query verzonden naar de voorkeurslocatie. Over het algemeen is deze locatie de dichtstbijzijnde op basis van netwerktopologie. Zie het volgende voorbeeld.
Afbeelding 1: Voorbeeld van Anycast-netwerk
- Vier DNS-servers (blauwe cirkels), die zich op verschillende sites in een netwerk bevinden, kondigen elk hetzelfde Anycast-IP-adres aan op hun lokale routeringsapparaat (niet weergegeven).
- Routes worden gedeeld tussen apparaten in het netwerk (zwarte pijlen).
- Een DNS-clientapparaat (groene cirkel) verzendt een DNS-query naar het Anycast-IP-adres.
- De DNS-aanvraag van de client wordt ontvangen door een routeringsapparaat in het netwerk (niet weergegeven).
- Het routeringsapparaat analyseert de beschikbare routes naar het Anycast-IP-adres en routeert de DNS-query met behulp van de kortste beschikbare route.
- De DNS-query wordt verzonden naar de dichtstbijzijnde DNS-server (blauwe pijl).
Anycast-DNS wordt tegenwoordig gebruikt om DNS-verkeer te routeren voor veel globale DNS-services. Het hoofd-DNS-serversysteem is bijvoorbeeld sterk afhankelijk van Anycast DNS. Anycast werkt ook met veel verschillende routeringsprotocollen en kan uitsluitend worden gebruikt op intranetten.
Windows Server native BGP Anycast-demo
De volgende procedure laat zien hoe systeemeigen BGP op Windows Server kan worden gebruikt met Anycast DNS.
Requirements
- Eén fysiek apparaat waarop de Hyper-V-rol is geïnstalleerd.
- Windows Server 2012 R2, Windows 10 of hoger.
- 2 client-VM's (elk besturingssysteem).
- Installatie van BIND-tools voor DNS, zoals dig, wordt aanbevolen.
- 3 server-VM's (Windows Server 2016 of Windows Server 2019).
- Als de Windows PowerShell LoopbackAdapter-module nog niet is geïnstalleerd op server-VM's (DC001, DC002), is internettoegang tijdelijk vereist om deze module te installeren.
Hyper-V instellen
Configureer uw Hyper-V-server als volgt:
- 2 privénetwerken voor virtuele switch zijn geconfigureerd
- Een mock-internetnetwerk 131.253.1.0/24
- Een mock-intranetnetwerk 10.10.10.0/24
- Twee client-VM's zijn gekoppeld aan het netwerk 131.253.1.0/24
- Twee server-VM's zijn gekoppeld aan het netwerk 10.10.10.0/24
- 1 server is dubbel thuis en gekoppeld aan zowel het 131.253.1.0/24 als het 10.10.10.0/24 netwerk.
Netwerkconfiguratie van virtuele machines
Configureer netwerkinstellingen op virtuele machines met de volgende instellingen:
- Client1, client2
- Client1: 131.253.1.1
- Client2: 131.253.1.2
- Subnet-masker: 255.255.255.0
- DNS: 51.51.51.51.51
- Gateway: 131.253.1.254
- Gateway (Windows Server)
- NIC1: 131.253.1.254, subnet 255.255.255.0
- NIC2: 10.10.10.254, subnet 255.255.255.0
- DNS: 51.51.51.51.51
- Gateway: 131.253.1.100 (kan worden genegeerd voor de demo)
- DC001 (Windows Server)
- NIC1: 10.10.10.1
- Subnet: 255.255.255.0
- DNS: 10.10.10.1
- Gateway: 10.10.10.254
- DC002 (Windows Server)
- NIC1: 10.10.10.2
- Subnet 255.255.255.0
- DNS: 10.10.10.2*
- Gateway: 10.10.10.254
*Gebruik 10.10.10.1 voor DNS in eerste instantie bij het uitvoeren van domeindeelname voor DC002, zodat u het Active Directory-domein op DC001 kunt vinden.
DNS configureren
Gebruik Serverbeheer en de DNS-beheerconsole of Windows PowerShell om de volgende serverfuncties te installeren en een statische DNS-zone op elk van twee servers te maken.
- DC001, DC002
- Active Directory Domain Services installeren en niveau verhogen naar domeincontroller (optioneel)
- De DNS-rol installeren (vereist)
- Maak een statische zone (niet-AD geïntegreerd) met de naam zone.tst op zowel DC001 als DC002
- Voeg de enkele statische recordnaam server toe in een zone van het type "TXT".
- Gegevens (tekst) voor de TXT-record op DC001 = DC001
- Gegevens (tekst) voor de TXT-record op DC002 = DC002
Loopback-adapters configureren
Voer de volgende opdrachten in bij een Windows PowerShell-prompt met verhoogde bevoegdheid op DC001 en DC002 om loopback-adapters te configureren.
Note
Voor de opdracht Install-Module is internettoegang vereist. Dit kan worden gedaan door de VIRTUELE machine tijdelijk toe te wijzen aan een extern netwerk in Hyper-V.
$primary_interface = (Get-NetAdapter |?{$_.Status -eq "Up" -and !$_.Virtual}).Name
$loopback_ipv4 = '51.51.51.51'
$loopback_ipv4_length = '32'
$loopback_name = 'Loopback'
Install-Module -Name LoopbackAdapter -MinimumVersion 1.2.0.0 -Force
Import-Module -Name LoopbackAdapter
New-LoopbackAdapter -Name $loopback_name -Force
$interface_loopback = Get-NetAdapter -Name $loopback_name
$interface_main = Get-NetAdapter -Name $primary_interface
Set-NetIPInterface -InterfaceIndex $interface_loopback.ifIndex -InterfaceMetric "254" -WeakHostReceive Enabled -WeakHostSend Enabled -DHCP Disabled
Set-NetIPInterface -InterfaceIndex $interface_main.ifIndex -WeakHostReceive Enabled -WeakHostSend Enabled
Set-NetIPAddress -InterfaceIndex $interface_loopback.ifIndex -SkipAsSource $True
Get-NetAdapter $loopback_name | Set-DNSClient –RegisterThisConnectionsAddress $False
New-NetIPAddress -InterfaceAlias $loopback_name -IPAddress $loopback_ipv4 -PrefixLength $loopback_ipv4_length -AddressFamily ipv4
Disable-NetAdapterBinding -Name $loopback_name -ComponentID ms_msclient
Disable-NetAdapterBinding -Name $loopback_name -ComponentID ms_pacer
Disable-NetAdapterBinding -Name $loopback_name -ComponentID ms_server
Disable-NetAdapterBinding -Name $loopback_name -ComponentID ms_lltdio
Disable-NetAdapterBinding -Name $loopback_name -ComponentID ms_rspndr
Routeringsconfiguratie voor virtuele machines
Gebruik de volgende Windows PowerShell-opdrachten op VM's om routering te configureren.
- Gateway
Install-WindowsFeature RemoteAccess -IncludeManagementTools
Install-RemoteAccess -VpnType RoutingOnly
Add-BgpRouter -BgpIdentifier “10.10.10.254” -LocalASN 8075
Add-BgpPeer -Name "DC001" -LocalIPAddress 10.10.10.254 -PeerIPAddress 10.10.10.1 -PeerASN 65511 –LocalASN 8075
Add-BgpPeer -Name "DC002" -LocalIPAddress 10.10.10.254 -PeerIPAddress 10.10.10.2 -PeerASN 65511 –LocalASN 8075
- DC001
Install-WindowsFeature RemoteAccess -IncludeManagementTools
Install-RemoteAccess -VpnType RoutingOnly
Add-BgpRouter -BgpIdentifier “10.10.10.1” -LocalASN 65511
Add-BgpPeer -Name "Labgw" -LocalIPAddress 10.10.10.1 -PeerIPAddress 10.10.10.254 -PeerASN 8075 –LocalASN 65511
Add-BgpCustomRoute -Network 51.51.51.0/24
- DC002
Install-WindowsFeature RemoteAccess -IncludeManagementTools
Install-RemoteAccess -VpnType RoutingOnly
Add-BgpRouter -BgpIdentifier "10.10.10.2" -LocalASN 65511
Add-BgpPeer -Name "Labgw" -LocalIPAddress 10.10.10.2 -PeerIPAddress 10.10.10.254 -PeerASN 8075 –LocalASN 65511
Add-BgpCustomRoute -Network 51.51.51.0/24
Overzichtsdiagram
Afbeelding 2: Lab-installatie voor systeemeigen BGP Anycast DNS-demo
Anycast-DNS-demonstratie
BGP-routering controleren op de gatewayserver
PS C:\> Get-BgpRouteInformationDestinationNetwork NextHop LearnedFromPeer State LocalPref MED
------------------ ------- --------------- ----- --------- ---
51.51.51.0/24 10.10.10.1 DC001 Beste
51.51.51.0/24 10.10.10.2 DC002 BesteControleer op client1 en client2 of u 51.51.51.51 kunt bereiken
PS C:\> ping 51.51.51.51Pingen 51.51.51.51 met 32 bytes aan gegevens:
Antwoord van 51.51.51.51: bytes=32 tijd<1ms TTL=126
Antwoord van 51.51.51.51: bytes=32 tijd<1ms TTL=126
Antwoord van 51.51.51.51: bytes=32 tijd<1ms TTL=126
Antwoord van 51.51.51.51: bytes=32 tijd<1ms TTL=126Pingstatistieken voor 51.51.51.51:51:
Pakketten: Verzonden = 4, Ontvangen = 4, Verloren = 0 (0% verlies),
Geschatte retourtijden in milliseconden:
Minimum = 0 ms, Maximum = 0ms, Gemiddelde = 0msNote
Als ping mislukt, controleert u ook of er geen firewallregels zijn die ICMP blokkeren.
Gebruik op client1 en client2 nslookup of graaf om een query uit te voeren op de TXT-record. Voorbeelden van beide worden weergegeven.
PS C:\> dig server.zone.tst TXT +short
PS C:\> nslookup -type=txt server.zone.tst 51.51.51.51De ene client geeft 'DC001' weer en de andere client geeft 'DC002' weer, waarbij wordt gecontroleerd of Anycast correct werkt. U kunt ook query's uitvoeren vanaf de gatewayserver.
Schakel vervolgens de Ethernet-adapter op DC001 uit.
PS C:\> (Get-NetAdapter).Name
Loopback
Ethernet 2
PS C:\> Disable-NetAdapter "Ethernet 2"
Confirm
Weet u zeker dat u deze actie wilt uitvoeren?
Disable-NetAdapter 'Ethernet 2'
[Y] Ja [A] Ja voor alle [N] Nee [L] Nee voor alle [S] Onderbreken [?] Help (standaard is 'Y'):
PS C:\> (Get-NetAdapter).Status
Up
DisabledControleer of DNS-clients die eerder reacties van DC001 hebben ontvangen, zijn overgeschakeld naar DC002.
PS C:\> nslookup -type=txt server.zone.tst 51.51.51.51
Server: Onbekend
Adres: 51.51.51.51server.zone.tst tekst =
"DC001"
PS C:\> nslookup -type=txt server.zone.tst 51.51.51.51
Server: Onbekend
Adres: 51.51.51.51server.zone.tst tekst =
"DC002"
Controleer of de BGP-sessie niet beschikbaar is op DC001 met behulp van Get-BgpStatistics op de gatewayserver.
Schakel de Ethernet-adapter op DC001 opnieuw in en controleer of de BGP-sessie is hersteld en dat clients DNS-antwoorden van DC001 opnieuw ontvangen.
Note
Als een load balancer niet wordt gebruikt, gebruikt een afzonderlijke client dezelfde back-end-DNS-server als deze beschikbaar is. Hiermee maakt u een consistent BGP-pad voor de client. Voor meer informatie, zie sectie 4.4.3 van RFC4786: Equal-Cost Paden.
Veelgestelde vragen
V: Is Anycast DNS een goede oplossing voor gebruik in een on-premises DNS-omgeving?
A: Anycast DNS werkt naadloos met een on-premises DNS-service. Anycast is echter niet vereist om de DNS-service te schalen.
V: Wat is de impact van het implementeren van Anycast-DNS in een omgeving met een groot aantal (bijvoorbeeld >50) domeincontrollers?
A: Er is geen directe invloed op de functionaliteit. Als er een load balancer wordt gebruikt, is er geen andere configuratie op domeincontrollers vereist.
V: Wordt een Anycast DNS-configuratie ondersteund door de Microsoft-klantenservice?
A: Als u een niet-Microsoft-load balancer gebruikt om DNS-query's door te sturen, ondersteunt Microsoft problemen met betrekking tot de DNS-serverservice. Raadpleeg de leverancier van de load balancer voor problemen met betrekking tot DNS-doorsturen.
V: Wat is de best practice voor Anycast DNS met een groot aantal (bijvoorbeeld >50) domeincontrollers?
A: De aanbevolen procedure is om een load balancer op elke geografische locatie te gebruiken. Load balancers worden doorgaans geleverd door een externe leverancier.
V: Hebben Anycast DNS en Azure DNS vergelijkbare functionaliteit?
A: Azure DNS maakt gebruik van Anycast. Als u Anycast wilt gebruiken met Azure DNS, configureert u uw load balancer om aanvragen door te sturen naar de Azure DNS-server.