---
title: 'Перенести домены из стороннего DNS-хостинга'
sidebar_label: 'Перенести домены из стороннего DNS-хостинга'
description: 'Как перенести домены из стороннего DNS-хостинга в DNS-хостинг Selectel'
sidebar_position: 1
---

import Formbricks from '@theme/MDXComponents/Formbricks'

import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'
import {TabItemLabel} from 'docs-kit/components'

# Перенести домены из стороннего DNS-хостинга

:::info

Это инструкция для переноса доменов от стороннего провайдера в DNS-хостинг Selectel (actual) через импорт файла зоны с помощью octoDNS.

Если ваш текущий DNS-хостинг не предоставляет возможность скачать файл зоны, но поддерживается в octoDNS, вы можете перенести данные напрямую, без скачивания файла зоны. Подробнее о поддерживаемых провайдерах и работе с ними в [документации octoDNS](https://github.com/octodns/octodns?tab=readme-ov-file#providers), пример конфигурации для переноса в разделе [Syncing between providers](https://github.com/octodns/octodns?tab=readme-ov-file#syncing-between-providers).

:::

1. [Установите octoDNS](#install-octodns).
2. [Импортируйте файл зоны](#import-zone-file).
3. [Делегируйте домен в DNS-хостинг (actual)](#delegate-domain).

## 1. Установить octoDNS \{#install-octodns}

1. Установите Python 3, virtualenv и pip3:

   <Tabs queryString="install-components">
     <TabItem value="linux" default>
       <TabItemLabel>
         Linux
       </TabItemLabel>

       ```bash
       sudo apt-get update
       sudo apt-get install python3 virtualenv
       sudo apt-get install python3-pip
       ```
     </TabItem>

     <TabItem value="macos">
       <TabItemLabel>
         macOS
       </TabItemLabel>

       ```bash
       brew install python3
       brew install virtualenv
       ```
     </TabItem>
   </Tabs>

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

   ```bash
   mkdir -p ~/octodns/{config,zones}
   ```

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

   ```bash
   cd ~/octodns
   ```

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

   ```bash
   virtualenv env
   ```

5. Активируйте виртуальную среду:

   ```bash
   source env/bin/activate
   ```

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

   ```bash
   pip3 install octodns
   ```

7. Установите [Selectel-провайдер](https://github.com/octodns/octodns-selectel) для octoDNS:

   ```bash
   pip3 install octodns_selectel
   ```

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

   ```bash
   pip3 list | grep octodns-selectel
   ```

   В ответе появится установленная версия провайдера, например:

   ```bash
   octodns_selectel 0.99.1
   ```

   Минимальная версия Selectel-провайдера для работы с DNS-хостингом (actual) — 0.99.1.

## 2. Импортировать файл зоны \{#import-zone-file}

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

2. Перейдите в директорию `~/octodns/zones`:

   ```bash
   cd ~/octodns/zones
   ```

3. Измените имя скачанного файла на имя вашего домена с точкой на конце:

   ```bash
   mv <zone_file.txt> <example.com>.
   ```

   Укажите:

   * `<zone_file.txt>` — имя файла зоны, который вы скачали на шаге 1;
   * `<example.com>` — имя вашего домена.

4. Перейдите в директорию `~/octodns/config`:

   ```bash
   cd ~/octodns/config
   ```

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

   ```bash
   nano import_config.yaml
   ```

6. Запишите в файл конфигурацию для импорта зоны:

   ```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-токен для проекта](/api/authorization/#iam-token-project-scoped), в который нужно перенести данные;
   * `<example.com>` — имя домена (зоны), которую нужно перенести.

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

   ```bash
   cd ~/octodns
   ```

8. Запустите импорт:

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

9. В [панели управления](https://my.selectel.ru/dns/default/hosting/) в верхнем меню нажмите **Продукты** и выберите **DNS-хостинг**.

10. Убедитесь, что вы находитесь в проекте, в который перенесли данные. Для этого откройте меню проектов (название текущего проекта) и выберите нужный проект.

11. Убедитесь, что зона появилась в списке зон, а на ее странице отображаются перенесенные записи.<br />Ресурсные записи одного типа отображаются как группа записей.<br />Ресурсные записи NS и SOA не переносятся, они будут автоматически созданы в DNS-хостинге (actual) со значениями по умолчанию, которые нельзя редактировать:

    * NS — `a.ns.selectel.ru.`, `b.ns.selectel.ru.`, `c.ns.selectel.ru.`, `d.ns.selectel.ru.`
    * SOA — `a.ns.selectel.ru. support.selectel.ru.` `<zone_serial_number> 10800 3600 604800 60`, где `<zone_serial_number>` — серийный номер зоны, который изменяется при обновлении зоны и сигнализирует кэширующим серверам, что записи необходимо закэшировать заново.

    Если данные перенеслись неправильно или не полностью, [создайте тикет](https://my.selectel.ru/tickets/create). Домены, у которых есть только NS- и SOA-записи, не будут перенесены.

## 3. Делегировать домен в DNS-хостинг (actual) \{#delegate-domain}

1. Перейдите в панель управления доменного регистратора, у которого зарегистрирован ваш домен.
2. В NS-записях замените значения на NS-серверы DNS-хостинга (actual): `a.ns.selectel.ru`, `b.ns.selectel.ru`, `c.ns.selectel.ru`, `d.ns.selectel.ru`. Каждый сервер должен быть указан в отдельной записи.
3. Подождите, пока перенесенные ресурсные записи распространятся на DNS-серверы. Распространение может занимать до 72 часов.
4. Опционально: [проверьте ресурсные записи](/dns-hosting/records/check-records.mdx). Если спустя 72 часа ресурсные записи не появились на авторитетных серверах DNS-хостинга: `a.ns.selectel.ru`, `b.ns.selectel.ru`, `c.ns.selectel.ru`, `d.ns.selectel.ru`, [создайте тикет](https://my.selectel.ru/tickets/create).

<Formbricks />
