GH GambleHub

Routing i awaria systemu DNS

1) Rola DNS w tolerancji błędów

DNS jest pierwszym routerem użytkownika. "Od jego projektu zależą:
  • Dostępność (szybka/niezawodna awaria);
  • Wydajność (geo/latency-routing);
  • Koszt (zminimalizowanie międzyregionalnego wyjścia i 3rd-party calls);
  • Bezpieczeństwo (DNSSEC, anty-porwanie, kontrola CAA/DMARC/SPF).

Klucz: krótkie TTL, gdzie dynamika jest ważna, i stabilna architektura strefowa (public + private, split-horizon).

2) Rodzaje rejestrów i praktyk

A/AAAA - główne adresy; zawsze publikuj w miarę możliwości protokół IPv6.
CNAME vs ALIAS/ANAME: U źródła domeny należy użyć ALIAS/ANAME (lub apex-spłaszczenie dostawcy).
TXT - SPF/DMARC/DKIM, weryfikacja; CAA - ograniczenie emitentów certyfikatów.
SRV/NS - odkrycie i delegowanie usług.
SVCB/HTTPS to nowoczesny mechanizm alternatywny z priorytetyzacją i parametrami (ALPN, porty).

Zalecenie: naprawić normy TTL według klasy (krawędź/API/statyczna).

3) Polityka routingu

Ważony - kontrolowane udziały w ruchu (kanarki/niebiesko-zielone).
Latency - Wybierz basen, który jest najbliżej opóźnienia.
Trasa geograficzna - według kraju/kontynentu/regionu; ważne dla rezydencji danych.
Awaria (podstawowa/wtórna) - aktywny monitoring i przełączanie.
Wielowartościowa - kilka A/AAAA; klient sam wybiera (nie zastępuje kontroli zdrowotnych).
Routing bliskości/ASN - dla niektórych dostawców: przez sieć klienta.

Połączenie: geo → opóźnienie → waga → zdrowie.

4) TTL, buforowanie i rozmnażanie

TTL API/głośniki: 30-120 s (równowaga między prędkością feilera a obciążeniem).
Statyczny/CDN: 1-24 °.
Ujemny TTL (SOA 'Minimum') - ≤ 60-300 s, inaczej NXDOMAIN będzie „lepki”.
Pamiętaj: rozdzielcy nie są zobowiązani do natychmiastowego wyrzucenia pamięci podręcznej; weźmy pod uwagę „brudny ogon”.

5) Punkty końcowe zdrowia i kontroli

Kontrole zdrowotne z wielu regionów: TCP/443 + HTTP 2xx/3xx oraz kontrole kryteriów biznesowych lambda (np. udane '/zdrowie? deep = true 'z kontrolą zależności).
Syntetyczne (RUM/active): próbki API na głównych trasach, kontrole TLS/OCSP, kontrole DNSSEC.
odsłonić „/gotowe ”(głębokie) i „/żywe” (powierzchowne); Powiązać pulę DNS z/gotową.

6) Publiczny vs prywatny DNS (podział na horyzonty)

Strefa publiczna - dostęp do klienta.
Strefa prywatna - wewnętrzna rozdzielczość do prywatnych punktów końcowych (VPC/VNet, on-prem).
Spedycja warunkowa мера, on-prem, „cloud”, region i region.
Nazwa: 'api. <marka>. <region> .internal. corp 'б' api. <marka> .com '.

7) Bezpieczeństwo: DNSSEC i polityka domeny

DNSSEC: włączyć podpis strefy (KSK/ZSK), monitorować rotację klucza i łańcuch zaufania.
CAA: wykaz ważnych urzędów certyfikacji; zawiera „jodef” dla wpisów.
SPF/DMARC/DKIM: renoma poczty i ochrona przed phishingiem.
blokada rejestru i MFA dla kont dostawców DNS; dziennik zmian (magazyn WORM).

8) Projektowanie awarii

8. 1 Modele

Active-Active: dwa + zdrowe baseny; równowaga poprzez opóźnienie/waga, kontrole zdrowia wyklucza niezdrowe.
Active-Passive: basen główny + rezerwa (0% wagi przed wypadkiem).
Regionalny pierścień: ruch do „sąsiedniego” regionu w katastrofie lokalnej.
Tryb awarii: napisz do „łatwego” miejsca/lądowania, jeśli backend nie jest dostępny.

8. 2 Scenariusz krok po kroku

1. Rejestry monitorowania degradacji „/gotowych ”.
2. DNS zmienia reakcje (eliminuje pulę lub zmienia wagę).
3. Ruch prowadzi do zdrowego regionu, TTL określa prędkość.
4. Po stabilizacji - okres łaski (15-30 min), a dopiero wtedy powrót wagi.

9) Przykłady konfiguracji

9. 1 AWS Route 53 - opóźnienia + zdrowie + ważone

hcl
Two latency aliases for different regions resource "aws_route53_record" "api_latency_eu" {
zone_id = var. zone_id name  = "api. example. com"
type  = "A"
set_identifier = "eu1"
latency_routing_policy { region = "eu-central-1" }
alias { name = aws_lb. api_eu. dns_name zone_id = aws_lb. api_eu. zone_id evaluate_target_health = true }
health_check_id = aws_route53_health_check. api_eu. id ttl = 60
}

resource "aws_route53_record" "api_latency_us" {
zone_id = var. zone_id name  = "api. example. com"
type  = "A"
set_identifier = "us1"
latency_routing_policy { region = "us-east-1" }
alias { name = aws_lb. api_us. dns_name zone_id = aws_lb. api_us. zone_id evaluate_target_health = true }
health_check_id = aws_route53_health_check. api_us. id ttl = 60
}

