Your Processing Environment

DNS as a Service - user documentation

Introduction

DNS as a Service (DNSaaS) provides functionality of managing configuration of user's domains. Managing configuration means that the user is capable of creating, updating and deleting the following DNS records:

Type Description
A Address record
AAAA IPv6 address record
CNAME Canonical name record
MX Mail exchange record
PTR Pointer record
SPR Sender Policy Framework
SRV Service locator
SSHFP SSH Public Key Fingerprint
TXT Text record


DNS configuration management is available via OpenStack web dashboard (Horizon), OpenStack command line interface as well as via API.

DNS records management is performed on the level of an OpenStack project.

Since DNSaaS purpose is to deal with external domain names, the internal name resolution (name resolution for private IP addresses within user's projects) is not covered by this documentation.

Prerequisites

  • We assume you already have a basic knowledge of Domain Name Service principles, understanding purpose of DNS records and of course have a project in one of CloudFerro cloud environments.
  • You also must own a domain purchased from any registrar (domain reseller). Obtaining a domain from registrars is not covered by this article.
  • If you want to use command line interface to manage domains configuration, you must be are able to authorize OpenStack CLI (see: How to install OpenStack client).

Domain delegation in registrar's system

The configuration of domain name in your registrar's system must point NS records to CloudFerro name servers. It can be achieved in two ways:

Option 1 - use CloudFerro name servers (recommended)

Configure NS records for your domain to the following CloudFerro name servers:

Purpose Name Server IP
primary name server cf2-ns1.cloudferro.net 185.48.233.242
secondary name server cf2-ns2.cloudferro.net 185.48.233.243
secondary name server cf2-ns3.cloudferro.net 185.48.233.244


You may check proper configuration of your exampledomain.com using dig command:

savit@eosav:~$ dig +noall +answer +additional -t ns exampledomain.com
exampledomain.com.                3235    IN      NS      cf2-ns2.cloudferro.net.
exampledomain.com.                3235    IN      NS      cf2-ns3.cloudferro.net.
exampledomain.com.                3235    IN      NS      cf2-ns1.cloudferro.net.
cf2-ns1.cloudferro.net. 2746    IN      A       185.48.233.242
cf2-ns2.cloudferro.net. 78502   IN      A       185.48.233.243
cf2-ns3.cloudferro.net. 78502   IN      A       185.48.233.244

Option 2 - setup your own glue records (not recommended)

Warning
This configuration option may be not supported by some registrars.

Configure glue records for your domain, so that they point to the following IP addresses: 

Purpose Name Server IP
primary name server ns1.exampledomain.com 185.48.233.242
secondary name server ns2.exampledomain.com 185.48.233.243
secondary name server ns3.exampledomain.com 185.48.233.244


Quick dig check:

savit@eosav:~$ dig +noall +answer +additional -t ns exampledomain.com
exampledomain.com.                3235    IN      NS      ns1.exampledomain.com.
exampledomain.com.                3235    IN      NS      ns2.exampledomain.com.
exampledomain.com.                3235    IN      NS      ns3.exampledomain.com.
ns1.exampledomain.com. 2746    IN      A       185.48.233.242
ns2.exampledomain.com. 78502   IN      A       185.48.233.243
ns3.exampledomain.com. 78502   IN      A       185.48.233.244

 

Domain configuration

Zone configuration

In order to manage domain exampledomain.com in OpenStack, login to OpenStack dashboard, choose the right project if different than default, go to Project → DNS → Zones, click Create Zone and fill the required fields:

  • Name: your domain name
  • Description: free text description
  • Email Address: an administrative e-mail address associated with the domain
  • TTL: Time To Live in seconds - a period of time between refreshing cache in DNS serves. Please note that the longer time, the faster will be name recognition for your domain by external DNS servers but also if you introduce changes, they will propagate slower. The default value of 3600 seconds is a reasonable compromise.
  • Type: You may choose if OpenStack name servers will be primary or secondary for your domain. Default: Primary. In case you want to setup secondary name servers, you just define IP addresses od master DNS servers for the domain.

After submitting, your domain should be served by OpenStack.

Quick check with dig:

savit@eosav:~$ dig -t any +noall +answer exampledomain.com @cf2-ns1.cloudferro.net
exampledomain.com.      3600    IN      SOA     cf2-ns2.cloudferro.net. astellasawicki.cloudferro.com. 1554373787 3565 600 86400 3600
exampledomain.com.      3600    IN      NS      cf2-ns3.cloudferro.net.
exampledomain.com.      3600    IN      NS      cf2-ns1.cloudferro.net.
exampledomain.com.      3600    IN      NS      cf2-ns2.cloudferro.net.

Adding records

To add a new record to domain, click Create Record Set next to domain name and fill the required fields. For example, to configure an address of web server in exampledomain.com , so that www.exampledomain.com is resolved to 185.178.84.12 which is a Floating IP address of your server, we should fill the form as follows:

  • Type: Type of record (for example A, MX, etc.)
  • Name: name of the record (for example www.exampledomain.com, mail.exampledomain.com, ...)
  • Description: free text description
  • TTL: Time To Live in seconds - a period of time between refreshing cache in DNS serves.
  • Records: Desired record value (there may be more than one - one per line):
    • for records of Type A put IP address
    • for records of Type MX put name of a mail server which hosts e-mails for the domain
    • for records of Type CNAME put original name which is to be aliased

Submit the form and check if your configuration works:

savit@eosav:~$ dig -t any +noall +answer www.exampledomain.com @cf2-ns1.cloudferro.net
www.exampledomain.com.  3600    IN      A       185.178.84.12

 

Note
Each time a name of domain or a server is added or edited, please remember to add dot '.' at the end of the entry.
For example: exampledomain.com or mail.exampledomain.com.

Managing records

Anytime you want to review, edit or delete records in your domain, visit OpenStack dashboard, Project → DNS → Zones. After clicking the domain name of your interest, choose Record Sets tab and see the list of all records:

From this screen you can update or delete records.

Limitations

There are the following limitations in OpenStack DNSaaS:

  1. You cannot manage NS records for your domain therfore:
    - you cannot add additional secondary name servers
    - you are unable to delegate subdomains to external servers
  2. Even though you are able to configure reverse DNS for your domain, this configuration will have no effect since reverse DNS for CloudFerro IP pools are managed on other DNS servers than OpenStack DNSaaS.

Additional documentation