Asosiy kontentga o‘tish
Innovialabs

CDN va DNS’da anycast marshrutlash qanday ishlaydi

Chuqur4 daq

Qisqacha

Anycast’da bitta IP-prefiks BGP orqali ko‘plab data-markazlardan e’lon qilinadi va internet marshrutlashi foydalanuvchi paketlarini tarmoq bo‘yicha eng yaqin nuqtaga yetkazadi, yuklama va hujumlarni barcha nuqtalarga taqsimlaydi.

Qisqa javob

Odatda bitta IP-manzil bitta joyga tegishli bo‘ladi (unicast). Anycast’da esa bitta IP-prefiks bir vaqtning o‘zida ko‘plab joylardan — mavjudlik nuqtalaridan (PoP) e’lon qilinadi. Internet marshrutizatorlari har bir foydalanuvchi uchun shu e’lonlardan birini tanlaydi va paketlar tegishli PoP’ga boradi.

Foydalanuvchi bitta manzilga — masalan, DNS-rezolver yoki CDN edge-IP’siga — ulanadi, lekin unga uning tarmog‘i eng yaqin deb hisoblagan joy xizmat ko‘rsatadi.

BGP orqali qanday ishlaydi

Internet — marshrutlarni BGP protokoli orqali almashadigan mustaqil tarmoqlar (avtonom tizimlar, AS) to‘plami.

  1. CDN yoki DNS operatori prefiksga ega bo‘ladi, masalan IPv4’da /24 yoki IPv6’da /48. Bundan kichik prefikslarni boshqa tarmoqlar odatda filtrlaydi, shuning uchun bu o‘lchamlar keng tarqalgan minimum.
  2. Har bir PoP aynan shu prefiksni o‘z aplinklariga va trafik almashish nuqtalaridagi pirlarga e’lon qiladi.
  3. Har bir marshrutizator prefiksga bir nechta yo‘l oladi va BGP qoidalari bo‘yicha bitta eng yaxshisini tanlaydi: local preference, AS path uzunligi va boshqa atributlar.
  4. Muayyan tarmoqdan kelgan trafik shu yo‘l bo‘ylab bitta aniq PoP’ga boradi.

Muhim nozik jihat: «eng yaqin» kilometr bo‘yicha emas, BGP nuqtai nazaridan eng yaqin degani. Bir shahardagi foydalanuvchi, agar uning provayderida u yerga arzonroq yoki qisqaroq AS path bo‘lsa, boshqa davlatdagi PoP’ga tushishi mumkin. Operatorlar buni piring, BGP communities va tanlab e’lon qilish orqali sozlaydi.

Anycast nega DNS’ni tezlashtiradi

DNS — anycast uchun klassik vazifa:

  • Asosan UDP, bitta so‘rov — bitta javob. Uzoq sessiya yo‘q, shuning uchun qaysi PoP javob berishi muhim emas.
  • Kechikish kamroq. Rezolver qit’alar orqali emas, yaqin tugunga murojaat qiladi va har bir keshlanmagan so‘rov tezroq bajariladi.
  • O‘rnatilgan zaxiraga o‘tish. PoP ishdan chiqsa, u e’lonni qaytarib oladi va BGP trafikni boshqa joylarga o‘tkazadi. DNS yozuvlarini o‘zgartirish va TTL’ni kutish shart emas.

Shu sababli anycast’dan ildiz DNS-serverlari, yirik ommaviy rezolverlar va ko‘pchilik boshqariladigan avtoritativ DNS-provayderlar foydalanadi.

Anycast nega DDoS’ni so‘ndiradi

Hajmli hujumda trafik butun dunyodagi botlardan keladi. Anycast bilan har bir botning paketlari unga eng yaqin PoP’ga tushadi, shuning uchun hujum bitta data-markazga urilmay, butun tarmoq bo‘ylab taqsimlanadi. Har bir PoP o‘z ulushini mahalliy filtrlaydi.

Hujum paytida operatorlar haddan tashqari yuklangan joydan prefiksni qaytarib olishi yoki uni faqat quvvat zaxirasi bor maydonchalardan e’lon qilishi mumkin. Anycast’ning o‘zi filtr emas, lekin u tarmoqning umumiy sig‘imini himoya sig‘imiga aylantiradi.

