awesome-everything EN
↑ Обратно к восхождению

Сети и протоколы

Anycast и GeoDNS: маршрутизация к ближайшему edge

Суть Как один IP-адрес, анонсированный из 300 городов, и геоориентированный DNS вместе отправляют каждого пользователя к ближайшему CDN edge-серверу.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на middle-высоте — в небе
◷ 10 min

Вы хотите, чтобы каждый пользователь — из Лондона, Токио или Сан-Паулу — автоматически попадал на ближайший CDN-сервер, без ручной настройки маршрутов или отдельных URL на регион. Два механизма решают это: Anycast и GeoDNS. Они работают по-разному и часто используются вместе.

Anycast IP-маршрутизация

При Anycast CDN-оператор анонсирует один и тот же IP-адрес (например, 93.184.216.1) из нескольких географических локаций одновременно через BGP. BGP-маршрутизация выбирает «ближайшую» edge-локацию по длине AS-пути или количеству хопов. Когда пользователь делает запрос, его локальный роутер отправляет его к ближайшему POP, анонсирующему этот IP — никакого специального DNS не нужно, только стандартная BGP-маршрутизация.

Плюс: работает автоматически; любое изменение на сетевом уровне (POP добавлен, отозван) вступает в силу за время BGP-конвергенции (секунды-минуты). Минус: BGP «ближайший» — это ближайший по хопам, а не по задержке. Два города, одинаково близких по хопам, могут различаться на 50 мс реальной задержки.

GeoDNS

При GeoDNS авторитативный nameserver CDN возвращает разные A-записи в зависимости от географического положения резолвера. Запрос от лондонского резолвера получает лондонский edge IP; токийский резолвер — токийский. Это даёт оператору явный контроль над маршрутизацией — можно вручную направлять разные регионы на разные POP.

Резолвер vs. пользователь. GeoDNS видит IP резолвера, а не браузера. Пользователь в Торонто, использующий резолвер Google 8.8.8.8, получает IP для того региона, из которого видно DNS-сервер Google — часто Mountain View, CA — что может направить его на US POP вместо торонтского. Это неоптимально.

EDNS Client Subnet (ECS) частично решает это: резолверы, поддерживающие ECS, отправляют /24-префикс подсети пользователя вместе с DNS-запросом, позволяя авторитативному серверу вернуть географически точный IP. Цена: префикс подсети пользователя путешествует по всей цепочке DNS-делегирования, снижая приватность. Apple iCloud Private Relay и Cloudflare 1.1.1.1 отключают ECS по этой причине, принимая слегка неоптимальную маршрутизацию.

Сравнение Anycast vs. GeoDNS
Основа выбора Anycast
Длина BGP AS-пути (количество хопов)
Основа выбора GeoDNS
Геолокация резолвера
BGP-конвергенция Anycast при смене POP
Секунды-минуты
TTL GeoDNS (типичный)
30–60 с для быстрого переключения
Гранулярность EDNS Client Subnet
/24-префикс (подсеть пользователя)
Экономия p95 при Cloudflare Argo
30–50% на межконтинентальных путях

Как CDN комбинирует оба механизма

Большинство крупных CDN используют Anycast на IP-уровне и GeoDNS поверх него, объединяя их преимущества. Anycast хорошо поглощает DDoS-атаки — объёмные атаки распределяются по всем POP, анонсирующим IP. GeoDNS обеспечивает явный failover: отзываете POP из DNS при сбое — новые соединения перестают приходить в течение одного DNS TTL.

Почему это работает

Почему Anycast один недостаточен для CDN. Anycast маршрутизирует по BGP-метрикам, а не по реальной задержке. ISP пользователя может пировать с CDN POP, который географически далёк, но имеет короткий AS-путь. Cloudflare Argo Smart Routing и AWS Global Accelerator добавляют слой измерений: они непрерывно зондируют реальную RTT-задержку со многих POP и направляют трафик через приватный backbone (в обход публичного интернета) к POP с наименьшей задержкой. Типичная экономия: 30–50% снижение p95-задержки на межконтинентальных хопах. Цена: повышенная стоимость за ГБ за backbone-транзит. Оправдано для latency-sensitive API; обычно избыточно для доставки статических ассетов.

Викторина

Пользователь в Торонто использует 8.8.8.8 как DNS-резолвер. Почему он может попасть на CDN POP в западной части США вместо торонтского?

Викторина

Какое главное ограничение чистой Anycast-маршрутизации для CDN proximity?

Проследи
1/4

Трассировка: как лондонский пользователь попадает на правильный CDN edge через GeoDNS.

1
Step 1 of 4
Браузер резолвит cdn.example.com. До какого DNS-сервера в итоге доходит запрос?
2
Locked
Авторитативный сервер видит запрос с IP лондонского резолвера. Что он возвращает?
3
Locked
Браузер подключается к этому лондонскому edge IP через TCP + TLS. В чём преимущество?
4
Locked
Через 6 месяцев оператор выводит лондонский POP на обслуживание. Как долго новые пользователи будут попадать туда?
Расставь шаги по порядку

Упорядочите путь запроса при Anycast-маршрутизации (без GeoDNS):

  1. 1 Браузер отправляет DNS-запрос — резолвер идёт к авторитативному NS CDN
  2. 2 Авторитативный NS возвращает единственный Anycast IP (одинаковый для всех регионов)
  3. 3 TCP SYN-пакет браузера выходит в интернет с этим IP назначения
  4. 4 ISP-роутеры применяют BGP-форвардинг: направляют к CDN AS с кратчайшим путём
  5. 5 Пакет прибывает в CDN POP с кратчайшим BGP-путём от этого ISP
  6. 6 TLS хендшейк + HTTP-запрос завершаются на этом POP
Вспомните перед уходом
  1. 01
    Объясните двумя предложениями, почему Anycast и GeoDNS решают одну проблему, но ломаются по-разному.
  2. 02
    Что делает EDNS Client Subnet и какова цена за приватность?
  3. 03
    CDN-оператор обнаруживает высокие потери пакетов в лондонском POP. Как остановить попадание новых пользователей туда и как быстро это сработает?
Итог

Anycast и GeoDNS — два механизма proximity-маршрутизации, которые CDN использует для направления каждого пользователя к ближайшему edge-серверу. Anycast анонсирует один IP из всех POP и позволяет BGP выбрать ближайший по хопам — автоматически и устойчиво к DDoS, но не идеально по задержке. GeoDNS возвращает разные A-записи по географии резолвера — явно и быстро меняется, но точен ровно настолько, насколько местоположение резолвера совпадает с местоположением пользователя. Большинство CDN комбинируют оба: Anycast для масштабирования и поглощения DDoS, GeoDNS для управления failover, и опционально умную маршрутизацию (Cloudflare Argo, AWS Global Accelerator) через приватный backbone для коррекции слепого пятна BGP по задержке.

Связанные уроки
встречается в162
Продолжить восхождение ↑Многоуровневый кеш и Cache-Control
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.