Dns
DNS (Domain Name System) действует как телефонная книга интернета, преобразуя удобные для человека доменные имена в числовые IP-адреса. Использует иерархическую структуру с корневыми серверами, серверами TLD (.com, .org), авторитетными серверами и локальными DNS-серверами. Необходима для функционирования интернета, позволяя использовать запоминающиеся имена вместо IP-адресов.
Как работает DNS-запрос#
- Браузер проверяет локальный кэш (браузера и операционной системы); если запись найдена и не просрочена, запрос к DNS-серверам не выполняется.
- Если в кэше ничего нет, запрос уходит на рекурсивный DNS-сервер провайдера или публичный резолвер (например, 8.8.8.8).
- Рекурсивный сервер при необходимости опрашивает корневые серверы, затем серверы доменов верхнего уровня (TLD), а затем авторитетный сервер нужного домена.
- Полученный IP-адрес возвращается клиенту и кэшируется на всех промежуточных этапах на время, заданное параметром TTL.
Основные типы DNS‑записей#
Разные типы DNS‑записей описывают, как именно доменное имя должно разрешаться и какие службы за ним стоят.
| Тип | Назначение | Пример использования |
|---|---|---|
| A | Указывает IPv4-адрес сервера для доменного имени | example.com → 93.184.216.34 |
| AAAA | Связывает доменное имя с IPv6-адресом | example.com → 2001:db8::1 |
| CNAME | Делает одно доменное имя псевдонимом для другого | www.example.com → example.com |
| MX | Указывает почтовые серверы домена и их приоритет | Почта для example.com обрабатывается сервером mail.example.com |
| NS | Определяет авторитетные DNS‑серверы для домена | example.com обслуживается ns1.example.net и ns2.example.net |
| TXT | Хранит произвольный текст, в т. ч. SPF, DKIM и прочие служебные записи | Подтверждение домена для почтового сервиса или CDN |
| SRV | Описывает расположение конкретной службы (порт и хост) | Для SIP, XMPP и других сервисов с нестандартными портами |
Кэширование и TTL#
DNS активно использует кэширование, чтобы уменьшить нагрузку на серверы и ускорить открытие сайтов. Параметр TTL (Time To Live) указывает, сколько секунд запись может храниться в кэше до повторного запроса к авторитетному серверу.
- Большой TTL уменьшает нагрузку, но замедляет распространение изменений DNS‑записей.
- Малый TTL ускоряет применение изменений, но увеличивает число запросов к DNS‑серверам.
Основные IP адреса#
8.8.8.8 - Google 1.1.1.1 - Cloudflare
Распространённые проблемы#
- Неправильные записи DNS: ошибка в A, MX или других записях приводит к тому, что сайт или почта становятся недоступными.
- Задержки распространения (DNS propagation): после изменения записей старые данные ещё какое‑то время остаются в кэше провайдеров из‑за значения TTL.
- DNS‑спуфинг и подмена ответов: злоумышленник может попытаться подделать DNS‑ответ, перенаправив пользователя на фишинговый сайт, поэтому важны защищённые механизмы вроде DNSSEC.