prezentare generală DNS Anycast

  • 10/23/2020
  • 7 minute de citit
    • g
    • e

se aplică la: Windows Server (canal semestrial), Windows Server 2016, Windows Server 2019

acest subiect oferă informații despre modul în care funcționează Anycast DNS.

ce este Anycast?

Anycast este o tehnologie care oferă mai multe căi de rutare către un grup de puncte finale cărora li se atribuie fiecare aceeași adresă IP. Fiecare dispozitiv din grup face publicitate aceleiași adrese într-o rețea, iar protocoalele de rutare sunt utilizate pentru a alege care este cea mai bună destinație.

Anycast vă permite să scalați un serviciu apatrid, cum ar fi DNS sau HTTP, plasând mai multe noduri în spatele aceleiași adrese IP și utilizând rutarea ecmp cu costuri egale pentru a direcționa traficul între aceste noduri. Anycast este diferit de unicast, în care fiecare punct final are propria adresă IP separată.

de ce să folosiți Anycast cu DNS?

cu Anycast DNS, puteți activa un server DNS sau un grup de servere pentru a răspunde la interogările DNS bazate pe locația geografică a unui client DNS. Acest lucru poate îmbunătăți timpul de răspuns DNS și poate simplifica setările clientului DNS. Anycast DNS oferă, de asemenea, un strat suplimentar de redundanță și poate ajuta la protejarea împotriva atacurilor DNS denial of service.

cum funcționează Anycast DNS

Anycast DNS funcționează utilizând protocoale de rutare, cum ar fi Border Gateway Protocol (BGP) pentru a trimite interogări DNS către un server DNS preferat sau un grup de servere DNS (de exemplu: un grup de servere DNS gestionate de un echilibrator de sarcină). Acest lucru poate optimiza comunicațiile DNS prin obținerea răspunsurilor DNS de la un server DNS care este cel mai apropiat de un client.

cu Anycast, serverele care există în mai multe locații geografice promovează fiecare o singură adresă IP identică cu gateway-ul local (router). Când un client DNS inițiază o interogare la adresa Anycast, rutele disponibile sunt evaluate și interogarea DNS este trimisă la locația preferată. În general, aceasta este cea mai apropiată locație bazată pe topologia rețelei. A se vedea exemplul următor.

patru servere DNS, situate pe site-uri diferite, anunță aceeași adresă IP Anycast către rețea

Figura 1: patru servere DNS situate pe site-uri diferite dintr-o rețea anunță aceeași adresă IP Anycast (săgeți negre) către rețea. Un dispozitiv client DNS trimite o cerere la adresa IP Anycast. Dispozitivele de rețea analizează rutele disponibile și trimit interogarea DNS a Clientului la cea mai apropiată locație (săgeata albastră).

Anycast DNS este utilizat în mod obișnuit astăzi pentru a direcționa traficul DNS pentru multe servicii DNS globale. De exemplu, sistemul serverului DNS rădăcină depinde foarte mult de Anycast DNS. Anycast funcționează, de asemenea, cu o varietate de protocoale de rutare și poate fi utilizat exclusiv pe intranet.

Windows Server nativ BGP Anycast demo

următoarea procedură demonstrează modul în care BGP nativ pe Windows Server poate fi utilizat cu Anycast DNS.

cerințe

  • un dispozitiv fizic cu rolul Hyper-V instalat.
    • Windows Server 2012 R2, Windows 10 sau o versiune ulterioară.
  • 2 Client VMs (orice sistem de operare).
    • se recomandă instalarea instrumentelor de legare pentru DNS, cum ar fi dig.
  • 3 Server VMs (Windows Server 2016 sau Windows Server 2019).
    • dacă modulul Windows PowerShell LoopbackAdapter nu este deja instalat pe server VMs (DC001, DC002), accesul la Internet este temporar necesar pentru a instala acest modul.

configurare Hyper-V

