Anycast DNS přehled

  • 10/23/2020
  • 7 minut číst
    • g
    • e

Platí pro: Windows Serveru (Semi-Roční Kanál), Windows Server 2016, Windows Server 2019

Toto téma poskytuje informace o tom, jak Anycast DNS funguje.

co je Anycast?

Anycast je technologie, která poskytuje více směrovacích cest ke skupině koncových bodů, kterým je přiřazena stejná IP adresa. Každé zařízení ve skupině inzeruje stejnou adresu v síti a směrovací protokoly se používají k výběru toho, který je nejlepší cíl.

Anycast umožňuje škálovat bez státní příslušnosti služby, jako jsou DNS nebo HTTP, umístěním několik uzlů za stejnou IP adresu a pomocí equal-cost multi-path (ECMP), směrování přímé přenosy mezi těmito uzly. Anycast se liší od unicastu, ve kterém má každý koncový bod svou vlastní, samostatnou IP adresu.

Proč používat Anycast s DNS?

s Libovolnýmcast DNS můžete povolit serveru DNS nebo skupině serverů reagovat na dotazy DNS na základě geografické polohy klienta DNS. To může zvýšit dobu odezvy DNS a zjednodušit nastavení klienta DNS. Anycast DNS také poskytuje další vrstvu redundance a může pomoci chránit před útoky odmítnutí služby DNS.

Jak Anycast DNS funguje

Anycast DNS funguje pomocí směrovacích protokolů jako je Border Gateway Protocol (BGP) pro posílání DNS dotazů na DNS upřednostňovaný server nebo skupina serverů DNS (např.: skupina DNS serverů spravovaných vyrovnávačem zatížení). To může optimalizovat komunikaci DNS získáním odpovědí DNS ze serveru DNS, který je nejblíže klientovi.

u Anycastu servery, které existují ve více geografických lokalitách, inzerují jednu identickou IP adresu své místní bráně (routeru). Když klient DNS iniciuje dotaz na adresu Anycast, jsou vyhodnoceny dostupné trasy a dotaz DNS je odeslán na preferované místo. Obecně se jedná o nejbližší umístění založené na topologii sítě. Viz následující příklad.

Čtyři DNS serverů, které se nacházejí na různých místech, oznámit stejnou Anycast IP adresu v síti

Obrázek 1: Čtyři DNS serverů umístěných na různých místech na síti každý oznámit stejnou Anycast IP adresu (černé šipky) k síti. Zařízení klienta DNS odešle požadavek na adresu IP Anycast. Síťová zařízení analyzují dostupné trasy a odešlou dotaz DNS klienta na nejbližší místo(modrá šipka).

Anycast DNS se dnes běžně používá k směrování provozu DNS pro mnoho globálních služeb DNS. Například kořenový systém serveru DNS silně závisí na Každémcast DNS. Anycast také pracuje s různými směrovacími protokoly a může být použit výhradně na intranetech.

Windows Server native BGP anycast demo

následující postup ukazuje, jak lze nativní BGP na Windows Serveru použít s anycast DNS.

požadavky

  • jedno fyzické zařízení s nainstalovanou rolí Hyper-V.
    • Windows Server 2012 R2, Windows 10 nebo novější.
  • 2 klient VMs (libovolný operační systém).
    • doporučuje se instalace BIND nástrojů pro DNS, jako je dig.
  • 3 server VMs (Windows Server 2016 nebo Windows Server 2019).
    • pokud modul Windows PowerShell LoopbackAdapter není již nainstalován na serveru VMs (DC001, DC002), je pro instalaci tohoto modulu dočasně vyžadován přístup k internetu.

Hyper-V nastavení

Konfiguraci Hyper-V serveru takto:

  • 2 privátní virtuální přepínač sítě jsou nakonfigurovány
    • mock sítě Internet 131.253.1.0/24
    • mock síti intranet 10.10.10.0/24
  • 2 klient VMs jsou připojeny k 131.253.1.0/24 síť
  • 2 serveru VMs jsou připojeny k 10.10.10.0/24 síť
  • 1 server je dual-homed a připojeny k oběma 131.253.1.0/24 a 10.10.10.0/24 sítí.

Virtuální stroj konfigurace sítě

Konfigurovat nastavení sítě na virtuální stroje s následujícím nastavením:

  1. Klient1, klient2
  • Klient1: 131.253.1.1
  • Klient2: 131.253.1.2
  • maska Podsítě: 255.255.255.0
  • DNS: 51.51.51.51
  • Brána: 131.253.1.254
  1. Brána (Windows Server)
  • NIC1: 131.253.1.254, podsítě 255.255.255.0
  • NIC2: 10.10.10.254, podsítě 255.255.255.0
  • DNS: 51.51.51.51
  • Brána: 131.253.1.100 (může být ignorována pro demo)
  1. DC001 (Windows Server)
  • NIC1: 10.10.10.1
  • maska Podsítě: 255.255.255.0
  • DNS: 10.10.10.1
  • Brána: 10.10.10.254
  1. DC002 (Windows Server)
  • NIC1: 10.10.10.2
  • Podsítě 255.255.255.0
  • DNS: 10.10.10.2*
  • Brána: 10.10.10.254

*Použití 10.10.10.1 pro DNS zpočátku při provádění domain join pro DC002, takže si můžete najít domény služby Active Directory na DC001.

Konfigurace DNS

pomocí Správce Serveru a konzoly pro správu DNS nebo Windows PowerShell nainstalujte následující role serveru a vytvořte statickou zónu DNS na každém ze dvou serverů.

  1. DC001, DC002
  • Instalace Služby Active Directory Domain services a povýšit na řadič domény (volitelné)
  • Instalovat DNS roli (požadováno)
  • Vytvořit statické zóny (non-AD integrované) s názvem zóny.tst na obou DC001 a DC002
    • Přidat jeden statický záznam name server v zóně typu „TXT“
    • Data (text) pro záznam TXT na DC001 = DC001
    • Data (text) pro záznam TXT na DC002 = DC002

