Transfer domains from DNS hosting (legacy) to DNS hosting (actual)
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
-
Install Python 3 and virtualenv:
- Linux
- macOS
sudo apt-get update
sudo apt-get install python3 virtualenvbrew install python
brew install virtualenv -
Create a directory to work with octoDNS:
mkdir ~/octodns
-
Navigate to the
~/octodns
directory:cd ~/octodns
-
Create a virtual environment to work with octoDNS:
virtualenv env
-
Activate the virtual environment:
source env/bin/activate
-
Install octoDNS in a virtual environment:
pip3 install octodns
-
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
-
Set Selectel Provider for octoDNS:
pip3 install octodns_selectel
-
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
-
Navigate to the
~/octodns
directory:cd ~/octodns
-
Create the
migration_config.yaml
file:nano migration_config.yaml
-
Copy the contents into the file:
---
processors:
no-root-ns:
class: octodns.processor.filter.IgnoreRootNsFilter
providers:
selectel_legacy:
class: octodns_selectel.SelectelProviderLegacy
token: <selectel_token>
selectel:
class: octodns_selectel.SelectelProvider
token: <keystone_token>
zones:
<example.com.>:
sources:
- selectel_legacy
processors:
- no-root-ns
targets:
- selectel.Specify:
<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;<example.com.>
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.
-
Start the transfer:
octodns-sync --config-file=migration_config.yaml --doit
-
In Control Panel, go to DNS.
-
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.
-
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 —
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
, 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.
- NS —
3. Delegate domain to DNS hosting (actual)
If you have transferred multiple domains, you need to delegate each domain.
- Go to the control panel of the domain registrar where your domain is registered.
- In the NS records, replace the values with the DNS hosting (actual) NS servers:
a.ns.selectel.ru
,b.ns.selectel.ru
,c.ns.selectel.ru
,d.ns.selectel.ru
. Each server must be listed in a separate entry.