CDN va DNS’da anycast marshrutlash qanday ishlaydi
Chuqur4 daqInnovialabs tahririyati
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.
- CDN yoki DNS operatori prefiksga ega bo‘ladi, masalan IPv4’da
/24yoki IPv6’da/48. Bundan kichik prefikslarni boshqa tarmoqlar odatda filtrlaydi, shuning uchun bu o‘lchamlar keng tarqalgan minimum. - Har bir PoP aynan shu prefiksni o‘z aplinklariga va trafik almashish nuqtalaridagi pirlarga e’lon qiladi.
- 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.
- 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.
| Anycast | GeoDNS | |
|---|---|---|
| Qaror qayerda qabul qilinadi | Tarmoq marshrutlashida (BGP) | DNS-javobda |
| «Yaqinlik»ni nima belgilaydi | Tarmoq topologiyasi | Rezolver joylashuvi yoki EDNS Client Subnet bo‘lsa mijoz quyi tarmog‘i |
| Zaxiraga o‘tish tezligi | Tez, marshrutlar yaqinlashgandan keyin | DNS keshlash va TTL bilan cheklangan |
| Taqsimotni nazorat qilish | Qo‘pol, BGP sozlash orqali | Aniq, davlat va region bo‘yicha qoidalar |
| Nima kerak | O‘z IP-prefiksi, ASN, har bir PoP’da BGP-sessiyalar | Faqat geo-funksiyali DNS-provayder |
| Holatli ulanishlar | Marshrut o‘zgarganda xavf bor | Barqaror: 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.