Az Anycast DNS áttekintése

Ez a témakör az Anycast DNS működéséről nyújt tájékoztatást.

Mi az Anycast?

Az Anycast egy olyan technológia, amely több útválasztási útvonalat biztosít a végpontok egy csoportjához, amelyek mindegyike ugyanazt az IP-címet kapja. A csoport minden eszköze ugyanazt a címet hirdeti egy hálózaton, és az útválasztási protokollok segítségével választja ki, hogy melyik a legjobb célhely.

Az Anycast lehetővé teszi egy állapot nélküli szolgáltatás, például a DNS vagy a HTTP skálázását úgy, hogy több csomópontot helyez ugyanazon IP-cím mögé, és egyenlő költségű többútvonalos (ECMP) útválasztást használ a csomópontok közötti forgalom irányításához. Az anycast különbözik az unicasttól, amelyben minden végpont saját, különálló IP-címmel rendelkezik.

Miért érdemes az Anycastot DNS-lel használni?

Az Anycast DNS használatával engedélyezheti egy DNS-kiszolgáló vagy egy kiszolgálócsoport számára, hogy a DNS-ügyfél földrajzi helye alapján válaszoljon a DNS-lekérdezésekre. Ez javíthatja a DNS-válaszidőt, és leegyszerűsítheti a DNS-ügyfél beállításait. Az Anycast DNS további redundanciaréteget is biztosít, és védelmet nyújt a DNS szolgáltatásmegtagadási támadásai ellen.

Az Anycast DNS működése

Az Anycast DNS úgy működik, hogy olyan útválasztási protokollokat használ, mint a Border Gateway Protocol (BGP), hogy a DNS-lekérdezéseket egy előnyben részesített DNS-kiszolgálóra vagy egy DNS-kiszolgálócsoporthoz küldje (például egy terheléselosztó által kezelt DNS-kiszolgálók egy csoportjára). Ez a kialakítás optimalizálhatja a DNS-kommunikációt az ügyfélhez legközelebbi DNS-kiszolgáló dns-válaszainak lekérésével.

Az Anycast esetében a több földrajzi helyen található kiszolgálók mindegyike egyetlen, azonos IP-címet hirdet a helyi átjáróhoz (útválasztóhoz). Amikor egy DNS-ügyfél lekérdezést kezdeményez az Anycast-címre, a rendszer kiértékeli az elérhető útvonalakat, és elküldi a DNS-lekérdezést az előnyben részesített helyre. Ez a hely általában a hálózati topológia alapján a legközelebbi. Tekintse meg a következő példát.

Négy DNS-kiszolgáló, amely különböző helyeken található, ugyanazt az Anycast IP-címet jelenti be a hálózatnak

1. ábra: Példa az Anycast-hálózatra

  • A hálózat különböző helyein található négy DNS-kiszolgáló (kék körök) mindegyike ugyanazt az Anycast IP-címet jelenti be a helyi útválasztási eszközén (nem jelenik meg).
  • Az útvonalak meg vannak osztva a hálózaton lévő eszközök között (fekete nyilak).
  • A DNS-ügyféleszköz (zöld kör) dns-lekérdezést küld az Anycast IP-címre.
  • Az ügyfél DNS-kérését egy útválasztási eszköz fogadja a hálózaton (nem jelenik meg).
  • Az útválasztási eszköz elemzi a rendelkezésre álló útvonalakat az Anycast IP-címre, és a DNS-lekérdezést a lehető legrövidebb útvonalon irányítja át.
  • A RENDSZER elküldi a DNS-lekérdezést a legközelebbi DNS-kiszolgálónak (kék nyíl).

Az Anycast DNS-t manapság gyakran használják számos globális DNS-szolgáltatás forgalmának irányítására. A gyökér DNS-kiszolgálórendszer például nagyban függ az Anycast DNS-től. Az Anycast számos különböző útválasztási protokollal is működik, és kizárólag intraneteken használható.

Windows Server natív BGP Anycast bemutató

Az alábbi eljárás bemutatja, hogyan használható a natív BGP a Windows Serveren az Anycast DNS használatával.

