Anycast DNS-oversikt

  • 10/23/2020
  • 7 minutter å lese
    • g
    • e

Gjelder For: Windows Server (Halvårskanal), Windows Server 2016, Windows Server 2019

Dette emnet gir informasjon om Hvordan Anycast DNS fungerer.

Hva Er Anycast?

Anycast Er en teknologi som gir flere rutebaner til en gruppe endepunkter som hver er tildelt SAMME IP-adresse. Hver enhet i gruppen annonserer samme adresse på et nettverk, og rutingsprotokoller brukes til å velge hvilken som er den beste destinasjonen.

Anycast gjør Det mulig å skalere en statsløs tjeneste, FOR EKSEMPEL DNS eller HTTP, ved å plassere flere noder bak SAMME IP-adresse og bruke EQUAL-cost multi-path (ECMP) ruting for å lede trafikk mellom disse nodene. Anycast er forskjellig fra unicast, der hvert endepunkt har sin EGEN, separate IP-adresse.

hvorfor bruke Anycast med DNS?

Med Anycast DNS kan Du aktivere EN DNS-server, eller en gruppe servere, for å svare PÅ DNS-spørringer basert på DEN geografiske plasseringen TIL EN DNS-klient. Dette kan forbedre DNS responstid og forenkle DNS-klientinnstillinger. Anycast DNS gir også et ekstra lag med redundans og kan bidra til å beskytte MOT DNS denial of service angrep.

Hvordan Anycast DNS fungerer

Anycast DNS fungerer ved hjelp av rutingsprotokoller Som Border Gateway Protocol (BGP) for å sende DNS-spørringer til en foretrukket DNS-server eller GRUPPE DNS-servere (for eksempel: en GRUPPE DNS-servere administrert av en lastbalanser). Dette kan optimalisere DNS-kommunikasjon ved å få DNS-svar fra EN DNS-server som er nærmest en klient.

Med Anycast annonserer servere som finnes på flere geografiske steder hver EN enkelt, identisk IP-adresse til sin lokale gateway (router). NÅR EN DNS-klient starter en spørring Til anycast-adressen, evalueres de tilgjengelige rutene, OG DNS-spørringen sendes til ønsket sted. Generelt er dette det nærmeste stedet basert på nettverkstopologi. Se følgende eksempel.

 Fire DNS-servere, plassert på forskjellige steder, annonserer den samme ANYCAST IP-adressen til nettverket

Figur 1: Fire DNS-servere plassert på forskjellige steder i et nettverk annonserer hver Den samme Anycast IP-adressen (svarte piler) til nettverket. EN DNS-klient enhet sender ut en forespørsel Til Anycast IP-adressen. Nettverksenheter analyserer tilgjengelige ruter og sender klientens DNS-spørring til nærmeste sted (blå pil).

Anycast DNS brukes ofte i dag for å rute DNS-trafikk for mange globale DNS-tjenester. For eksempel er root DNS-serversystemet avhengig av Anycast DNS. Anycast fungerer også med en rekke rutingsprotokoller og kan brukes utelukkende på intranett.

Windows Server native BGP Anycast demo

følgende fremgangsmåte viser hvordan native BGP På Windows Server kan brukes Med Anycast DNS.

Krav

  • en fysisk enhet med Hyper-v-rollen installert.
    • Windows Server 2012 R2, Windows 10 Eller nyere.
  • 2 klient VMs (hvilket som helst operativsystem).
    • Installasjon AV BIND verktøy for DNS som dig anbefales.
  • 3 Server VMs (Windows Server 2016 Eller Windows Server 2019).
    • Hvis Windows PowerShell LoopbackAdapter-modulen ikke allerede er installert på server VMs (DC001, DC002), Er Internett-tilgang midlertidig nødvendig for å installere denne modulen.

Hyper-V-oppsett

