Anycast супраць Unicast: што лепш выбіраць у кожным выпадку

Пра Anycast напэўна многія чулі. Пры гэтым метадзе сеткавай адрасацыі і маршрутызацыі адзін IP-адрас прысвойваецца некалькім серверам у сетцы. Гэтыя серверы могуць знаходзіцца нават у выдаленых сябар ад сябра ЦАД. Ідэя Anycast у тым, што, у залежнасці ад месцазнаходжання крыніцы запытаў, дадзеныя адпраўляюцца на бліжэйшы (згодна з тапалогіі сеткі, дакладней – пратакола маршрутызацыі BGP) сервер. Такім чынам, можна паменшыць колькасць сеткавых пераходаў (hop) і затрымку (latency).

Па сутнасці, аб'яўляецца адзін і той жа маршрут з некалькіх цэнтраў апрацоўкі даных па ўсім свеце. Такім чынам, кліенты будуць адпраўленыя ў "лепшы" і "бліжэйшы" зыходзячы з маршрутаў BGP, цэнтр апрацоўкі дадзеных. Чаму ўсё ж менавіта Anycast? Навошта выкарыстоўваць Anycast замест Unicast?

Anycast супраць Unicast: што лепш выбіраць у кожным выпадку
Unicast сапраўды падыдзе для сайта з адным вэб-серверам і ўмераным аб'ёмам трафіку. Аднак калі ў сэрвісу мільёны падпісчыкаў, то ён звычайна выкарыстоўвае мноства вэб-сервераў, кожны з якіх мае адзін і той жа IP-адрас. Гэтыя серверы размеркаваны геаграфічна для аптымальнага абслугоўвання запытаў.

Пры такім сцэнары Anycast дасць паляпшэнне прадукцыйнасці (трафік накіроўваецца карыстачу з мінімальнай затрымкай), забяспечыць надзейнасць сэрвісу (дзякуючы рэзервовым серверам) і балансаванне нагрузкі - маршрутызацыя на некалькі сервераў эфектыўна размяркуе нагрузку паміж імі, паляпшаючы хуткасць працы сайта.

Аператары прапануюць кліентам рознага віду балансаванне нагрузкі на аснове Anycast і DNS. Кліенты могуць указваць IP-адрасы, на якія будуць адпраўляцца запыты ў залежнасці ад геаграфічнага месцазнаходжання сайта. Гэта дае магчымасць больш гнутка размяркоўваць запыты карыстальнікаў.

Выкажам здагадку, ёсць некалькі пляцовак, паміж якімі трэба размеркаваць нагрузку (карыстальнікаў), напрыклад, інтэрнэт-крама з 100 000 запытамі ў дзень ці папулярны блог. Для абмежавання рэгіёна, адкуль карыстачы заходзяць на пэўную пляцоўку, можна скарыстацца опцыяй Geo Community. Яна дазваляе абмежаваць рэгіён, у межах якога аператар будзе анансаваць маршрут.

Anycast супраць Unicast: што лепш выбіраць у кожным выпадку

Anycast супраць Unicast: што лепш выбіраць у кожным выпадку
Anycast і Unicast: адрозненні

Anycast часта выкарыстоўваецца ў такіх прыкладаннях, як DNS (сістэма даменных імёнаў) і CDN (сеткі дастаўкі кантэнту), дазваляючы прымаць рашэнні аб маршрутызацыі, якія падвышаюць прадукцыйнасць сеткі. Сеткі дастаўкі кантэнту выкарыстоўваюць Anycast, паколькі маюць справу з вялікімі аб'ёмамі трафіку, а Anycast дае ў гэтым выпадку шэраг пераваг (пра іх - ніжэй). У DNS Аnycast дазваляе істотна павысіць узровень надзейнасці і адмоваўстойлівасці сэрвісу.

Anycast супраць Unicast: што лепш выбіраць у кожным выпадку
У Anycast IP пры выкарыстанні BGP існуе некалькі маршрутаў да канкрэтнага хаста. На самай справе гэта копіі хастоў у некалькіх цэнтрах апрацоўкі дадзеных, якія выкарыстоўваюцца для ўстанаўлення злучэнняў з больш нізкай затрымкай.