Requirements

  • Egy fizikai eszköz, amelyen telepítve van a Hyper-V szerepkör.
    • Windows Server 2012 R2, Windows 10 vagy újabb.
  • 2 kliens virtuális gép (bármely operációs rendszer).
    • Ajánlott a BIND-eszközök telepítése a DNS-hez, például a dighez.
  • 3 kiszolgálói virtuális gép (Windows Server 2016 vagy Windows Server 2019).
    • Ha a Windows PowerShell LoopbackAdapter modul még nincs telepítve kiszolgálói virtuális gépeken (DC001, DC002), a modul telepítéséhez ideiglenesen internet-hozzáférésre van szükség.

Hyper-V beállítás

Konfigurálja a Hyper-V-kiszolgálót az alábbiak szerint:

  • 2 privát virtuális kapcsolóhálózat van konfigurálva
    • Egy makett internetes hálózat 131.253.1.0/24
    • Egy bemutató intranetes hálózat 10.10.10.0/24
  • 2 ügyfél virtuális gép csatlakozik a 131.253.1.0/24 hálózathoz
  • 2 kiszolgálói virtuális gép csatlakozik a 10.10.10.0/24 hálózathoz
  • Az 1 kiszolgáló kettős otthonú, és a 131.253.1.0/24-es és a 10.10.10.0/24-es hálózatokhoz is csatlakozik.

Virtuális gép hálózati konfigurációja

Konfigurálja a hálózati beállításokat a virtuális gépeken a következő beállításokkal:

  1. Ügyfél1, ügyfél2
  • Ügyfél1: 131.253.1.1
  • Ügyfél2: 131.253.1.2
  • Alhálózati maszk: 255.255.255.0
  • DNS: 51.51.51.51
  • Átjáró: 131.253.1.254
  1. Átjáró (Windows Server)
  • NIC1: 131.253.1.254, alhálózat: 255.255.255.0
  • NIC2: 10.10.10.254, alhálózat: 255.255.255.0
  • DNS: 51.51.51.51
  • Átjáró: 131.253.1.100 (a bemutató esetében figyelmen kívül hagyható)
  1. DC001 (Windows Server)
  • NIC1: 10.10.10.1
  • Alhálózat: 255.255.255.0
  • DNS: 10.10.10.1
  • Átjáró: 10.10.10.254
  1. DC002 (Windows Server)
  • NIC1: 10.10.10.2
  • Alhálózat 255.255.255.0
  • DNS: 10.10.10.2*
  • Átjáró: 10.10.10.254

*Használja a 10.10.10.1-et a DNS-hez a DC002-hez való tartománycsatlakozás végrehajtásakor, hogy a DC001-en keresse meg az Active Directory-tartományt.

DNS konfigurálása

A Kiszolgálókezelő és a DNS felügyeleti konzol vagy a Windows PowerShell használatával telepítse a következő kiszolgálói szerepköröket, és hozzon létre egy statikus DNS-zónát mindkét kiszolgálón.

  1. DC001, DC002
  • Az Active Directory Domain Services telepítése és a tartományvezérlőre való előléptetés (nem kötelező)
  • A DNS-szerepkör telepítése (kötelező)
  • Statikus zóna (nem AD integrált) létrehozása zone.tst néven a DC001-en és a DC002-en is
    • Adja hozzá az egyetlen statikus rekordnévkiszolgálót a "TXT" típusú zónához
    • A DC001 TXT rekordjának adatai (szövege) = DC001
    • A DC002 = DC002 TXT rekord adatai (szöveg)

Visszacsatolási adapterek konfigurálása

A visszacsatolási adapterek konfigurálásához írja be a következő parancsokat egy emelt szintű Windows PowerShell-parancssorba a DC001 és a DC002 rendszeren.

Note

Az Install-Module parancshoz internet-hozzáférés szükséges. Ezt úgy teheti meg, hogy ideiglenesen hozzárendeli a virtuális gépet egy külső hálózathoz a Hyper-V-ben.

$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 -Force
Import-Module -Name LoopbackAdapter
New-LoopbackAdapter -Name $loopback_name -Force
$interface_loopback = Get-NetAdapter -Name $loopback_name
$interface_main = Get-NetAdapter -Name $primary_interface
Set-NetIPInterface -InterfaceIndex $interface_loopback.ifIndex -InterfaceMetric "254" -WeakHostReceive Enabled -WeakHostSend Enabled -DHCP Disabled
Set-NetIPInterface -InterfaceIndex $interface_main.ifIndex -WeakHostReceive Enabled -WeakHostSend Enabled
Set-NetIPAddress -InterfaceIndex $interface_loopback.ifIndex -SkipAsSource $True
Get-NetAdapter $loopback_name | Set-DNSClient –RegisterThisConnectionsAddress $False
New-NetIPAddress -InterfaceAlias $loopback_name -IPAddress $loopback_ipv4 -PrefixLength $loopback_ipv4_length -AddressFamily ipv4
Disable-NetAdapterBinding -Name $loopback_name -ComponentID ms_msclient
Disable-NetAdapterBinding -Name $loopback_name -ComponentID ms_pacer
Disable-NetAdapterBinding -Name $loopback_name -ComponentID ms_server
Disable-NetAdapterBinding -Name $loopback_name -ComponentID ms_lltdio
Disable-NetAdapterBinding -Name $loopback_name -ComponentID ms_rspndr

Virtuális gép útválasztási konfigurációja

Az útválasztás konfigurálásához használja a következő Windows PowerShell-parancsokat a virtuális gépeken.

  1. Gateway
Install-WindowsFeature RemoteAccess -IncludeManagementTools
Install-RemoteAccess -VpnType RoutingOnly
Add-BgpRouter -BgpIdentifier “10.10.10.254” -LocalASN 8075
Add-BgpPeer -Name "DC001" -LocalIPAddress 10.10.10.254 -PeerIPAddress 10.10.10.1 -PeerASN 65511 –LocalASN 8075
Add-BgpPeer -Name "DC002" -LocalIPAddress 10.10.10.254 -PeerIPAddress 10.10.10.2 -PeerASN 65511 –LocalASN 8075
  1. DC001
Install-WindowsFeature RemoteAccess -IncludeManagementTools
Install-RemoteAccess -VpnType RoutingOnly
Add-BgpRouter -BgpIdentifier “10.10.10.1” -LocalASN 65511
Add-BgpPeer -Name "Labgw" -LocalIPAddress 10.10.10.1 -PeerIPAddress 10.10.10.254 -PeerASN 8075 –LocalASN 65511
Add-BgpCustomRoute -Network 51.51.51.0/24
  1. DC002
Install-WindowsFeature RemoteAccess -IncludeManagementTools
Install-RemoteAccess -VpnType RoutingOnly
Add-BgpRouter -BgpIdentifier "10.10.10.2" -LocalASN 65511
Add-BgpPeer -Name "Labgw" -LocalIPAddress 10.10.10.2 -PeerIPAddress 10.10.10.254 -PeerASN 8075 –LocalASN 65511
Add-BgpCustomRoute -Network 51.51.51.0/24

Összefoglaló diagram

Tesztkörnyezet beállítása natív BGP Anycast DNS-bemutatóhoz

2. ábra: Tesztkörnyezet beállítása natív BGP Anycast DNS-bemutatóhoz

