Одно имя хоста — несколько записей A
1-й ответ
93.184.216.34
2-й ответ
93.184.216.35
3-й ответ
93.184.216.36
Резолвер возвращает все записи, обычно с ротацией порядка
Почему у одного домена несколько IP-адресов
Проверьте крупный сайт, и вы часто получите три, четыре или восемь адресов. Проверьте снова из другой страны, и список изменится полностью. За этим стоят четыре разных механизма, и последствия у них очень разные.
Одно имя хоста — несколько записей A
1-й ответ
93.184.216.34
2-й ответ
93.184.216.35
3-й ответ
93.184.216.36
Резолвер возвращает все записи, обычно с ротацией порядка
1. DNS round-robin
Самый простой подход: опубликовать несколько записей A для одного имени. Резолверы возвращают их в меняющемся порядке, поэтому разные клиенты сначала пробуют разные серверы.
example.com. 300 IN A 93.184.216.34
example.com. 300 IN A 93.184.216.35
example.com. 300 IN A 93.184.216.36Нагрузка распределяется без какой-либо инфраструктуры. Но у такого подхода серьёзное ограничение: в DNS нет проверки работоспособности. Если один сервер упал, его адрес продолжают выдавать, пока человек не удалит запись, и примерно треть посетителей получает сбой.
2. Геомаршрутизация (GeoDNS)
Здесь авторитативный сервер имён смотрит, откуда пришёл запрос, и возвращает ответ, подходящий для этого места. Посетитель в Европе получает адрес во Франкфурте, а в Азии — в Сингапуре.
Поэтому два человека вполне законно получают разные ответы для одного домена в один и тот же момент. Ни один из ответов не устарел и не неверен: сервер имён намеренно ответил по-разному.
Ключевой вывод
При геомаршрутизации единственно правильного ответа для домена не существует. Ответ зависит от того, кто спрашивает и откуда.
3. Anycast
Anycast — самый изящный из четырёх механизмов, и работает он целиком ниже уровня DNS. Один и тот же адрес анонсируется сразу из многих точек, а интернет-маршрутизация доставляет каждый пакет в ту точку, которая ближе в сетевом смысле.
| Геомаршрутизация | Anycast | |
|---|---|---|
| Работает на уровне | DNS | Маршрутизации (BGP) |
| Возвращаемые адреса | Разные для каждого региона | Всегда одинаковые |
| Скорость переключения при отказе | Ждёт истечения TTL в DNS | Секунды: маршрутизация перестраивается |
| Видно при проверке? | Да: ответы различаются | Нет: выглядит как один обычный адрес |
1.1.1.1 — известный пример: одни и те же четыре числа по всему миру, которые обслуживают сотни отдельных центров обработки данных. Anycast невидим для DNS-проверки, и именно поэтому он так эффективен.
4. Dual-stack: A и AAAA вместе
Самая распространённая и наименее интересная причина. Домен, публикующий и IPv4, и IPv6, возвращает оба адреса, а клиент выбирает тот, который поддерживает.
example.com. 3600 IN A 93.184.216.34
example.com. 3600 IN AAAA 2606:2800:220:1::248Dual-stack-клиенты, как правило, предпочитают IPv6 и переключаются на IPv4. См. записи A и AAAA.
Что клиент делает со списком
Получение нескольких адресов — лишь полдела: что произойдёт дальше, решает клиент, и современное поведение умнее прежнего.
Соответствующий механизм называется Happy Eyeballs и описан в RFC 8305. Браузер, получивший и адреса IPv6, и адреса IPv4, не пробует один, дожидаясь тайм-аута, а затем другой. Он начинает соединение по IPv6, ждёт короткий интервал (обычно около 250 миллисекунд) и, если соединение не установлено, параллельно запускает попытку по IPv4. Побеждает то, что завершится первым, а проигравшее отбрасывается.
Практическое следствие: неработающий адрес в списке снижает скорость, а не приводит к полному отказу. Это страховочная сетка, а не разрешение на небрежность: мёртвый адрес всё равно стоит каждому посетителю задержки до переключения.
Когда DNS не подходит для задачи
К round-robin DNS часто прибегают как к балансировщику нагрузки. Важно чётко понимать, чего он не умеет.
| Возможность | DNS round-robin | Настоящий балансировщик нагрузки |
|---|---|---|
| Проверка работоспособности | Нет: неработающие серверы остаются в списке | Исключает отказавшие бэкенды за секунды |
| Весовое распределение трафика | Нет: примерно поровну | Веса для каждого бэкенда |
| Привязка сессий | Нет | Поддерживается |
| Скорость переключения при отказе | Ждёт истечения TTL | Мгновенно |
| Стоимость | Бесплатно | Сервис, который нужно поддерживать или оплачивать |
Честный итог: round-robin DNS приемлемо распределяет нагрузку и плохо справляется с отказами. Если падение сервера не должно уносить с собой долю ваших посетителей, нужна проверка работоспособности, а значит, балансировщик нагрузки, anycast-провайдер или управляемый DNS-сервис, который выполняет проверки и автоматически отзывает неисправные записи.
Как их различать
| Что вы наблюдаете | Вероятная причина |
|---|---|
| Несколько адресов IPv4, каждый раз одни и те же | DNS round-robin |
| Разные адреса из разных стран | Геомаршрутизация |
| Один адрес, быстро работающий везде | Anycast |
| Смесь адресов с точками и с двоеточиями | Dual-stack, а не балансировка |
| Обратный запрос по адресам даёт имя хоста CDN | Edge-узлы CDN |
dig +short example.com @1.1.1.1
dig +short example.com @8.8.8.8Что это значит, когда вы проверяете домен
Это меняет то, какой вес стоит придавать одному ответу.
- Несколько адресов — это нормально. Обычно они указывают на избыточность, а не на ошибку конфигурации.
- Ваш ответ не универсален. При геомаршрутизации или CDN кто-то в другом месте видит другое, и оба ответа верны.
- Не прописывайте их жёстко. Адреса ротируются, заменяются и переназначаются. Всегда разрешайте имя в момент соединения.
- Порядок ничего не значит. Ротация часто намеренная; первый адрес не является основным.
Инструмент проверки перечисляет каждую полученную запись A и AAAA, а не показывает только первую, поэтому вы видите весь опубликованный набор сразу, а массовый режим позволяет легко сравнить несколько доменов бок о бок.
Нужно проверить публичные DNS-адреса домена? Воспользуйтесь инструментом Domain IP Lookup.
Часто задаваемые вопросы
Читайте также
Почему проверка показывает CDN, а не исходный сервер
Посетитель
запрашивает домен
Edge-сервер CDN
104.21.x.x
именно его возвращает DNS
Исходный сервер
реальный IP не раскрывается
Почему CDN скрывает IP исходного сервера: так и задумано
Проверили домен и получили адрес Cloudflare? Это система работает правильно. Что стоит за ним и почему заглянуть дальше нельзя.
Записи, которые встретятся почти в каждой зоне
Что такое DNS A-запись (и когда нужна AAAA)
Запись, которая на деле направляет ваш домен на сервер: её устройство, аналог AAAA и четыре ошибки, чаще всего ломающие сайты.
Рекурсивный DNS-запрос: шаг за шагом
Браузер
нужен example.com
Резолвер
ваш провайдер / 1.1.1.1
Корень + TLD
кто отвечает за .com?
Авторитетный
настоящий ответ
Каждый шаг цепочки — тоже DNS-запрос, и его ответ потом кэшируется
Как работает DNS: от доменного имени к IP-адресу
Телефонная книга интернета, прослеженная от начала до конца: что происходит за те несколько миллисекунд между вводом домена и приходом первого пакета на сервер.