Konfigurer Hyper – v-serveren som følger:

  • 2 private virtuelle svitsj-nettverk er konfigurert
    • et falskt internett-nettverk 131.253.1.0/24
    • et falskt intranettnettverk 10.10.10.0/24
  • 2 klient-Vm-er er koblet til 131.253.1.0 / 24-nettverket
  • 2 server-Vm-er er koblet til 10.10.10.0 / 24-nettverket
  • 1-serveren er dobbelt homed og koblet til både 131.253.1.0/24-og 10.10.10.0 / 24-nettverkene.

Nettverkskonfigurasjon For Virtuell maskin

Konfigurer nettverksinnstillinger på virtuelle maskiner med følgende innstillinger:

  1. Klient1, klient2
  • Klient1: 131.253.1.1
  • Klient2: 131.253.1.2
  • Nettverksmaske: 255.255.255.0
  • DNS: 51.51.51.51
  • Gateway: 131.253.1.254
  1. Gateway (Windows Server))
  • NIC1: 131.253.1.254, delnett 255.255.255.0
  • NIC2: 10.10.10.254, delnett 255.255.255.0
  • DNS: 51.51.51.51
  • Gateway: 131.253.1.100 (kan ignoreres for demoen)
  1. DC001 (Windows Server))
  • NIC1: 10.10.10.1
  • Undernett: 255.255.255.0
  • DNS: 10.10.10.1
  • Gateway: 10.10.10.254
  1. DC002 (Windows Server))
  • NIC1: 10.10.10.2
  • Delnett 255.255.255.0
  • DNS: 10.10.10.2 *
  • Gateway: 10.10.10.254

*Bruk 10.10.10.1 FOR DNS først når du utfører domenekobling FOR DC002, slik at Du kan finne Active Directory-domenet PÅ DC001.

Konfigurer DNS

Bruk Serverbehandling Og DNS management console eller Windows PowerShell til å installere følgende serverroller og opprette en statisk DNS-sone på hver av to servere.

  1. DC001, DC002
  • Installer Active Directory Domain Services og promoter til domenekontroller (valgfritt)
  • Installer DNS-rollen (obligatorisk)
  • Opprett en statisk sone (ikke-INTEGRERT) navngitt sone.Tst på BÅDE DC001 og DC002
    • Legg til enkelt statisk postnavnserveren i sonen av typen «TXT»
    • Data (tekst) FOR txt-posten PÅ DC001 = DC001
    • Data (tekst) FOR txt-posten PÅ DC002 = DC002

Konfigurer loopback-adaptere

Skriv inn følgende kommandoer ved en forhøyet Windows PowerShell-ledetekst PÅ DC001 og DC002 for å konfigurere loopback-adaptere.

Merk

Kommandoen Installer-Modul krever Internett-tilgang. Dette kan gjøres ved midlertidig å tilordne VM til et eksternt nettverk 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

Konfigurasjon For virtuell maskinruting

Bruk Følgende Windows PowerShell-kommandoer på Virtuelle Maskiner til å konfigurere ruting.

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

Sammendrag diagram

Lab oppsett for native Bgp Anycast DNS demo

Figur 2: Lab oppsett for native Bgp Anycast DNS demo

