🌐 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?
- Это зависит от геолокации, кэширования и настроек балансировки нагрузки.