Перейти к основному содержанию

OctoDNS — и бесплатный DNS хостинг

DNS

Сегодня у нас продолжение статьи про octoDNS, начатой ранее:

OctoDNS — DNS как код

DNS (Domain Name System) — компьютерная распределённая система для получения информации о доменах. Чаще всего используется для получения IP-адреса по имени хоста, получения информации о маршрутизации почты и/или обслуживающих узлах для протоколов в домене.

Сегодня я загружу DNS зону в DNS хостинг посредством octoDNS, и по ходу действий буду писать эту инструкцию. Зону я взял у bind9 сервера.

Небольшое отступление про бесплатные DNS хостинги

Многие хостинги предоставляют DNS сервер бесплатно при размещении у них домена. Однако, у нас речь именно про DNS хостинг.

1cloud.ru

https://1cloud.ru/services/dns

Вам не всегда требуется использовать octoDNS для того чтобы загружать DNS зоны в свой DNS хостинг. Если у вас небольшая DNS зона с несколькими записями, то иногда проще вручную создать их через web-интерфейс хостинга.

К примеру, у 1cloud.ru имеется бесплатный DNS хостинг. Мой домен живёт там.

Не рекламы ради пишу, ребята действительно не требуют финансовых вложений за эту услугу. Достаточно регистрации. Не потребуется каких-либо активаций платных продуктов, так и написано:

Для клиентов 1cloud аренда DNS-сервера в нашем облаке абсолютно бесплатна. Для этого не нужно подключать наши коммерческие услуги, такие как аренда выделенного сервера. Достаточно просто зарегистрироваться в нашей Панели и делегировать ваш домен на наши DNS-серверы.

Помимо web-интерфейса сервис может выкачать записи вашей зоны, если ваш DNS сервер уже где-то хостится. Вы можете быстро и без финансовых превозмогающих усилий развернуть свои небольшие DNS зоны.

Однако, у каждое бесплатной морковки имеются минусы. При попытке указать достаточно большую DNS зону я словил ошибку, которая гласила, что сервис может выкачать не более 50 записей зоны. А ручками вносить не менее 50 записей DNS зоны как-то не хочется. Какой-то автоматизации в работе с зонами DNS я там не нашёл.

Так что если у вас большие DNS зоны или требуется автоматизация через API или octoDNS — это в другие DNS хостинги.

cloudflare.com

В аккаунте с бесплатным тарифом доступен DNS хостинг. Это, наверное, сервис вне конкуренции за единственным моментом, который может сыграть роль при вашем выборе, он находится не в РФ.

А так его вполне можно использовать для личных или любительских проектов, не являющихся критически важными для бизнеса. К примеру, я его использую как DNS для моих домашних сервисов.

Nginx Proxy Manager — настраиваем SSL для всех сайтов домашней лаборатории

И выкачивать ваши доменные записи сервис умеет. И octoDNS. И защита имеется. Про ограничения ничего в документации не нашёл. Сам с большими зонами там работать не пробовал.

selectel.ru

https://selectel.ru/services/additional/dns/

Давайте будем честными и назовём DNS хостинг от Selectel не совсем бесплатным. Дело в том, что:

DNS-хостинг предоставляется бесплатно в дополнение к другим платным продуктам или услугам. Перед началом использования DNS вам необходимо пополнить баланс

А если закопаться в документацию, то можно узнать и сумму пополнения:

Сервис предоставляется бесплатно в дополнение к другим платным продуктам или услугам. Чтобы получить доступ к сервису, завершите регистрацию и пополните баланс на минимальную сумму 100 ₽.

Да-да, я пополнил баланс на 100 рублей и DNS хостинг активировался. Теперь к минусам:

  • Выкачивать ваши доменные записи сервис самостоятельно не умеет.
  • DNS Selectel нельзя использовать в качестве вторичного DNS.
  • А я добавлю что и в качестве только авторитетного DNS его нельзя использовать, вы не сможете изменить рутовые NS записи и задать какой-то сторонний вторичный DNS, если это вам понадобится.

Плюсы:

  • Можно добавлять записи через Web.
  • Не ограничено количество доменных зон, а также количество ресурсных записей в зоне.
  • Серверы защищены межсетевым экраном от DDoS-атак.
  • В сервисе работают четыре авторитетных NS-сервера.
  • API, Terraform, octoDNS, ExternalDNS для Kubernetes.

Выгрузка DNS на DNS хостинг через octoDNS

Давайте проверим, получится ли выгрузить большую DNS зону с помощью octoDNS на хостинг. Было бы интересно и с cloudflare попробовать, но сегодня поработаем именно с Selectel. Зря я что ли деньги платил?