Такім чынам, у сетцы Anycast адзін і той жа IP-адрас аб'яўляецца з розных месцаў, і сетка вырашае, куды накіраваць запыт карыстальніка зыходзячы з "кошту" маршруту. Напрыклад, часта для вызначэння найкароткага маршруту перадачы дадзеных ужываецца пратакол BGP. Калі карыстач адпраўляе запыт Anycast, BGP вызначае найлепшы маршрут для даступных у сетцы Anycast сервераў.

Перавагі Anycast

Памяншэнне затрымкі
Сістэмы з Anycast здольныя зменшыць затрымку пры апрацоўцы карыстацкіх запытаў, паколькі дазваляюць атрымліваць дадзеныя з найблізкага сервера. Гэта значыць карыстачы заўсёды будуць падлучацца да "бліжэйшага" (з пункту гледжання пратакола маршрутызацыі) DNS-серверу. У выніку Anycast змяншае час узаемадзеяння за рахунак памяншэння сеткавай адлегласці паміж кліентам і серверам. Гэта не толькі памяншае затрымку, але таксама забяспечвае балансаванне нагрузкі.

Хуткасць

Паколькі трафік накіроўваецца на найблізкі вузел, і памяншаецца затрымка пры перадачы дадзеных паміж кліентам і вузлом, вынікам будзе аптымізацыя хуткасці дастаўкі, незалежна ад таго, адкуль кліент запытвае інфармацыю.

Падвышаная стабільнасць і адмоваўстойлівасць

Калі некалькі сервераў па ўсім свеце выкарыстоўваюць адзін і той жа IP, то ў выпадку збою аднаго з сервераў або яго адключэння трафік будзе перанакіраваны на найбліжэйшы сервер. У выніку Anycast робіць сэрвіс больш устойлівым і забяспечвае лепшы доступ да сеткі/затрымку/хуткасць. 

Такім чынам, дзякуючы наяўнасці некалькіх сервераў, стала даступных для карыстачоў, Anycast, напрыклад, павялічвае стабільнасць працы DNS. Пры адмове вузла карыстацкія запыты будуць перанакіраваны на іншы сервер DNS без якога-небудзь ручнога ўмяшання або пераналадкі. Anycast забяспечвае практычна празрыстае пераключэнне на іншыя сайты, проста прыбіраючы маршруты праблемнага сайта. 

Балансаванне нагрузкі

У сістэме Anycast сеткавы трафік размяркоўваецца па розных серверах. Гэта значыць яна працуе як балансавальнік нагрузкі, перашкаджаючы таму, каб любы асобны сервер атрымліваў асноўны аб'ём трафіку. Балансаванне нагрузкі можа выкарыстоўвацца, напрыклад, калі на адной і той жа геаграфічнай адлегласці ад крыніцы запытаў знаходзіцца некалькі сеткавых вузлоў. У гэтым выпадку нагрузка размяркоўваецца па вузлах.

Зніжэнне ўздзеяння DoS-нападаў 

Іншая асаблівасць Anycast - устойлівасць да DDoS. DDoS-нападам ці наўрад атрымаецца вывесці з ладу сістэму Anycast, паколькі прыйшлося б здушыць лавінай запытаў усе серверы ў такой сетцы. 

У DDoS-атаках часта прымяняюцца ботнеты, якія могуць генераваць такі аб'ём трафіку, што ён перагружае атакаваны сервер. Перавага выкарыстання Anycast у гэтай сітуацыі складаецца ў тым, што кожны сервер здольны "паглынаць" частку нападу, што змяншае нагрузку на пэўны сервер. Атака тыпу "адмова ў абслугоўванні", хутчэй за ўсё, будзе лакалізавана на серверы і не паўплывае на ўвесь сэрвіс.

Высокая гарызантальная маштабаванасць

Сістэмы Anycast добра падыходзяць для сэрвісаў з вялікімі аб'ёмамі трафіку. Калі сэрвіс, які выкарыстоўвае Anycast, патрабуе новых сервераў для апрацоўкі які расце трафіку, у сетку для яго апрацоўкі можна дадаць новыя серверы. Іх можна размяшчаць на новых ці ўжо існуючых пляцоўках. 

Калі ў пэўным месцы назіраецца вялікі рост трафіку, тое даданне сервера дапаможа збалансаваць нагрузку для дадзенай пляцоўкі. Даданне сервера на новай пляцоўцы дапаможа скараціць час чакання, стварыўшы для некаторых карыстачоў новы найкароткі маршрут. Абодва спосабу дапамагаюць таксама павысіць стабільнасць сэрвісу, паколькі ў сетцы становяцца даступнымі новыя серверы. Такім чынам, калі сервер перагружаны, можна проста разгарнуць іншы ў тым месцы, якое дазволіць яму прымаць некаторую дзель запытаў перагружанага сервера. Пры гэтым не спатрэбіцца настройка з боку кліентаў. 

