🌐 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-запросом. Вот как он происходит:
🔍 Пошаговая схема:
- Пользователь вводит
example.com
в браузере. - Браузер отправляет запрос к локальному DNS-кэшу ОС.
- Если запись не найдена, запрос направляется к DNS-резолверу провайдера или публичному серверу (например, Google DNS).
- Резолвер обращается к корневому серверу, который указывает, где находится зона
.com
. - Резолвер идёт к TLD-серверу (Top-Level Domain), например
.com
, который указывает авторитетный сервер домена. - Затем он обращается к авторитетному DNS-серверу домена, который возвращает IP-адрес.
- Браузер получает 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?
- Это зависит от геолокации, кэширования и настроек балансировки нагрузки.