]> git.ipfire.org Git - thirdparty/pdns.git/blame - docs/appendices/types.rst
Make configure call PDNS_CHECK_LIBCURL when needed
[thirdparty/pdns.git] / docs / appendices / types.rst
CommitLineData
0e2063c3
PL
1Supported Record Types
2======================
3
4This chapter lists all record types PowerDNS supports, and how they are
5stored in backends. The list is mostly alphabetical but some types are
6grouped.
7
8.. warning::
9 Host names and the MNAME of a SOA records are NEVER
10 terminated with a '.' in PowerDNS storage! If a trailing '.' is present
11 it will inevitably cause problems, problems that may be hard to debug.
12 Use ``pdnsutil check-zone`` to validate your zone data.
13
6def4610 14.. note::
0e2063c3
PL
15 Whenever the storage format is mentioned, this relates only to
16 the way the record should be stored in one of the :doc:`generic SQL <../backends/generic-sql>` backends. The other
17 backends should use their *native* format.
18
19The PowerDNS Recursor can serve and store all record types, regardless
20of whether these are explicitly supported.
21
22.. _types-a:
23
24A
25-
26
27The A record contains an IP address. It is stored as a decimal dotted
28quad string, for example: '203.0.113.210'.
29
30.. _types-aaaa:
31
32AAAA
33----
34
35The AAAA record contains an IPv6 address. An example:
36'2001:DB8:2000:bf0::1'.
37
38.. _types-afsdb:
39
40AFSDB
41-----
42
43A specialised record type for the 'Andrew Filesystem'. Stored as:
44'#subtype hostname', where subtype is a number.
45
46.. _types-alias:
47
48ALIAS
49-----
50
51.. versionadded:: 4.0.0
52
53The ALIAS pseudo-record type is supported to provide
54CNAME-like mechanisms on a zone's apex. See the :doc:`howto <../guides/alias>` for information
55on how to configure PowerDNS to serve records synthesized from ALIAS
56records.
57
58.. _types-caa:
59
60CAA
61---
62
63.. versionadded:: 4.0.0
64
65The "Certification Authority Authorization" record,
66specified in :rfc:`6844`, is used
67to specify Certificate Authorities that may issue certificates for a
68domain.
69
70.. _types-cert:
71
72CERT
73----
74
75Specialised record type for storing certificates, defined in :rfc:`2538`.
76
77.. _types-cdnskey:
78
79CDNSKEY
80-------
81
82.. versionadded:: 4.0.0
83
84The CDNSKEY (:rfc:`Child DNSKEY <7344#section-3.2>`) type is supported.
85
86.. _types-cds:
87
88CDS
89---
90
91.. versionadded:: 4.0.0
92
93The CDS (:rfc:`Child DS <7344#section-3.1>`) type is supported.
94
95.. _types-cname:
96
97CNAME
98-----
99
100The CNAME record specifies the canonical name of a record. It is stored
101plainly. Like all other records, it is not terminated by a dot. A sample
102might be 'webserver-01.yourcompany.com'.
103
104.. _types-dnskey:
105
106DNSKEY
107------
108
109The DNSKEY DNSSEC record type is fully supported, as described in :rfc:`4034`.
110Enabling DNSSEC for domains can be done with :doc:`pdnsutil <../dnssec/pdnsutil>`.
111
112.. _types-dname:
113
114DNAME
115-----
116
117The DNAME record, as specified in :rfc:`6672` is supported. However,
118:ref:`setting-dname-processing` has to be set to ``yes`` for PowerDNS to process these records.
119
120.. _types-ds:
121
122DS
123--
124
125The DS DNSSEC record type is fully supported, as described in :rfc:`4034`.
126Enabling DNSSEC for domains can be done with :doc:`pdnsutil <../dnssec/pdnsutil>`.
127
128.. _types-hinfo:
129
130HINFO
131-----
132
133Hardware Info record, used to specify CPU and operating system. Stored
134with a single space separating these two, example: 'i386 Linux'.
135
136.. _types-key:
137
138KEY
139---
140
141The KEY record is fully supported. For its syntax, see :rfc:`2535`.
142
143.. _types-loc:
144
145LOC
146---
147
148The LOC record is fully supported. For its syntax, see :rfc:`1876`.
149A sample content would be: ``51 56 0.123 N 5 54 0.000 E 4.00m 1.00m 10000.00m 10.00m``
150
151.. _types-mx:
152
153MX
154--
155
156The MX record specifies a mail exchanger host for a domain. Each mail
157exchanger also has a priority or preference. For example
158``10 mx.example.net``. In the generic SQL backends, the ``10`` should go
159in the 'priority field'.
160
161.. _types-naptr:
162
163NAPTR
164-----
165
166Naming Authority Pointer, :rfc:`2915`. Stored as follows:
167
168::
169
170 '100 50 "s" "z3950+I2L+I2C" "" _z3950._tcp.gatech.edu'.
171
172The fields are: order, preference, flags, service, regex, replacement.
173Note that the replacement is not enclosed in quotes, and should not be.
174The replacement may be omitted, in which case it is empty. See also :rfc:`2916`
175for how to use NAPTR for ENUM (E.164) purposes.
176
177.. _types-ns:
178
179NS
180--
181
182Nameserver record. Specifies nameservers for a domain. Stored plainly:
183``ns1.powerdns.com``, as always without a terminating dot.
184
185NSEC, NSEC3, NSEC3PARAM
186-----------------------
187
188The NSEC, NSEC3 and NSEC3PARAM DNSSEC record type are fully supported,
189as described in :rfc:`4034`.
190Enabling DNSSEC for domains can be done with :doc:`pdnsutil <../dnssec/pdnsutil>`.
191
192.. _types-openpgpkey:
193
194OPENPGPKEY
195----------
196
197The OPENPGPKEY records, specified in :rfc:`7929`, are
198used to bind OpenPGP certificates to email addresses.
199
200.. _types-ptr:
201
202PTR
203---
204
205Reverse pointer, used to specify the host name belonging to an IP or
206IPv6 address. Name is stored plainly: ``www.powerdns.com``. As always,
207no terminating dot.
208
209.. _types-rp:
210
211RP
212--
213
214Responsible Person record, as described in :rfc:`1183`. Stored with a single space
215between the mailbox name and the more-information pointer. Example:
216``peter.powerdns.com peter.people.powerdns.com``, to indicate that
217``peter@powerdns.com`` is responsible and that more information about
218peter is available by querying the TXT record of
219peter.people.powerdns.com.
220
221.. _types-rrsig:
222
223RRSIG
224-----
225
226The RRSIG DNSSEC record type is fully supported, as described in :rfc:`4034`.
227
228.. _types-soa:
229
230SOA
231---
232
233The Start of Authority record is one of the most complex available. It
234specifies a lot about a domain: the name of the master nameserver ('the
235primary'), the hostmaster and a set of numbers indicating how the data
236in this domain expires and how often it needs to be checked. Further
237more, it contains a serial number which should rise on each change of
238the domain.
239
240The stored format is:
241
242::
243
244 primary hostmaster serial refresh retry expire default_ttl
245
246Besides the primary and the hostmaster, all fields are numerical.
247PowerDNS has a set of default values:
248
249- primary: :ref:`setting-default-soa-name`
250 configuration option
251- hostmaster: ``hostmaster@domain-name``
252- serial: 0
253- refresh: 10800 (3 hours)
254- retry: 3600 (1 hour)
255- expire: 604800 (1 week)
256- default_ttl: 3600 (1 hour)
257
258The fields have complicated and sometimes controversial meanings. The
259'serial' field is special. If left at 0, the default, PowerDNS will
260perform an internal list of the domain to determine highest change_date
261field of all records within the zone, and use that as the zone serial
262number. This means that the serial number is always raised when changes
263are made to the zone, as long as the change_date field is being set.
264Make sure to check whether your backend of choice supports Autoserial.
265
266.. _types-spf:
267
268SPF
269---
270
271SPF records can be used to store Sender Policy Framework details (:rfc:`4408`).
272
273.. _types-sshfp:
274
275SSHFP
276-----
277
278The SSHFP record type, used for storing Secure Shell (SSH) fingerprints,
279is fully supported. A sample from :rfc:`4255` is::
280
281 2 1 123456789abcdef67890123456789abcdef67890
282
283.. _types-srv:
284
285SRV
286---
287
288SRV records can be used to encode the location and port of services on a
289domain name. When encoding, the priority field is used to encode the
290priority. For example,
291``_ldap._tcp.dc._msdcs.conaxis.ch SRV 0 100 389 mars.conaxis.ch`` would
292be encoded with ``0`` in the priority field and
293``100 389 mars.conaxis.ch`` in the content field.
294
295TKEY, TSIG
296----------
297
298The TKEY (:rfc:`2930`) and TSIG records (:rfc:`2845`), used for
299key-exchange and authenticated AXFRs, are supported. See the :doc:`../tsig`
300and `DNS update <../dnsupdate>` documentation for more information.
301
302.. _types-tlsa:
303
304TLSA
305----
306
307Since 3.0. The TLSA records, specified in :rfc:`6698`, are used to bind SSL/TLS
308certificate to named hosts and ports.
309
310.. _types-smimea:
311
312SMIMEA
313------
314
315Since 4.1. The SMIMEA record type, specified in :rfc:`8162`, is used to bind S/MIME
316certificates to domains.
317
318.. _types-txt:
319
320TXT
321---
322
323The TXT field can be used to attach textual data to a domain. Text is
324stored plainly, PowerDNS understands content not enclosed in quotes.
325However, all quotes characters (``"``) in the TXT content must be
326preceded with a backslash (``\``).:
327
328::
329
330 "This \"is\" valid"
331
332For a literal backslash in the TXT record, escape it:
333
334::
335
336 "This is also \\ valid"
337
338Unicode characters can be added in two ways, either by adding the
339character itself or the escaped variant to the content field. e.g.
340``"รง"`` is equal to ``"\195\167"``.
341
342When a TXT record is longer than 255 characters/bytes (excluding
343possible enclosing quotes), PowerDNS will cut up the content into 255
344character/byte chunks for transmission to the client.
345
346.. _types-uri:
347
348URI
349---
350
351The URI record, specified in :rfc:`7553`, is used to publish
352mappings from hostnames to URIs.
353
354Other types
355-----------
356
357The following, rarely used or obsolete record types, are also supported:
358
359- A6 (:rfc:`2874`, obsolete)
360- DHCID (:rfc:`4701`)
361- DLV (:rfc:`4431`)
362- EUI48/EUI64 (:rfc:`7043`)
363- IPSECKEY (:rfc:`4025`)
364- KEY (:rfc:`2535`, obsolete)
365- KX (:rfc:`2230`)
366- MAILA (:rfc:`1035`)
367- MAILB (:rfc:`1035`)
368- MINFO (:rfc:`1035`)
369- MR (:rfc:`1035`)
370- RKEY (`draft-reid-dnsext-rkey-00.txt <https://tools.ietf.org/html/draft-reid-dnsext-rkey-00>`__)
371- SIG (:rfc:`2535`, obsolete)
372- WKS (:rfc:`1035`)