Толькі такім спосабам можна абслужыць тэрабіты трафіку і вельмі вялікі лік карыстачоў, калі на серверы толькі некалькі портаў 10 ці 25 Гбіт/з. 100 хастоў з адным IP-адрасам дадуць магчымасць апрацаваць тэрабітныя аб'ёмы трафіку.

Прастата кіравання канфігурацыяй

Як ужо адзначалася вышэй, цікавае выкарыстанне Anycast – DNS. Можна размясціць у вузлах сеткі некалькі розных DNS-сервераў, але выкарыстоўваць адзін DNS-адрас. У залежнасці ад таго, дзе знаходзіцца крыніца, запыты накіроўваюцца да бліжэйшага вузла. Гэта забяспечвае некаторае балансаванне трафіку і надмернасць у выпадку адмовы DNS-сервера. Такім чынам, замест таго, каб настройваць розныя DNS-серверы ў залежнасці ад таго, дзе яны знаходзяцца, канфігурацыю аднаго DNS-сервера можна распаўсюдзіць на ўсе вузлы.

Сеткі Anycast можна наладзіць для маршрутызацыі запытаў не толькі на аснове адлегласці, але і па такіх параметрах, як наяўнасць сервера, колькасць усталяваных злучэнняў. ці час адказу.

Для выкарыстання тэхналогіі Anycast з боку кліента не патрабуецца ніякіх спецыяльных сервераў, сетак ці спецыяльных кампанентаў. Але ёсць у Anycast і мінусы. Лічыцца, што яго ўкараненне - складаная задача, якая патрабуе дадатковага абсталявання, надзейных правайдэраў і правільнай маршрутызацыі трафіку.

Ад чыстага вытоку ў цудоўнае далёка

Хаця Anycast накіроўвае карыстальнікаў на аснове найменшай колькасці пераходаў, гэта не абавязкова азначае мінімальную затрымку. Затрымка - больш складаная метрыка, паколькі ў аднаго пераходу яна можа быць вышэй, чым дзесяці.

Anycast супраць Unicast: што лепш выбіраць у кожным выпадку
Прыклад: міжкантынентальныя камунікацыі могуць уключаць адзін пераход з вельмі высокай затрымкай.

Anycast у асноўным выкарыстоўваецца для службаў на аснове UDP, такіх як DNS. Запыты карыстальнікаў накіроўваюцца ў "лепшы" і "бліжэйшы" ЦАД на аснове маршрутаў BGP.

Anycast супраць Unicast: што лепш выбіраць у кожным выпадку
Прыклад: працоўная станцыя DNS-кліента з IP-адрасам Anycast DNS 123.10.10.10, выконвае дазвол DNS для найблізкага з трох сервераў імёнаў DNS, разгорнутых з выкарыстаннем таго ж IP-адрасы Anycast. У выпадку збою маршрутызатара R1 ці сервера A пакеты DNS-кліента будуць аўтаматычна перанакіраваны на наступны найблізкі DNS-сервер праз маршрутызатары R2 і R3. Акрамя таго, маршрут да нашага сервера A будзе выдалены з табліц маршрутызацыі, што прадухіліць далейшае выкарыстанне гэтага сервера імёнаў.

Сцэнары разгортвання

Існуюць дзве агульныя схемы, якія выкарыстоўваюцца для вызначэння таго, да якога сервера падлучаецца карыстач:

  • Anycast сеткавага ўзроўню. Злучае карыстальніка з бліжэйшым серверам. Тут важны сеткавы шлях ад карыстача да сервера.
  • Anycast ўзроўню прыкладання. У гэтай схеме больш вылічаных метрык, уключаючы даступнасць сервера, час адказу, колькасць падлучэнняў і т. д. Гэта залежыць ад вонкавага манітора, які падае статыстыку па сетцы.

CDN на аснове Anycast

Вернемся зараз да выкарыстання Anycast у сетках дастаўкі кантэнту. Anycast, безумоўна, уяўляе сабой цікавую сеткавую канцэпцыю і атрымлівае ўсё большае прызнанне ў правайдэраў CDN новага пакалення.

