This is a continuation of a series of articles on operational engineering aspects of Azure public cloud computing that included the most recent discussion on Azure DNS which is a full-fledged general availability service that provides similar Service Level Agreements as expected from others in the category. In this article, we discuss delegation.
Azure DNS allows hosting a DNS zone and managing the DNS
records for a domain in Azure. The domain must be delegated to the Azure DNS
from the parent domain so that the DNS queries for that domain can reach Azure
DNS. Since Azure DNS isn't the domain registrar, delegation must be configured
properly. A domain registrar is a
company who can provide internet domain names. An internet domain is purchased
for legal ownership. This domain registrar must delegate to the Azure DNS.
The domain name system is a hierarchy of domains which
starts from the root domain that starts with a ‘.’ followed by the top-level
domains including ‘com’, ‘net’, ‘org’, etc. The second level domains are
‘org.uk’, ‘co.jp’ and so on. The domains in the DNS hierarchy are hosted using
separate DNS zones. A DNS zone is used to host the DNS records for a particular
domain.
There are two types of DNS Servers: 1) An authoritative
DNS Server that hosts DNS zones and it answers the DNS queries for records in
those zones only and 2) a recursive DNS server that doesn’t host DNS zones but
queries the authoritative servers for answer. Azure DNS is an authoritative DNS
service.
DNS clients in PCs or mobile devices call a recursive DNS
server for the DNS queries their application needs. When a recursive DNS server
receives a query for a DNS record, it finds the nameserver for the named domain
by starting at the root nameserver and then walks down the hierarchy by
following CNAMEs. The DNS maintains a special type of name record called an NS
record which lets the parent zone point to the nameservers for a child zone.
Setting up the NS records for the child zone in a parent zone is called
delegating the domain. Each delegation has two copies of the NS records: one in
the parent zone pointing to the child, and another in the child zone itself.
These records are called authoritative NS records and they sit at the apex of
the child zone.
The DNS records help with name resolution of services and
resources. It can manage DNS records for
external services as well. It supports private DNS domains as well which allows
us to use custom domain names with private virtual networks.
It supports record sets where we can use an alias record
that is set to refer to an Azure resource. If the IP address of the underlying
resource changes, the alias record set updates itself during DNS
resolution.
The DNS protocol prevents the assignment of a CNAME
records at the zone apex. This restriction presents a problem when there are
load balanced applications behind a Traffic Manager whose profile requires the
creation of a CNAME record. This can be mitigated with Alias records which can
be created at the zone apex.
No comments:
Post a Comment