Anycast DNS oversigt

  • 10/23/2020
  • 7 minutter at læse
    • g
    • e

gælder: vinduer Server (halvårlig kanal), vinduer Server 2016, vinduer Server 2019

dette emne indeholder oplysninger om, hvordan Anycast DNS fungerer.

Hvad er Anycast?

Anycast er en teknologi, der giver flere rutestier til en gruppe slutpunkter, der hver tildeles den samme IP-adresse. Hver enhed i gruppen annoncerer den samme adresse på et netværk, og routingprotokoller bruges til at vælge, hvilken destination der er den bedste.

Anycast giver dig mulighed for at skalere en statsløs tjeneste, såsom DNS eller HTTP, ved at placere flere noder bag den samme IP-adresse og bruge ECMP-routing med samme omkostning til at dirigere trafik mellem disse noder. Anycast er forskellig fra unicast, hvor hvert slutpunkt har sin egen, separate IP-adresse.

Hvorfor bruge Anycast med DNS?

med Anycast DNS kan du aktivere en DNS-server eller en gruppe servere til at svare på DNS-forespørgsler baseret på den geografiske placering af en DNS-klient. Dette kan forbedre DNS-responstiden og forenkle DNS-klientindstillingerne. Anycast DNS giver også et ekstra lag af redundans og kan hjælpe med at beskytte mod DNS denial of service-angreb.

Sådan fungerer Anycast DNS

Anycast DNS fungerer ved at bruge routingprotokoller som f. eks. Grænseportprotokol (BGP) til at sende DNS-forespørgsler til en foretrukken DNS-server eller gruppe af DNS-servere (for eksempel: en gruppe DNS-servere, der administreres af en belastningsbalancer). Dette kan optimere DNS-kommunikation ved at få DNS-svar fra en DNS-server, der er tættest på en klient.

med Anycast, servere, der findes i flere geografiske placeringer hver annoncere en enkelt, identisk IP-adresse til deres lokale portal (router). Når en DNS-klient initierer en forespørgsel til AnyCast-adressen, evalueres de tilgængelige ruter, og DNS-forespørgslen sendes til den foretrukne placering. Generelt er dette den nærmeste placering baseret på netværkstopologi. Se følgende eksempel.

fire DNS-servere, der er placeret på forskellige steder, annoncerer den samme Anycast IP-adresse til netværket

Figur 1: Fire DNS-servere placeret på forskellige steder på et netværk annoncerer hver den samme Anycast IP-adresse (sorte pile) til netværket. En DNS-klientenhed sender en anmodning til AnyCast IP-adressen. Netværksenheder analyserer de tilgængelige ruter og sender klientens DNS-forespørgsel til nærmeste placering (blå pil).

Anycast DNS bruges ofte i dag til at dirigere DNS-trafik til mange globale DNS-tjenester. For eksempel afhænger root DNS-serversystemet stærkt af Anycast DNS. Anycast fungerer også med en række routingprotokoller og kan udelukkende bruges på intranet.

vinduer Server native BGP Anycast demo

følgende procedure viser, hvordan native BGP på vinduer Server kan bruges med Anycast DNS.

krav

  • en fysisk enhed med Hyper-V-rollen installeret.
    • vinduer Server 2012 R2, vinduer 10 eller nyere.
  • 2 klient VM ‘er (ethvert operativsystem).
    • Installation af BIND-værktøjer til DNS som dig anbefales.
  • 3 server VM ‘ er (vinduer Server 2016 eller vinduer Server 2019).
    • hvis modulet ikke allerede er installeret på server VM ‘ er (DC001, DC002), kræves der midlertidigt internetadgang for at installere dette modul.

Hyper-V setup

Konfigurer din Hyper-V server som følger:

  • 2 private virtuelle skift netværk er konfigureret
    • en mock Internet netværk 131.253.1.0/24
    • en mock intranet netværk 10.10.10.0/24
  • 2 klient VM ‘er er knyttet til 131.253.1.0/24 netværk
  • 2 server VM’ er er knyttet til 10.10.10.0/24 netværk
  • 1 server er dual-homed og knyttet til både 131.253.1.0/24 og 10.10.10.0/24 netværk.

virtuel maskine netværkskonfiguration

Konfigurer netværksindstillinger på virtuelle maskiner med følgende indstillinger:

  1. Klient1, klient2
  • Klient1: 131.253.1.1
  • Klient2: 131.253.1.2
  • undernetmaske: 255.255.255.0
  • DNS: 51.51.51.51
  • Port: 131.253.1.254
  1. Server)
  • NIC1: 131.253.1.254, undernet 255.255.255.0
  • NIC2: 10.10.10.254, undernet 255.255.255.0
  • DNS: 51.51.51.51
  • Port: 131.253.1.100 (kan ignoreres for demoen)
  1. DC001)
  • NIC1: 10.10.10.1
  • undernet: 255.255.255.0
  • DNS: 10.10.10.1
  • Port: 10.10.10.254
  1. DC002)
  • NIC1: 10.10.10.2
  • undernet 255.255.255.0
  • DNS: 10.10.10.2 *
  • Port: 10.10.10.254

*brug 10.10.10.1 til DNS i første omgang, når du udfører domain join til DC002, så du kan finde Active Directory-domænet på DC001.

Konfigurer DNS

brug Server Manager og DNS-administrationskonsollen til at installere følgende serverroller og oprette et statisk DNS-område på hver af to servere.

  1. DC001, DC002
  • installer Active Directory Domain Services og promover til domain controller (valgfrit)
  • installer DNS-rollen (påkrævet)
  • Opret et statisk område (ikke-ANNONCEINTEGRERET) navngivet område.tst på både DC001 og DC002
    • tilføj den enkelte statiske postnavneserver i området “tekst”
    • Data (tekst) til TEKSTNAVNSPOSTEN på DC001 = DC001
    • Data (tekst) til TEKSTNAVNSPOSTEN på DC002 = DC002