CDN - размеркаваная сетка сервераў, якія дастаўляюць кантэнт канчатковым карыстальнікам з высокай даступнасцю і нізкай затрымкай. Сеткі дастаўкі кантэнту гуляюць сёння важную ролю, быўшы асновай шматлікіх мультымедыйных анлайн-сэрвісаў, а спажыўцы ўсё меней памяркоўныя да павольных хуткасцяў загрузкі. Відэа і галасавыя прыкладанні асабліва адчувальныя да джытара і затрымкі ў сетцы.

CDN аб'ядноўвае ўсе серверы ў адну сетку і забяспечвае хутчэйшую загрузку кантэнту. Часам удаецца скараціць час чакання карыстальніка на 5-6 секунд. Мэтай CDN з'яўляецца аптымізацыя дастаўкі шляхам прадастаўлення кантэнту з сервера, які знаходзіцца бліжэй за ўсё да канчатковага карыстача. Гэта вельмі падобна на Anycast, дзе выбіраецца найбліжэйшы сервер у залежнасці ад месцазнаходжання канчатковага карыстальніка. Здавалася б, кожны пастаўшчык паслуг CDN па змаўчанні будзе выкарыстоўваць Anycast, але ў сапраўднасці гэта не так.

Прыкладанні, якія выкарыстоўваюць пратаколы, такія як HTTP/TCP, належаць на якое ўсталёўваецца злучэнне. Калі будзе абраны новы вузел Anycast (напрыклад, пры адмове сервера), то абслугоўванне можа быць спынена. Менавіта таму Anycast раней рэкамендаваўся для такіх службаў без устанаўлення злучэння як UDP і DNS. Тым не менш Anycast добра працуе і для пратаколаў, арыентаваных на злучэнне, напрыклад, TCP выдатна функцыянуе ў рэжыме Anycast.

Некаторыя правайдэры CDN ужываюць маршрутызацыю на аснове Anycast, іншыя аддаюць перавагу маршрутызацыю на аснове DNS: найблізкі сервер выбіраецца ў залежнасці ад таго, дзе размешчаны DNS-сервер карыстача.

Гібрыдныя інфраструктуры і інфраструктуры з некалькімі цэнтрамі апрацоўкі дадзеных - яшчэ адзін прыклад прымянення Anycast. Атрыманы ад правайдэра адрас Load Balancing IP дазваляе размяркоўваць нагрузку паміж IP-адрасамі розных сэрвісаў кліентаў у ЦАД правайдэра. Дзякуючы тэхналогіі адрасацыі любой прыладзе, гэта забяспечвае лепшую прадукцыйнасць пры значным трафіку, адмоваўстойлівасць і дапамагае аптымізаваць час водгуку пры вялікай колькасці карыстальнікаў.

У гібрыдных інфраструктурах з некалькімі цэнтрамі апрацоўкі дадзеных можна размеркаваць трафік паміж серверамі ці нават віртуальнымі машынамі на выдзеленых серверах.

Такім чынам, ёсць вялікі выбар тэхнічных рашэнняў для пабудовы інфраструктуры. Можна таксама наладзіць балансаванне нагрузкі па IP-адрасах у некалькіх цэнтрах апрацоўкі дадзеных, выкарыстоўваючы адрасаванне любой прыладзе групы для аптымізацыі працы сайта.

Можна распаўсюджваць трафік у адпаведнасці з уласнымі правіламі, вызначаючы "вага" кожнага з размеркаваных сервераў у кожным ЦАД. Такая канфігурацыя асабліва карысная, калі маецца размеркаваны серверны парк, а прадукцыйнасць сэрвісаў неаднолькавая. Гэта дазволіць часцей размяркоўваць трафік для павышэння прадукцыйнасці сервераў.

Для стварэння сістэмы кантролю пры дапамозе каманды ping ёсць магчымасць канфігураваць зонды. Гэта дазваляе адміністратару вызначыць уласныя працэдуры кантролю і атрымліваць больш дакладнае ўяўленне аб стане кожнага кампанента ў інфраструктуры. Такім чынам, можна вызначаць крытэрыі даступнасці.

Існуе магчымасць пабудовы гібрыднай інфраструктуры: часам зручна бэкофіс пакінуць у карпаратыўнай сетцы, а інтэрфейсную частку перадаць на аўтсорсінг правайдэру.

