overzicht van Anycast DNS
- 10/23/2020
- 7 minuten om te lezen
-
- g
- e
geldt voor: Windows Server (halfjaarlijks kanaal), Windows Server 2016, Windows Server 2019
dit onderwerp geeft 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 de beste bestemming is.
met Anycast kunt u een stateless 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 zijn eigen, aparte IP-adres heeft.
waarom Anycast met DNS gebruiken?
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-responstijd verbeteren en DNS-clientinstellingen vereenvoudigen. Anycast DNS biedt ook een extra laag redundantie en kan helpen beschermen tegen DNS denial of service-aanvallen.
Hoe werkt Anycast DNS
Anycast DNS werkt met behulp van routeringsprotocollen zoals Border Gateway Protocol (BGP) om DNS-query ‘ s te verzenden naar een voorkeurs-DNS-server of groep DNS-servers (bijvoorbeeld: een groep DNS-servers beheerd door een load balancer). Dit kan DNS-communicatie te optimaliseren door het verkrijgen van DNS-reacties van een DNS-server die het dichtst bij een client.
met Anycast adverteren servers die bestaan op meerdere geografische locaties elk een enkel, 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 naar de gewenste locatie verzonden. In het algemeen is dit de dichtstbijzijnde locatie op basis van netwerktopologie. Zie het volgende voorbeeld.
figuur 1: Vier DNS-servers op verschillende sites op een netwerk kondigen elk hetzelfde Anycast IP-adres (zwarte pijlen) aan op het netwerk. Een DNS-clientapparaat stuurt een verzoek naar het IP-adres van Anycast. Netwerkapparaten analyseren de beschikbare routes en sturen de DNS-query van de client naar de dichtstbijzijnde locatie (blauwe pijl).
Anycast DNS wordt tegenwoordig vaak gebruikt om DNS-verkeer te routeren voor veel wereldwijde DNS-diensten. Bijvoorbeeld, het root DNS server systeem is sterk afhankelijk van Anycast DNS. Anycast werkt ook met een verscheidenheid aan routeringsprotocollen en kan uitsluitend op intranetten worden gebruikt.
Windows Server native BGP Anycast demo
de volgende procedure laat zien hoe native BGP op Windows Server kan worden gebruikt met Anycast DNS.
vereisten
- één fysiek apparaat met de Hyper-V-functie geïnstalleerd.
- Windows Server 2012 R2, Windows 10 of hoger.
- 2 client VMs (elk besturingssysteem).
- installatie van BIND tools voor DNS zoals dig wordt aanbevolen.
- 3 server VMs (Windows Server 2016 of Windows Server 2019).
- als de Windows PowerShell LoopbackAdapter-module nog niet is geïnstalleerd op server VMs (DC001, DC002), is internettoegang tijdelijk vereist om deze module te installeren.
Hyper – V setup
configureer uw Hyper-V server als volgt:
- 2 private virtuele switch netwerken zijn geconfigureerd
- een nep-Internet netwerk 131.253.1.0 / 24
- een nep-intranet netwerk 10.10.10.0/24
- 2 client VM ’s zijn gekoppeld aan het 131.253.1.0/24 netwerk
- 2 server VM’ s zijn gekoppeld aan het 10.10.10.0/24 netwerk
- 1 server is dual-homed en gekoppeld aan zowel de 131.253.1.0/24 en 10.10.10.0/24 netwerken.
netwerkconfiguratie voor virtuele machines
netwerkinstellingen op virtuele machines configureren met de volgende instellingen:
- Klant1, klant2
- Client1: 131.253.1.1
- Client2:131.253.1.2
- subnetmasker: 255.255.255.0
- DNS: 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
- 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 domain join voor DC002, zodat u het Active Directory-domein op DC001 kunt vinden.
configureer DNS
gebruik Serverbeheer en de DNS-beheerconsole of Windows PowerShell om de volgende serverrollen te installeren en een statische DNS-zone op elk van twee servers te maken.
- DC001, DC002
- installeer Active Directory Domain Services en promoveer naar domeincontroller (optioneel)
- installeer de DNS-rol (vereist)
- Maak een statische zone (niet-AD geïntegreerd) met de naam zone.tst op zowel DC001 en DC002
- Voeg de statische record naam van de server in de zone van het type “TXT”
- Data (tekst) voor de TXT-record op DC001 = DC001
- Data (tekst) voor de TXT-record op DC002 = DC002
Configureren loopback-adapters
Voer de volgende commando ‘ s bij een verhoogde Windows PowerShell-prompt op DC001 en DC002 configureren loopback-adapter.
Noot
het commando installatie-Module vereist internettoegang. Dit kan worden gedaan door de VM 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 -ForceImport-Module -Name LoopbackAdapterNew-LoopbackAdapter -Name $loopback_name -Force$interface_loopback = Get-NetAdapter -Name $loopback_name$interface_main = Get-NetAdapter -Name $primary_interfaceSet-NetIPInterface -InterfaceIndex $interface_loopback.ifIndex -InterfaceMetric "254" -WeakHostReceive Enabled -WeakHostSend Enabled -DHCP DisabledSet-NetIPInterface -InterfaceIndex $interface_main.ifIndex -WeakHostReceive Enabled -WeakHostSend EnabledSet-NetIPAddress -InterfaceIndex $interface_loopback.ifIndex -SkipAsSource $TrueGet-NetAdapter $loopback_name | Set-DNSClient –RegisterThisConnectionsAddress $FalseNew-NetIPAddress -InterfaceAlias $loopback_name -IPAddress $loopback_ipv4 -PrefixLength $loopback_ipv4_length -AddressFamily ipv4Disable-NetAdapterBinding -Name $loopback_name -ComponentID ms_msclientDisable-NetAdapterBinding -Name $loopback_name -ComponentID ms_pacerDisable-NetAdapterBinding -Name $loopback_name -ComponentID ms_serverDisable-NetAdapterBinding -Name $loopback_name -ComponentID ms_lltdioDisable-NetAdapterBinding -Name $loopback_name -ComponentID ms_rspndr
routeringsconfiguratie voor virtuele machines
gebruik de volgende Windows PowerShell-opdrachten op VMs om routering te configureren.
- Gateway
Install-WindowsFeature RemoteAccess -IncludeManagementToolsInstall-RemoteAccess -VpnType RoutingOnlyAdd-BgpRouter -BgpIdentifier "10.10.10.254" -LocalASN 8075Add-BgpPeer -Name "DC001" -LocalIPAddress 10.10.10.254 -PeerIPAddress 10.10.10.1 -PeerASN 65511 –LocalASN 8075
- DC001
Install-WindowsFeature RemoteAccess -IncludeManagementToolsInstall-RemoteAccess -VpnType RoutingOnlyAdd-BgpRouter -BgpIdentifier "10.10.10.1" -LocalASN 65511Add-BgpPeer -Name "Labgw" -LocalIPAddress 10.10.10.1 -PeerIPAddress 10.10.10.254 -PeerASN 8075 –LocalASN 65511Add-BgpCustomRoute -Network 51.51.51.0/24
- DC002
Install-WindowsFeature RemoteAccess -IncludeManagementToolsInstall-RemoteAccess -VpnType RoutingOnlyAdd-BgpRouter -BgpIdentifier "10.10.10.2" -LocalASN 65511Add-BgpPeer -Name "Labgw" -LocalIPAddress 10.10.10.2 -PeerIPAddress 10.10.10.254 -PeerASN 8075 –LocalASN 65511Add-BgpCustomRoute -Network 51.51.51.0/24
Samenvatting diagram
Figuur 2: Lab setup voor native BGP Anycast DNS-demo,
Anycast DNS-demonstratie
-
Controleer BGP routing op de gateway-server
PS-C:> Get-BgpRouteInformation
DestinationNetwork NextHop LearnedFromPeer Staat LocalPref MED
—————— ——- ————— —– ——— —
51.51.51.0/24 10.10.10.1 DC001 Beste
51.51.51.0/24 10.10.10.2 DC002 Beste -
Op client1 en client2, controleert u of u kunt bereiken 51.51.51.51
PS C:> ping 51.51.51.51
Pingen 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=126Ping-statistieken voor 51.51.51.51:
Pakketten: Verzonden = 4, Ontvangen = 4, Verloren = 0 (0% verlies),
Geschatte round trip tijden in milli-seconden:
Minimum = 0ms, Maximum = 0ms, Gemiddelde = 0msOpmerking
Als ping mislukt, controleer ook zijn er geen firewall regels blokkeren van ICMP.
-
op client1 en client2, gebruik nslookup of dig om de TXT record te bevragen. Voorbeelden van beide zijn hieronder weergegeven.
PS C:> dig-server.zone.tst TXT + short
PS C:> nslookup-type = txt-server.zone.tst 51.51.51.51een client zal “DC001” weergeven en de andere client zal “DC002” weergeven om te controleren of Anycast correct werkt. U kunt ook vragen 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’
Yes Yes to All No No to All Suspend Help (Standaard is “Y”):
PS C:> (Get-netadapter).Status
Up
uitgeschakeld -
bevestig dat DNS-clients die eerder reacties van DC001 hebben ontvangen, zijn overgestapt op DC002.
PS C:> nslookup-type=txt-server.zone.TST 51.51.51.51
Server: onbekend
adres: 51.51.51.51server.zone.TST text =
“DC001”
PS C:> nslookup-type = txt-server.zone.TST 51.51.51.51
Server: onbekend
adres: 51.51.51.51server.zone.TST text =
“DC002”
-
bevestig dat de BGP-sessie down is op DC001 met behulp van Get-BgpStatistics op de gatewayserver.
-
Schakel de Ethernet-adapter op DC001 opnieuw in en bevestig dat de BGP-sessie is hersteld en clients opnieuw DNS-reacties van DC001 ontvangen.
opmerking
als een load balancer niet wordt gebruikt, zal een individuele client dezelfde back-end DNS-server gebruiken als deze beschikbaar is. Dit creëert een consistent BGP-pad voor de client. Zie rubriek 4.4 voor meer informatie.3 van RFC4786: paden voor Gelijke kosten.
Veelgestelde vragen
Q: Is Anycast DNS een goede oplossing voor gebruik in een on-premise DNS-omgeving?
A: Anycast DNS werkt naadloos samen met een on-premise DNS-service. Anycast is echter niet vereist om de DNS-service op te schalen.
Q: Wat is de impact van het implementeren van Anycast DNS in een omgeving met een groot aantal (bijv. >50) domeincontrollers?
A: Er is geen directe invloed op de functionaliteit. Als een load balancer wordt gebruikt, is geen extra configuratie op domeincontrollers vereist.
Q: Wordt een Anycast DNS-configuratie ondersteund door de Microsoft-klantenservice?
A: Als u een load balancer zonder Microsoft gebruikt om DNS-query ‘ s door te sturen, ondersteunt Microsoft problemen met betrekking tot de DNS Server-service. Raadpleeg de leverancier van load balancer voor problemen in verband met DNS forwarding.
Q: Wat is de beste praktijk voor Anycast DNS met een groot aantal (bijv. >50) domeincontrollers?
A: de beste praktijk is om op elke geografische locatie een lastbalancer te gebruiken. Load balancers worden meestal geleverd door een Externe leverancier.
Q: Hebben Anycast DNS en Azure DNS dezelfde functionaliteit?
A: Azure DNS gebruikt Anycast. Als u Anycast met Azure DNS wilt gebruiken, configureert u uw load balancer om aanvragen door te sturen naar de Azure DNS-server.