зачем нужен dns хостинг
Домашний хостинг сайтов с динамическим IP
У меня (как и у многих web-разработчиков) имеется с десяток сайтов которые необходимо где-то размещать (хостить).
Сайты практически не приносят прибыли, поскольку это какие-то старые работы (по разным причинам не пошедшие в продакшн), домашняя страница, сайт заведенный красивой почты и тому подобное. Но в то же время эти сайты жалко бросать, а потому приходится каждый месяц на них тратить вполне реальные деньги чтобы покупать хостинг. Деньги, прямо скажем небольшие, но тем не менее их жалко, поскольку отдачи от сайтов никакой нет.
В то-же время в наличии имеется:
Разумеется есть всем известные Dynamic DNS сервисы вроде noip.com, но они успешно решают лишь задачу удаленного доступа к нашему серверу (по SSH или FTP), но для хостинга совершенно нам не подходят, поскольку в настройках домена на DNS-сервере нам нужно обязательно прописать A-запись с реальным IP-адресом (а не ссылку на наш виртуальный домен).
Что делать?
Я не буду останавливаться на том, как настроить linux сервер (и тем более как его выбрать), поскольку предполагаю, что он у вас уже есть. Также я не буду подробно расписывать настройки nginx и Apache, поскольку опять-таки предполагаю, что вы с этим справитесь самостоятельно.
Первое с чем у меня возникли проблемы — это как перенаправить посетителей с моих доменов (у меня есть 2 домена) на мой домашний сервер. То есть чтобы клиент который набрал domain.com попал ровно на мой домашний сервер с учетом того, что на нем каждый день меняется IP-адрес.
Для решения нам нужно настроить DNS-сервер, а именно следующие записи: SOA, NS, MX, A, CNAME. Важно чтобы мы имели возможность настройкой TTL (time to live), поскольку время жизни наших записей должно быть очень небольшим, буквально 60-120 секунд. В противном случае при смене IP-адреса сервера пользователи долго не смогут попасть на наш сервер (из-за кеширования).
Итак, нам нужен DNS сервер, варианты решения:
Используем сервисы которые предоставляют нам DNS-хостинг
Для этого есть ряд бесплатных сервисов, из которых самым популярным является freedns.afraid.org. На таких сервисах можно добавить свой домен(ы) и получить возможность через API обновлять у них A-запись при помощи небольшого скрипта.
Выглядит вполне неплохо, но подвох в том, что эти сервисы оставляют за собой право довешивать к вашему домену поддомены третьего уровня. То есть вы зарегистрировали у них user.ru, а они спокойно довешают свои сайты вида hello.user.ru, shop.user.ru и так далее. Разумеется от этого можно отказаться, но… за деньги. Платить деньги за такие сервисы смысла я не вижу, поскольку за сравнимые деньги вы можете купить полноценный хостинг на каком-нибудь провайдере без всяких плясок вокруг DNS настроек.
Остальные сервисы рассматривать не будем, а сосредоточимся на втором варианте.
Используем собственный DNS-сервер в связке с DDNS-доменом
Для этого варианта у нас, во-первых, должен быть DDNS-домен (который обновляется при смене IP), например, domain.ddns.net, а во-вторых, придется установить и настроить BIND на нашем сервере.
Всего необходимо сделать ровно 5 шагов. Везде под словами «domain» или «domain.ru» подразумевается ваше имя домена (короткое или полное).
1. Настроить 2 или 3 DDNS-поддомена
Почему 2 или 3? Потому, что ряд регистрантов не разрешит вам использовать домен только с одним NS-сервером. Самое обидно, что не все про это скажут — ваш домен просто не будет работать, но вы не будете понимать почему.
Тут все просто — идем на noip.com, там регистрируем аккаунт и добавляем 3 бесплатных поддомена (больше 3 не даст).
2. Настраиваем собственный DNS-сервер
Создаем зоны (по одной зоне на каждый наш домен):
и собственно файл с настройками зоны:
Примечание: обращаю внимание, что TTL устанавливаем равным 60 секунд. В файле /etc/bind/named.conf.local добавляем подключение нашей зоны:
Все, рестартуем BIND:
И глянем /var/log/syslog чтобы там не было сообщений об ошибках
3. Настроить наш домен(ы)
Идем в панель управления регистратора и там в настройках нашего домена в качестве NS-серверов указываем созданные DDNS-поддомены:
После этого возможно придется подождать несколько часов (или даже сутки) пока настройки среплицируются между всеми серверами.
4. Настроить периодическое обновление IP-адресов
Мой роутер поддерживает обновление IP-адреса на одном домене, но мне нужно это делать сразу для 3-х доменов. Плюс нам надо обновлять IP-адрес в конфиге BIND’а, поэтому напишем скрипт который будет делать:
Скрипт нужно запускать под рутом (чтобы ему хватило прав обновлять конфиги BIND’а и рестартовать его). Добавляем в crontab рута его запуск каждую минуту:
Пару слов про определение текущего IP-адреса. В скрипте выше это делается через резолвинг DDNS-поддомена domain.ddns.net. То есть сначала наш роутер его туда прописывает, а потом мы читаем. Это не очень хороший вариант, поскольку мы завязываемся на роутер и можем потерять несколько минут пока на DDNS-поддомене обновится IP-адрес на актуальный. Все это время наш сервер будет недоступен.
Поэтому у себя я использовал улучшенный вариант, который заодно не лазит в интернет:
В данном варианте мы загружаем главную страницу роутера (через http), дальше регэкспом находим на ней текущий IP-адрес. Разумеется, этот вариант подходит далеко не всем, но на DD-WRT прошивках работает.
5. Настройка роутера
Вывод
Итак, что я получил в итоге:
Давайте уже разберемся в DNS

