Что такое DNS?

«Что такое DNS?» — вопрос из категории Сети, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

DNS (Domain Name System) — это распределенная иерархическая система, которая преобразует удобочитаемые доменные имена (например, www.google.com) в машиночитаемые IP-адреса (например, 142.250.185.206), необходимые для маршрутизации сетевых запросов.

Принцип работы для тестировщика:

  1. Пользователь вводит URL в браузере.
  2. Браузер проверяет локальный кэш DNS, кэш ОС, затем запрашивает у настроенного резолвера (DNS-сервера провайдера).
  3. Если у резолвера нет ответа в кэше, он начинает рекурсивный запрос по иерархии:
    • Корневые DNS-серверы (.) → указывают на серверы домена верхнего уровня (TLD, например, .com).
    • Серверы TLD → указывают на авторитативные (управляющие) DNS-серверы домена (например, google.com).
    • Авторитативные серверы возвращают конечный IP-адрес для запрошенного имени хоста (например, www).
  4. IP-адрес возвращается браузеру, который устанавливает TCP-соединение с веб-сервером.

Типы DNS-записей, важные для тестирования:

  • A / AAAA: Сопоставление имени хоста с IPv4/IPv6 адресом.
  • CNAME: Псевдоним для другого доменного имени (каноническое имя).
  • MX: Указывает почтовые серверы для домена.
  • TXT: Текстовые записи, часто используемые для проверок владения доменом (например, для SSL) или SPF/DKIM (безопасность почты).

Сценарии тестирования, связанные с DNS:

  1. Тестирование доступности и времени отклика: Изменение DNS-записей при миграции серверов. Необходимо проверять, что новый IP-адрес корректно резолвится и время отклика (TTL — Time To Live) настроено правильно, чтобы минимизировать downtime.
  2. Тестирование геораспределенных сервисов (GeoDNS/Global Server Load Balancing - GSLB): Проверка, что пользователи из разных регионов получают разные IP-адреса (ближайшие к ним серверы).
  3. Тестирование отказоустойчивости: Проверка работы приложения при временной недоступности одного из DNS-серверов.
  4. Валидация конфигураций: Проверка корректности MX-записей для работы почты или TXT-записей для безопасности.
  5. Тестирование кэширования: Проверка поведения приложения при изменении DNS-записи до истечения TTL.

Инструменты для диагностики:

  • nslookup, dig (командная строка)
  • Онлайн-сервисы (например, MXToolbox)
  • Мониторинговые системы, отслеживающие доступность DNS.