Domain IP Lookup

Один IP — один сервер, или один IP — много

Unicast

Один IP — ровно один сервер

Anycast

Один IP, анонсируется из многих точек

Инфраструктура и эксплуатация

Anycast DNS: как один IP работает сразу в десятках мест

3 мин чтения

Обычно один IP-адрес указывает на одну конкретную машину, доступную по одному сетевому пути. Anycast намеренно нарушает это правило: один и тот же IP-адрес одновременно анонсируется из множества физически разнесённых точек по всему миру. Затем интернет-маршрутизация доставляет каждый запрос в ту из анонсирующих точек, которая топологически ближе всего к отправителю. Это не обязательно самая близкая точка по физическому расстоянию, а самая близкая по сетевому пути.

Почему DNS-инфраструктура так сильно полагается на anycast

Публичные резолверы вроде 1.1.1.1 и 8.8.8.8 используют anycast-адреса. Когда вы обращаетесь к 1.1.1.1 из Токио, а кто-то другой к тому же адресу из Берлина, вы на самом деле попадаете на разные физические серверы, каждый на ближайший по сети, хотя оба вписали в настройки один и тот же IP-адрес. Именно поэтому один запоминающийся IP обеспечивает стабильно низкую задержку по всему миру, а не заставляет всех обращаться в один дата-центр независимо от местоположения.

UnicastAnycast
Один IP соответствуетРовно одному физическому серверуМножеству физических серверов одновременно
Маршрутизация выбираетЕдинственный фиксированный путьТопологически ближайшую из анонсирующих точек
Если одна точка отключиласьСервис становится недоступенТрафик переключается на следующую по близости точку
Уязвимость к DDoSАтакующий трафик концентрируется на одной целиАтакующий трафик естественным образом распределяется по всем точкам
  • Отказоустойчивость: если одна anycast-точка отключается, маршрутизация просто переключается на следующую ближайшую, часто совершенно незаметно для клиента.
  • Подход не ограничен DNS: CDN и некоторые другие сервисы, чувствительные к задержкам, используют ту же технику.

Что это значит на практике

Чтобы получить выгоду от anycast, ничего настраивать по-особому не нужно: всё происходит на уровне сетевой маршрутизации и невидимо для приложения, выполняющего запрос. Знать об этом стоит прежде всего потому, что так понятно, почему крупный публичный резолвер остаётся быстрым и доступным по всему миру и вам не нужно выбирать региональную конечную точку, как это приходится делать для облачной базы данных или вычислительного инстанса.

BGP — механизм, стоящий за понятием «топологически ближайший»

«Ближайший по сетевому пути» не определяется измерением физического расстояния в реальном времени. Каждая сеть, анонсирующая anycast-адрес, делает это через BGP, протокол маршрутизации, который связывает отдельные сети интернета. Каждый маршрутизатор на пути выбирает тот путь к адресу, который в данный момент выглядит самым коротким по метрикам самого BGP, как правило с наименьшим числом сетевых переходов, а не километров. На практике это обычно коррелирует с физической близостью, но не идеально: запрос иногда уходит в чуть более удалённую точку, если этот путь по меркам BGP оказывается короче, особенно при сбоях в сетях или нетипичных пиринговых соглашениях.

Почему anycast подходит не для всего

Anycast отлично подходит для коротких обменов без сохранения состояния, например одного DNS-запроса и ответа: ничего не потеряется, если следующий пакет попадёт на другой физический сервер, не на тот, что обработал первый. Для долгих соединений с состоянием он подходит плохо: если сетевой путь изменится посреди соединения (флаппинг маршрута, смена пиринга), TCP-сессия уйдёт на другую физическую точку, не ту, что её начала, и просто оборвётся, потому что новый сервер не знает о её существовании. Отчасти поэтому anycast так тесно связан с DNS и другими протоколами «запрос-ответ» поверх UDP и гораздо реже применяется для долгоживущих подключений к базам данных или видеопотоков.

Нужно проверить публичные DNS-адреса домена? Воспользуйтесь инструментом Domain IP Lookup.

Читайте также

Почему проверка показывает CDN, а не исходный сервер

Посетитель

запрашивает домен

Edge-сервер CDN

104.21.x.x

именно его возвращает DNS

Исходный сервер

реальный IP не раскрывается

Инфраструктура и эксплуатация

Как CDN используют DNS для маршрутизации трафика по миру

Главная работа сети доставки контента происходит на уровне DNS, ещё до того, как запрошен хотя бы один байт самого контента.

3 мин чтения

Одно имя хоста — несколько записей A

1-й ответ

93.184.216.34

2-й ответ

93.184.216.35

3-й ответ

93.184.216.36

Резолвер возвращает все записи, обычно с ротацией порядка

Инфраструктура и эксплуатация

DNS round-robin: как распределить трафик между IP-адресами

Как DNS round-robin возвращает несколько адресов, что он может и чего не может для распределения нагрузки и как кеширование влияет на наблюдаемые результаты.

4 мин чтения

Одно имя хоста — несколько записей A

1-й ответ

93.184.216.34

2-й ответ

93.184.216.35

3-й ответ

93.184.216.36

Резолвер возвращает все записи, обычно с ротацией порядка

Инфраструктура и эксплуатация

DNS-балансировка нагрузки: методы, плюсы и ограничения

Сравниваем DNS-распределение трафика с прикладными балансировщиками: как TTL, проверки работоспособности и региональные ответы влияют на доступность.

4 мин чтения