Background

A resource record, commonly referred to as an RR, is the unit of information entry in DNS zone files; RRs are the basic building blocks of host-name and IP information and are used to resolve all DNS queries. Resource records come in a fairly wide variety of types in order to provide extended name-resolution services.

TYPE fields are used in DNS Resource Records (RRs) to specifiy the meaning of the data in the RDATA field.
The RDATA field is a variable length field that describes the resource. The format of this information varies according to the TYPE and CLASS of the resource record.


Common Record Types

Type ID Defining RFC Description Function Status Details
A 1 (0x0001) RFC 1035 IPv4 Address Record Returns a 32 bit IPv4 address, most commonly used to map hostnames to an IPv4 address of the host.    more_vert
AAAA 28 (0x001C) RFC 3596 IPv6 Address Record Returns a 128-bit IPv6 address, most commonly used to map hostnames to an IPv6 address of the host.    more_vert
CNAME 5 (0x0005) RFC 1035 Canonical name record Alias of one name to another: the DNS lookup will continue by retrying the lookup with the new name.    more_vert
MX 15 (0x000F) RFC 1035 and RFC 7505 Mail Exchange Record Maps a domain name to a list of message transfer agents for that domain.    more_vert
NS 2 (0x0002) RFC 1035 Name Server Record Delegates a DNS zone to use the given authoritative name servers.    more_vert
PTR 12 (0x000C) RFC 1035 PTR Resource 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.    more_vert
SOA 6 (0x0006) 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.    more_vert
SRV 33 (0x0021) RFC 2782 Service Locator Generalized service location record, used for newer protocols instead of creating protocol-specific records such as MX.    more_vert
TXT 16 (0x0010) 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.    more_vert

Less Common Record Types

Type ID Defining RFC Description Function Status Details
AFSDB 18 (0x0012) 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.    more_vert
APL 42 (0x002A) RFC 3123 Address Prefix List Specify lists of address ranges, e.g. in CIDR format, for various address families. Experimental    more_vert
CAA 257 (0x0101) RFC 6844 Certification Authority Authorization DNS Certification Authority Authorization, constraining acceptable CAs for a host/domain.    more_vert
CDNSKEY 60 (0x003C) RFC 7344 Child copy of DNSKEY record, for transfer to parent.
CDS 59 (0x003B) RFC 7344 Child DS Child copy of DS record, for transfer to parent.
CSYNC 62 (0x003E) RFC 7477 Child-to-Parent Synchronization Specify a synchronization mechanism between a child and a parent DNS zone. Typical example is declaring the same NS records in the parent and the child zone.
DHCID 49 (0x0031) RFC 4701 DHCP Identifier Used in conjunction with the FQDN option to DHCP.
DLV 32769 (0x8001) 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 (0x0027) RFC 6672 Delegation Name Record Alias for a name and all its subnames, 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 (0x0030) RFC 4034 DNS Key Record The key record used in DNSSEC. Uses the same format as the KEY record.
DS 43 (0x002B) RFC 4034 Delegation Signer The record used to identify the DNSSEC signing key of a delegated zone.
EUI48 108 (0x006C) RFC 7043 MAC Address (EUI-48) A 48-bit IEEE Extended Unique Identifier.
EUI64 109 (0x006D) RFC 7043 MAC Address (EUI-64) A 64-bit IEEE Extended Unique Identifier.
HINFO 13 (0x000D) RFC 8482 Host Information Providing Minimal-Sized responses to DNS queries that have QTYPE=ANY
HIP 55 (0x0037) RFC 8005 Host Identity Protocol Method of separating the end-point identifier and locator roles of IP addresses.
IPSECKEY 45 (0x002D) RFC 4025 IPsec Key Key record that can be used with IPsec.
KEY 25 (0x0019) 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 (0x0024) 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 (0x001D) RFC 1876 Location Record Specifies a geographical location associated with a domain name.
NAPTR 35 (0x0023) 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.
NSEC 47 (0x002F) 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 (0x0032) RFC 5155 Next Secure Record Version 3 An extension to DNSSEC that allows proof of nonexistence for a name without permitting zonewalking.
NSEC3PARAM 51 (0x0033) RFC 5155 NSEC3 Parameters Parameter record for use with NSEC3.
OPENPGPKEY 61 (0x003D) 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.
RRSIG 46 (0x002E) RFC 4034 DNSSEC Signature Signature for a DNSSEC-secured record set. Uses the same format as the SIG record.
RP 17 (0x0011) RFC 1183 Responsible Person Information about the responsible person(s) for the domain. Usually an email address with the @ replaced by a.
SIG 24 (0x0018) RFC 2535 Signature Signature record used in SIG(0) (RFC 2931) and TKEY (RFC 2930).[7] RFC 3755 designated RRSIG as the replacement for SIG for use within DNSSEC.
SMIMEA 53 (0x0035) RFC 8162 S/MIME cert association Associates an S/MIME certificate with a domain name for sender authentication.
SSHFP 44 (0x002C) 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 (0x8000) 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 (0x00F9) 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 (0x0034) 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 (0x00FA) 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[13] similar to DNSSEC.
URI 256 (0x0100) RFC 7553 Uniform Resource Identifier Can be used for publishing mappings from hostnames to URIs.
ZONEMD 63 TBA Assigned by IANA although the RFC is in draft status. Draft
SVCB 64 (0x003F) IETF Draft Service Binding RR that improves performance for clients that need to resolve many resources to access a domain. More info in this IETF Draft by DNSOP Working group and Akamai technologies. Draft
HTTPS 65 (0x0041) IETF Draft HTTPS Binding RR that improves performance for clients that need to resolve many resources to access a domain. More info in this IETF Draft by DNSOP Working group and Akamai technologies. Draft

Other Types and Pseudo Resource Records

Type ID Defining RFC Description Function Status Details
* 255 (0x00FF) RFC 1035 All Cached Records Returns all records of all types known to the name server. If the name server does not have any information on the name, the request will be forwarded on. The records returned may not be complete. For example, if there is both an A and an MX for a name, but the name server has only the A record cached, only the A record will be returned. Sometimes referred to as "ANY", for example in Windows nslookup and Wireshark.
AXFR 252 (0x00FC) RFC 1035 Authoritative Zone Transfer Transfer entire zone file from the master name server to secondary name servers.
IXFR 251 (0x00FB) RFC 1996 Incremental Zone Transfer Requests a zone transfer of the given zone but only differences from a previous serial number. This request may be ignored and a full (AXFR) sent in response if the authoritative server is unable to fulfill the request due to configuration or lack of required deltas.
OPT 41 (0x0029) RFC 6891 Option This is a "pseudo DNS record type" needed to support EDNS.

Proprietary 3rd Party Record Types

Type ID Defining RFC Description Function Status Details
ALIAS DNSimple APEX ALIAS An ALIAS record is a virtual record type DNSimple created to provide CNAME-like behavior on apex domains. Proprietary    more_vert
POOL DNSimple CNAME LB Created at DNSimple to provide a way to randomly select from multiple hosts when resolving a CNAME record. Proprietary    more_vert
URL DNSimple Redirector Redirects a hostname to another URL Proprietary    more_vert
ANAME Constellix CNAME Like Alias to another hostname or FQDN but can also be a root record. Proprietary    more_vert

Obsolete Record Types