Canary in EU: 10% of the weight of the resource "aws_route53_record" "api_weighted_canary" {
zone_id = var. zone_id name  = "api. example. com"
type  = "A"
set_identifier = "eu1-canary"
weighted_routing_policy { weight = 10 }
alias { name = aws_lb. api_eu_canary. dns_name zone_id = aws_lb. api_eu_canary. zone_id evaluate_target_health = true }
ttl = 30
}

9. 2 Cloudflare - geo/ASN i pula awaryjna (idea)

Load Balancer Pools c health-checks (HTTP/TCP), Load Balancer z Geo Steering (kontynenty/kraje) i powinowactwo sesyjne.
Fallback: Reguła strony/Reguła przekształcenia do uproszczonego backendu na pikach 5xx.

9. 3 Azure/GCP

Azure Traffic Manager: Priority/Weighted/Performance/Geographic.
Google Cloud Load Balancing + Cloud Polityka DNS: geo-policy + health-checks мереz Zewnętrzna HTTP (S) LB.

10) Obserwowalność i DNS SLO

SLI: rozdzielczość szybkości sukcesu, 95 procentyl czasu rozdzielczości, odsetek odpowiedzi świeżych (niekontrolowanych) w obrębie TTL.
SLO: na przykład, '99. 95% udanych odpowiedzi ≤ 100 ms.
Wskaźniki: NXDOMAIN-rate, SERVFAIL-rate, health-state pools, share traffic by region, canary share.
Przykłady: Powiązanie SLI ze śladami HTTP poprzez 'trace _ id' w syntetyce.

11) Badanie i działanie

Syntetyka z różnych regionów ASN (RIPE Atlas, Catchpoint, k6-DNS).
dnsviz/" delv "do sprawdzenia DNSSEC;" dig + trace 'dla anomalii.
Strefa postoju ('stg. przykład. com ") w przypadku prób feilover; skrypt prób zmienia wagi/priorytety i zwroty.
Runbook: kto i jak ręcznie podnosi/obniża ciężary, jak wyłączyć basen, jak wykonać „zamrożenie”.

12) Antypattery

TTL = 3000 + na krytycznym A/AAAA → powolny/chaotyczny feilover.
Żadnych kontroli zdrowotnych lub kontroli portowych tylko TCP bez stałej działalności gospodarczej.
Kilka łańcuchów CNAME → powolne rozdzielczości, cache chaos.
Jedyny dostawca DNS bez kopii zapasowej wtórnej/axfr.
Strefa bez podpisu, gdy wymagany jest DNSSEC; nieistotne CAA.
Wpisy wskazujące publiczny IP prywatnych baz danych.

13) Szczegóły dotyczące iGaming/Finance

Jurysdykcja: geo/country-routing dla zgodności (przekierowanie do domeny lokalnej/przodu).
PSP/KYC: dedykowane subdomeny z indywidualną polityką TTL i feilover; szybki transfer do standby PSP.
Odpowiedzialna gra: subdomeny z legalnymi stronami są zawsze dostępne (backup static/CDN).
Audyt - Zmiany strefy dziennika w sklepie WORM, zmiany podpisu i regularne przeglądy.
Listy bloków: reguły zgodności DNS według regionu (filtrowanie krawędzi + routing DNS).

14) Lista kontrolna gotowości Prod

  • Profile TTL według klas; ujemny TTL ≤ 300 s.
  • Dwie niezależne sieci DNS (podstawowe/wtórne), MFA/blokada rejestratora.
  • Polityka: geo/opóźnienie/waga + kontrole zdrowotne z wielu regionów.
  • DNSSEC enabled, CAA/DMARC/DKIM/SPF up to date.
  • Podział na horyzonty (publiczny/prywatny), strefy prywatne dla ruchu wewnętrznego.
  • Flyer/return runbook, skrypt prób, domeny kanaryjskie.
  • Monitorowanie SLI/SLO, wpisy dotyczące wzrostu NXDOMAIN/SERVFAIL/RTT.
  • Obszar postoju i regularne „ćwiczenia awaryjne”.
  • W przypadku iGaming: routing według jurysdykcji, odrębne domeny dla PSP/KYC, niezmienny audyt.

15) TL; DR

Zbuduj wspólną politykę: geo/latency + kontrola zdrowia + wagi, z TTL 30-120 s na głośniku. Oddzielne publiczne/prywatne (split-horizon), włącz DNSSEC i CAA, zachowaj wtórny DNS. Wykonaj próbę feilover i obserwuj SLI/SLO DNS. Dla iGaming, rozważyć jurysdykcje i rezerwacje domeny PSP/KYC z oddzielnymi zasadami i rejestrowania zmian w WORM.

Contact

Skontaktuj się z nami

Napisz do nas w każdej sprawie — pytania, wsparcie, konsultacje.Zawsze jesteśmy gotowi pomóc!

Telegram
@Gamble_GC
Rozpocznij integrację

Email jest wymagany. Telegram lub WhatsApp są opcjonalne.

Twoje imię opcjonalne
Email opcjonalne
Temat opcjonalne
Wiadomość opcjonalne
Telegram opcjonalne
@
Jeśli podasz Telegram — odpowiemy także tam, oprócz emaila.
WhatsApp opcjonalne
Format: kod kraju i numer (np. +48XXXXXXXXX).

Klikając przycisk, wyrażasz zgodę na przetwarzanie swoich danych.