hostprofi.ru
Подобрать хостинг
Термин·буква A

Anycast DNS

краткое определение

Anycast DNS — метод маршрутизации, при котором один IP-адрес присвоен нескольким DNS-серверам в разных точках мира. Запросы автоматически направляются к ближайшему (по метрике BGP) серверу, обеспечивая минимальную задержку и отказоустойчивость.

Anycast DNS — реализация DNS на основе anycast-маршрутизации. Один IP-адрес анонсируется через BGP сразу из нескольких географически распределённых узлов. Маршрутизаторы интернета направляют каждый запрос к ближайшему узлу по метрике AS-пути.

Как работает

Каждый узел Anycast объявляет один и тот же префикс в BGP. Интернет-маршрутизаторы выбирают путь с наименьшим AS-hop-count или наилучшей метрикой. DNS-запросы UDP-пакеты хорошо подходят для anycast: нет постоянных соединений, каждый запрос независим.

При отказе узла его BGP-анонс исчезает, и трафик автоматически переходит на следующий ближайший узел за 30–180 секунд (время сходимости BGP).

Применения

  • Корневые DNS-серверы: 13 логических адресов (a–m.root-servers.net), но сотни физических узлов по всему миру.
  • Публичные резолверы: 8.8.8.8 (Google), 1.1.1.1 (Cloudflare) — anycast.
  • Авторитетный DNS провайдеров: Cloudflare DNS, AWS Route 53, NS1.
  • CDN-сети используют anycast для HTTP-трафика.

История

Anycast как концепция описана в RFC 1546 (1993). В 2002 году несколько корневых серверов перешли на anycast. К 2005 году все 13 корневых серверов поддерживали anycast. В 2006 году Cloudflare одной из первых применила anycast для CDN-трафика.

Связь с хостингом

Авторитетный DNS хостинг-провайдера на anycast даёт меньшие задержки разрешения имён. При выборе DNS-хостинга уточняйте: используется anycast или unicast. Рекурсивные резолверы на anycast (8.8.8.8) — стандартная конфигурация для серверов. Магистральные каналы с большим числом точек присутствия улучшают качество anycast.

Как работает Anycast DNS

Anycast DNS использует технику IP Anycast: один и тот же IP-адрес анонсируется из нескольких географических точек через BGP. DNS-запрос маршрутизируется к ближайшему узлу по метрике BGP (обычно -- минимум AS-хопов). Cloudflare 1.1.1.1, Google 8.8.8.8, и корневые DNS-серверы работают на Anycast. Результат: задержка DNS-резолвинга из любой точки мира составляет 1--20 мс вместо 100--200 мс при обращении к удалённому серверу. При отказе узла трафик автоматически перераспределяется на следующий ближайший узел без изменения IP-адреса и без ручного вмешательства.

Anycast DNS vs Unicast DNS

Unicast DNS -- один сервер с одним IP, отказоустойчивость только через Secondary NS. Anycast DNS -- глобально распределённый кластер с единым IP, прозрачная отказоустойчивость и минимальная задержка. Для хостинга: хостеры, предоставляющие Anycast DNS (Cloudflare, Route53, DNSimple), обеспечивают TTFB ниже на 50--150 мс по сравнению с обычным DNS. Anycast DNS особенно важен для глобальных проектов с аудиторией в разных континентах. Anycast как принцип маршрутизации применяется также для CDN и DDoS-защиты.

История

IP Anycast впервые описан в RFC 1546 (1993). Первое применение Anycast для DNS -- корневые серверы DNS с 2002 года (узел F-root). Cloudflare запустила Anycast DNS в 2010 году, сделав его доступным для всех. В 2016 году IETF опубликовал RFC 7094 с рекомендациями по Anycast для DNS. Все 13 групп корневых DNS-серверов сегодня работают через Anycast с более чем 1000 узлами по всему миру. Число узлов корневых серверов растёт -- это ключевой элемент надёжности интернета. DNS-резолвер использует Anycast для выбора ближайшего корневого сервера при рекурсивном разрешении доменов.

На что обращать внимание

Anycast DNS не подходит для задач, требующих сессионного состояния (TCP): если пакеты одного TCP-соединения попадут на разные узлы, соединение оборвётся. Большинство DNS-запросов -- UDP, что делает Anycast безопасным. Для DNS over TCP (зонная пересылка AXFR, ответы >512 байт) нужно использовать отдельные Unicast-адреса. Мониторинг узлов Anycast: RTT к 1.1.1.1 и 8.8.8.8 через ping показывает задержку до ближайшего узла.

Другие термины