Skip to content

🌐 DNS (Domain Name System)

1. Что такое DNS?

DNS (Domain Name System) — это система, которая преобразует понятные человеку доменные имена (например, example.com) в IP-адреса (например, 93.184.216.34), чтобы компьютеры могли находить серверы в сети.

💡 Пример:

Когда вы вводите google.com в браузере, ваш компьютер использует DNS, чтобы найти IP-адрес сервера Google и загрузить страницу.


2. Зачем нужен DNS?

  • Пользователям легче запомнить имена (yandex.ru), чем числовые IP-адреса.
  • DNS позволяет гибко управлять сетевыми ресурсами: менять IP-адреса без изменения имени.
  • Обеспечивает отказоустойчивость и балансировку нагрузки между серверами.

3. Как работает DNS?

Процесс перевода доменного имени в IP-адрес называется DNS-запросом. Вот как он происходит:

🔍 Пошаговая схема:

  1. Пользователь вводит example.com в браузере.
  2. Браузер отправляет запрос к локальному DNS-кэшу ОС.
  3. Если запись не найдена, запрос направляется к DNS-резолверу провайдера или публичному серверу (например, Google DNS).
  4. Резолвер обращается к корневому серверу, который указывает, где находится зона .com.
  5. Резолвер идёт к TLD-серверу (Top-Level Domain), например .com, который указывает авторитетный сервер домена.
  6. Затем он обращается к авторитетному DNS-серверу домена, который возвращает IP-адрес.
  7. Браузер получает IP и открывает сайт.

🔄 Этот процесс занимает доли секунды благодаря кэшированию.


4. Типы DNS-серверов

Тип Описание
Корневые серверы (Root Servers) Начальный уровень в иерархии DNS. Их всего 13 логических серверов, физически их гораздо больше.
TLD-серверы (Top-Level Domain) Управляют доменами верхнего уровня, например .com, .org, .ru.
Авторитетные серверы (Authoritative DNS) Хранят записи о конкретных доменах. Например, Google управляет своим DNS.
Рекурсивные/резолверы (Recursive Resolvers) Получают запрос от клиента и сами проходят все этапы, чтобы получить IP. Обычно это серверы провайдера или публичные (Google DNS, Cloudflare DNS).

5. DNS-записи (типы)

Тип Описание
A-запись Сопоставляет домен IPv4-адресу (например, example.com → 93.184.216.34).
AAAA-запись То же самое, но для IPv6.
CNAME (Canonical Name) Создаёт псевдоним домена, например www.example.com → example.com.
MX (Mail Exchange) Указывает почтовые серверы для доставки email.
TXT (Text Record) Хранит текстовые данные. Используется для проверки владения доменом и SPF-записей.
NS (Name Server) Указывает, какие серверы отвечают за домен.
PTR (Pointer) Используется в обратном DNS для сопоставления IP с доменом.
SOA (Start of Authority) Содержит основную информацию о домене: ответственный сервер, номер версии, сроки обновления.
SRV (Service Record) Указывает серверы для определённых служб (например, SIP, XMPP).
CAA (Certification Authority Authorization) Ограничивает, какие центры сертификации могут выдавать сертификаты для домена.

6. DNS-кэширование

Чтобы ускорить работу, DNS-записи кэшируются на разных уровнях:

  • Локально на компьютере.
  • На уровне резолвера провайдера.
  • На стороне CDN или облачных сервисов.

⏱ TTL (Time To Live)

  • Это параметр каждой DNS-записи, который указывает, сколько времени запись может храниться в кэше.
  • Чем меньше TTL, тем чаще будет обновляться информация, но выше нагрузка на серверы.

7. Публичные DNS-серверы

Вместо использования DNS вашего провайдера можно использовать публичные серверы, которые быстрее и безопаснее.

Сервис IP-адреса Особенности
Google DNS 8.8.8.8, 8.8.4.4 Быстро, бесплатно, шифрование (DoH)
Cloudflare DNS 1.1.1.1, 1.0.0.1 Анонимность, высокая скорость
OpenDNS 208.67.222.222, 208.67.220.220 Фильтрация, защита от мошенничества
Yandex DNS 77.88.8.8, 77.88.8.1 Для пользователей в России

8. Полезные команды для работы с DNS

# Посмотреть IP-адрес домена
nslookup example.com
dig example.com

# Подробный вывод DNS-записей
dig ANY example.com

# Проверить MX-записи (почта)
dig MX example.com

# Проверить TXT-записи (SPF, DKIM, DMARC)
dig TXT example.com

# Изменить DNS-настройки на Windows
ipconfig /flushdns   # Очистка кэша

# Изменить DNS-настройки на Linux
sudo systemd-resolve --flush-caches

9. Угрозы и защита в DNS

Угроза Описание Защита
DNS Spoofing / Cache Poisoning Вставка поддельной DNS-записи в кэш DNSSEC
DNS Hijacking Перенаправление на вредоносный DNS-сервер Использование доверенных DNS
DDoS атаки через DNS Использование рекурсивных серверов для перегрузки целевой системы Rate-limiting, использование DoH/DoT
DNS Tunneling Использование DNS для передачи данных Мониторинг и анализ трафика

🔒 Современные протоколы безопасности:

  • DNSSEC — подписывает DNS-ответы, чтобы предотвратить подделку.
  • DoH (DNS over HTTPS) — шифрует DNS-запросы через HTTPS.
  • DoT (DNS over TLS) — шифрует через протокол TLS.

10. FAQ

❓ Что делать, если сайт не открывается?

  • Проверьте интернет.
  • Очистите DNS-кэш: ipconfig /flushdns (Windows), sudo systemd-resolve --flush-caches (Linux).
  • Попробуйте другой DNS (например, 8.8.8.8).

❓ Как узнать, какой DNS используется?

nmcli dev show | grep DNS      # Linux
ipconfig /all                   # Windows

❓ Почему один и тот же домен может показывать разные IP?

  • Это зависит от геолокации, кэширования и настроек балансировки нагрузки.

11. Полезные ссылки