Ёсць магчымасць дадаць сертыфікаты SSL для балансавання нагрузкі, шыфравання перадаваных дадзеных і бяспекі сувязі паміж наведвальнікамі сайта і карпаратыўнай інфраструктурай. У выпадку балансавання нагрузкі паміж ЦАД таксама можна ўжываць SSL.

Паслугу Anycast з балансаваннем нагрузкі адрасоў можна атрымаць у правайдэра. Гэтая функцыя дапаможа палепшыць алгарытм узаемадзеяння карыстальнікаў з праграмамі ў залежнасці ад месцазнаходжання. Дастаткова аб'явіць, якія сэрвісы ёсць у ЦАД, і трафік будзе перанакіраваны на бліжэйшую інфраструктуру. Калі ёсць выдзеленыя серверы, напрыклад, у Францыі ці ў Паўночнай Амерыцы, то кліенты будуць накіраваны на бліжэйшы сервер у сетцы.

Адзін з варыянтаў выкарыстання Anycast - аптымальны выбар кропкі прысутнасці аператара (PoP). Прывядзем прыклад. LinkedIn (заблакаваны ў Расіі) імкнецца не толькі паляпшаць прадукцыйнасць і хуткасць сваіх прадуктаў – мабільных і вэб-прыкладанняў, але і ўдасканальваць сеткавую інфраструктуру для паскоранай дастаўкі кантэнту. Для гэтага дынамічнай дастаўкі кантэнту LinkedIn актыўна выкарыстоўвае PoP - кропкі прысутнасці. Каб накіраваць карыстальнікаў да бліжэйшага PoP, прымяняецца Anycast.

Чыннік у тым, што ў выпадку Unycast кожная PoP LinkedIn мае ўнікальны IP-адрас. Затым карыстачы прызначаюцца PoP у залежнасці ад іх геаграфічнага месцазнаходжання з дапамогай DNS. Праблема ў тым, што пры выкарыстанні DNS каля 30% карыстачоў у Злучаных Штатах перанакіроўваліся да неаптымальнага PoP. Дзякуючы паэтапнаму ўкараненню Anycast неаптымальнае прызначэнне PoP ўпала з 31% да 10%.

Anycast супраць Unicast: што лепш выбіраць у кожным выпадку
Вынікі пілотнага тэсту паказаны на графіцы, дзе вось Y - гэта працэнт аптымальнага прызначэння PoP. Па меры нарошчвання Anycast у шматлікіх штатах ЗША назіралася паляпшэнне ў адсотках трафіку да аптымальнай PoP.

Маніторынг сеткі Anycast

Тэарэтычна сеткі Anycast простыя: некалькім фізічным серверам прызначаецца адзін і той жа IP-адрас, які BGP выкарыстоўвае для вызначэння маршруту. Але рэалізацыя і праектаванне платформаў Anycast складаныя, асабліва гэтым "славяцца" адмоваўстойлівыя сеткі Anycast. Яшчэ больш складаны эфектыўны маніторынг сеткі Anycast для хуткага выяўлення і лакалізацыі няспраўнасцяў.

Калі сэрвісы выкарыстоўваюць для абслугоўвання свайго кантэнту іншага правайдэра CDN, ім вельмі важна адсочваць і правяраць прадукцыйнасць сеткі. Пры маніторынгу CDN на аснове Anycast асноўная ўвага надаецца вымярэнню скразных затрымак і характарыстык перадапошняга пераходу, каб зразумець, які цэнтр апрацоўкі дадзеных абслугоўвае кантэнт. Аналіз загалоўкаў HTTP-сервера - гэта яшчэ адзін спосаб вызначыць, адкуль паступаюць дадзеныя.

Anycast супраць Unicast: што лепш выбіраць у кожным выпадку
Прыклад: загалоўкі адказу HTTP, якія паказваюць размяшчэнне сервера CDN.

Напрыклад, CloudFlare выкарыстоўвае ўласны загаловак CF-Ray у паведамленнях HTTP Response, які ўключае ўказанне цэнтра апрацоўкі дадзеных, да якога паступіў запыт. У выпадку Zendesk загаловак CF-Ray для рэгіёну Сіэтла ўяўляе сабой CF-RAY: 2a21675e65fd2a3d-SEA, а для Амстэрдама – CF-RAY: 2a216896b93a0c71-AMS. Каб вызначыць, дзе знаходзіцца кантэнт, таксама можна выкарыстоўваць HTTP-X-загалоўкі з HTTP-адказу.