Anycast DNS demonstrasjon

  1. Kontroller bgp-ruting på gateway-serveren

    PS C:> Get-BgpRouteInformation

    Destinasjonnettverk Nestehopp 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 Beste

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

    PS C:> ping 51.51.51.51

    Pinging 51.51.51.51 med 32 byte med data:
    Svar fra 51.51.51.51: byte=32 tid<1ms Ttl=126
    svar fra 51.51.51.51: bytes=32 tid<1ms ttl=126
    svar fra 51.51.51.51: byte=32 tid<1ms TTL=126
    Svar fra 51.51.51.51.51: byte=32 tid<1ms TTL=126

    Ping-statistikk for 51.51.51.51:
    Pakker: Sendt = 4, Mottatt = 4, Tapt = 0 (0% tap),
    Omtrentlige rundturstider i milli-sekunder:
    minimum = 0ms, maksimum = 0ms, gjennomsnitt = 0ms

    merk

    hvis PING MISLYKKES, sjekk også at det IKKE er noen brannmurregler som blokkerer icmp.

  3. på client1 og client2 bruker du nslookup eller dig til å spørre TXT-posten. Eksempler på begge er vist nedenfor.

    PS C: > grave server.sone.tst TXT + kort
    PS C:> nslookup-type=txt-server.sone.tst 51.51.51.51

    En klient vil vise » DC001 «og den andre klienten vil vise» DC002 » som bekrefter At Anycast fungerer som den skal. Du kan også spørre fra gateway-serveren.

  4. deretter deaktiverer Du Ethernet-adapteren PÅ DC001.

    PS C:> (Get-NetAdapter).Name
    Loopback
    Ethernet 2
    PS C:>Deaktiver-NetAdapter «Ethernet 2»
    Bekreft
    Er du sikker på at du vil utføre denne handlingen?
    Deaktiver-NetAdapter ‘Ethernet 2’
    Ja Ja Til Alle Nei Nei Til Alle Stopp Hjelp (standard ER «Y»):
    PS C:> (Get-NetAdapter).Status
    Opp
    Deaktivert

  5. Bekreft AT DNS-klienter som tidligere mottok svar FRA DC001, har byttet TIL DC002.

    PS C:> nslookup-type=txt-server.sone.tst 51.51.51.51
    Server: Ukjent
    Adresse: 51.51.51.51

    server.sone.tst tekst =

    «DC001»
    PS C: > nslookup-type = txt-server.sone.tst 51.51.51.51
    Server: Ukjent
    Adresse: 51.51.51.51

    server.sone.tst tekst =

    «DC002»

  6. Kontroller AT bgp-økten er nede PÅ DC001 ved Hjelp Av Get-BgpStatistics på gateway-serveren.

  7. Aktiver Ethernet-adapteren PÅ DC001 igjen, og bekreft AT bgp-økten gjenopprettes, og klienter mottar DNS-svar fra DC001 på nytt.

Obs!

hvis en belastningsfordeling ikke brukes, vil en individuell klient bruke DEN samme BACK-end DNS-serveren hvis den er tilgjengelig. Dette skaper en konsekvent bgp-bane for klienten. For mer informasjon, se avsnitt 4.4.3 AV RFC4786: Likeverdige Baner.

Ofte stilte spørsmål

Spørsmål: Er Anycast DNS en god løsning å bruke i ET LOKALT DNS-miljø?
A: Anycast DNS fungerer sømløst med EN LOKAL DNS-tjeneste. Anycast er imidlertid ikke nødvendig FOR DNS-tjenesten å skalere.

Spørsmål: hva er virkningen av å implementere Anycast DNS i et miljø med et stort antall (ex: >50) domenekontrollere?
A: det er ingen direkte innvirkning på funksjonaliteten. Hvis en lastbalanser brukes, er det ikke nødvendig med ekstra konfigurasjon på domenekontrollere.

Q: Er En Anycast DNS-konfigurasjon støttet Av Microsofts kundeservice?
A: Hvis Du bruker en ikke-Microsoft load balancer til å videresende DNS-spørringer, Støtter Microsoft problemer knyttet til DNS-Servertjenesten. Se leverandøren for lastbalansering for problemer knyttet TIL DNS-videresending.

Spørsmål: hva er den beste praksisen for Anycast DNS med et stort antall (ex: >50) domenekontrollere?
A: beste praksis er å bruke en belastningsfordeling på hvert geografisk sted. Load balancers leveres vanligvis av en ekstern leverandør.

Q: Har Anycast DNS og Azure DNS lignende funksjonalitet?
A: Azure DNS bruker Anycast. Hvis Du vil bruke Anycast med Azure DNS, konfigurerer du belastningsfordeleren til å videresende forespørsler Til Azure DNS-serveren.