Holatli (stateful) ulanishlar uchun cheklovlar

Anycast holatsiz trafikka eng yaxshi mos keladi. TCP, TLS va QUIC sessiyalari holatni muayyan serverda saqlaydi, bu esa xavflar tug‘diradi:

  • Sessiya o‘rtasida marshrut o‘zgarishi. Ulanish ochiq turganda BGP qayta qurilsa, paketlar sessiya haqida hech narsa bilmaydigan boshqa PoP’ga ketishi va ulanish uzilishi mumkin.
  • Yuklamani aniq nazorat qilib bo‘lmaydi. BGP serverlar yuklamasini bilmaydi va mashhur region bitta PoP’ni ortiqcha yuklashi mumkin.
  • Nosozlikni tahlil qilish qiyinroq. Turli foydalanuvchilar bitta IP orqali turli joylarga tushadi va muammoni takrorlash uchun ularga qaysi PoP xizmat qilganini bilish kerak.

Amalda internetdagi marshrutlar yetarlicha barqaror va yirik CDN’lar HTTP’ni anycast orqali muvaffaqiyatli uzatadi. Xavflar barqaror piring, PoP ichidagi consistent hashing va qisqa ulanishlar bilan kamaytiriladi. Juda uzoq sessiyalar (katta yuklashlar, WebSocket, o‘yin serverlari) uchun anycast ko‘pincha faqat birinchi aloqa uchun ishlatiladi, keyin mijoz unicast-manzilga yo‘naltiriladi.

Anycast yoki GeoDNS

GeoDNS DNS-so‘rov qayerdan kelganiga qarab turli IP-manzillarni qaytaradi. Ikkala yondashuv ham foydalanuvchini yaqin serverlarga olib boradi, lekin har xil usulda.

AnycastGeoDNS
Qaror qayerda qabul qilinadiTarmoq marshrutlashida (BGP)DNS-javobda
«Yaqinlik»ni nima belgilaydiTarmoq topologiyasiRezolver joylashuvi yoki EDNS Client Subnet bo‘lsa mijoz quyi tarmog‘i
Zaxiraga o‘tish tezligiTez, marshrutlar yaqinlashgandan keyinDNS keshlash va TTL bilan cheklangan
Taqsimotni nazorat qilishQo‘pol, BGP sozlash orqaliAniq, davlat va region bo‘yicha qoidalar
Nima kerakO‘z IP-prefiksi, ASN, har bir PoP’da BGP-sessiyalarFaqat geo-funksiyali DNS-provayder
Holatli ulanishlarMarshrut o‘zgarganda xavf borBarqaror: mijoz bitta IP’ni ushlab turadi

Ko‘p CDN’lar ikkalasini birlashtiradi: DNS va edge-IP uchun anycast, og‘ir trafikni nozik sozlash uchun esa GeoDNS yoki yuklamani hisobga oladigan DNS.

O‘z loyihangiz uchun qanday tanlash kerak

  • Anycast’ni o‘zingiz qurishingiz deyarli hech qachon kerak emas. Anycast-tarmog‘i allaqachon bor managed DNS va CDN’dan foydalaning.
  • O‘z serverlaringizga davlatlar bo‘yicha marshrutlash kerak bo‘lsa, bulut provayderidagi GeoDNS yoki latency-based DNS’dan boshlang.
  • O‘z anycast’ingiz faqat infratuzilmangiz bir nechta joyda bo‘lsa va ASN, IP-manzillar hamda BGP-sessiyalarga egalik qilishga tayyor bo‘lsangiz mantiqli.

Ko‘p beriladigan savollar

Yo‘q. Anycast joyni serverlar yuklamasiga qarab emas, marshrutlash bo‘yicha tanlaydi. Har bir PoP ichida so‘rovlarni serverlar bo‘ylab baribir oddiy balansirovkachi taqsimlaydi.

Bunda yordam beramiz

O‘zingiz shug‘ullanmasdan natija olishni istasangiz — biz har kuni shu bilan shug‘ullanamiz.

Loyihani muhokama qilish

Yana o‘qing

G‘oya yoki vazifangiz bormi? Bizga aytib bering

Ish kuni davomida javob beramiz va yechim taklif qilamiz. Konsultatsiya bepul.