Іншыя метады адрасацыі

Існуюць і іншыя метады адрасавання для маршрутызацыі карыстацкіх запытаў да пэўнай канчатковай кропкі сеткі:

Адзінае

Вялікая частка інтэрнэту сёння выкарыстоўвае менавіта гэты метад. Unicast - аднаадрасная перадача, IP-адрас звязаны толькі з адным канкрэтным вузлом у сетцы. Гэта называюць узаемна-адназначнай адпаведнасцю. 

Multicast

Multicast выкарыстоўвае сувязь "адзін да многіх з многіх" ці "многія да многіх". Шматадраснае рассыланне дазваляе адпраўляць запыт ад адпраўніка адначасова на розныя абраныя канчатковыя кропкі. Гэта дае кліенту магчымасць загружаць файл порцыямі з некалькіх хастоў адначасова (што карысна для струменевай перадачы аўдыё ці відэа). Multicast часта блытаюць з Anycast, Аднак асноўнае адрозненне складаецца ў тым, што Anycast накіроўвае адпраўніка да аднаго канкрэтнага вузла, нават калі даступныя некалькі вузлоў.

Вяшчаць

Датаграма ад адзінага адпраўніка накіроўваецца на ўсе канчатковыя кропкі, злучаныя з шырокавяшчальным адрасам. Сетка аўтаматычна рэплікуе дэйтаграмы, каб мець магчымасць звязацца з усімі атрымальнікамі ў шырокавяшчальнай рассылцы (звычайна ў адной падсеткі).

Geocast

Geocast у некаторай ступені падобны на Multicast: запыты ад адпраўніка накіроўваюцца адначасова некалькім канчатковым кропкам. Аднак адрозненне заключаецца ў тым, што адрасат вызначаецца яго геаграфічным становішчам. Гэтая спецыялізаваная форма групавой адрасацыі выкарыстоўваецца некаторымі пратаколамі маршрутызацыі для мабільных аднарангавых сетак.

Геаграфічны маршрутызатар (Geo Router) вылічае сваю зону абслугоўвання і апраксімуе яе. Геамаршрутызатары, абменьваючыся зонамі абслугоўвання, будуюць табліцы маршрутызацыі. Сістэма геамаршрутызатараў мае іерархічную структуру.

Anycast супраць Unicast: што лепш выбіраць у кожным выпадку
Anycast супраць Unicast: што лепш выбіраць у кожным выпадку
Anycast супраць Unicast: што лепш выбіраць у кожным выпадку
Unicast, Multicast і Broadcast.

Выкарыстанне тэхналогіі Anycast павялічвае ўзровень надзейнасці, адмоваўстойлівасці і бяспекі DNS. Выкарыстоўваючы дадзеную тэхналогію, аператары прапануюць сваім кліентам паслугі па розных відах балансавання нагрузкі на аснове DNS. У панэлі кіравання можна ўказваць IP-адрасы, на якія будуць адпраўляцца запыты ў залежнасці ад геаграфічнай лакалізацыі. Гэта дасць кліентам магчымасць больш гнутка размяркоўваць запыты карыстальнікаў.

Некаторыя аператары ўжываюць сродкі маніторынгу маршруту на кожным пункце прысутнасці (POP): сістэма аўтаматычна аналізуе найбольш кароткія мясцовыя і глабальныя маршруты для кропак прысутнасці і перанакіроўвае іх праз геаграфічныя месцазнаходжання з самай нізкай затрымкай з нулявым часам прастою.

На дадзены момант Anycast - найболей стабільнае і надзейнае рашэнне для пабудовы высоканагружаных DNS-сэрвісаў, да якіх прад'яўляюцца высокія патрабаванні па ўстойлівасці і надзейнасці.

Дамен. Ru падтрымлівае 35 сервераў Anycast DNS, згрупаваных у 20 вузлоў, размеркаваных па пяці Anycast-аблоках. Пры гэтым выкарыстоўваецца прынцып пабудовы па геаграфічнай прыкмеце, г.зн. Geocast. Пры размяшчэнні вузлоў DNS прадугледжваецца іх вынас у геаграфічна разнесеныя лакацыі, набліжаныя да найболей актыўных карыстачоў, максімальная канцэнтрацыя расійскіх правайдэраў у кропцы размяшчэння вузла, а таксама наяўнасць вольных ёмістасцяў і выгода ўзаемадзеяння з пляцоўкай.