Внимательный читатель найдет на этой картинке IPv6
Люди часто озадачены доменами. Почему мой сайт не работает? Почему эта хрень поломана, ничего не помогает, я просто хочу, чтобы это работало! Обычно, вопрошающий или не знает про DNS, или не понимает фундаментальных идей. Для многих DNS — страшная и непонятная штука. Эта статья — попытка развеять такой страх. DNS — это просто, если понять несколько базовых концепций.
Что такое DNS
DNS расшифровывается как Domain Name System. Это глобальное распределенное хранилище ключей и значений. Сервера по всему миру могут предоставить вам значение по ключу, а если им неизвестен ключ, то они попросят помощи у другого сервера.
Базовые штуки
Давайте взглянем на маппинг между именем и адресом:
Здесь есть только одна интересная деталь: информация о самом запросе. Говорится, что мы запросили запись и получили ровно один ответ. Вот:
Оставшаяся часть ответа описывает сам ответ:
Как видите, при обычном DNS-запросе происходит куча всего. Каждый раз, когда вы открываете веб-страницу, браузер делает десятки таких запросов, в том числе для загрузки всех внешних ресурсов вроде картинок и скриптов. Каждый ресурс отвечает за минимум один новый DNS-запрос, и если бы DNS не был рассчитан на сильное кэширование, то трафика генерировалось бы очень много.
Корневые DNS-сервера обслуживаются различными компаниями и государствами по всему миру. Изначально их было мало, но интернет рос, и сейчас их 13 штук. Но у каждого из серверов есть десятки или сотни физических машин, которые прячутся за одним IP.
Другие типы
Что не так с CNAME
Запросы к другим серверам
Давайте представим, что конфигурация DNS испорчена. Вам кажется, что вы исправили проблему, но не хотите ждать когда обновится кэш чтобы удостовериться. С помощью dig можно сделать запрос к публичному DNS-серверу вместо своего дефолтного, вот так:
Типичные ситуации
Давайте рассмотрим типичные ситуации, знакомые многим веб-разработчикам.
Редирект домена на www
Этот IP принадлежит Namecheap’у, и там крутится маленький веб-сервер, который просто делает перенаправление на уровне HTTP на адрес http://www.iskettlemanstillopen.com :
CNAME для Heroku или Github
Wildcards
Заключение
Надеюсь, теперь у вас есть базовое понимание DNS. Все стандарты описаны в документах:
Есть еще пара интересных RFC, в том числе 4034, который описывает стандарт DNSSEC и 5321, который описывает взаимосвязь DNS и email. Их интересно почитать для общего развития.
Часто задаваемые вопросы о DNS-хостинге
Что такое DNS?
Компьютеры в интернете не имеют имен, данные передаются с использованием сложных для запоминания IP-адресов (числовые адреса вида 123.123.123.123). Упростить работу с сайтами призвана система DNS (Domain Name System). Она преобразует доменное имя, которое вводит пользователь в браузере, в IP-адрес для доступа к серверу.
Что такое DNS-сервер?
DNS-сервер — это сервер, на котором запущенно специальное программное обеспечение. Изначально назначение этого программно-аппаратного комплекса было хранение таблицы DNS-записей вида: «имя домена» — «IP-адрес», так называемых записей типа «А», например:
Домен IP-адрес сервера
nic.ru 115.115.115.115
Сейчас В системе DNS содержатся и другие ресурсные DNS-записи: «MX», «TXT», «CNAME» и др. Они необходимы для работы домена как адреса сайта, почты и многих других сервисов.
Что такое «Ресурсные записи DNS»?
Ресурсные записи (DNS-записи домена) — это записи в системе доменных имен о соответствии имени и служебной информации о сервере, на которое это имя должно указывать. Каждая ресурсная запись необходима для работы определённой службы. Например, в ресурсную запись типа MX вносятся данные для корректной работы электронной почты на домене.
Зачем прописывать DNS-серверы для домена?
Без размещения информации о домене на DNS-серверах работа сайта или почты на нем невозможна. Для гарантии отказоустойчивости DNS-серверы прописываются парами — выход из строя одного сервера не скажется на доступности сайта.
Для чего нужен динамический DNS?
Динамический DNS — технология, которая позволяет назначать постоянное имя устройству с изменяющимся IP-адресом, обеспечивая доступ по доменному имени к сетевым устройствам — компьютерам, роутерам, веб-камерам и т.д.
Динамический DNS поддерживается на всех тарифах услуги DNS-хостинг.
Как настроить динамический DNS?
Для работы динамичеcкого DNS необходимо настроить сетевое оборудование через панель администратора. Для настройки потребуются:
Подробные инструкции по работе с панелью администратора можно найти на сайте производителя оборудования.
Что такое DNS хостинг и как он работает

