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.
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:
- 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
- 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)
- DC001 (Windows Server)
- NIC1: 10.10.10.1
- subrețea: 255.255.255.0
- DNS: 10.10.10.1
- Gateway: 10.10.10.254
- 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.
- 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.
- 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
diagrama sumară
Figura 2: Configurarea Laboratorului pentru demo DNS nativ BGP Anycast
demonstrație DNS Anycast
-
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 -
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=126Ping 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 = 0MSnotă
dacă ping eșuează, verificați, de asemenea, nu există reguli firewall blocarea ICMP.
-
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.51un 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.
-
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 -
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.51server.zonă.tst text =
„DC001”
PS C: > nslookup-type=server txt.zonă.tst 51.51.51.51
Server: necunoscut
adresa: 51.51.51.51server.zonă.tst text =
„DC002”
-
confirmați că sesiunea BGP este în jos pe DC001 utilizând Get-BgpStatistics pe serverul gateway.
-
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.