Як пабудаваць CDN?

CDN - сетка сервераў, якая паскарае дастаўку карыстальнікам кантэнту. Сетка дастаўкі кантэнту аб'ядноўвае ўсе серверы ў адну сетку і забяспечвае хутчэйшую загрузку кантэнту. У хуткасці загрузкі важную ролю гуляе адлегласць ад сервера да карыстача.

CDN дазваляе выкарыстоўваць серверы, якія знаходзяцца да мэтавай аўдыторыі бліжэй за ўсё. Гэта скарачае час чакання, дапамагае паскорыць загрузку кантэнту сайтаў для ўсіх наведвальнікаў, што асабліва крытычна для сайтаў з файламі вялікага аб'ёму ці мультымедыя-сэрвісаў. Тыповыя вобласці прымянення CDN - электронная камерцыя і сфера забаў.

Ствараемая ў інфраструктуры CDN сетка дадатковых сервераў, якія размешчаны максімальна блізка да карыстачоў, спрыяе больш стабільнай і хуткай дастаўцы дадзеных. Паводле статыстыкі, выкарыстанне CDN памяншае затрымку пры доступе да сайта больш за на 70% у параўнанні з сайтамі без CDN.

Як стварыць CDN з дапамогай DNS? Настройка CDN з выкарыстаннем уласнага рашэння Anycast можа быць дастаткова дарагім праектам, але ёсць больш танныя варыянты. Напрыклад, можна выкарыстоўваць GeoDNS і звычайныя серверы з унікальнымі IP-адрасамі. З дапамогай сэрвісаў GeoDNS можна стварыць CDN з функцыямі геолокации, у якой рашэнні прымаюцца на аснове рэальнага месцазнаходжання наведвальніка, а не месцазнаходжання рэсалвера DNS. Можна наладзіць сваю DNS-зону так, каб паказваць IP-адрасы амерыканскіх сервераў наведвальнікам са ЗША, а еўрапейскія наведвальнікі будуць бачыць IP-адрас з Еўропы.

З дапамогай GeoDNS можна вяртаць розныя адказы DNS у залежнасці ад IP-адрасы карыстальніка. Для гэтага DNS-сервер наладжваюць так, каб ён вяртаў розныя IP-адрасы ў залежнасці ад зыходнага IP-адрасу ў запыце. Звычайна для вызначэння рэгіёна, з якога робіцца запыт, выкарыстоўваецца база даных GeoIР. Геалакацыя з ужываннем DNS дазваляе адпраўляць карыстальнікам кантэнт з бліжэйшага сайта.

GeoDNS вызначае IP-адрас кліента, які даслаў запыт DNS, або IP рэкурсіўнага DNS-сервера правайдэра, які выкарыстоўваецца пры апрацоўцы кліенцкага запыту. Па IP кліента і базе GeoIP вызначаецца краіна/рэгіён. Затым кліент атрымлівае IP-адрас найблізкага CDN-сервера. Аб наладзе GeoDNS можна падрабязней прачытаць тут.

Anycast ці GeoDNS?

Хоць Anycast - выдатны спосаб дастаўкі кантэнту ў глабальным маштабе, яму не хапае спецыфічнасці. Вось тут на выручку і прыходзіць GeoDNS. Гэты сэрвіс дазваляе ствараць правілы, якія адпраўляюць карыстальнікаў на ўнікальныя канчатковыя кропкі ў залежнасці ад іх месцазнаходжання.

Anycast супраць Unicast: што лепш выбіраць у кожным выпадку
Прыклад: карыстачы з Еўропы накіроўваюцца да іншай канчатковай кропкі.

Таксама можна забараніць доступ да даменаў, адкінуўшы ўсе запыты. Гэта, у прыватнасці, хуткі спосаб адсекчы зламыснікаў.

GeoDNS дае больш дакладныя адказы, чым Anycast. Калі ў выпадку Anycast найкароткі маршрут вызначаецца па колькасці хопаў, то ў GeoDNS маршрутызацыя для канчатковых карыстачоў адбываецца ў залежнасці ад іх фізічнага месцазнаходжання. Гэта памяншае затрымку і павялічвае дакладнасць пры стварэнні гранулярных правіл маршрутызацыі.