Configurați serverul Hyper-V după cum urmează:

  • 2 rețelele de comutare virtuale private sunt configurate
    • o rețea internet mock 131.253.1.0/24
    • o rețea intranet mock 10.10.10.0/24
  • 2 Client VMs sunt atașate la 131.253.1.0 / 24 rețea
  • 2 Server VMs sunt atașate la 10.10.10.0/24 rețea
  • 1 server este dual-homed și atașat la ambele 131.253.1.0/24 și 10.10.10.0/24 rețele.

Configurare rețea mașină virtuală

configurați setările de rețea pe mașini virtuale cu următoarele setări:

  1. Client1, client2
  • Client1: 131.253.1.1
  • Client2: 131.253.1.2
  • mască de subrețea: 255.255.255.0
  • DNS: 51.51.51.51
  • Gateway: 131.253.1.254
  1. Gateway (Windows Server)
  • NIC1: 131.253.1.254, subrețea 255.255.255.0
  • NIC2: 10.10.10.254, subrețea 255.255.255.0
  • DNS: 51.51.51.51
  • Gateway: 131.253.1.100 (poate fi ignorat pentru demo)
  1. DC001 (Windows Server)
  • NIC1: 10.10.10.1
  • subrețea: 255.255.255.0
  • DNS: 10.10.10.1
  • Gateway: 10.10.10.254
  1. DC002 (Windows Server)
  • NIC1: 10.10.10.2
  • subrețea 255.255.255.0
  • DNS: 10.10.10.2 *
  • Gateway: 10.10.10.254

*utilizați 10.10.10.1 pentru DNS inițial atunci când efectuați domain join pentru DC002, astfel încât să puteți localiza domeniul Active Directory pe DC001.

configurați DNS

utilizați Server Manager și consola de administrare DNS sau Windows PowerShell pentru a instala următoarele roluri de server și pentru a crea o zonă DNS statică pe fiecare dintre cele două servere.

  1. DC001, DC002
  • instalați Active Directory Domain Services și promovați la domain controller (opțional)
  • instalați rolul DNS (necesar)
  • creați o zonă statică (integrată non-AD) numită zonă.tst atât pe DC001, cât și pe DC002
    • adăugați serverul de nume de înregistrare statică unică în zona de tip „TXT”
    • date (text) pentru înregistrarea TXT pe DC001 = DC001
    • date (text) pentru înregistrarea TXT pe DC002 = DC002

configurați adaptoarele loopback

introduceți următoarele comenzi la o solicitare Windows PowerShell ridicată pe DC001 și DC002 pentru a configura adaptoarele loopback.

notă

comanda Install-Module necesită acces la Internet. Acest lucru se poate face prin atribuirea temporară a VM unei rețele externe în 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

configurare rutare mașină virtuală

utilizați următoarele comenzi Windows PowerShell pe VMs pentru a configura rutarea.

  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

diagrama sumară

 configurarea Laboratorului pentru demo DNS nativ BGP Anycast

Figura 2: Configurarea Laboratorului pentru demo DNS nativ BGP Anycast

