Networking

DNS

Domain Name System — распределённая система, которая переводит доменные имена вида example.com в IP-адреса серверов.

Что такое DNS

DNS (Domain Name System, система доменных имён) — распределённая база данных, переводящая понятные человеку доменные имена в IP-адреса. Браузер не умеет отправлять пакеты на example.com: маршрутизация работает по адресам вида 93.184.216.34. Этот перевод и делает DNS — примерно как телефонная книга, где по имени находят номер.

DNS-сервер («днс-сервер») — узел, отвечающий на такие запросы. Их два принципиально разных класса, и путать их не стоит:

  • Рекурсивный резолвер — тот, что прописан в настройках вашей системы (8.8.8.8, 1.1.1.1, резолвер провайдера). Принимает запрос клиента, сам проходит всю цепочку до ответа и кеширует результат.
  • Авторитативный сервер — хранит зону конкретного домена и является для неё источником истины. Именно его вы указываете NS-записями при делегировании домена у регистратора.

Как резолвится имя

Клиент → резолвер (1.1.1.1): "A-запись для www.example.com?"
   резолвер → корневой сервер (.) : "спроси серверы зоны .com"
   резолвер → TLD-сервер (.com)   : "спроси ns1.example.com"
   резолвер → ns1.example.com     : "93.184.216.34, TTL 300"
Клиент ← резолвер: 93.184.216.34

Полная цепочка отрабатывает один раз. Дальше ответ лежит в кеше резолвера ровно столько секунд, сколько указано в TTL записи, и все последующие клиенты получают его мгновенно.

Типы записей

Тип Что хранит Пример значения
A IPv4-адрес хоста 93.184.216.34
AAAA IPv6-адрес хоста 2606:2800:220:1::1
CNAME алиас на другое имя cdn.example.net.
MX почтовый сервер и приоритет 10 mail.example.com.
NS авторитативные серверы зоны ns1.example.com.
TXT произвольный текст: SPF, DKIM, верификация v=spf1 mx -all
PTR обратная зона, IP → имя mail.example.com.
SRV хост и порт сервиса 10 5 5060 sip.example.com.
CAA кому разрешено выпускать сертификаты 0 issue "letsencrypt.org"

CNAME нельзя повесить на корень домена (example.com без поддомена) — там уже обязаны быть NS и SOA. Для этого случая провайдеры делают нестандартные ALIAS/ANAME-записи.

Диагностика

$ dig +short example.com A
93.184.216.34

$ dig example.com MX +noall +answer
example.com.   3600   IN   MX   10 mail.example.com.

$ dig @8.8.8.8 example.com +trace    # пройти делегацию с корня
$ dig -x 93.184.216.34               # обратный запрос, PTR

+short оставляет только значение, +trace показывает всю цепочку делегирования — с этого начинают разбор «домен не резолвится». Другие инструменты — в сетевой диагностике.

DNS на практике

  • TTL и переезды. За сутки до смены A-записи снизьте TTL до 60–300 секунд, иначе часть клиентов будет ходить на старый сервер, пока не истечёт кеш. После переезда верните обратно.
  • Порт и транспорт. DNS слушает порт 53 по UDP; если ответ не влезает в дейтаграмму, клиент повторяет запрос по TCP/53. DoT (853) и DoH (443) прячут запросы внутрь TLS.
  • Балансировка. Несколько A-записей на одно имя дают примитивный round-robin, но без health check: упавший сервер продолжит получать свою долю трафика. Настоящая отказоустойчивость — за балансировщиком или CDN.
  • Почта. Без корректных MX, SPF, DKIM и PTR письма с вашего VPS уедут в спам — почтовые сервисы проверяют их в первую очередь.

Связанные термины

  • Домен — имя, которое DNS превращает в адрес
  • FQDN — полностью определённое имя, которым оперируют записи
  • IP-адрес — то, что возвращают A- и AAAA-записи
  • CDN — подключается к домену через CNAME или смену NS
  • DHCP — сообщает клиенту адрес резолвера
  • Сетевая диагностика — dig, nslookup, проверка резолвинга

Готовы запустить GPU-задачу?

Запустить GPU-сервер