INTEGRITY Dokumentace

DNS persistence

Tento návod vysvětluje, jak v Cloudflare Load Balancing dosáhnout DNS perzistence, obdobně jako u tradičních load balancerů založených na DNS.

DNS persistence zajišťuje, že další DNS požadavky ze stejného místního DNS serveru obdrží stejnou IP adresu. Využívá se u aplikací, které potřebují zachovat konzistenci relace, například u VPN připojení nebo autentizačních systémů.

Cloudflare Load Balancing dokáže zajistit DNS persistence pomocí různých konfiguračních přístupů pro vyvažování zátěže pouze na úrovni DNS.


Persistence u DNS-only vyrovnávání zátěže

Pro vyvažování zátěže pouze na úrovni DNS nabízí Cloudflare tři metody, jak dosáhnout perzistence DNS:

Tato metoda využívá geografické směrování podle toho, které Cloudflare Point of Presence (PoP) přijme DNS požadavek.

Kroky konfigurace

  1. Vytvořte pool pro každý endpoint. U žádného z poolů nepoužívejte odlehčení zátěže.
  2. Vytvořte load balancer pouze pro DNS a přidejte oba pooly. Zajistěte, že pool_1 je v pořadí před pool_2.
  3. V části Řízení provozu, vyberte Geo Steering.
  4. Vytvořte pravidlo geo-steering pro region (například Východní Severní Amerika) a vyberte stejné pooly, ale v opačném pořadí (pool_2 nejprve, poté pool_1).
  5. Použijte Nikdy nepreferovat ECS a PoP location k určení zdroje požadavku.

Jak to funguje

Všechny požadavky přijaté v PoPech Cloudflare ve zadaném regionu se odesílají na jeden endpoint, zatímco požadavky z ostatních regionů se odesílají na druhý endpoint.

Použití PoP Cloudflare, který přijal požadavek, jako kritéria pro směrování je stabilnější než hašování IP adres nebo rozdělení rozsahu IP adres, protože to není ovlivněno rekurzivními poskytovateli DNS používajícími různé výstupní IP adresy.

Metoda 2: Odlehčení zátěže pomocí IP hash

Tato metoda využívá load shedding a rozděluje provoz podle zdrojové IP adresy rekurzivního DNS resolveru.

Kroky konfigurace

  1. Vytvořte pool pro každý endpoint (například pool_1 hodnotou endpoint_1 a pool_2 hodnotou endpoint_2).
  2. U prvního poolu vyberte Hash v části Směrování koncových bodů.
  3. Nakonfigurujte Odlehčení zátěže:
    • Zásada: IP Hash
    • Shed %: 50 % (rovnoměrně rozdělí provoz mezi dva pooly)
  4. Vytvořte load balancer pouze pro DNS a přidejte oba pooly. Zajistěte, že pool_1 je v pořadí před pool_2.
  5. Nekonfigurujte žádné další směrování provozu ani pravidla.

Jak to funguje

Tato konfigurace pomocí IP hashe přesměruje polovinu požadavků do druhého poolu a zachovává session affinity podle zdrojové IP adresy rekurzivního resolveru.

Omezení

Někteří poskytovatelé rekurzivního DNS (například Google DNS 8.8.8.8 nebo Quad9 9.9.9.9) mohou nahodile používat různé výstupní IP adresy, což může snížit stabilitu persistence.

Metoda 3: Vlastní pravidla s filtrováním podle zdrojové IP adresy

Tato metoda rozděluje provoz podle rozsahů IP adres pomocí vlastních pravidel.

Kroky konfigurace

  1. Vytvořte pool pro každý endpoint. U žádného z poolů nepoužívejte odlehčení zátěže.
  2. Vytvořte load balancer pouze pro DNS a přidejte oba pooly. Zajistěte, že pool_1 je v pořadí před pool_2.
  3. Nekonfigurujte směrování provozu.
  4. Vytvořte Vlastní pravidlo s:
    • Pole: IP Source Address
    • Operátor: je v
    • Hodnota: Podmnožina IP prostoru (například 0.0.0.0/1 pro spodní polovinu prostoru IPv4)
  5. Jako akci pravidla zvolte Přepsání > Endpointy a nastavte pooly v opačném pořadí (pool_2, pool_1).

Jak to funguje

Provoz se zdrojovými IP adresami z dolní poloviny prostoru IPv4 je odesílán na jeden endpoint, zatímco provoz z horní poloviny je odesílán na druhý endpoint.

Omezení

Podobně jako u metody 2 může být tento přístup méně stabilní u poskytovatelů rekurzivního DNS, kteří používají proměnlivé výstupní IP adresy.