Как устроены dns сервера?

Вопрос чисто из любопытства, как устроены днс сервера с технической части, например Google DNS, как я это вижу, идет запрос на ip - 8.8.8.8, на порт 53, и сервер отправляет ответ с ip домена, это понятно, но, как мне кажется, какая бы не была мощная одна нода, но она не способна обработать такое количество запросов в секунду, так вот собственно, и сам вопрос - как идет распределение запросов, траффика, с одного ip, с одного порта, на несколько серверов?
  • Вопрос задан
  • 186 просмотров
Пригласить эксперта
Ответы на вопрос 6
leahch
@leahch
Я мастер на все руки, я козлик Элек Мэк :-)
Не касаясь DNS, а вообще.
За одним IP-адресом может скрываться целая фабрика серверов, иногда сотни штук.
Приблизительный пример - маскарадинг IP-адресом на роутерах и умных коммутаторах в сетях провайдеров, фирмах, и даже квартирах. Практически любой домашний роутер может маскарадить IP-адреса. Если сюда добавить распределение и балансировку нагрузки, и кеширование запросов (уже касательно DNS) на промежуточных серверах, то вполне можно жить в такой распределенной системе.
Ответ написан
@Drno
https://ru.wikipedia.org/wiki/Round_robin_DNS

Запрос приходит на один ip адрес, далеее проксируется на разные DNS сервера для ответа(обычно более свободный)
Так же с сайтами, обычно с помощью NGINX проксируются(или распределяется нагрузка) по разным серверам с одним сайтом
Ответ написан
@aquariussanya
"...какая бы не была мощная одна нода, но она не способна обработать такое количество запросов в секунду..."
Для этого есть кэш, кэширует запросы ОС, роутер, провайдеровский DNS и так далее. Вроде так
Ответ написан
Jump
@Jump
Системный администратор со стажем.
как мне кажется, какая бы не была мощная одна нода, но она не способна обработать такое количество запросов в секунду
А кто сказал что нода одна? Она не одна.
Приходит трафик на маршрутизатор с адресом 8.8.8.8 - и он его перекидывает на один из DNS серверов.
На какой именно зависит от настроек - можно выбирать в зависимости от нагрузки на конкретный сервер например.
Ответ написан
ValdikSS
@ValdikSS
1. За одним IP-адресом может быть несколько серверов, на которые распределяются запросы для распределения нагрузки.
2. Один IP-адрес может глобально маршрутизироватся в разные физические места, в зависимости от региона и/или провайдера. Это называется anycast.
Ответ написан
SLIDERWEB
@SLIDERWEB
ИТ-Куроводитель
Архитектура может быть разной. Судя по ответам восьмёрок - там целая ферма.
У меня тоже есть свой рекурсер. Он держит зоны и резолвит весь "интернет" для инфраструктуры. Запросов очень много.
Сделал так:
На входе стоит 2 аппаратных балансировщика. Все запросы на DNS-порты отправляются на 4 резолвера на базе Unbound, которые пересылают запросы, ответов на которые нет в локальном кэше на 4 DNS-сервера за каждым.
Балансёры равномерно разливают запросы на 4 резолвера, резолверы, в свою очередь, не менее равномерно разливают запросы по 16 серверам.
Как-то так.

Итого: 16 DNS-серверов спрятаны за 4 резолвера, которые стоят за двумя балансерами.
Думаю так сделано у многих хостеров, регистраторов и компаний, которые получают большой трафик.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы