GH GambleHub

DNS багыттоо жана failover

1) ката туруктуулугу DNS ролу

DNS - колдонуучунун биринчи "роутери". Анын дизайны көз каранды:
  • Жеткиликтүү (тез/ишенимдүү failover);
  • Performance (geo/latency-routing);
  • Наркы (аймактар аралык egress жана 3rd-партиялык чалууларды азайтуу);
  • Коопсуздук (DNSSEC, анти-hijack, CAA/DMARC/SPF көзөмөлдөө).

ачкыч: динамикасы маанилүү болгон жерде кыска TTL, жана туруктуу зоналык архитектура (коомдук + жеке, split-horizon).

2) Жазуу түрлөрү жана практикасы

A/AAAA - негизги даректери; ар дайым мүмкүн болгон жерде IPv6 жарыялоо.
CNAME vs ALIAS/ANAME: домендин түбүндө ALIAS/ANAME (же провайдердик apex-flattening) колдонуңуз.
TXT - SPF/DMARC/DKIM, текшерүү; CAA - күбөлүк чыгаруучулардын чектөө.
SRV/NS - кызмат Discovery жана өткөрүп берүү.
SVCB/HTTPS - артыкчылыктуу жана параметрлери менен заманбап альтернативдик механизм (ALPN, порттор).

Сунуш: класстары боюнча TTL стандарттарын чечүү (edge/API/статикалык).

3) Багыттоо саясаты

Салмактуу (салмактанып алынган) - көзөмөлдөнүүчү трафик үлүштөрү (канарейка/көк-жашыл).
Latency-based - кечигүү көлмөнүн жакын тандоо.
Geo-routing - өлкө/континент/аймак боюнча; data residency үчүн маанилүү.
Failover (primary/secondary) - активдүү мониторинг жана которуу.
Multi-value - бир нече A/AAAA; кардар өзү тандайт (health-checks ордуна эмес).
Proximity/ASN routing - кээ бир провайдерлерде: кардар тармагы аркылуу.

Айкалыштыруу: geo → latency → weight → health.

4) TTL, кэш жана пропаганда

TTL API/динамиктер: 30-120 с (Feylover ылдамдыгы менен жүктүн ортосундагы баланс).
Static/CDN: 1–24 ч.
Терс TTL (SOA 'Minimum') - ≤ 60-300 с, антпесе NXDOMAIN "жабышчаак" болот.
Эсиңизде болсун: резолверлер дароо кэш ыргытууга милдеттүү эмес; эске алуу "кир куйругу".

5) Ден соолук жана эндпоинттерди текшерүү

Ден соолук-текшерүү бир нече аймактардан: TCP/443 + HTTP 2xx/3xx жана lambda-текшерүү бизнес критерийлери (мисалы, ийгиликтүү '/ден соолук? deep = true 'менен көз карандылыкты текшерүү).
синтетика (RUM/active): негизги жолдор боюнча API-тесттер, TLS/OCSP текшерүү, DNSSEC текшерүү.
Экспонат '/ready '(терең) жана '/live' (үстүртөн); DNS-бассейн/ready байлап.

6) Коомдук Vs жеке DNS (split-horizon)

Public zone - кардар жетүү.
Private zone - private endpoints (VPC/VNet, on-prem) үчүн ички чечим.
Conditional forwarding между on-prem ↔ cloud, region ↔ region.
Аталышы: 'api. <brand>.<region>.internal. corp` и `api. <brand>.com`.

7) Коопсуздук: DNSSEC жана домен саясаты

DNSSEC: аймактын кол тамгасын (KSK/ZSK) күйгүзүү, ачкычтардын айлануусун жана ишеним чынжырын көзөмөлдөө.
CAA: алгылыктуу CA тизмеси; Алерттер үчүн 'iodef' киргизиңиз.
SPF/DMARC/DKIM: почта аброю жана фишинг коргоо.
Registrar-lok жана MFA боюнча DNS провайдери; өзгөртүү журналы (WORM-сактоо).

8) Дизайн failover

8. 1 моделдер

Active-Active: эки + дени сак бассейн; latency/weight аркылуу балансты, ден соолук-текшерүү ден соолукка зыян жок.
Active-Passive: негизги бассейн + камдык (0% кырсык чейин салмагы).
Аймактык ring: жергиликтүү кырсыкка "кошуна" аймакка жол.
Degraded режими: "жеңил" сайтта жазылуу/lending, эгерде backend жеткиликтүү эмес.

8. 2 Этап-этабы

1. Мониторинг '/ready 'деградациясын белгилейт.
2. DNS жоопторду өзгөртөт (бассейнди жокко чыгарат же салмагын өзгөртөт).
3. Traffic дени сак аймакка барат, TTL ылдамдыгын аныктайт.
4. турукташтыруу кийин - grace-мезгил (15-30 мин) жана андан кийин гана кайра салмагы.

9) Конфигурация мисалдары

9. 1 AWS Route 53 — latency + health + weighted

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 - гео/ASN жана failover pool (идея)

Load Balancer Pools c health-checks (HTTP/TCP), Geo Steering менен Load Balancer (континенттер/өлкөлөр) жана Session affinity.
Fallback: Page Руль/Transform Руль 5xx чокуларда жөнөкөйлөштүрүлгөн арткы боюнча.

