Skip to main content
Transfer domains from DNS hosting (legacy) to DNS hosting (actual)
Last update:

Transfer domains from DNS hosting (legacy) to DNS hosting (actual)

For your information

We have released new version of DNS hosting (actual) and are discontinuing support and development of legacy version (legacy). Domains and resource records in DNS hosting (legacy) continue to work, we will warn you in advance if they are discontinued.

We recommend migrating domains and resource records to DNS hosting (actual) now to avoid disruption of sites when DNS hosting (legacy) goes down.

If a domain in DNS hosting (legacy) only has NS and SOA records, it will not migrate to DNS hosting (actual). If you need to transfer such a domain, it needs to be added via control panel.

  1. Install octoDNS.
  2. Transfer data.
  3. Delegate domain to DNS hosting (actual).

1. Install octoDNS

  1. Install Python 3 and virtualenv:

    sudo apt-get update
    sudo apt-get install python3 virtualenv
  2. Create a directory to work with octoDNS:

    mkdir ~/octodns
  3. Navigate to the ~/octodns directory:

    cd ~/octodns
  4. Create a virtual environment to work with octoDNS:

    virtualenv env
  5. Activate the virtual environment:

    source env/bin/activate
  6. Install octoDNS in a virtual environment:

    pip3 install octodns
  7. Check that the package has installed correctly:

    octodns-sync --version

    The response will show the installed version of octoDNS, for example:

    octoDNS 1.4.0
  8. Set Selectel Provider for octoDNS:

    pip3 install octodns_selectel
  9. Check that the Selectel provider has been installed correctly:

    pip3 list | grep octodns-selectel

    The response will show the installed version of the ISP, for example:

    octodns_selectel 0.99.1

    The minimum Selectel provider version to migrate is 0.99.1.

2. Transfer data

  1. Navigate to the ~/octodns directory:

    cd ~/octodns
  2. Create the migration_config.yaml file:

    nano migration_config.yaml
  3. Copy the contents into the file:

    class: octodns.processor.filter.IgnoreRootNsFilter

    class: octodns_selectel.SelectelProviderLegacy
    token: <selectel_token>
    class: octodns_selectel.SelectelProvider
    token: <keystone_token>

    - selectel_legacy
    - no-root-ns
    - selectel.


    • <selectel_token> is your Selectel token (API key);
    • <keystone_token> is your Keystone token for the cloud platform project to which you want to migrate data;
    • <> is the domain name as it appears in DNS hosting (legacy), with a dot on the end. To transfer all domains, specify "*" without a dot instead of the domain name.
  4. Start the transfer:

    octodns-sync --config-file=migration_config.yaml --doit
  5. In Control Panel, go to DNS.

  6. Make sure you are in the project to which you migrated the data. To do this, open the projects menu (name of the current project) and select the desired project.

  7. Verify that the migrated domains are displayed in the zone list and that each zone page displays the migrated domain records.
    Resource records of the same type are displayed as a group of records.
    NS and SOA resource records are not migrated, they will be automatically created in DNS hosting (actual) with default values:

    • NS —,,,;
    • SOA — <zone_serial_number> 10800 3600 604800 60, where <zone_serial_number> is the zone serial number, which changes when the zone is updated and signals to the caching servers that records need to be cached again.

    If the data was migrated incorrectly or incompletely, create a ticket.

3. Delegate domain to DNS hosting (actual)

If you have transferred multiple domains, you need to delegate each domain.

  1. Go to the control panel of the domain registrar where your domain is registered.
  2. In the NS records, replace the values with the DNS hosting (actual) NS servers:,,, Each server must be listed in a separate entry.