Сети и веб
TCP/IP и порты: как сервисы слушают на вашей машине
Порт — это пронумерованная дверь на вашей машине. Разбираем, как TCP и UDP работают с портами, затем запускаем, находим и проверяем локальный сервер на 127.0.0.1.
Как DNS превращает имена в адреса: резолверы, авторитетные серверы, кеширование по TTL, записи A, AAAA, CNAME, MX и TXT и безопасный запрос.
DNS (Domain Name System) сопоставляет имена вроде example.com с данными, которые нужны клиенту дальше, чаще всего с IP-адресом. Приложения запрашивают имя, DNS возвращает записи. DNS не веб-сервер, не браузер и не слой шифрования: он только отвечает на запросы.
Когда вы вводите имя в браузере, операционная система или браузер сначала проверяют собственный кеш. Если подходящего ответа там нет, клиент отправляет запрос рекурсивному резолверу. Такой резолвер часто принадлежит интернет-провайдеру, работодателю или публичному сервису вроде 8.8.8.8.
Резолвер отвечает из кеша, когда может. Если не может, он проходит по иерархии DNS. Он спрашивает у корневого сервера, какие серверы обслуживают домен верхнего уровня (например, .com), затем у этого сервера, какие серверы имён использует домен, и наконец запрашивает запись у одного из этих авторитетных серверов имён. Настоящие данные лежат на авторитетном сервере. Резолвер хранит ответ столько, сколько позволяет TTL записи, и возвращает его клиенту.
В реальном трафике шагов больше: цепочки CNAME, проверка DNSSEC, записи в локальном файле hosts, шифрованные транспорты DNS и несколько уровней кеша. Когда DNS отработал, браузеру ещё нужно открыть соединение, согласовать TLS и дождаться ответа сервера.
| Запись | Что в ней хранится | Примечание для начинающих |
|---|---|---|
A |
Адрес IPv4 для имени | У одного имени может быть несколько записей A. Ответ может меняться в зависимости от балансировки нагрузки, местоположения или состояния кеша. |
AAAA |
Адрес IPv6 для имени | Определена в RFC 3596. Имя остаётся тем же, меняется семейство адресов. |
CNAME |
Другое имя, псевдонимом которого служит это имя | Резолвер следует по нему. Имя с CNAME не может содержать других данных (исключение составляют записи DNSSEC). |
MX |
Почтовые серверы домена со значением приоритета | Показывает, куда должна идти почта. О том, насколько хорошо защищены почтовые серверы, ничего не говорит. |
TXT |
Произвольный текст, используется для подтверждений и политик вроде SPF | Показывает, что опубликовал владелец. Не доказывает, что все связанные меры контроля настроены или применяются. |
Используйте домен, которым владеете или управляете. Если нужна только практика, example.com входит в имена, зарезервированные для документации (RFC 2606). Ограничьтесь именами, которые вам разрешено запрашивать, и не сканируйте хосты, на тестирование которых у вас нет разрешения.
На Linux или macOS с установленным dig:
dig example.com A
dig example.com AAAA
dig example.com MXНа Windows nslookup входит в состав операционной системы:
nslookup example.com
nslookup -type=AAAA example.com
nslookup -type=MX example.comВывод ниже получен на машине с Windows 2026-11-08 через nslookup с резолвером по умолчанию (dns.google, 8.8.8.8). Ответ пришёл от этого резолвера, авторитетный сервер домена его не давал. Машина выводила подписи на португальском, здесь они приведены на английском. Значения отражают один момент и будут другими на вашей машине и при последующих запусках.
Non-authoritative answer:
Server: dns.google
Address: 8.8.8.8
Name: example.com
Addresses: 2606:4700:10::ac42:93f3
2606:4700:10::6814:179a
172.66.147.243
104.20.23.154Тот же резолвер вернул запись MX для домена:
example.com MX preference = 0, mail exchanger = (root)Почтовый обменник (root) означает, что цель — одна точка. Это null MX, который сообщает отправителям, что домен не принимает почту (RFC 7505).
Наконец, запрос TXT для того же имени:
Non-authoritative answer:
Server: dns.google
Address: 8.8.8.8
example.com text =
"_k2n1y4vw3qtb4skdx9e7dxt97qrmmq9"
example.com text =
"v=spf1 -all"Вторая строка — политика SPF. -all означает, что ни один сервер не имеет права отправлять почту от имени этого домена, и это согласуется с null MX выше. Первая строка — непрозрачное значение; подобные строки обычно используют, чтобы доказать сервису владение доменом. Как сказано в таблице, запись TXT показывает, что опубликовал владелец, и больше ничего не доказывает.
Две детали этого запуска. Строка Non-authoritative answer подтверждает, что ответ получен из кеша резолвера или через его запрос, собственный сервер домена его не давал. Адреса IPv6 пришли первыми, но полагаться на порядок нельзя: при следующем запуске они могут идти иначе или адреса окажутся другими.
Чтобы понаблюдать за кешированием, используйте dig. Он печатает число TTL перед каждой записью. Выполните один и тот же запрос дважды в пределах окна TTL. Если резолвер закешировал ответ, второе число будет меньше первого.
У каждой записи есть TTL, время в секундах, в течение которого резолверы могут хранить ответ. Короткий TTL позволяет владельцу быстро перенести сервис, но к авторитетным серверам приходит больше запросов. Длинный TTL снижает нагрузку, но старые ответы могут ещё какое-то время жить после изменения.
Поэтому отдельный ответ отражает один момент. Во время изменения два резолвера могут расходиться, и оба будут правы для своего кеша. Когда нужно узнать, что опубликовал владелец, спросите авторитетный сервер имён напрямую, например dig example.com A @<nameserver> с сервером из записей NS домена, или пройдите по цепочке через dig +trace example.com A.
Запрос публичных записей DNS домена — обычный первый шаг инвентаризации активов. Компания может проверить свои имена, свои почтовые записи и адреса за ними. Исследователи часто объединяют эти данные с журналами certificate transparency и сведениями о владельцах.
Из ответа DNS не следуют две вещи. Во-первых, запись в результатах поиска не даёт разрешения сканировать хост, на который указывает. Во-вторых, IP-адрес не говорит, кто управляет машиной. Из-за хостинг-провайдеров, CDN и общих серверов один адрес может обслуживать множество не связанных между собой сайтов.
Подозрительная запись тоже не доказывает атаку. Ошибки настройки, истёкшие сервисы и заброшенные имена встречаются часто. Прежде чем делать вывод, проверьте авторитетный ответ, историю изменений и владельца домена. Отравление кеша и спуфинг — отдельные проблемы, и улики для них нужны отдельные.
DNS — один шаг веб-запроса. Дальше разберитесь, как HTTP и TLS обрабатывают то, что происходит после превращения имени в адрес, по RFC и документации из источников. Затем прочитайте следующую статью этого цикла, об OSINT, прежде чем выполнять какие-либо запросы в ходе разведки. Практикуйтесь только на доменах и системах, которыми владеете или на тестирование которых у вас есть письменное разрешение.
Сети и веб
Порт — это пронумерованная дверь на вашей машине. Разбираем, как TCP и UDP работают с портами, затем запускаем, находим и проверяем локальный сервер на 127.0.0.1.
Сети и веб
Разбираем настоящий обмен HTTP построчно: методы, URL, заголовки, классы кодов состояния и cookie, с проверкой через curl на локальном сервере.
Сети и веб
TLS 1.3 даёт HTTPS конфиденциальность, целостность и аутентификацию сервера. Разбираем рукопожатие, цепочки сертификатов и то, чего замок в адресной строке не доказывает.