9. 3 Azure/GCP

Azure Traffic Manager: Priority/Weighted/Performance/Geographic.
Google Cloud Load Balancing + Cloud DNS policy: geo-policy + health-checks через External HTTP(S) LB.

10) Байкоо жана SLO DNS

SLI: success-rate кайчылаш, 95-перцентил убакыт кайчылаш, TTL ичинде жаңы (stale эмес) жооп үлүшү.
SLO: Мисалы, '99. 95% ийгиликтүү жооптор ≤ 100 ms.
Метриктер: NXDOMAIN-rate, SERVFAIL-rate, health-state бассейндер, региондор боюнча трафиктин үлүшү, канарейлердин үлүшү.
Exemplars: SLIди синтездеги 'trace _ id' аркылуу HTTP трассалары менен байланыштырыңыз.

11) тестирлөө жана иштетүү

ар кандай ASN/региондордо синтетика (RIPE атлас, Catchpoint, k6-DNS).
dnsviz/' delv 'DNSSEC текшерүү үчүн;' dig + trace 'аномалиялар менен.
Staging зонасы ('stg. example. com ') фейловердин репетициялары үчүн; rehearsal-скрипт салмагын/артыкчылыктарын өзгөртүп, артка кайтарат.
Runbook: ким жана кантип кол менен көтөрөт/салмагын азайтат, кантип бассейнди өчүрөт, кантип "freeze" аткарат.

12) Антипаттерндер

TTL = 3000 + боюнча критикалык A/AAAA → жай/башаламан Feylover.
Жок ден соолук текшерүүлөр же текшерүү гана TCP-порт бизнес инварианттар жок.
Бир топ CNAME чынжыр → жай толкундары, кэш-хаос.
secondary/axfr-камдык жок жалгыз DNS-провайдер.
DNSSEC талабы боюнча кол коюлбаган аймак; маанисиз CAA.
коомдук IP жеке Backends/DD көрсөтүү жазуулар.

13) iGaming/каржы өзгөчөлүктөрү

Юрисдикциялар: geo-/country-routing (жергиликтүү доменге/фронтко багыттоо).
PSP/KYC: өзүнчө TTL жана Failover саясаты менен бөлүнгөн поддомендер; камдык PSP тез которуу.
Жоопкерчиликтүү оюн: Юридикалык беттер менен поддомендер ар дайым жеткиликтүү (резервдик статиктер/CDN).
Аудит: WORM-сактоо зонасын өзгөртүү журналы, өзгөрүүлөрдүн кол тамгасы жана үзгүлтүксүз ревю.
Блок-барактар: Региондор боюнча DNS-комплаенс эрежелери (edge-чыпкалоо + DNS-багыттоо).

14) Prod-даярдык чек тизмеси

  • Класс боюнча TTL профилдери; терс TTL ≤ 300 б.
  • Эки көз карандысыз anycast тармак DNS (primary/secondary), MFA/регистратор-лок.
  • Саясат: geo/latency/weight + health-checks бир нече аймактардан.
  • DNSSEC кирет, CAA/DMARC/DKIM/SPF актуалдуу болуп саналат.
  • Split-horizon (public/private), ички жол үчүн жеке зоналар.
  • Runbook Feylover/кайтаруу, rehearsal-скрипт, канарейка домендери.
  • Мониторинг SLI/SLO, NXDOMAIN/SERVFAIL/RTT өсүшү боюнча алерт.
  • Stajing зонасы жана үзгүлтүксүз "машыгуу" failover.
  • iGaming үчүн: юрисдикциялар боюнча роутинг, PSP/KYC үчүн өзүнчө домендер, өзгөрүлбөгөн аудит.

15) TL; DR

айкалыштырылган саясат куруу: geo/latency + ден соолук-текшерүү + салмагы, динамикасы боюнча TTL 30-120 менен. public/private (split-horizon) бөлүү, DNSSEC жана CAA кирет, экинчи DNS сактоо. rehearsal-Feylover жана SLI/SLO DNS байкоо жүргүзүү. iGaming өзүнчө эрежелер жана WORM өзгөрүүлөрдү логин менен PSP/KYC домендердин юрисдикцияларын жана камдоону эске алуу.

Contact

Биз менен байланышыңыз

Кандай гана суроо же колдоо керек болбосун — бизге кайрылыңыз.Биз дайым жардам берүүгө даярбыз!

Telegram
@Gamble_GC
Интеграцияны баштоо

Email — милдеттүү. Telegram же WhatsApp — каалооңузга жараша.

Атыңыз милдеттүү эмес
Email милдеттүү эмес
Тема милдеттүү эмес
Билдирүү милдеттүү эмес
Telegram милдеттүү эмес
@
Эгер Telegram көрсөтсөңүз — Emailден тышкары ошол жактан да жооп беребиз.
WhatsApp милдеттүү эмес
Формат: өлкөнүн коду жана номер (мисалы, +996XXXXXXXXX).

Түшүрүү баскычын басуу менен сиз маалыматтарыңыздын иштетилишине макул болосуз.