Configure DNS on the private network of a dedicated server
You can configure DNS on private networks of dedicated servers. This will allow servers on the private network to be addressed by domain names instead of IP addresses.
The Private DNS service is used for configuration. The service works on the basis of cloud platform networks, communication with the networks of dedicated servers is carried out through a global router.
Private DNS is configured via API, and the IAM token for the project is used to authenticate requests. For a complete list of API methods for working with the service, see Private DNS API.
- Configure private DNS on the cloud platform network.
- Link your dedicated server network and cloud platform network through a global router.
- Specify the IP addresses of the DNS servers on the dedicated servers.
1. Configure private DNS on the cloud platform network
-
If you do not already have a private network in your cloud platform, create a private network. The network must be in the same project as the dedicated servers for which you want to use private DNS.
-
Add a service user with the role
member. -
For the added service user, get an IAM token for the project.
-
Open the CLI.
-
Create a private zone with records, do this by executing an API request:
curl -X POST \
<endpoint>/zones \
-H "X-Auth-Token: <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "<zone_name>",
"ttl": <ttl>,
"domain": "<zone_domain_name>.",
"records": [
{
"type": "<record_type>",
"domain": "<subdomain>.<zone_domain_name>.",
"ttl": <record_ttl>,
"values": [
<value1>,<value2>
]
}
]
}'Specify:
-
<endpoint>- URL to access the private DNS API in the desired pool. The list of URLs can be found in the instructions List of URLs; -
<token>- The IAM token for the project you received in step 3; -
<zone_name>- zone name; -
<ttl>- TTL of the zone in seconds, default is 3600. TTL is the time during which the zone resource record in the DNS server cache is considered up-to-date and does not need to be re-cached; -
<zone_domain_name>- zone domain name, e.g.example. Can contain numbers, Latin letters and hyphens; -
optional: add a
"records"block with information about resource records in the zone. The records can be created and modified at any time after the zone is created. Records are specified in groups by type, for each group specify:<record_type>- record type:A,AAAA,MX,TXT,CNAME;<subdomain>- domain name of the port, e.g.first. Can contain numbers, Latin letters and hyphens;<record_ttl>- TTL of the record in seconds, default is 3600. To have the record inherit the TTL of the zone, specify-1;<value1>,<value2>- record values.
-
-
Connect the private network to the DNS resolver by making an API request:
curl -X POST \
<endpoint>/services \
-H "X-Auth-Token: <token>" \
-H "Content-Type: application/json" \
-d '{
"network_id": "<network_id>"
}'Specify:
<endpoint>- URL to access the private DNS API in the desired pool. The list of URLs can be found in the instructions List of URLs;<token>- The IAM token for the project you received in step 3;<network_id>- Network ID, can be copied from the control panel: in the top menu, click Products → Cloud Servers → Network → tab Private Networks → in the network card, click .
2. Link the dedicated server network and the cloud platform network through a global router
Link the dedicated server network and the cloud platform network through a global router, use the instructions Link products and services through a global router.
3. Specify IP addresses of DNS servers on dedicated servers
On each of the dedicated servers on the network that you have linked to the cloud platform network, you must specify private DNS servers-the DNS resolver IP addresses from the cloud network.
Ubuntu
Debian
CentOS
Windows
-
Open the
netplanutility configuration file with thevitext editor:vi /etc/netplan/<netcfg>.yamlSpecify
<netcfg>is the name of thenetplanutility configuration file, such as50-cloud-init.yamlor01-netcfg.yaml. -
Specify DNS servers for the network interface of the private network that you linked to the cloud platform network. To do this, in the desired interface block, add a
nameserversblock with the DNS resolver IP addresses. For example:id1:
addresses:
- 192.168.0.3/24
routes:
- to: 172.16.0.0/24
via: 192.168.0.1
nameservers:
addresses:
- <dns_server_ip_address_1>
- <dns_server_ip_address_2>Specify
<dns_server_ip_address_1>and<dns_server_ip_address_2>as the IP addresses of the DNS resolver. You can view the addresses in the control panel: in the top menu, click Products → Cloud Servers → Network → Private Networks tab → open the Network page → Ports tab → in the port card labeled DNS Resolver, view the IP addresses. -
Press ESC.
-
Exit the
vitext editor with your changes saved::wq -
Apply the configuration:
netplan apply -
Optional: reboot the server.
-
Open the network interfaces configuration file with the
vitext editor:vi /etc/network/interfaces.d/50-cloud-init -
Specify DNS servers for the network interface of the private network that you linked to the cloud platform network. To do this, in the desired interface block, add the string
dns-nameserverswith the DNS resolver IP addresses. For example:auto eth0
iface eth0 inet static
address 192.168.0.3
dns-nameservers <dns_server_ip_address_1> <dns_server_ip_address_2>Specify
<dns_server_ip_address_1>and<dns_server_ip_address_2>as the IP addresses of the DNS resolver. You can view the addresses in the control panel: in the top menu, click Products → Cloud Servers → Network → Private Networks tab → open the Network page → Ports tab → in the port card labeled DNS Resolver, view the IP addresses. -
Press ESC.
-
Exit the
vitext editor with your changes saved::wq -
Restart the network:
service networking restart -
Optional: reboot the server.
-
Get the name of the network interface of the private network for which you want to specify DNS servers, for this purpose, print the information about the network interfaces:
ip address -
Create or open the private network interface configuration file with the
vitext editor:vi /etc/sysconfig/network-scripts/ifcfg-<eth_name>Specify
<eth_name>is the name of the private network interface that you obtained in step 2. -
Specify DNS servers for the network interface of the private network that you linked to the cloud platform network. To do this, in the desired interface block, add lines with the DNS resolver IP addresses. For example:
NAME="eth0"
ONBOOT=yes
BOOTPROTO=none
IPADDR="192.168.0.3"
DNS1=<dns_server_ip_address_1>
DNS2=<dns_server_ip_address_2>Specify
<dns_server_ip_address_1>and<dns_server_ip_address_2>as the IP addresses of the DNS resolver. You can view the addresses in the control panel: in the top menu, click Products → Cloud Servers → Network → Private Networks tab → open the Network page → Ports tab → in the port card labeled DNS Resolver, view the IP addresses. -
Press ESC.
-
Exit the
vitext editor with your changes saved::wq -
Restart the network:
systemctl restart network -
Optional: reboot the server.
-
Open Windows Settings.
-
Open Network & Internet.
-
Open the Network and Sharing Center.
-
Open the network interface of the private network.
-
Click Properties.
-
From the list, select Internet Protocol version 4 (TCP/IPv4).
-
Click Properties.
-
Select Use the following DNS server addresses.
-
In the Preferred DNS server and Alternate DNS server fields, enter the IP addresses of the DNS resolver. You can view the addresses in the Control Panel: in the top menu, click Products → Cloud Servers → Network → Private Networks tab → open the Network page → Ports tab → in the port card labeled DNS Resolver, view the IP addresses.
-
Press OK.
-
Optional: reboot the server.