Задача простая. Имеется файл зоны из bind9, нужно загрузить его на DNS хостинг.

Установка octoDNS

Установить octoDNS:

sudo apt-get update
sudo apt-get install python3 virtualenv
sudo apt-get install python3-pip

Создать директорию для работы с octoDNS с папками config и zones:

mkdir -p ~/octodns/{config,zones}
cd ~/octodns

Создать виртуальную среду для работы с octoDNS:

virtualenv env
source env/bin/activate

Установить octoDNS в виртуальную среду:

pip3 install octodns

Установить Selectel-провайдер для octoDNS:

pip3 install octodns_selectel

Проверить, что Selectel-провайдер установился корректно:

pip3 list | grep octodns-selectel

Работа с файлом зоны

Скачать файл зоны в директорию ~/octodns/zones. Перейти в директорию ~/octodns/zones:

cd ~/octodns/zones

Создать файл конфигурации import_config.yaml:

---
processors:
 no-root-ns:
   class: octodns.processor.filter.IgnoreRootNsFilter
providers:
   selectel:
       class: octodns_selectel.SelectelProvider
       token: <x_auth_token>
   zonefile:
       class: octodns_bind.ZoneFileSource
       directory: ./zones
       check_origin: false
zones:
   <example.com>.:
       sources:
       - zonefile
       processors:
       - no-root-ns
       targets:
       - selectel
  • <x_auth_token> — IAM-токен для проекта, в который нужно перенести данные
  • <example.com> — имя домена (зоны), которую нужно перенести

IAM-токен получить не так просто. Для начала нужно создать сервисную учётную запись с правами вносить изменения в проект.

https://docs.selectel.ru/access-control/user-types/#service-users

После этого можно получить IAM-токен для проекта, он действует 24 часа:

https://docs.selectel.ru/api/authorization/#get-iam-token-project-scoped

Выполните запрос:

curl -i -XPOST \
-H 'Content-Type: application/json' \
-d '{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"<username>","domain":{"name":"<account_id>"},"password":"<password>"}}},"scope":{"project":{"name":"<project_name>","domain":{"name":"<account_id>"}}}}}' \
'https://cloud.api.selcloud.ru/identity/v3/auth/tokens'
  • <username> — имя сервисного пользователя. Посмотреть имя можно в панели управления: в верхнем меню нажмите Аккаунт и перейдите в раздел Пользователи → вкладка Сервисные пользователи (раздел доступен только Владельцу аккаунта и Администратору пользователей)
  • <account_id> — номер аккаунта панели управления. Можно посмотреть в панели управления в правом верхнем углу (в запросе встречается два раза)
  • <password> — пароль сервисного пользователя, можно посмотреть при создании пользователя или изменить на новый
  • <project_name> — имя проекта

При успешной авторизации вернется ответ с кодом 201 Created в формате:

HTTP/2 201
X-Subject-Token: token

В заголовке X-Subject-Token находится токен.

Заполнили import_config.yaml, идём дальше.

Перейти в директорию ~/octodns:

cd ~/octodns

Запустить импорт:

octodns-sync --config-file=./config/import_config.yaml --doit

Сначала зона у меня не импортировалась. У сервисного пользователя не хватило прав, пришлось расширить ему права.

После этого большая зона импортировалась только частично. Я тестировать не реально большой зоне. После нескольких запусков импорта догрузились оставшиеся DNS записи.

Естественно, NS записи при импорте были заменены на NS серверы Selectel.

Заключение

Мы с вами выгрузили DNS зону с помощью octoDNS и познакомились с некоторыми бесплатными или почти бесплатными DNS хостингами. Если знаете ещё достойных кандидатов, накидывайте в комментариях. А мы прощаемся с вами, нам еще жалеть о потраченный 100 рублях.

P.S.

И не успел я ещё опубликовать статью, как мне позвонил менеджер Selectel и сказал, что DNS хостинг у них после Нового Года станет платным. Бесплатный тариф тоже останется, но непонятно с какими ограничениями. Вот такой вот пердимонокль...

Теги

 

Похожие материалы

Установка IIS в Windows Server 2012 R2

Пришла задача поднять IIS на Windows Server 2012 R2 для CRM BPM Online от Terrasoft. Указанные ниже настройки достаточны для работы данной приблуды. Однако, пришлось также забраться в конфиги данной сторонней системы и кое что править руками. Но это уже не относится к установке IIS и опысываться здесь не будет.

Теги