Konfigurer loopback-adaptere

Indtast følgende kommandoer ved en prompt på Dc001 og DC002 for at konfigurere loopback-adaptere.

Bemærk

kommandoen Install-Module kræver internetadgang. Dette kan gøres ved midlertidigt at tildele VM til et eksternt netværk i 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

konfiguration af routing af virtuelle maskiner

brug følgende kommandoer på Fos til at konfigurere routing.

  1. Port
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
  1. 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
  1. 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

Sammendragsdiagram

Lab opsætning til native BGP Anycast DNS demo

figur 2: Lab opsætning til native BGP Anycast DNS demo

Anycast DNS demonstration

  1. Bekræft BGP-routing på portserveren

    PS C:> få-BgpRouteInformation

    Destinationnetværk næste butik Læret Frapeer State LocalPref MED
    —————— ——- ————— —– ——— —
    51.51.51.0/24 10.10.10.1 DC001 bedste
    51.51.51.0/24 10.10.10.2 DC002 bedste

  2. på client1 og client2 skal du kontrollere, at du kan nå 51.51.51.51

    PS C:> ping 51.51.51.51

    Pinging 51.51.51.51 med 32 bytes data:
    svar fra 51.51.51.51: bytes=32 tid<1MS TTL=126
    svar fra 51.51.51.51: bytes=32 tid<1ms ttl=126
    svar fra 51.51.51.51: bytes=32 tid<1MS TTL=126
    svar fra 51.51.51.51: bytes=32 tid<1MS TTL=126

    Ping statistik for 51.51.51.51:
    pakker: sendt = 4, modtaget = 4, tabt = 0 (0% tab),
    omtrentlige rundturstider i milli-sekunder:
    minimum = 0MS, maksimum = 0MS, gennemsnit = 0MS

    bemærk

    hvis ping mislykkes, skal du også kontrollere, at der ikke er nogen regler for brandvæg, der blokerer ICMP.

  3. på client1 og client2 skal du bruge nslookup eller grave til at forespørge på TEKSTFORTEGNELSEN. Eksempler på begge er vist nedenfor.

    PS C: > dig server.zone.TST tekst +kort
    PS C:> nslookup-type=tekst server.zone.tst 51.51.51.51

    den ene klient viser “DC001”, og den anden klient viser “DC002”, der bekræfter, at Anycast fungerer korrekt. Du kan også søge på serveren.

  4. deaktiver derefter Ethernet-adapteren på DC001.

    PS C:> (Get-NetAdapter).navn
    Loopback
    Ethernet 2
    PS C:> Deaktiver-NetAdapter “Ethernet 2”
    Bekræft
    er du sikker på, at du vil udføre denne handling?
    Deaktiver-NetAdapter ‘Ethernet 2’
    ja ja til alle nej nej til alle suspendere hjælp (standard er “Y”):
    PS C:> (Get-NetAdapter).Status
    op
    deaktiveret

  5. Bekræft, at DNS-klienter, der tidligere modtog svar fra DC001, er skiftet til DC002.

    PS C: > nslookup-type=tekst server.zone.tst 51.51.51.51
    Server: ukendt
    adresse: 51.51.51.51

    server.zone.tst tekst =

    “DC001”
    PS C:> nslookup-type=tekst server.zone.tst 51.51.51.51
    Server: ukendt
    adresse: 51.51.51.51

    server.zone.tst tekst =

    “DC002”

  6. Bekræft, at BGP-sessionen er nede på DC001 ved hjælp af Get-BgpStatistics på portserveren.

  7. aktiver Ethernet-adapteren på DC001 igen, og bekræft, at BGP-sessionen gendannes, og klienter modtager DNS-svar fra DC001 igen.

Bemærk

hvis en belastningsbalancer ikke bruges, bruger en individuel klient den samme back-end DNS-server, hvis den er tilgængelig. Dette skaber en konsistent BGP-sti for klienten. For yderligere oplysninger, se pkt. 4.4.3 af RFC4786: lige omkostninger stier.

ofte stillede spørgsmål

spørgsmål: er Anycast DNS en god løsning til brug i et lokalt DNS-miljø?
A: Anycast DNS fungerer problemfrit med en lokal DNS-tjeneste. Anycast er dog ikke påkrævet for, at DNS-tjenesten skaleres.

spørgsmål: Hvad er virkningen af implementering af Anycast DNS i et miljø med et stort antal (eks: > 50) domænecontrollere?
A: der er ingen direkte indvirkning på funktionaliteten. Hvis der bruges en belastningsbalancer, kræves der ingen yderligere konfiguration på domænecontrollere.

e: Understøttes en Anycast DNS-konfiguration af Microsofts kundeservice?
A: Hvis du bruger en ikke-Microsoft load balancer til at videresende DNS-forespørgsler, understøtter Microsoft problemer relateret til DNS-Servertjenesten. Kontakt load balancer-leverandøren for problemer relateret til DNS-videresendelse.

spørgsmål: Hvad er den bedste praksis for Anycast DNS med et stort antal (eks: > 50) domænecontrollere?
A: den bedste praksis er at bruge en belastningsbalancer på hver geografisk placering. Load balancers leveres typisk af en ekstern leverandør.

e: Har Anycast DNS og samme funktionalitet?
en: blå DNS bruger Anycast. Hvis du vil bruge Anycast med DNS, skal du konfigurere din belastningsbalancer til at videresende anmodninger til DNS-serveren.