Кратко о DNS
Для начала остановимся на базовых понятия, без понимания которых сложно двигаться дальше.
Где размещаются DNS сайта
При регистрации доменного имени для своего ресурса, возникает вопрос, где разместить его DNS. Разумеется, первое, что приходит в голову, это сервер, на котором вы приобрели хостинг. Это будет так называемый основной (primary) DNS. Но как известно, для надежной работы сайта необходимо продублировать DNS еще на одном сервере. С этого момента возможны варианты.
Первый метод дешевле, но в случае неполадок с сервером — ваш сайт становится полностью недоступен. Этого ли вы хотели? Еще древние англичане пустили в ход поговорку, которая гласит: «Don’t put all your eggs in one basket». Что в буквальном переводе означает: «Не кладите яйца в одну корзину».
Второй метод потребует дополнительного вложения средств, но вместе с тем — он намного надежнее. Уважающиеся себя DNS хостеры, осуществляют поддержку DNS в крупных регионах РФ, а также в странах Европы и Африки. Чем ближе к пользователю находится DNS хостинг, тем быстрее он получит отклик.
Как работает DNS хостинг
Обычная схема взаимодействия основного DNS и DNS хостинга заключается в следующем. Первичный сервер лишь хранит запись о DNS, а вторичные заняты ретрансляцией для пользователей. Запрос на обновление доменных имен DNS хостинг подает автоматически (несколько раз в неделю), либо это происходит после обновления данных на первичном сервере.
Для успешной работы DNS хостинга желательно содержать первичный и вторичный серверы:
DNS хостинг — надежная и безотказная система, которая гарантирует бесперебойную работу вашего ресурса, даже если первичный сервер по каким-либо причинам недоступен.
Как выбрать DNS-сервер
Если на первом месте стоит отказоустойчивость и доступность сайта в любое время, то лучшим решением будут платные DNS. Платные сервисы также подходят, если злоумышленники DDoS-ят ваши серверы имен.
Если не хотите зависеть от сторонних компаний и самостоятельно управлять DNS, ваш выбор — собственные серверы имен. Ответственность за их работоспособность лежит на вас.
Если не хочется решать вопросы размещения и настройки, а кратковременные отказы не критичны, то ваш выбор — бесплатные DNS или DNS провайдера.
Что такое DNS-сервер, его виды
DNS-сервер (NS, Name Server, сервер имён) отвечает за преобразование доменного имени в IP-адрес. С помощью IP-адреса браузер открывает запрошенный сайт.
Пример преобразования домена в IP-адрес
firstvds.ru → 80.87.203.35
Для размещения DNS-серверов существует несколько вариантов:
Обычно используются собственные серверы или серверы хостинга. Рассмотрим варианты подробнее, выявим преимущества и недостатки каждого из них.
DNS-сервер провайдера
При покупке сервера хостинги могут предоставлять бесплатные серверы имён (как первичные, так и вторичные). Этот вариант подходит для тех, кто не хочет «заморачиваться»: при добавлении домена в панели управления остальные параметры настраиваются автоматически (так это работает на нашем хостинге).
Главный недостаток — хостинги предоставляют DNS-сервисы с базовой функциональностью. Они справляются с основой задачей (трансляция домена в IP), но дополнительная функциональность (API, IPv6, DDNS, Geo Routing) отсутствует или урезана.
Все клиенты используют общие серверы имен. Если на NS одного из клиентов заказана сильная DDoS-атака, то сбои в работе могут испытывать все остальные клиенты. Несмотря на это, хостинги стараются защитить свои DNS от DDoS.
Плюсы:
Минусы:
Собственный DNS-сервер
Подходит для обладателей виртуальных и тех, кто хочет купить выделенный сервер. Клиент размещает DNS на своем сервере, обычно на одном сервере с сайтом.
Настройка с помощью панели. Большинство панелей управления поддерживают настройку серверов имён. Клиенты FirstVDS используют панель ISPmanager, в которой есть такая возможность.
Самостоятельная настройка. Настроить серверы имён можно и без панели управления. Для этого достаточно установить программу DNS-сервера (например, BIND) и создать конфигурационный файл по образцу.
DNS-сервер и защита от DDoS. Если вы пользуетесь услугами защиты от DDoS, размещать DNS-сервис и сайт на одном сервере не рекомендуется. Cервисы защиты от DDoS могут блокировать весь UDP-трафик в случае сильных атак, и клиенты не могут получить доступ к серверу имен — сайт будет недоступен по доменному имени. В этом случае DNS следует располагать на отдельном сервере.
Плюсы:
Минусы:
Регистраторы требуют, чтобы для каждого домена было минимум два сервера имён: первичный (master) и как минимум один вторичный (slave). В качестве адресов должны быть указаны два разных IP-адреса.
Чтобы удовлетворить это требование, к серверу подключают дополнительный IP-адрес. Основный адрес указывают в качестве первичного NS, а дополнительный адрес — в качестве вторичного NS.
Бесплатные DNS-хостинги
В интернете можно найти множество ресурсов, предлагающих бесплатные DNS-сервера.
Бесплатный DNS-хостинг — хорошее решение, если вы не имеете возможности администрировать DNS-сервер самостоятельно. Но будьте внимательны: часто в условиях бесплатных сервисов прописывается отказ от ответственности. Могут присутствовать ограничения по количеству доменов, по количеству запросов в месяц. Может быть запрещено размещение коммерческих проектов. Хорошо изучите условия выбранного сервиса.
Плюсы:
Минусы:
Платные DNS-хостинги
Платные DNS-хостинги, в отличие от бесплатных, гарантируют уровень сервиса и предоставляют набор дополнительных возможностей. Такой ДНС-хостинг позиционируется как отказоустойчивый и высокодоступный. У него есть перенос уже действующих настроек с других серверов и полноценный API для которого написано множество готовых рецептов.
Плюсы:
Минусы:
Зачем нужен API на DNS-хостинге
Самый распространенный способ применения — создание отказоустойчивой системы. Например, у нас есть два сервера. Сервер А — основной, на нем расположен сайт, к которому обращаются посетители. Сервер Б — резервный, на нем хранится актуальная копия (реплика) основного сайта.
Представим, что мы арендуем платный ДНС-сервер. Если сайт работает в штатном режиме, то данные отдаются с сервера А. На сервере Б работает скрипт, который проверяет доступность сайта на сервера А. Если он перестает работать, то скрипт по API обращается к ДНС-хостингу и пишет в А-запись IP-адрес сервера Б. Сайт продолжает работать с резервного сервера.
Поскольку переключение происходит с минимальными задержками, посетители не заметят переключения.
CDN-прокси
Особняком стоят CDN-прокси (Content Distribution Network), которые можно использовать и как DNS. CDN-прокси ускоряют работу сайта благодаря кэшированию данных на распределённой сети серверов. Сайт отдается клиенту с ближайшего к нему сервера. Также CDN может фильтровать вредоносные запросы (защищать сайт от DDoS).
CDN-сети имеют серьёзный недостаток: IP-адрес для доменов, размещённых в CDN, присваивается случайным образом. Т.е. попасть на сайт или сервер напрямую по IP-адресу будет невозможно.
Кроме этого, сайт может быть заблокирован на территории РФ. IP-адреса сайтов с запрещенным контентом попадают в черный список Роскомнадзора и блокируются провайдерами (и это не редкость для CDN-сетей). Если вашему домену случайным образом достанется один из таких адресов, то сайт окажется недоступным. По этой причине необходимо внимательно подходить к выбору CDN-провайдера и заранее узнавать об IP-адресах, находящихся в черных списках, и возможных проблемах с ними.
Не рекомендуем использовать CDN-прокси для сайтов, аудитория которых находится в России.
Плюсы:
Минусы:
