Michael O.
7min Read

Extended DNS Records – SVR, DNAME and AAAA records

Extended DNS Records - SVR, DNAME and AAAA records

We continue looking at less commonly used DNS records, but we also look at the soon to be common AAAA record which is merely the IPV6 version of an A record. Before that, we will first examine the SRV and the rare DNAME records. Get email hosting.

The SRV extended DNS record

SRV records are DNS entries that define a service ie the hostname and port number of a server for a specific service. Certain protocols such as SIP and XMPP often need SRV records to function properly. A SRV record looks like this:

_service._proto.name. TTL class SRV priority weight port target.

This can be broken down as follows:

  • service: the symbolic name of the desired service.
  • proto: the transport protocol of the desired service; this is usually either TCP or UDP.
  • name: the domain name for which this record is valid, ending in a dot.
  • TTL: standard DNS time to live field.
  • class: standard DNS class field (this is always IN).
  • priority: the priority of the target host, lower value means more preferred.
  • weight: A relative weight for records with the same priority, higher value means more preferred.
  • port: the TCP or UDP port on which the service is to be found.
  • target: the canonical hostname of the machine providing the service, ending in a dot.

An example of a zone file entry for a SIP server may look as follows:

_sip._tcp.mydomain.ng. 86400 IN SRV 0 5 5060 sipserver.voipprovider.ng.

The TARGET hostname (in this case sipserver.voipprovider.ng must resolve via an A or AAAA record and may not be a CNAME. This is the same as an MX record.

The priority field is used to determine which server is used first if there are multiple entries for the same server. The weight is used in case multiple priorities with the same value are used to effect load-balancing.

Query of the SRV can be done by requesting the type SRV – unlike SPF, DKIM or DMARC which are all TXT type records.


The DNAME extended DNS record

Unlike CNAME which is an alias for a single record ie www.domain.com is an alias for domain.com, DNAME redirects all records below it to the new domain. This is useful if you want to redirect an entire domain and all the subdomain requests associated with it to another domain as follows:

; zone fragment for example.com
; uses DNAME RR to re-direct to new domain, example.net
$TTL 2d ; zone default = 2 days or 172800 seconds
$ORIGIN example.com.
; zone apex RRs
....
           IN      DNAME example.net.
....
; www and ftp RRs (or any other) are not required since they are
; BELOW DNAME (which is at the apex)
; any normal zone RRs from this point are IGNORED 
; due to the presence of the DNAME
; they can be left in the zone file 
; or they could be deleted

Any records below the DNAME entry are ignored.


The AAAA Record

The technical explanation of the AAAA record is that it a Resource Record (RR) type 28 which returns a 128-bit IPV6 address, most commonly used to map a hostname to an IPV6 address.  An example:

NAME TTL TYPE DATA
www.example.com. 1800 AAAA 2600:1800:5::10

The AAAA record is thus exactly the same as an A record, only for IPV6.

DNS is not as complicated as it is sometimes made out to be. Here is a list of the currently valid record types, courtesy of Wikipedia:


Resource records

Type Type id. (decimal) Defining RFC Description Function
 
A
1 RFC 1035 Address record Returns a 32-bit IPv4 address, most commonly used to map hostnames to an IP address of the host, but it is also used for DNSBLs, storing subnet masks in RFC 1101, etc.
 
AAAA
28 RFC 3596 IPv6 address record Returns a 128-bit IPv6 address, most commonly used to map hostnames to an IP address of the host.
 
AFSDB
18 RFC 1183 AFS database record Location of database servers of an AFS cell. This record is commonly used by AFS clients to contact AFS cells outside their local domain. A subtype of this record is used by the obsolete DCE/DFS file system.
 
APL
42 RFC 3123 Address Prefix List Specify lists of address ranges, e.g. in CIDR format, for various address families. Experimental.
 
CAA
257 RFC 6844 Certification Authority Authorization DNS Certification Authority Authorization, constraining acceptable CAs for a host/domain
 
CDNSKEY
60 RFC 7344   Child copy of DNSKEY record, for transfer to the parent
 
CDS
59 RFC 7344 Child DS Child copy of DS record, for transfer to the parent
 
CERT
37 RFC 4398 Certificate record Stores PKIX, SPKI, PGP, etc.
CNAME 5 RFC 1035 Canonical name record Alias of one name to another: the DNS lookup will continue by retrying the lookup with the new name.
 
DHCID
49 RFC 4701 DHCP identifier Used in conjunction with the FQDN option to DHCP
 
DLV
32769 RFC 4431 DNSSEC Lookaside Validation record For publishing DNSSEC trust anchors outside of the DNS delegation chain. Uses the same format as the DS record. RFC 5074 describes a way of using these records.
 
DNAME
39 RFC 6672   Alias for a name and all its sub names, unlike CNAME, which is an alias for only the exact name. Like a CNAME record, the DNS lookup will continue by retrying the lookup with the new name.
 
DNSKEY
48 RFC 4034 DNS Key record The key record used in DNSSEC. Uses the same format as the KEY record.
 
DS
43 RFC 4034 Delegation signer The record used to identify the DNSSEC signing key of a delegated zone
 
HIP
55 RFC 8005 Host Identity Protocol Method of separating the end-point identifier and locator roles of IP addresses.
 
IPSECKEY
45 RFC 4025 IPsec Key Key record that can be used with IPsec
 
KEY
25 RFC 2535 and RFC 2930 Key record Used only for SIG(0) (RFC 2931) and TKEY (RFC 2930). RFC 3445 eliminated their use for application keys and limited their use to DNSSEC. RFC 3755 designates DNSKEY as the replacement within DNSSEC. RFC 4025 designates IPSECKEY as the replacement for use with IPsec.
 
KX
36 RFC 2230 Key Exchanger record Used with some cryptographic systems (not including DNSSEC) to identify a key management agent for the associated domain-name. Note that this has nothing to do with DNS Security. It is Informational status, rather than being on the IETF standards-track. It has always had limited deployment but is still in use.
LOC 29 RFC 1876 Location record Specifies a geographical location associated with a domain name
MX 15 RFC 1035 and RFC 7505 Mail exchange record Maps a domain name to a list of message transfer agents for that domain
NAPTR 35 RFC 3403 Naming Authority Pointer Allows regular-expression-based rewriting of domain names which can then be used as URIs, further domain names to lookups, etc.
 
NS
2 RFC 1035 Nameserver record Delegates a DNS zone to use the given authoritative name servers
 
NSEC
47 RFC 4034 Next Secure record Part of DNSSEC—used to prove a name does not exist. Uses the same format as the (obsolete) NXT record.
 
NSEC3
50 RFC 5155 Next Secure record version 3 An extension to DNSSEC that allows proof of nonexistence for a name without permitting zonewalking
 
NSEC3PARAM
51 RFC 5155 NSEC3 parameters Parameter record for use with NSEC3
OPENPGPKEY 61 RFC 7929 OpenPGP public key record A DNS-based Authentication of Named Entities (DANE) method for publishing and locating OpenPGP public keys in DNS for a specific email address using an OPENPGPKEY DNS resource record.
 
PTR
12 RFC 1035[1] Pointer record Pointer to a canonical name. Unlike a CNAME, DNS processing stops and just the name is returned. The most common use is for implementing reverse DNS lookups, but other uses include such things as DNS-SD.
 
RRSIG
46 RFC 4034 DNSSEC signature Signature for a DNSSEC-secured recordset. Uses the same format as the SIG record.
 
RP
17 RFC 1183 Responsible Person Information about the responsible person(s) for the domain. Usually an email address with the @ replaced by a .
 
SIG
24 RFC 2535 Signature Signature record used in SIG(0) (RFC 2931) and TKEY (RFC 2930). RFC 3755 designated RRSIG as the replacement for SIG for use within DNSSEC.
SOA 6 RFC 1035 and RFC 2308 Start of [a zone of] authority record Specifies authoritative information about a DNS zone, including the primary name server, the email of the domain administrator, the domain serial number, and several timers relating to refreshing the zone.
SRV 33 RFC 2782 Service locator Generalized service location record, used for newer protocols instead of creating protocol-specific records such as MX.
 
SSHFP
44 RFC 4255 SSH Public Key Fingerprint Resource record for publishing SSH public host key fingerprints in the DNS System, in order to aid in verifying the authenticity of the host. RFC 6594 defines ECC SSH keys and SHA-256 hashes. See the IANA SSHFP RR parameters registry for details.
 
TA
32768 N/A DNSSEC Trust Authorities Part of a deployment proposal for DNSSEC without a signed DNS root. See the IANA database and Weiler Spec for details. Uses the same format as the DS record.
 
TKEY
249 RFC 2930 Transaction Key record A method of providing keying material to be used with TSIG that is encrypted under the public key in an accompanying KEY RR.
 
TLSA
52 RFC 6698 TLSA certificate association A record for DANE. RFC 6698 defines “The TLSA DNS resource record is used to associate a TLS server certificate or public key with the domain name where the record is found, thus forming a ‘TLSA certificate association'”.
TSIG 250 RFC 2845 Transaction Signature Can be used to authenticate dynamic updates as coming from an approved client, or to authenticate responses as coming from an approved recursive name server similar to DNSSEC.
 
TXT
16 RFC 1035 Text record Originally for arbitrary human-readable text in a DNS record. Since the early 1990s, however, this record more often carries machine-readable data, such as specified by RFC 1464, opportunistic encryption, Sender Policy Framework, DKIM, DMARC, DNS-SD, etc.
 
URI
256 RFC 7553 Uniform Resource Identifier Can be used for publishing mappings from hostnames to URIs.

Happy Hosting!


The Author

Michael O.

Michael is the founder, managing director, and CEO of HOSTAFRICA. He studied at Friedrich Schiller University Jena and was inspired by Cape Town's beauty to bring his German expertise to Africa. Before HOSTAFRICA, Michael was the Managing Director of Deutsche Börse Cloud Exchange AG, one of Germany's largest virtual server providers.

More posts from Michael