demonstrație DNS Anycast

  1. verificați rutarea BGP pe serverul gateway

    PS C:> Get-Bgprouteinformatii

    DestinationNetwork NextHop LearnedFromPeer Stat LocalPref MED
    —————— ——- ————— —– ——— —
    51.51.51.0/24 10.10.10.1 DC001 cel mai bun
    51.51.51.0 / 24 10.10.10.2 Dc002 cel mai bun

  2. pe client1 și client2, verificați dacă puteți ajunge la 51.51.51.51

    PS C:> ping 51.51.51.51

    Ping 51.51.51.51 cu 32 octeți de date:
    răspuns de la 51.51.51.51: bytes=32 timp<1ms TTL=126
    răspuns de la 51.51.51.51: bytes=32 timp<1ms TTL=126
    răspuns de la 51.51.51.51: bytes=32 timp<1ms TTL=126
    răspuns de la 51.51.51.51: bytes=32 timp<1ms TTL=126

    Ping statistici pentru 51.51.51.51:
    pachete: trimis = 4, primit = 4, pierdut = 0 (0% pierdere),
    aproximative dus-întors ori în Milli-secunde:
    minim = 0MS, maxim = 0MS, medie = 0MS

    notă

    dacă ping eșuează, verificați, de asemenea, nu există reguli firewall blocarea ICMP.

  3. pe client1 și client2, utilizați nslookup sau dig pentru a interoga înregistrarea TXT. Exemple de ambele sunt prezentate mai jos.

    PS C: > dig server.zonă.tst TXT + scurt
    PS C: > nslookup-type=server txt.zonă.tst 51.51.51.51

    un client va afișa „DC001”, iar celălalt client va afișa „DC002” verificând că Anycast funcționează corect. De asemenea, puteți interoga de pe serverul gateway.

  4. apoi, dezactivați adaptorul Ethernet pe DC001.

    PS C: >(Get-NetAdapter).nume
    Loopback
    Ethernet 2
    PS C:> Disable-NetAdapter „Ethernet 2”
    Confirm
    sunteți sigur că doriți să efectuați această acțiune?
    Disable-NetAdapter ‘Ethernet 2’
    da da tuturor nu nu tuturor suspenda ajutor (implicit este „Y”):
    PS C:> (Get-NetAdapter).Stare
    sus
    dezactivat

  5. confirmați că clienții DNS care primeau anterior răspunsuri de la DC001 au trecut la DC002.

    PS C: > nslookup-type=server txt.zonă.tst 51.51.51.51
    Server: necunoscut
    adresa: 51.51.51.51

    server.zonă.tst text =

    „DC001”
    PS C: > nslookup-type=server txt.zonă.tst 51.51.51.51
    Server: necunoscut
    adresa: 51.51.51.51

    server.zonă.tst text =

    „DC002”

  6. confirmați că sesiunea BGP este în jos pe DC001 utilizând Get-BgpStatistics pe serverul gateway.

  7. activați din nou adaptorul Ethernet pe DC001 și confirmați că sesiunea BGP este restabilită și clienții primesc din nou răspunsuri DNS de la DC001.

notă

dacă nu este utilizat un echilibrator de sarcină, un client individual va utiliza același server DNS back-end dacă este disponibil. Acest lucru creează o cale BGP consistentă pentru client. Pentru mai multe informații, consultați secțiunea 4.4.3 din RFC4786: căi cu costuri egale.

Întrebări frecvente

Î: este Anycast DNS o soluție bună de utilizat într-un mediu DNS local?
A: Anycast DNS funcționează perfect cu un serviciu DNS local. Cu toate acestea, Anycast nu este necesar pentru scalarea serviciului DNS.

Î: Care este impactul implementării DNS Anycast într-un mediu cu un număr mare (ex: >50) de controlere de domeniu?
A: nu există un impact direct asupra funcționalității. Dacă se utilizează un echilibrator de sarcină, atunci nu este necesară nicio configurație suplimentară pe controlerele de domeniu.

Î: Este o configurație DNS Anycast acceptată de serviciul clienți Microsoft?
A: Dacă utilizați un balancer de încărcare non-Microsoft pentru a redirecționa interogări DNS, Microsoft va suporta probleme legate de serviciul server DNS. Consultați furnizorul load balancer pentru probleme legate de redirecționarea DNS.

Î: Care este cea mai bună practică pentru Anycast DNS cu un număr mare (ex: >50) de controlere de domeniu?
A: cea mai bună practică este utilizarea unui echilibrator de sarcină în fiecare locație geografică. Echilibrele de încărcare sunt de obicei furnizate de un furnizor extern.

Î: Anycast DNS și Azure DNS au funcționalități similare?
A: Azure DNS utilizează Anycast. Pentru a utiliza Anycast cu Azure DNS, configurați echilibratorul de încărcare pentru a redirecționa cererile către serverul DNS Azure.