Пры пераходзе на дамен браўзэр звяртаецца да найблізкага сервера DNS, які, у залежнасці ад дамена, выдае IP-адрас для загрузкі сайта. Выкажам здагадку, інтэрнэт-крама карыстаецца папулярнасцю ў ЗША і ў Еўропе, а DNS-серверы для яго ёсць толькі ў Еўропе. Тады карыстачы з ЗША, якія жадаюць скарыстацца паслугамі крамы, будуць змушаныя адпраўляць запыт да найблізкага сервера, а бо ён знаходзіцца вельмі далёка, чакаць адказу прыйдзецца доўга — загрузка сайта будзе не хуткай.

Пры размяшчэнні GeoDNS-сервера ў ЗША карыстачы будуць звяртацца ўжо да яго. Адказ будзе хуткім, што паўплывае на хуткасць загрузкі сайта.

У сітуацыі з існым DNS-серверам у ЗША пры пераходзе да дадзенага дамена карыстача з ЗША ён звернецца да найблізкага сервера, які выдасць патрэбны IP. Карыстальнік накіруецца на сервер, які змяшчае кантэнт сайта, але паколькі серверы з кантэнтам знаходзяцца далёка, ён яго хутка не атрымае.

Калі размясціць у ЗША і серверы CDN з кэшаванымі дадзеныя, то пры загрузцы браўзэр кліента адправіць запыт да найблізкага DNS-серверу, які адправіць зваротна патрэбны IP-адрас. Браўзэр з атрыманым IP звяртаецца да бліжэйшага сервера CDN і да асноўнага сервера, і сервер CDN перадае браўзэру кэшаваны кантэнт. Пакуль падгружаецца кэшаваны кантэнт, з асноўнага сервера паступаюць адсутнічаюць для загрузкі поўнага сайта файлы. У выніку памяншаецца час загрузкі сайта, бо файлаў з асноўнага сервера адпраўляецца нашмат менш.

Вызначэнне дакладнага месцазнаходжання, вызначанага IP-адрасы - не заўсёды лёгкая задача: тут дзейнічаюць шматлікія фактары, і ўладальнікі дыяпазону IP-адрасоў могуць прыняць рашэнне абвясціць яго на іншым канцы святла (тады прыйдзецца пачакаць, пакуль база дадзеных абновіцца, каб атрымаць правільнае месцазнаходжанне). Часам правайдэры VPS прызначаюць адрасы, якія меркавана знаходзяцца ў ЗША, для VPS у Сінгапуры.

У адрозненне ад выкарыстання адрасоў Anycast, размеркаванне выконваецца падчас дазволу імёнаў, а не падчас падлучэння да сервера кэшавання. Калі рэкурсіўны сервер не падтрымлівае кліенцкія падсеткі EDNS, тое выкарыстоўваецца месцазнаходжанне гэтага рэкурсіўнага сервера, а не карыстача, які будзе падлучацца да сервера кэшавання.

Кліенцкія падсеткі ў DNS - гэта пашырэнне DNS (RFC7871), якое вызначае, як рэкурсіўныя DNS-серверы могуць адпраўляць інфармацыю аб кліенце на DNS-сервер, у прыватнасці інфармацыю аб сетцы, якую сервер GeoDNS можа выкарыстоўваць для больш дакладнага вызначэння месцазнаходжання кліента.

Большасць выкарыстоўваюць DNS-серверы свайго інтэрнэт-правайдэра або DNS-серверы, якія геаграфічна блізкія да іх, але калі хтосьці ў ЗША па нейкім чынніку вырашыць выкарыстоўваць DNS-рэсалвер, размешчаны ў Аўстраліі, ён, хутчэй за ўсё, атрымае IP-. адрас сервера, бліжэйшага да Аўстраліі.

Калі вы жадаеце выкарыстоўваць GeoDNS, важна ведаць пра такія асаблівасці, паколькі ў некаторых выпадках гэта можа павялічыць адлегласць паміж серверамі кэшавання і кліентам.

Рэзюмэ: калі вы жадаеце аб'яднаць некалькі VPS у CDN, то лепшы варыянт разгортвання – выкарыстанне звязкі DNS-сервера з функцыяй GeoDNS + Anycast «са скрынкі».

Anycast супраць Unicast: што лепш выбіраць у кожным выпадку

Крыніца: habr.com

Дадаць каментар