anycast DNS-översikt
- 10/23/2020
- 7 minuter att läsa
-
- g
- e
gäller för: Windows Server (Halvårskanal), Windows Server 2016, Windows Server 2019
det här avsnittet innehåller information om hur anycast DNS fungerar.
Vad är Anycast?
Anycast är en teknik som tillhandahåller flera routingsvägar till en grupp slutpunkter som var och en tilldelas samma IP-adress. Varje enhet i gruppen annonserar samma adress i ett nätverk och routingprotokoll används för att välja vilken som är den bästa destinationen.
Anycast gör att du kan skala en statslös tjänst, till exempel DNS eller HTTP, genom att placera flera noder bakom samma IP-adress och använda ECMP-routing med samma kostnad (ecmp) för att dirigera trafik mellan dessa noder. Anycast skiljer sig från unicast, där varje slutpunkt har sin egen, separata IP-adress.
varför använda Anycast med DNS?
med Anycast DNS kan du aktivera en DNS-server eller en grupp servrar för att svara på DNS-frågor baserat på en DNS-klients geografiska läge. Detta kan förbättra DNS-svarstiden och förenkla DNS-klientinställningarna. Anycast DNS ger också ett extra lager av redundans och kan hjälpa till att skydda mot DNS-överbelastningsattacker.
hur anycast DNS fungerar
Anycast DNS fungerar genom att använda routingprotokoll som Border Gateway Protocol (BGP) för att skicka DNS-frågor till en föredragen DNS-server eller grupp av DNS-servrar (till exempel: en grupp DNS-servrar som hanteras av en lastbalanserare). Detta kan optimera DNS-kommunikation genom att få DNS-svar från en DNS-server som ligger närmast en klient.
med Anycast annonserar servrar som finns på flera geografiska platser en enda, identisk IP-adress till sin lokala gateway (router). När en DNS-klient initierar en fråga till anycast-adressen utvärderas de tillgängliga rutterna och DNS-frågan skickas till önskad plats. I allmänhet är detta den närmaste platsen baserat på nätverkstopologi. Se följande exempel.
Figur 1: fyra DNS-servrar som finns på olika platser i ett nätverk meddelar var och en samma anycast IP-adress (svarta pilar) till nätverket. En DNS-klientenhet skickar ut en begäran till anycast IP-adressen. Nätverksenheter analyserar tillgängliga rutter och skickar klientens DNS-fråga till närmaste plats (blå pil).
Anycast DNS används ofta idag för att dirigera DNS-trafik för många globala DNS-tjänster. Till exempel beror root DNS-serversystemet starkt på Anycast DNS. Anycast fungerar också med en mängd olika routingprotokoll och kan användas uteslutande på intranät.
Windows Server native BGP anycast demo
följande procedur visar hur native BGP på Windows Server kan användas med Anycast DNS.
krav
- en fysisk enhet med Hyper-V-rollen installerad.
- Windows Server 2012 R2, Windows 10 eller senare.
- 2 klient VM (alla operativsystem).
- Installation av BINDNINGSVERKTYG för DNS som dig rekommenderas.
- 3 Server VM (Windows Server 2016 eller Windows Server 2019).
- om Windows PowerShell LoopbackAdapter-modulen inte redan är installerad på serverns virtuella datorer (DC001, DC002) krävs Internetåtkomst tillfälligt för att installera den här modulen.
Hyper-V setup
konfigurera din Hyper-V-server enligt följande:
- 2 privata virtuella switch nätverk är konfigurerade
- en mock Internet-nätverk 131.253.1.0/24
- en mock intranät nätverk 10.10.10.0/24
- 2 klient VMs är anslutna till 131.253.1.0/24 nätverk
- 2 Server VMs är anslutna till 10.10.10.0/24 nätverk
- 1 server är dual-homed och ansluten till både 131.253.1.0/24 och 10.10.10.0 / 24 nätverk.
virtuell maskin nätverkskonfiguration
Konfigurera nätverksinställningar på virtuella maskiner med följande inställningar:
- Kunden1, kunden2
- Client1: 131.253.1.1
- Client2: 131.253.1.2
- nätmask: 255.255.255.0
- DNS: 51.51.51.51
- Gateway: 131.253.1.254
- Gateway (Windows Server)
- NIC1: 131.253.1.254, subnät 255.255.255.0
- NIC2: 10.10.10.254, subnät 255.255.255.0
- DNS: 51.51.51.51
- Gateway: 131.253.1.100 (kan ignoreras för demo)
- DC001 (Windows Server)
- NIC1: 10.10.10.1
- subnät: 255.255.255.0
- DNS: 10.10.10.1
- Gateway: 10.10.10.254
- DC002 (Windows Server)
- NIC1: 10.10.10.2
- subnät 255.255.255.0
- DNS: 10.10.10.2 *
- Gateway: 10.10.10.254
*använd 10.10.10.1 för DNS initialt när du utför domänanslutning för DC002 så att du kan hitta Active Directory-domänen på DC001.
konfigurera DNS
använd Serverhanteraren och DNS-hanteringskonsolen eller Windows PowerShell för att installera följande serverroller och skapa en statisk DNS-zon på var och en av två servrar.
- DC001, DC002
- installera Active Directory Domain Services och marknadsför till domänkontrollant (valfritt)
- installera DNS-rollen (krävs)
- skapa en statisk zon (icke-ad integrerad) namngiven zon.tst på både DC001 och DC002
- Lägg till den enda statiska postnamnsservern i zonen av typen ”TXT”
- Data (text) för TXT-posten på DC001 = DC001
- Data (text) för TXT-posten på DC002 = DC002
konfigurera loopback-Adaptrar
ange följande kommandon vid en förhöjd Windows PowerShell-prompt på DC001 och DC002 för att konfigurera loopback-Adaptrar.
Obs
kommandot Install-Module kräver tillgång till Internet. Detta kan göras genom att tillfälligt tilldela VM till ett externt nätverk 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 för virtuell maskindirigering
använd följande Windows PowerShell-kommandon på virtuella datorer för att konfigurera routing.
- 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
sammanfattning diagram
Figur 2: Lab setup för native BGP anycast DNS demo
Anycast DNS demonstration
-
verifiera BGP-routing på gateway-servern
PS C:> Get-BgpRouteInformation
Destinationnätverk Nästhop lärde sig Frånpeer State LocalPref MED
—————— ——- ————— —– ——— —
51.51.51.0/24 10.10.10.1 DC001 bäst
51.51.51.0 / 24 10.10.10.2 Dc002 bäst -
på client1 och client2, kontrollera att du kan nå 51.51.51.51
PS C:> ping 51.51.51.51
Pinga 51.51.51.51 med 32 byte data:
svara från 51.51.51.51: byte=32 tid<1ms TTL=126
svar från 51.51.51.51: byte=32 tid<1MS TTL=126
svar från 51.51.51.51: byte=32 tid<1ms TTL=126
svar från 51.51.51.51: byte=32 tid<1ms TTL=126Pingstatistik för 51.51.51.51:
paket: skickat = 4, mottaget = 4, förlorat = 0 (0% förlust),
ungefärliga tur och returtider i milli-sekunder:
minimum = 0MS, maximum = 0MS, average = 0MSObs
om ping misslyckas, kontrollera också att det inte finns några brandväggsregler som blockerar ICMP.
-
på client1 och client2 använder du nslookup eller dig för att fråga TXT-posten. Exempel på båda visas nedan.
PS C: > gräva server.zon.tst TXT + kort
PS C:> nslookup-type=Txt server.zon.tst 51.51.51.51en klient visar ”DC001” och den andra klienten visar ”DC002” som verifierar att Anycast fungerar korrekt. Du kan också fråga från gateway-servern.
-
inaktivera sedan Ethernet-adaptern på DC001.
PS C:> (Get-NetAdapter).namn
Loopback
Ethernet 2
PS C:> inaktivera-NetAdapter ”Ethernet 2”
bekräfta
är du säker på att du vill utföra den här åtgärden?
inaktivera-NetAdapter ’Ethernet 2’
Ja ja till alla Nej nej till alla suspendera hjälp (standard är ”Y”):
PS C:> (Get-NetAdapter).Status
upp
inaktiverad -
bekräfta att DNS-klienter som tidigare fick svar från DC001 har bytt till DC002.
PS C:> nslookup-type=Txt server.zon.tst 51.51.51.51
Server: okänd
adress: 51.51.51.51server.zon.tst text =
”DC001”
PS C:> nslookup-type=Txt server.zon.tst 51.51.51.51
Server: okänd
adress: 51.51.51.51server.zon.tst text =
”DC002”
-
bekräfta att BGP-sessionen är nere på DC001 genom att använda Get-BgpStatistics på gateway-servern.
-
aktivera Ethernet-adaptern på DC001 igen och bekräfta att BGP-sessionen återställs och klienter får DNS-svar från DC001 igen.
Obs!
om en lastbalanserare inte används kommer en enskild klient att använda samma back-end DNS-server om den är tillgänglig. Detta skapar en konsekvent BGP-väg för klienten. För mer information, se Avsnitt 4. 4.3 av RFC4786: lika kostnad vägar.
Vanliga frågor
F: är anycast DNS en bra lösning att använda i en lokal DNS-miljö?
A: Anycast DNS fungerar sömlöst med en lokal DNS-tjänst. Anycast krävs dock inte för att DNS-tjänsten ska skala.
F: Vad är effekten av att implementera Anycast DNS i en miljö med ett stort antal (ex: >50) domänkontrollanter?
A: Det finns ingen direkt inverkan på funktionaliteten. Om en lastbalanserare används krävs ingen ytterligare konfiguration på domänkontrollanter.
Q: Stöds en anycast DNS-konfiguration av Microsofts kundtjänst?
A: Om du använder en icke-Microsoft load balancer för att vidarebefordra DNS-frågor, stöder Microsoft problem relaterade till DNS-servertjänsten. Kontakta leverantören av lastbalanserare för problem relaterade till DNS-vidarebefordran.
F: Vad är bästa praxis för anycast DNS med ett stort antal (ex: >50) domänkontrollanter?
A: bästa praxis är att använda en lastbalanserare på varje geografisk plats. Lastbalanserare tillhandahålls vanligtvis av en extern leverantör.
Q: Har Anycast DNS och Azure DNS liknande funktioner?
A: Azure DNS använder Anycast. Om du vill använda Anycast med Azure DNS konfigurerar du din lastbalanserare för att vidarebefordra förfrågningar till Azure DNS-servern.