-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdraft.xml.in
484 lines (356 loc) · 15.1 KB
/
draft.xml.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rfc [
<!ENTITY VERSION "0.01">
]>
<rfc
xmlns:xi="http://www.w3.org/2001/XInclude"
version="3"
ipr="trust200902"
docName="draft-brown-epp-deleg-01"
submissionType="independent"
category="info"
xml:lang="en"
indexInclude="true">
<front>
<title abbrev="EPP DELEG Extension">
Extensible Provisioning Protocol (EPP) mapping for DELEG records
</title>
<seriesInfo
value="draft-brown-epp-deleg"
stream="independent"
status="informational"
name="Internet-Draft"/>
<author initials="G." surname="Brown" fullname="Gavin Brown">
<organization>ICANN</organization>
<address>
<postal>
<street>12025 Waterfront Drive, Suite 300</street>
<city>Los Angeles</city>
<code>90094-2536</code>
<country>US</country>
<region>CA</region>
</postal>
<email>[email protected]</email>
</address>
</author>
<author initials="P." surname="Hoffman" fullname="Paul Hoffman">
<organization>ICANN</organization>
<address>
<postal>
<street>12025 Waterfront Drive, Suite 300</street>
<city>Los Angeles</city>
<code>90094-2536</code>
<country>US</country>
<region>CA</region>
</postal>
<email>[email protected]</email>
</address>
</author>
<date/>
<area>Internet</area>
<workgroup>Registration Extensions (REGEXT)</workgroup>
<abstract><t>
This document describes an extension to the Extensible Provisioning Protocol (<xref target="STD69"/>) which allows clients to provision <tt>DELEG</tt> records for domain names.
</t></abstract>
<note title="About this draft" removeInRFC="true"><t>
The source for this draft, and an issue tracker, may can be found at <eref target="https://github.com/gbxyz/epp-deleg-extension"/>.
</t></note>
</front>
<middle>
<section anchor="introduction">
<name>Introduction</name>
<t>
The Internet-Draft "Extensible Delegation for DNS" (<xref target="I-D.dnsop-deleg"/>) aims to provide an enhanced method of delegation in the DNS, as an alternative to the traditional <tt>NS</tt> record.
</t>
<!--<t>
This proposal has the potential to address many long-standing issues affecting the DNS. While it has yet to be brought to the IETF in a formal submission, it has generated significant interest.
</t>
<t>
Past experience with innovations in the DNS suggests that the success or failure of a new technology can depend on how quickly the provisioning side of the domain name industry moves to support the new technology.
</t> -->
<t>
<!-- Therefore, this document has been created to describe -->This document describes an extension to the EPP domain mapping (<xref target="RFC5731"/>) to allow EPP clients to provision <tt>DELEG</tt> records for domain names in an EPP server.
</t>
<t>
EPP provides mechanisms for extending the protocol by (a) adding new properties to existing object mappings and (b) definining new object mappings.
Although EPP supports two different models for traditional <tt>NS</tt> records (host attributes and host objects, as described in <xref section="1.12" sectionFormat="of" target="RFC5731"/>),
this document only uses the former, and does not define a new object mapping for <tt>DELEG</tt> records because the <tt>DELEG</tt> specification itself implements many of the features that would otherwise require an object mapping:
for example the "AliasMode" mode, which allows the delegation information for many domains to be managed as a single set.
</t>
</section>
<section>
<name>Conventions used in this document</name>
<t>
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.
</t>
<t>
In examples, "C:" represents lines sent by a protocol client and "S:" represents lines returned by a protocol server.
Indentation and white space in examples are provided only to illustrate element relationships and are not required features of this protocol.
</t>
<t>
A protocol client that is authorized to manage an existing object is described as a "sponsoring" client throughout this document.
</t>
<t>
XML is case sensitive.
Unless stated otherwise, XML specifications and examples provided in this document <bcp14>MUST</bcp14> be interpreted in the character case presented in order to develop a conforming implementation.
</t>
<t>
EPP uses XML namespaces to provide an extensible object management framework and to identify schemas required for XML instance parsing and validation.
These namespaces and schema definitions are used to identify both the base protocol schema and the schemas for managed objects.
</t>
<t>
The XML namespace prefixes used in examples (such as the string <tt>deleg</tt> in <tt>deleg:create</tt>) are solely for illustrative purposes.
A conforming implementation <bcp14>MUST NOT</bcp14> require the use of these or any other specific namespace prefixes.
</t>
</section>
<section anchor="extension-elements">
<name>Extension elements</name>
<t>
This document defines a new element, <tt><deleg:deleg></tt>, which appears in query and transform commands for domain objects.
</t>
<t>
This element is a representation of a <tt>DELEG</tt> record in XML.
Note that <tt>DELEG</tt> records have the same presentation format as <tt>SVCB</tt> records (<xref target="RFC9460"/>).
</t>
<t>
The <tt><deleg:deleg></tt> element has the following attributes:
</t>
<ul>
<li>
a <tt>priority</tt> attribute, which is an integer that corresponds to the <tt>SvcPriority</tt> field;
</li>
<li>
a <tt>target</tt> attribute, which corresponds to the <tt>TargetName</tt> field.
</li>
</ul>
<t>
The <tt><deleg:deleg></tt> element <bcp14>MAY</bcp14> have a single child element, <tt><deleg:params></tt>, which corresponds to the <tt>svcParams</tt> field.
<tt>DELEG</tt> record SvcParams are mapped onto this element's attributes, with <tt>SvcParamKey</tt> being the attribute name, and <tt>SvcParamValue</tt> being its value.
</t>
</section>
<!--
<section>
<name>Restrictions on Element Values</name>
<ol>
<li>
To avoid infinite loops, if the <tt>priority</tt> attribute of a <tt><deleg:deleg></tt> record is zero, the <tt>target</tt> attribute <bcp14>MUST NOT</bcp14> match the domain name or any subordinate name,
for example, a <tt><deleg:deleg></tt> element for the domain <tt>example.com</tt> <bcp14>MUST NOT</bcp14> have a <tt>target</tt> attribute equal to <tt>example.com</tt>, <tt>subdomain.example.com</tt>, etc.
</li>
<li>
If the <tt>priority</tt> attribute of a <tt><deleg:deleg></tt> record is non-zero, then the <tt>target</tt> attribute <bcp14>MAY</bcp14> match the domain name or any subordinate name,
but <bcp14>MUST</bcp14> have a <tt><deleg:params></tt> child element which <bcp14>MUST</bcp14> contain an <tt>ipv4hint</tt> attribute and/or an <tt>ipv6hint</tt> attribute.
</li>
<li>
EPP servers <bcp14>MUST</bcp14> accept any <tt><deleg:params></tt> attribute which is registered in the DNS Service Bindings (SVCB) registry (<xref section="14.3" sectionFormat="of" target="RFC9460"/>),
but <bcp14>MAY</bcp14> accept additional attribute names according to server policy.
</li>
</ol>
<t>
EPP servers <bcp14>MUST</bcp14> reject <tt><create></tt> and <tt><update></tt> commands containing <tt><deleg:deleg></tt> that do not conform to these restrictions with a 2005 "Parameter value syntax error" result code.
</t>
<t>
<xref section="2.4.2" sectionFormat="of" target="RFC9460"/> states that the use of SvcParams in AliasMode records is currently not defined, but that a future specification may extend AliasMode records to include SvcParams.
Therefore EPP servers <bcp14>MAY</bcp14> reject commands which contain <tt><deleg:deleg></tt> elements which have a <tt>priority</tt> attribute equal to zero,
and a child <tt><deleg:params></tt> element, with a 2306 "Parameter value policy error" result code.
</t>
</section>
-->
<section>
<name>Examples</name>
<t>
Example "AliasMode" <tt><deleg:deleg></tt> element:
</t>
<sourcecode><![CDATA[
<deleg:deleg
priority="0"
target="config.example.net"/>
]]></sourcecode>
<t>
Example "ServiceMode" <tt><deleg:deleg></tt> element:
</t>
<sourcecode><![CDATA[
<deleg:deleg
priority="1"
target="ns1.example.com">
<deleg:params
ipv4hint="192.0.2.1"
ipv6hint="2001:DB8::1"/>
</deleg:deleg>
]]></sourcecode>
</section>
<section>
<name>EPP command mapping</name>
<section>
<name>EPP query commands</name>
<section>
<name>EPP <tt><info></tt> command</name>
<t>
This extension defines an additional element for EPP <tt><info></tt> responses for domain object.
</t>
<t>
When a server receives a domain or host <tt><info></tt> command from a client which included the extension namespace in the <tt><svcExtension></tt> element of the <tt><login></tt> command, the response <bcp14>MUST</bcp14> contain an <tt><extension></tt> element, which <bcp14>MUST</bcp14> contain a <tt><deleg:infData></tt> element.
This element <bcp14>MAY</bcp14> contain one or more <tt><deleg:deleg></tt> elements as described in <xref target="extension-elements"/>.
</t>
<t>
Example <tt><info></tt> response:
</t>
<sourcecode><xi:include parse="text" href="examples/domain-info-response.xml.txt"/></sourcecode>
</section>
</section>
<section>
<name>EPP transform commands</name>
<section>
<name>EPP <tt><create></tt> command</name>
<t>
This extension defines an additional element for EPP <tt><create></tt> commands for domain objects.
</t>
<t>
The <tt><command></tt> element of the <tt><create></tt> command frame <bcp14>MAY</bcp14> contain an <tt><extension></tt> element which <bcp14>MAY</bcp14> contain a <tt><deleg:create></tt> element.
This element <bcp14>MUST</bcp14> contain one or more <tt><deleg:deleg></tt> records as described in <xref target="extension-elements"/>.
</t>
<t>
Example <tt><create></tt> command:
</t>
<sourcecode><xi:include parse="text" href="examples/domain-create-command.xml.txt"/></sourcecode>
</section>
<section>
<name>EPP <tt><update></tt> command</name>
<t>
This extension defines an additional element for EPP <tt><update></tt> commands for domain objects.
</t>
<t>
The <tt><command></tt> element of the <tt><create></tt> command frame <bcp14>MAY</bcp14> contain an <tt><extension></tt> element which <bcp14>MAY</bcp14> contain a <tt><deleg:update></tt> element.
</t>
<t>
The <tt><deleg:update></tt> element has the following child elements:
</t>
<ul>
<li>An <bcp14>OPTIONAL</bcp14> <tt><deleg:add></tt> element, containing any <tt><deleg:deleg></tt> records to be added to the domain; and</li>
<li>An <bcp14>OPTIONAL</bcp14> <tt><deleg:rem></tt> element, containing any <tt><deleg:deleg></tt> records to be removed from the domain.</li>
</ul>
<t>
Example <tt><update></tt> command, which removes one <tt><deleg:deleg></tt> record and adds another:
</t>
<sourcecode><xi:include parse="text" href="examples/domain-update-command.xml.txt"/></sourcecode>
<t>
Example <tt><update></tt> command, which removes one <tt><deleg:deleg></tt> record but does not add any:
</t>
<sourcecode><xi:include parse="text" href="examples/domain-update-rem-only-command.xml.txt"/></sourcecode>
<t>
Example <tt><update></tt> command, which adds one <tt><deleg:deleg></tt> record but does not remove any:
</t>
<sourcecode><xi:include parse="text" href="examples/domain-update-add-only-command.xml.txt"/></sourcecode>
</section>
</section>
</section>
<section>
<name>Relationship between <tt>DELEG</tt> and host objects/attributes</name>
<t>
It is anticpated that most domains will need both <tt>DELEG</tt> and traditional <tt>NS</tt> records published in their parent zone for the foreseeable future.
</t>
<t>
Therefore, EPP servers <bcp14>SHOULD</bcp14> allow clients to configure domain names to have both <tt>DELEG</tt> records and host objects or host attributes.
</t>
</section>
<section>
<name>Security Considerations</name>
<t>Under the initial design of the <tt>DELEG</tt> record, the security implications of propoerly carrying the record in EPP,
and name servers using such information in zones, are similar to the security implications for <tt>NS</tt> records.
If there are later extensions to the <tt>DELEG</tt> record, those extension may have different security considerations that will need to be documented.</t>
</section>
<section anchor="formal-syntax">
<name>Formal syntax</name>
<t>
The formal syntax presented here is a complete schema representation of the extension suitable for automated validation of EPP XML instances.
</t>
<sourcecode><xi:include parse="text" href="deleg-&VERSION;.xsd"/></sourcecode>
</section>
<section>
<name>IANA considerations</name>
<section>
<name>XML Namespace</name>
<t>
This document uses URNs to describe XML namespaces and XML schemas conforming to a registry mechanism described in <xref target="RFC3688"/>.
The following URI assignment has been made by IANA:
</t>
<t>
Registration for the DELEG namespace:
</t>
<t>
<strong>URI:</strong> <tt>urn:ietf:params:xml:ns:epp:deleg-&VERSION;</tt>
</t>
<t>
<strong>Registrant Contact:</strong> See the author(s) of this document
</t>
<t>
<strong>XML:</strong> None. Namespace URIs do not represent an XML specification
</t>
<t>
Registration for the DELEG XML schema:
</t>
<t>
<strong>URI:</strong>
<tt>urn:ietf:params:xml:schema:epp:deleg-&VERSION;</tt>
</t>
<t>
<strong>Registrant Contact:</strong>
See the author(s) of this document
</t>
<t>
<strong>XML:</strong>
See the "<xref target="formal-syntax" format="title"/>" section of this document
</t>
</section>
<section>
<name>EPP Extension Registry</name>
<t>
The EPP extension described in this document has been registered by the IANA in the Extensions for the "Extensible Provisioning Protocol (EPP)" registry described in <xref target="RFC7451"/>.
The details of the registration are as follows:
</t>
<t>
<strong>Name of Extension:</strong> Extensible Provisioning Protocol (EPP) Mapping for DELEG records
</t>
<t>
<strong>Document Status:</strong>
Standards Track
</t>
<t>
<strong>Reference:</strong>
URL of this document
</t>
<t>
<strong>Registrant Name and Email Address:</strong>
See the author(s) of this document
</t>
<t>
<strong>TLDs:</strong>
Any
</t>
<t>
<strong>IPR Disclosure:</strong>
None
</t>
<t>
<strong>Status:</strong>
Active
</t>
<t>
<strong>Notes:</strong>
None
</t>
</section>
</section>
</middle>
<back>
<displayreference target="I-D.dnsop-deleg" to="DELEG"/>
<references><name>Normative References</name>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3688.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7451.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9460.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml-rfcsubseries/reference.STD.0069.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml-ids/reference.I-D.dnsop-deleg.xml"/>
</references>
</back>
</rfc>