Type ID Defining RFC Obsoleted By Function Status
MD 3 (0x0003) RFC 883 RFC 973 Mail destination (MD) and mail forwarder (MF) records; MAILA is not an actual record type, but a query type which returns MF and/or MD records. RFC 973 replaced these records with the MX record. Obsolete
MF 4 (0x0004) RFC 883 RFC 973 Mail destination (MD) and mail forwarder (MF) records; MAILA is not an actual record type, but a query type which returns MF and/or MD records. RFC 973 replaced these records with the MX record. Obsolete
MAILA 254 (0x00FE) RFC 883 RFC 973 Mail destination (MD) and mail forwarder (MF) records; MAILA is not an actual record type, but a query type which returns MF and/or MD records. RFC 973 replaced these records with the MX record. Obsolete
MB 7 (0x0007) RFC 883 Not formally obsoleted. Unlikely to be ever adopted (RFC 2505). MB, MG, MR, and MINFO are records to publish subscriber mailing lists. MAILB is a query code which returns one of those records. The intent was for MB and MG to replace the SMTP VRFY and EXPN commands. MR was to replace the "551 User Not Local" SMTP error. Later, RFC 2505 recommended that both VRFY and EXPN be disabled, making MB and MG unnecessary. They were classified as experimental by RFC 1035. Obsolete
MG 8 (0x0008) RFC 883 Not formally obsoleted. Unlikely to be ever adopted (RFC 2505). MB, MG, MR, and MINFO are records to publish subscriber mailing lists. MAILB is a query code which returns one of those records. The intent was for MB and MG to replace the SMTP VRFY and EXPN commands. MR was to replace the "551 User Not Local" SMTP error. Later, RFC 2505 recommended that both VRFY and EXPN be disabled, making MB and MG unnecessary. They were classified as experimental by RFC 1035. Obsolete
MR 9 (0x0009) RFC 883 Not formally obsoleted. Unlikely to be ever adopted (RFC 2505). MB, MG, MR, and MINFO are records to publish subscriber mailing lists. MAILB is a query code which returns one of those records. The intent was for MB and MG to replace the SMTP VRFY and EXPN commands. MR was to replace the "551 User Not Local" SMTP error. Later, RFC 2505 recommended that both VRFY and EXPN be disabled, making MB and MG unnecessary. They were classified as experimental by RFC 1035. Obsolete
MINFO 14 (0x000E) RFC 883 Not formally obsoleted. Unlikely to be ever adopted (RFC 2505). MB, MG, MR, and MINFO are records to publish subscriber mailing lists. MAILB is a query code which returns one of those records. The intent was for MB and MG to replace the SMTP VRFY and EXPN commands. MR was to replace the "551 User Not Local" SMTP error. Later, RFC 2505 recommended that both VRFY and EXPN be disabled, making MB and MG unnecessary. They were classified as experimental by RFC 1035. Obsolete
MAILB 253 (0x00FD) RFC 883 Not formally obsoleted. Unlikely to be ever adopted (RFC 2505). MB, MG, MR, and MINFO are records to publish subscriber mailing lists. MAILB is a query code which returns one of those records. The intent was for MB and MG to replace the SMTP VRFY and EXPN commands. MR was to replace the "551 User Not Local" SMTP error. Later, RFC 2505 recommended that both VRFY and EXPN be disabled, making MB and MG unnecessary. They were classified as experimental by RFC 1035. Obsolete
WKS 11 (0x000B) RFC 883 and RFC 1035 Declared as "not to be relied upon" by RFC 1123 (more in RFC 1127). Record to describe well-known services supported by a host. Not used in practice. The current recommendation and practice is to determine whether a service is supported on an IP address by trying to connect to it. SMTP is even prohibited from using WKS records in MX processing. Obsolete
NB 32 (0x0020) RFC 1002 Mistakes (from RFC 1002); the numbers are now assigned to NIMLOC and SRV. Obsolete
NBSTAT 33 (0x0021) RFC 1002 Mistakes (from RFC 1002); the numbers are now assigned to NIMLOC and SRV. Obsolete
NULL 10 (0x0001) RFC 883 RFC 1035 Obsoleted by RFC 1035. RFC 883 defined "completion queries" (opcode 2 and maybe 3) which used this record. RFC 1035 later reassigned opcode 2 to be "status" and reserved opcode 3. Obsolete
A6 38 (0x000A) RFC 2874 RFC 6563 Defined as part of early IPv6 but downgraded to experimental by RFC 3363; later downgraded to historic by RFC 6563. Obsolete
NXT 30 (0x001E) RFC 2065 RFC 3755 Part of the first version of DNSSEC (RFC 2065). NXT was obsoleted by DNSSEC updates (RFC 3755). At the same time, the domain of applicability for KEY and SIG was also limited to not include DNSSEC use. Obsolete
KEY 25 (0x0019) RFC 2065 RFC 3755 Part of the first version of DNSSEC (RFC 2065). NXT was obsoleted by DNSSEC updates (RFC 3755). At the same time, the domain of applicability for KEY and SIG was also limited to not include DNSSEC use. Obsolete
SIG 24 (0x0018) RFC 2065 RFC 3755 Part of the first version of DNSSEC (RFC 2065). NXT was obsoleted by DNSSEC updates (RFC 3755). At the same time, the domain of applicability for KEY and SIG was also limited to not include DNSSEC use. Obsolete
HINFO 13 (0x000D) RFC 883 Unobsoleted by RFC 8482. Currently used by Cloudflare in response to queries of the type ANY. Part of the first version of DNSSEC (RFC 2065). NXT was obsoleted by DNSSEC updates (RFC 3755). At the same time, the domain of applicability for KEY and SIG was also limited to not include DNSSEC use. Obsolete
RP 17 (0x0011) RFC 1183 RP may be used for certain human-readable information regarding a different contact point for a specific host, subnet, or other domain level label separate than that used in the SOA record. Obsolete
X25 19 (0x0013) RFC 1183 Not in current use by any notable application. Obsolete
ISDN 20 (0x0014) RFC 1183 Not in current use by any notable application. Obsolete
RT 21 (0x0015) RFC 1183 Not in current use by any notable application. Obsolete
NSAP 22 (0x0016) RFC 1706 Not in current use by any notable application. Obsolete
NSAP-PTR 23 (0x0017) RFC 1706 Not in current use by any notable application. Obsolete
PX 26 (0x001A) RFC 1706 Not in current use by any notable application. Obsolete
EID 31 (0x001F) N/A Defined by the Nimrod DNS internet draft, but never made it to RFC status. Not in current use by any notable application. Obsolete
NIMLOC 32 (0x0020) N/A Defined by the Nimrod DNS internet draft, but never made it to RFC status. Not in current use by any notable application. Obsolete
ATMA 34 (0x0022) N/A Defined by The ATM Forum Committee. Obsolete
APL 42 (0x002A) RFC 3123 Specify lists of address ranges, e.g. in CIDR format, for various address families. Experimental. Obsolete
SINK 40 (0x0028) N/A Defined by the Kitchen Sink internet draft, but never made it to RFC status. Obsolete
GPOS 27 (0x001B) RFC 3123 A more limited early version of the LOC record. Obsolete
UINFO 100 (0x0064) N/A IANA reserved, no RFC documented them [1] and support was removed from BIND in the early 90s. Obsolete
UID 101 (0x0065) N/A IANA reserved, no RFC documented them [1] and support was removed from BIND in the early 90s. Obsolete
GID 102 (0x0066) N/A IANA reserved, no RFC documented them [1] and support was removed from BIND in the early 90s. Obsolete
UNSPEC 103 (0x0067) N/A IANA reserved, no RFC documented them [1] and support was removed from BIND in the early 90s. Obsolete
SPF 99 (0x0063) RFC 4408 Specified as part of the Sender Policy Framework protocol as an alternative to storing SPF data in TXT records, using the same format. Support for it was discontinued in RFC 7208 due to widespread lack of support. Obsolete
NINFO 56 (0x0038) N/A Used to provide status information about a zone. Requested for the IETF draft "The Zone Status (ZS) DNS Resource Record" in 2008. Expired without adoption. Obsolete
RKEY 57 (0x0039) N/A Used for encryption of NAPTR records. Requested for the IETF draft "The RKEY DNS Resource Record" in 2008. Expired without adoption. Obsolete
TALINK 58 (0x003A) N/A Defined by the DNSSEC Trust Anchor History Service internet draft, but never made it to RFC status. Obsolete
NID 104 (0x0068) RFC 4408 Not in use by any notable application and marked as "experimental". Obsolete
L32 105 (0x0069) RFC 4408 Not in use by any notable application and marked as "experimental". Obsolete
L64 106 (0x006A) RFC 4408 Not in use by any notable application and marked as "experimental". Obsolete
LP 107 (0x006B) RFC 4408 Not in use by any notable application and marked as "experimental". Obsolete
DOA 259 (0x0103) N/A Defined by the DOA over DNS internet draft, but never made it to RFC status. Obsolete


See Also




This content was last updated on December 9, 2020
An error has occurred. This application may no longer respond until reloaded. Reload 🗙