Konfigurace zpětné smyčky, adaptéry

Zadejte následující příkazy se zvýšenými oprávněními prostředí Windows PowerShell řádku na DC001 a DC002 konfigurace zpětné smyčky, adaptéry.

Poznámka

příkaz Install-Module vyžaduje přístup k internetu. To lze provést dočasným přiřazením VM k externí síti v 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

konfigurace směrování virtuálního stroje

ke konfiguraci směrování použijte následující příkazy Windows PowerShell ve VMs.

  1. Brána
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

Shrnutí diagram

Laboratoř pro nativní BGP Anycast DNS demo

Obrázek 2: Laboratoř pro nativní BGP Anycast DNS demo

Anycast DNS demonstrace

  1. Ověřte, BGP směrování na gateway server

    PS C:> Get-BgpRouteInformation

    DestinationNetwork NextHop LearnedFromPeer Státu LocalPref MED
    —————— ——- ————— —– ——— —
    51.51.51.0/24 10.10.10.1 DC001 Nejlepší
    51.51.51.0/24 10.10.10.2 DC002 Nejlepší

  2. Na klient1 a klient2, ověřte, že se můžete dostat 51.51.51.51

    PS C:> ping 51.51.51.51

    Ping 51.51.51.51 s 32 bajty dat:
    Odpověď od 51.51.51.51: bajty=32 čas<1ms TTL=126
    Odpověď od 51.51.51.51: bajty=32 čas<1ms TTL=126
    Odpověď od 51.51.51.51: bajty=32 čas<1ms TTL=126
    Odpověď od 51.51.51.51: bajty=32 čas<1ms TTL=126

    statistika Ping pro 51.51.51.51:
    Pakety: Odeslané = 4, Přijaté = 4, Ztracené = 0 (ztráta 0%),
    Přibližná round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Průměrná = 0ms

    Poznámka

    Pokud se příkaz ping nezdaří, zkontrolujte také, zda neexistují pravidla brány firewall blokuje ICMP.

  3. v client1 a client2 použijte nslookup nebo dig pro dotaz na záznam TXT. Příklady obou jsou uvedeny níže.

    PS C:> dig server.zóna.tst TXT + short
    PS C:> nslookup-type=txt server.zóna.tst 51,51.51.51

    jeden klient zobrazí „DC001″ a druhý klient zobrazí“ DC002 “ ověřující, že Anycast pracuje správně. Můžete také dotaz ze serveru brány.

  4. dále deaktivujte ethernetový adaptér na DC001.

    PS C:> (Get-NetAdapter).Jméno
    Loopback
    Ethernet 2
    PS C:> Vypnout-NetAdapter „Ethernet 2“
    Potvrdit
    jste si jisti, že chcete provést tuto akci?
    Vypnout-NetAdapter ‚Ethernet 2‘
    Ano Ano Všem ne Ne Všem Pozastavit Pomoc (výchozí hodnota je „Y“):
    PS C:> (Get-NetAdapter).Stav
    nahoru
    zakázáno

  5. potvrďte, že klienti DNS, kteří dříve dostávali odpovědi z DC001, přešli na DC002.

    PS C:> nslookup-type=txt server.zóna.tst 51.51.51.51
    Server: Neznámý
    adresa: 51.51.51.51

    server.zóna.tst text =

    „DC001“
    PS C:> nslookup-type=txt server.zóna.tst 51,51.51.51
    Server: Neznámý
    adresa: 51,51.51.51

    server.zóna.tst text =

    „DC002“

  6. Potvrdit, že BGP relace je na DC001 pomocí Get-BgpStatistics na serveru brány.

  7. znovu povolte ethernetový adaptér na DC001 a potvrďte, že relace BGP je obnovena a klienti znovu obdrží odpovědi DNS z DC001.

Poznámka

pokud není použit vyvažovač zatížení, bude jednotlivý klient používat stejný back-end DNS server, pokud je k dispozici. Tím se vytvoří konzistentní cesta BGP pro klienta. Další informace viz bod 4.4.3 RFC4786: cesty se stejnými náklady.

Často kladené otázky

otázka: je anycast DNS dobrým řešením pro použití v místním prostředí DNS?
A: Anycast DNS pracuje bez problémů se službou DNS na místě. Nicméně, Anycast není nutné pro službu DNS škálovat.

otázka: Jaký je dopad implementace anycast DNS v prostředí s velkým počtem (ex: >50) řadičů domény?
A: neexistuje žádný přímý dopad na funkčnost. Pokud je použit vyvažovač zatížení, není nutná žádná další konfigurace řadičů domény.

Q: Je konfigurace anycast DNS podporována zákaznickým servisem společnosti Microsoft?
A: pokud k předávání dotazů DNS používáte vyvažovač zatížení, který není Microsoft, společnost Microsoft bude podporovat problémy související se službou serveru DNS. Problémy související s přeposíláním DNS konzultujte s dodavatelem vyrovnávače zatížení.

otázka: Jaký je nejlepší postup pro anycast DNS s velkým počtem (ex: >50) řadičů domény?
A: osvědčeným postupem je použití vyvažovače zatížení v každé zeměpisné poloze. Vyvažovače zatížení jsou obvykle poskytovány externím prodejcem.

Q: Mají Anycast DNS a Azure DNS podobné funkce?
A: Azure DNS používá Anycast. Chcete-li použít Anycast s Azure DNS, nakonfigurujte vyvažovač zatížení tak, aby předával požadavky na Server Azure DNS.