Домен внутри домена
Поддомен создаётся добавлением ещё одной метки слева от имени. Если у вас есть example.com, то blog.example.com, mail.example.com и api.example.com — его поддомены. Отдельная регистрация для них не требуется: владелец домена сам решает, какие имена создавать и сколько уровней вложенности допустить. Их число практически не ограничено, а появление нового поддомена сводится к добавлению записи в зону.
Логика подчинения похожа на папки: всё, что находится внутри вашего домена, находится под вашим контролем.
Как создаётся поддомен
На техническом уровне поддомен возникает, когда в зоне появляется запись с нужным именем. Достаточно A или AAAA записи с адресом сервера, либо CNAME со ссылкой на другое имя; разбор записей приведён на страницах dns-zapis-a-aaaa и dns-zapis-cname. Можно создать сразу все имена одного уровня записью с подстановочным символом: *.example.com. Она отвечает на любое имя, для которого нет более точной записи.
Иногда поддомен делегируют: в зоне указывают NS-записи для него, и управлять им начинает другая сторона со своими серверами имён. Так поступают, когда часть проектов ведёт отдельная команда.
Иногда поддомены создают автоматически: платформы размещения сайтов выдают каждому проекту собственное имя. Если такой проект удалить, имя обычно освобождается, и ссылки на него, оставшиеся у вас в записях DNS, становятся источником ошибок и рисков.
Для чего используют
Частые применения: разделение частей проекта (блог, личный кабинет, документация), отделение служебных сервисов (api, static, cdn), региональные или языковые версии, почтовые и рассылочные системы, тестовые окружения. Отдельные поддомены позволяют разместить сервисы на разных серверах и в разных странах, не меняя главный адрес. Через поддомены подключают сторонние платформы, вроде сервиса справки, указывая CNAME на их имя.
Есть и общий хостинг с поддоменами: пользователи получают имя вида имя.платформа.ru. Тогда владельцем корневого домена выступает платформа.
На что влияет использование поддоменов
Для браузера разные поддомены обычно разные источники: у каждого своя политика безопасности и собственный набор куки. Но куки можно задать на родительский домен, и тогда они будут доступны всем его поддоменам; подробнее в статье kuki-fayly. Сертификат TLS выдают на конкретные имена либо на подстановочный вариант, покрывающий все поддомены одного уровня. Для поисковых систем поддомен рассматривается как отдельный узел, поэтому решение «блог на поддомене или в подкаталоге» влияет на организацию сайта, а не на принципиальную возможность ранжироваться.
Риски и проверка
Главный риск связан с забытыми записями. Если поддомен ссылается CNAME на сторонний сервис, а аккаунт на нём удалён, злоумышленник способен занять освободившееся имя на платформе и получить контроль над содержимым вашего поддомена. Такую ситуацию называют захватом поддомена. Регулярно просматривайте зону и удаляйте ненужное. Список известных имён покажет панель DNS, а проверить конкретное имя можно командой dig blog.example.com. Подстановочные записи и отсутствие точки в конце значения в некоторых редакторах — частые источники путаницы.
Подстановочные записи и делегирование в деталях
Запись со звёздочкой действует лишь на имена, для которых нет более точной записи, и на один и тот же уровень: *.example.com отвечает на shop.example.com, но не на a.b.example.com, если нет такого же шаблона глубже. Кроме того, если у имени существует любая запись другого типа, шаблон для этого имени не применяется вообще, и запросы могут возвращать пустой ответ. Такие тонкости объясняют, почему шаблон «иногда не работает».
При делегировании в родительской зоне записывают NS-записи дочернего поддомена и, если серверы имён находятся внутри самого поддомена, добавляют так называемые склеивающие записи с их адресами, иначе возникает замкнутый круг. Делегирование удобно, когда команда разработки самостоятельно управляет своей частью имён, не получая доступа к основной зоне.
Для порядка заведите единое правило именования: понятные короткие метки, отдельные для окружений, вроде test и stage. Это облегчает поддержку, а список имён проще просматривать при аудите зоны.