Anycast DNS demonstráció

  1. BGP-útválasztás ellenőrzése az átjárókiszolgálón

    PS C:\> Get-BgpRouteInformation

    DestinationNetwork NextHop LearnedFromPeer State LocalPref MED
    ------------------ ------- --------------- ----- --------- ---
    51.51.51.0/24 10.10.10.1 DC001 Legjobb
    51.51.51.0/24 10.10.10.2 DC002 legjobb

  2. Ügyfél1 és ügyfél2 rendszeren ellenőrizze, hogy eléri-e az 51.51.51.51.51-et

    PS C:\> ping 51.51.51.51

    Az 51.51.51.51 pingelése 32 bájtnyi adattal:
    Válasz 51.51.51.51-től: bájt=32 idő<1ms TTL=126
    Válasz 51.51.51.51-től: bájt=32 idő<1ms TTL=126
    Válasz 51.51.51.51-től: bájt=32 idő<1ms TTL=126
    Válasz 51.51.51.51-től: bájt=32 idő<1ms TTL=126

    Pingelési statisztikák az 51.51.51.51-hez:
    Csomagok: Elküldött = 4, Fogadott = 4, Elveszett = 0 (0% veszteség),
    Hozzávetőleges utazási idő ezredmásodpercben:
    Minimum = 0 ms, Maximum = 0 ms, Átlag = 0 ms

    Note

    Ha a pingelés sikertelen, ellenőrizze, hogy nincsenek-e olyan tűzfalszabályok, amelyek blokkolják az ICMP-t.

  3. Ügyfél1 és ügyfél2 esetén használja az nslookup vagy a dig parancsot a TXT rekord lekérdezéséhez. Mindkettőre példák láthatók.

    PS C:\> dig server.zone.tst TXT +short
    PS C:\> nslookup -type=txt server.zone.tst 51.51.51.51

    Az egyik ügyfél a "DC001", a másik pedig a "DC002" értéket jeleníti meg, és ellenőrzi, hogy az Anycast megfelelően működik-e. Az átjárókiszolgálóról is lekérdezhet.

  4. Ezután tiltsa le az Ethernet-adaptert a DC001-en.

    PS C:\> (Get-NetAdapter).Name
    Loopback
    Ethernet 2
    PS C:\> Disable-NetAdapter "Ethernet 2"
    Confirm
    Biztosan végrehajtja ezt a műveletet?
    Disable-NetAdapter "Ethernet 2"
    [Y] Igen [A] Igen mindenre [N] Nem [L] Nem mindenkinek [S] Felfüggesztés [?] Súgó (az alapértelmezett érték az "Y"):
    PS C:\> (Get-NetAdapter).Status
    Up
    Disabled

  5. Győződjön meg arról, hogy azok a DNS-ügyfelek, amelyek korábban a DC001-ből kaptak választ, DC002-re váltottak.

    PS C:\> nslookup -type=txt server.zone.tst 51.51.51.51
    Kiszolgáló: UnKnown
    Cím: 51.51.51.51

    szerver.zóna.tst szöveg =

    "DC001"
    PS C:\> nslookup -type=txt server.zone.tst 51.51.51.51
    Kiszolgáló: UnKnown
    Cím: 51.51.51.51

    szerver.zóna.tst szöveg =

    "DC002"

  6. Győződjön meg arról, hogy a BGP-munkamenet leállt a DC001-en az átjárókiszolgáló Get-BgpStatistics használatával.

  7. Engedélyezze újra az Ethernet-adaptert a DC001-en, és győződjön meg arról, hogy a BGP-munkamenet visszaállt, és az ügyfelek ismét DNS-válaszokat kapnak a DC001-ből.

Note

Ha nem használ terheléselosztót, az egyes ügyfelek ugyanazt a háttérBELI DNS-kiszolgálót fogják használni, ha elérhető. Ez konzisztens BGP-útvonalat hoz létre az ügyfél számára. További információ: RFC4786 4.4.3. szakasza: Equal-Cost Elérési utak.

Gyakori kérdések

K: Az Anycast DNS jó megoldás helyszíni DNS-környezetben való használatra?
Válasz: Az anycast DNS zökkenőmentesen működik egy helyszíni DNS-szolgáltatással. Az Anycast azonban nem szükséges a DNS-szolgáltatás skálázásához.

K: Milyen hatással van az Anycast DNS implementálása nagy számú (például >50) tartományvezérlőt tartalmazó környezetben?
Válasz: Nincs közvetlen hatása a funkciókra. Ha terheléselosztót használ, akkor nincs szükség más konfigurációra a tartományvezérlőkön.

K: Támogatja az Anycast DNS-konfigurációt a Microsoft ügyfélszolgálata?
Válasz: Ha nem Microsoft terheléselosztót használ a DNS-lekérdezések továbbításához, a Microsoft támogatja a DNS Server szolgáltatással kapcsolatos problémákat. A DNS-továbbítással kapcsolatos problémákért forduljon a terheléselosztó szállítójához.

K: Mi az ajánlott eljárás a nagy számú (például >50) tartományvezérlőt tartalmazó Anycast DNS esetében?
Válasz: Az ajánlott eljárás egy terheléselosztó használata minden földrajzi helyen. A terheléselosztókat általában egy külső szállító biztosítja.

K: Az Anycast DNS és az Azure DNS hasonló funkcióval rendelkezik?
Válasz: Az Azure DNS az Anycastot használja. Az Anycast azure DNS-sel való használatához konfigurálja a terheléselosztót a kérések Azure DNS-kiszolgálóra való továbbítására.