-
Notifications
You must be signed in to change notification settings - Fork 3
/
draft-btw-add-home-09.xml
1382 lines (1140 loc) · 62.4 KB
/
draft-btw-add-home-09.xml
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
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
There has to be one entity for each item to be referenced.
An alternate method (rfc include) is described in the references. -->
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs),
please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
(Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space
(using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="std" docName="draft-btw-add-home-09" ipr="trust200902">
<front>
<title abbrev="Encrypted DNS in Home Networks">Encrypted DNS Discovery and
Deployment Considerations for Home Networks</title>
<author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
<organization>Orange</organization>
<address>
<postal>
<street></street>
<city>Rennes</city>
<code>35000</code>
<country>France</country>
</postal>
<email>[email protected]</email>
</address>
</author>
<author fullname="Tirumaleswar Reddy" initials="T." surname="Reddy">
<organization abbrev="McAfee">McAfee, Inc.</organization>
<address>
<postal>
<street>Embassy Golf Link Business Park</street>
<city>Bangalore</city>
<region>Karnataka</region>
<code>560071</code>
<country>India</country>
</postal>
<email>[email protected]</email>
</address>
</author>
<author fullname="Dan Wing" initials="D." surname="Wing">
<organization abbrev="Citrix">Citrix Systems, Inc.</organization>
<address>
<postal>
<street></street>
<country>USA</country>
</postal>
<email>[email protected]</email>
</address>
</author>
<author fullname="Neil Cook" initials="N." surname="Cook">
<organization>Open-Xchange</organization>
<address>
<postal>
<street></street>
<country>UK</country>
</postal>
<email>[email protected]</email>
</address>
</author>
<date />
<workgroup>ADD</workgroup>
<abstract>
<t>This document discusses encrypted DNS (e.g., DoH, DoT, DoQ)
deployment considerations for home networks. It particularly sketches
the required steps to use of encrypted DNS capabilities provided by
local networks.</t>
<t>The document specifies new DHCP and Router Advertisement Options to
convey a DNS Authentication Domain Name.</t>
</abstract>
</front>
<middle>
<section anchor="intro" title="Introduction">
<t>Internet Service Providers (ISPs) traditionally provide DNS resolvers
to their customers. Typically, ISPs deploy the following mechanisms to
advertise a list of DNS Recursive DNS server(s) to their customers:
<?rfc subcompact="yes" ?></t>
<t><list style="symbols">
<t>Protocol Configuration Options in cellular networks <xref
target="TS.24008"></xref>.</t>
<t>DHCP <xref target="RFC2132"></xref> (Domain Name Server Option)
or DHCPv6 <xref target="RFC8415"></xref><xref
target="RFC3646"></xref> (OPTION_DNS_SERVERS).</t>
<t>IPv6 Router Advertisement <xref target="RFC4861"></xref><xref
target="RFC8106"></xref> (Type 25 (Recursive DNS Server
Option)).<?rfc subcompact="no" ?></t>
</list></t>
<t>The communication between a customer's device (possibly via Customer
Premises Equipment (CPE)) and an ISP-supplied DNS resolver takes place
by using cleartext DNS messages (Do53) <xref
target="I-D.ietf-dnsop-terminology-ter"></xref>. Some examples are
depicted in <xref target="do53"></xref>. In the case of cellular
networks, the cellular network will provide connectivity directly to a
host (e.g., smartphone, tablet) or via a CPE. Do53 mechanisms used
within the Local Area Network (LAN) are similar in both fixed and
cellular CPE-based broadband service offerings.</t>
<t><figure align="center" anchor="do53"
title="Sample Legacy Deployments">
<artwork align="center"><![CDATA[(a) Fixed Networks
,--,--,--. ,--,--,--.
,-' +--+ `-. ,-' ISP `-.
( LAN |H | CPE----( )
`-. +--+ ,-' `-. ,-'
`--'|-'--' `--'--'--'
| |
|<=======Do53========>|
(b) Cellular Networks
|<===========Do53=========>|
,--,-|,--. |
,-' +--+ `-. ,--,--,--.
( LAN |H | CPE------------+ \
`-. +--+ ,-' ,' ISP `-.
`--'--'--' ( )
+-----+-. ,-'
+--+ | `--'--'--'
|H +------------+
+--+
Legend:
* H: refers to a host.
]]></artwork>
</figure></t>
<t>This document focuses on the support of encrypted DNS such as
DNS-over-HTTPS (DoH) <xref target="RFC8484"></xref>, DNS-over-TLS (DoT)
<xref target="RFC7858"></xref>, or DNS-over-QUIC (DoQ) <xref
target="I-D.ietf-dprive-dnsoquic"></xref> in local networks. In
particular, the document describes how a local encrypted DNS server can
be discovered and used by connected hosts. This document specifies
options that allow DNS clients to discover local encrypted DNS servers.
<xref target="RI"></xref> describes DHCP, DHCPv6, and RA options to
convey the DNS Authentication Domain Name (ADN) <xref
target="RFC8310"></xref>.</t>
<t>Some ISPs rely upon external resolvers (e.g., outsourced service or
public resolvers); these ISPs provide their customers with the IP
addresses of these resolvers. These addresses are typically configured
on CPEs using the same mechanisms listed above. Likewise, users can
modify the default DNS configuration of their CPEs (e.g., supplied by
their ISP) to configure their favorite DNS servers. This document
permits such deployments.</t>
<t>Both managed and unmanaged CPEs are discussed in the document (<xref
target="depl"></xref>). Also, considerations related to hosting a DNS
forwarder in the CPE are described (<xref
target="forwarder"></xref>).</t>
<t>Hosts and/or CPEs may be connected to multiple networks; each
providing their own DNS configuration using the discovery mechanisms
specified in this document. Nevertheless, it is out of the scope of this
specification to discuss DNS selection of multi-interface devices. The
reader may refer to <xref target="RFC6731"></xref> for a discussion of
issues and an example of DNS server selection for multi-interfaced
devices.</t>
</section>
<section anchor="notation" title="Terminology">
<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><xref target="RFC8174"></xref> when, and
only when, they appear in all capitals, as shown here.</t>
<t>This document makes use of the terms defined in <xref
target="RFC8499"></xref> and <xref
target="I-D.ietf-dnsop-terminology-ter"></xref>.</t>
<t>Do53 refers to unencrypted DNS.</t>
<t>'DoH/DoT' refers to DNS-over-HTTPS and/or DNS-over-TLS.</t>
</section>
<section anchor="depl" title="Sample Deployment Scenarios">
<t></t>
<section anchor="mcpe" title="Managed CPEs">
<t>ISPs have developed an expertise in managing service-specific
configuration information (e.g., CPE WAN Management Protocol <xref
target="TR-069"></xref>). For example, these tools may be used to
provision the ADN to managed CPEs if an encrypted DNS is supported by
a local network similar to what is depicted in <xref
target="wan"></xref>.</t>
<t>For example, DoH-capable (or DoT) clients establish the DoH (or
DoT) session with the discovered DoH (or DoT) server.</t>
<t>The DNS client discovers whether the DNS server in the local
network supports DoH/DoT/DoQ by using a dedicated field in the
discovery message: Encrypted DNS Types (<xref
target="RI"></xref>).</t>
<t><figure align="center" anchor="wan"
title="Encrypted DNS in the WAN">
<artwork align="center"><![CDATA[(a) Fixed Networks
,--,--,--. ,--,--,--.
,-' +--+ `-. ,-' ISP `-.
( LAN |H | CPE----( DNS Server )
`-. +--+ ,-' `-. ,-'
`--'|-'--' `--'--'--'
| |
|<===Encrypted DNS===>|
(b) Cellular Networks
|<=====Encrypted DNS======>|
,--,-|,--. |
,-' +--+ `-. ,--,--,--.
( LAN |H | CPE------------+ \
`-. +--+ ,-' ,' ISP `-.
`--'--'--' ( DNS Server )
+-----+-. ,-'
+--+ | `--'--'--'
|H +-----------+
+--+]]></artwork>
</figure></t>
<t><xref target="wan"></xref> shows the scenario where the CPE relays
the list of encrypted DNS servers it learns for the network by using
mechanisms like DHCP or a specific Router Advertisement message. In
such context, direct encrypted DNS sessions will be established
between a host serviced by a CPE and an ISP-supplied encrypted DNS
server (see the example depicted in <xref target="direct"></xref> for
a DoH/DoT-capable host).</t>
<t><figure align="center" anchor="direct"
title="Direct Encrypted DNS Sessions">
<artwork><![CDATA[
,--,--,--. ,--,--,--.
,-' `-. ,-' ISP `-.
Host---( LAN CPE----( DNS Server )
| `-. ,-' `-. ,-'
| `--'--'--' `--'--'--'
| |
|<=========Encrypted DNS===========>|
]]></artwork>
</figure></t>
<t><xref target="proxied"></xref> shows a deployment where the CPE
embeds a caching DNS forwarder. The CPE advertises itself as the
default DNS server to the hosts it serves. The CPE relies upon DHCP or
RA to advertise itself to internal hosts as the default DoT/DoH/Do53
server. When receiving a DNS request it cannot handle locally, the CPE
forwards the request to an upstream DoH/DoT/Do53 resolver. Such
deployment is required for IPv4 service continuity purposes (e.g.,
<xref target="I-D.ietf-v6ops-rfc7084-bis"></xref>) or for supporting
advanced services within the home (e.g., malware filtering, parental
control, Manufacturer Usage Description (MUD) <xref
target="RFC8520"></xref> to only allow intended communications to and
from an IoT device). When the CPE behaves as a DNS forwarder, DNS
communications can be decomposed into two legs:<list style="symbols">
<t>The leg between an internal host and the CPE.</t>
<t>The leg between the CPE and an upstream DNS resolver.</t>
</list></t>
<t>An ISP that offers encrypted DNS to its customers may enable
encrypted DNS in both legs as shown in <xref target="proxied"></xref>.
Additional considerations related to this deployment are discussed in
<xref target="forwarder"></xref>.</t>
<t><figure align="center" anchor="proxied"
title="Proxied Encrypted DNS Sessions">
<artwork><![CDATA[
,--,--,--. ,--,--,--.
,-' `-. ,-' ISP `-.
Host---( LAN CPE----( DNS Server )
| `-. ,-'| `-. ,-'
| `--'--'--' | `--'--'--'
| | |
|<=====Encrypted=====>|<=Encrypted=>|
DNS DNS
]]></artwork>
</figure></t>
<t></t>
</section>
<section anchor="ucpe" title="Unmanaged CPEs">
<t>Customers may decide to deploy unmanaged CPEs (assuming the CPE is
compliant with the network access technical specification that is
usually published by ISPs). Upon attachment to the network, an
unmanaged CPE receives from the network its service configuration
(including the DNS information) by means of, e.g., DHCP. That DNS
information is shared within the LAN following the same mechanisms as
those discussed in <xref target="mcpe"></xref>. A host can thus, for
example, establish DoH/DoT session with a DoH/DoT server similar to
what is depicted in <xref target="direct"></xref>.</t>
<t>Customers may also decide to deploy internal home routers (called
hereafter, Internal CPEs) for a variety of reasons that are not
detailed here. Absent any explicit configuration on the internal CPE
to override the DNS configuration it receives from the ISP-supplied
CPE, an Internal CPE relays the DNS information it receives via
DHCP/RA from the ISP-supplied CPE to connected hosts. Encrypted DNS
sessions can be established by a host with the DNS servers of the ISP
(see <xref target="internal_isp"></xref>).</t>
<t><figure align="center" anchor="internal_isp"
title="Direct Encrypted DNS Sessions with the ISP DNS Resolver (Internal CPE)">
<artwork align="center"><![CDATA[
,--,--,--. ,--,--,--.
,-' Internal ,-' ISP `-.
Host--( Network#A CPE----CPE---( DNS Server )
| `-. ,-' `-. ,-'
| `--'--'--' `--'--'--'
| |
|<==============Encrypted DNS=============>|
]]></artwork>
</figure></t>
<t>Similar to managed CPEs, a user may modify the default DNS
configuration of an unmanaged CPE to use his/her favorite DNS servers
instead. Encrypted DNS sessions can be established directly between a
host and a 3rd Party DNS server (see <xref
target="internal_3"></xref>).</t>
<t><figure align="center" anchor="internal_3"
title="Direct Encrypted DNS Sessions with a Third Party DNS Resolver ">
<artwork align="center"><![CDATA[ ,--,--,--. ,--,
,' Internal ,-' '- 3rd Party
Host--( Network#A CPE----CPE---( ISP )--- DNS Server
| `. ,-' `-. -' |
| `-'--'--' `--' |
| |
|<=================Encrypted DNS==================>|
]]></artwork>
</figure></t>
<t><xref target="forwarder_u"></xref> discusses considerations related
to hosting a forwarder in the Internal CPE.</t>
</section>
</section>
<section anchor="RI" title="DNS Reference Identifier Option">
<t>This section describes how a DNS client can discover the ADN of local
encrypted DNS server(s) using DHCP (Sections <xref format="counter"
target="DHCPv6"></xref> and <xref format="counter"
target="DHCP"></xref>) and Neighbor Discovery protocol (<xref
target="RA"></xref>).</t>
<t>As reported in Section 1.7.2 of <xref target="RFC6125"></xref>:<list
style="empty">
<t>"few certification authorities issue server certificates based on
IP addresses, but preliminary evidence indicates that such
certificates are a very small percentage (less than 1%) of issued
certificates".</t>
</list></t>
<t>In order to allow for PKIX-based authentication between a DNS client
and an encrypted DNS server while accommodating the current best
practices for issuing certificates, this document allows for configuring
an authentication domain name to be presented as a reference identifier
for DNS authentication purposes.</t>
<t>The DNS client establishes an encrypted DNS session with the
discovered DNS IP address(es) (<xref target="address"></xref>) and uses
the mechanism discussed in Section 8 of <xref target="RFC8310"></xref>
to authenticate the DNS server certificate using the authentication
domain name conveyed in the DNS Reference Identifier. This assumes that
default port numbers are used to establish an encrypted DNS session
(e.g., 853 for DoT, 443 for DoH). A discussion on the use of customized
port numbers is included in <xref target="cust"></xref>.</t>
<t>If the DNS Reference Identifier is discovered by a host using both RA
and DHCP, the rules discussed in Section 5.3.1 of <xref
target="RFC8106"></xref> MUST be followed.</t>
<section anchor="DHCPv6" title="DHCPv6 Reference Identifier Option">
<t>The DHCPv6 Reference Identifier option is used to configure an
authentication domain name of the encrypted DNS server. The format of
this option is shown in <xref target="ri_option"></xref>.</t>
<t><figure anchor="ri_option"
title="DHCPv6 DNS Reference Identifier Option">
<artwork><![CDATA[ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_V6_DNS_RI | Option-length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Encr DNS Types| |
+---------------+ |
| |
~ Authentication Domain Name ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
</figure>The fields of the option shown in <xref
target="ri_option"></xref> are as follows:<?rfc subcompact="yes" ?></t>
<t><list style="symbols">
<t>Option-code: OPTION_V6_DNS_RI (TBA1, see <xref
target="iana6"></xref>)</t>
<t>Option-length: Length of the enclosed data in octets.</t>
<t>Encr DNS Types (Encrypted DNS Types): Indicates the type(s) of
the encrypted DNS server conveyed in this attribute. The format of
this 8-bit field is shown in <xref target="types"></xref>. <figure
align="center" anchor="types" title="Encrypted DNS Types">
<artwork align="center"><![CDATA[+-+-+-+-+-+-+-+-+
|U|U|U|U|U|Q|H|T|
+-+-+-+-+-+-+-+-+ ]]></artwork>
</figure><list style="empty">
<t>T: If set, this bit indicates that the server supports DoT
<xref target="RFC7858"></xref>.</t>
<t>H: If set, this bit indicates that the server supports DoH
<xref target="RFC8484"></xref>.</t>
<t>Q: If set, this bit indicates that the server supports DoQ
<xref target="I-D.ietf-dprive-dnsoquic"></xref>.</t>
<t>U: Unassigned bits. These bits MUST be unset by the sender.
Associating a meaning with an unassigned bit can be done via
Standards Action <xref target="RFC8126"></xref>.</t>
</list>In a request, these bits are assigned to indicate the
requested encrypted DNS server type(s) by the client. In a
response, these bits are set as a function of the encrypted DNS
supported by the server and the requested encrypted DNS server
type(s). <vspace blankLines="1" />To keep the packet small, if
more than one encrypted DNS type (e.g., both DoH and DoT) are to
be returned to a requesting client and the same ADN is used for
these types, the corresponding bits MUST be set in the 'Encrypted
DNS Types' field of the same option instance in a response. For
example, if the client requested DoH and DoTand the server
supports both, then both T and H bits must be set.</t>
<t>Authentication Domain Name: A fully qualified domain name of
the encrypted DNS server. This field is formatted as specified in
Section 10 of <xref target="RFC8415"></xref>.</t>
</list></t>
<t><?rfc subcompact="no" ?>An example of the Authentication Domain
Name encoding is shown in <xref target="fqdn"></xref>. This example
conveys the FQDN "doh1.example.com.".</t>
<t><figure anchor="fqdn"
title="An example of the authentication-domain-name Encoding">
<artwork><![CDATA[ +------+------+------+------+------+------+------+------+------+
| 0x04 | d | o | h | 1 | 0x07 | e | x | a |
+------+------+------+------+------+------+------+------+------+
| m | p | l | e | 0x03 | c | o | m | 0x00 |
+------+------+------+------+------+------+------+------+------+
]]></artwork>
</figure></t>
<t>Multiple instances of OPTION_V6_DNS_RI may be returned to a DHCPv6
client; each pointing to a distinct encrypted DNS server type.</t>
<t>To discover an encrypted DNS server, the DHCPv6 client including
OPTION_V6_DNS_RI in an Option Request Option (ORO), as in Sections
18.2.1, 18.2.2, 18.2.4, 18.2.5, 18.2.6, and 21.7 of <xref
target="RFC8415"></xref>. The DHCPv6 client sets the Encrypted DNS
Types field to the requested encrypted DNS server type(s).</t>
<t>If the DHCPv6 client requested more than one encrypted DNS server
type, the DHCP client MUST be prepared to receive multiple DHCP
OPTION_V6_DNS_RI options; each option is to be treated as a separate
encrypted DNS server.</t>
</section>
<section anchor="DHCP" title="DHCP DNS Reference Identifier Option">
<t>The DHCP DNS Reference Identifier option is used to configure an
authentication domain name of the encrypted DNS server. The format of
this option is illustrated in <xref target="dhcpri_dns"></xref>.</t>
<t><figure anchor="dhcpri_dns"
title="DHCP DNS Reference Identifier Option">
<artwork><![CDATA[ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TBA2 | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Encr DNS Types| |
+-+-+-+-+-+-+-+-+ |
| |
~ Authentication Domain Name ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
with:
Authentication Domain Name
+-----+-----+-----+-----+-----+--
| s1 | s2 | s3 | s4 | s5 | ...
+-----+-----+-----+-----+-----+--
The values s1, s2, s3, etc. represent the domain name labels in the
domain name encoding.
]]></artwork>
</figure></t>
<t>The fields of the option shown in <xref target="dhcpri_dns"></xref>
are as follows:<?rfc subcompact="yes" ?><list style="symbols">
<t>Code: OPTION_V4_DNS_RI (TBA2, see <xref
target="iana4"></xref>).</t>
<t>Length: Length of the enclosed data in octets.</t>
<t>Encr DNS Types (Encrypted DNS Types): Indicates the type(s) of
the encrypted DNS server conveyed in this attribute. The format of
this field is shown in <xref target="types"></xref>.</t>
<t>Authentication Domain Name: The domain name of the DoH/DoT
server. This field is formatted as specified in Section 10 of
<xref target="RFC8415"></xref>.</t>
</list></t>
<t><?rfc subcompact="no" ?>OPTION_V4_DNS_RI is a
concatenation-requiring option. As such, the mechanism specified in
<xref target="RFC3396"></xref> MUST be used if OPTION_V4_DNS_RI
exceeds the maximum DHCP option size of 255 octets.</t>
<t>To discover an encrypted DNS server, the DHCP client requests the
Encrypted DNS Reference Identifier by including OPTION_V4_DNS_RI in a
Parameter Request List option <xref target="RFC2132"></xref>. The DHCP
client sets the Encrypted DNS Types field to the requested encrypted
DNS server.</t>
<t>If the DHCP client requested more than one encrypted DNS server
type, the DHCP client MUST be prepared to receive multiple DHCP
OPTION_V4_DNS_RI options; each option is to be treated as a separate
encrypted DNS server.</t>
</section>
<section anchor="RA" title="RA DNS Reference Identifier Option">
<t>The IPv6 Router Advertisement (RA) DNS Reference Identifier option
is used to configure an authentication domain name of the DoH/DoT
server. The format of this option is illustrated in <xref
target="ra_dns"></xref>.</t>
<t><figure anchor="ra_dns" title="RA DNS Reference Identifier Option">
<artwork><![CDATA[ 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Encr DNS Types| Unassigned |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
: Authentication Domain Name :
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
</figure></t>
<t>The fields of the option shown in <xref target="ra_dns"></xref> are
as follows:<?rfc subcompact="yes" ?><list style="symbols">
<t>Type: 8-bit identifier of the DNS Reference Identifier Option
as assigned by IANA (TBA3, see <xref target="iana7"></xref>).</t>
<t>Length: 8-bit unsigned integer. The length of the option
(including the Type and Length fields) is in units of 8
octets.</t>
<t>Encr DNS Types (Encrypted DNS Types): Indicates the type(s) of
the encrypted DNS server conveyed in this attribute. The format of
this field is shown in <xref target="types"></xref>.</t>
<t>Unassigned: This field is unused. It MUST be initialized to
zero by the sender and MUST be ignored by the receiver.</t>
<t>Lifetime: 32-bit unsigned integer. The maximum time in seconds
(relative to the time the packet is received) over which the
authentication domain name MAY be used as a DNS Reference
Identifier. <vspace blankLines="1" />The value of Lifetime SHOULD
by default be at least 3 * MaxRtrAdvInterval, where
MaxRtrAdvInterval is the maximum RA interval as defined in <xref
target="RFC4861"></xref>. <vspace blankLines="1" />A value of all
one bits (0xffffffff) represents infinity. <vspace
blankLines="1" />A value of zero means that the DNS Reference
Identifier MUST no longer be used.</t>
<t>Authentication Domain Name: The domain name of the encrypted
DNS server. This field is formatted as specified in Section 10 of
<xref target="RFC8415"></xref>.<vspace blankLines="1" />This field
MUST be padded with zeros so that its size is a multiple of 8
octets.</t>
</list></t>
<t><?rfc subcompact="no" ?></t>
</section>
</section>
<section anchor="address" title="Locating Encrypted DNS Servers">
<t>From an IP reachability standpoint, encrypted DNS servers SHOULD be
located by their address literals rather than passing the discovered
names (ADN) to a resolution library. This avoids adding a dependency on
another server to resolve the ADN.</t>
<t>In the various scenarios sketched in <xref target="depl"></xref>,
encrypted DNS servers may terminate on the same IP address or distinct
IP addresses. Terminating encrypted DNS servers on the same or distinct
IP addresses is deployment-specific.</t>
<t>In order to optimize the size of discovery messages when all servers
terminate on the same IP address, a CPE or a host relies upon the
discovery mechanisms specified in <xref target="RFC2132"></xref><xref
target="RFC3646"></xref><xref target="RFC8106"></xref> to retrieve a
list of IP addresses to reach their DNS servers.</t>
<t>In deployments where encrypted DNS servers are not co-located, a list
of servers that is composed of encrypted DNS servers can be returned
using in <xref target="RFC2132"></xref><xref
target="RFC3646"></xref><xref target="RFC8106"></xref>. For example, a
host that is also DoH-capable (and/or DoT-capable), will try to
establish a DoH (and/or DoT) session to that list. DoT and/or DoH are
supported if the client succeeds to establish a session.</t>
<t>Let's consider that the DoH server is reachable at
2001:db8:122:300::2 while the Do53 server is reachable at
2001:db8:122:300::1. The DHCP server will then return a list that
includes both 2001:db8:122:300::1 and 2001:db8:122:300::2 to a
requesting DNS client. That list is passed to the DNS client. The DNS
clients will try connecting to the DNS servers using both IP addresses
and the standard ports for DoH and Do53 protocols in a fashion similar
to the Happy Eyeballs mechanism defined in <xref
target="RFC8305"></xref>. The DoH client selects the IP address
2001:db8:122:300::2 with which the TLS session is established, whereas
the legacy Do53 client selects the IP address 2001:db8:122:300::1 with
which cleartext DNS messages are exchanged over UDP or TCP.</t>
<t><figure>
<artwork align="center" alt="distinct"
name="Locating DoH/DoT/Do53 (Distinct Servers)"><![CDATA[ Legacy Do53
client
|<===RA======|
| {RI,@1,@2} | |
| | |
|========Do53 Query=======>|
| | --,--,-
,+-,--,--. | ,/ S1 (@1)\.
,-' `-. | ,-' ISP `-.
DoH/DoT --( LAN CPE----( )
capable client `-. ,-'| `-. S2 (@2) ,-'
| `--'--'--' | `--'--'--'
|<=========RA==========| |
| {RI,@1,@2} | |
| |
|<===============DoT/DoH============>|
Legend:
* S1: Do53 server
* S2: DoH/DoT server
* @1: IP address of S1
* @1: IP address of S2
* RI: DNS Reference Identifier]]></artwork>
</figure></t>
<t>The DHCP server may return a customized DNS configuration (<xref
target="RFC7969"></xref>) as a function of the requested DHCP options.
For example, if the DHCP client does not include a DNS Reference
Identifier option in its request, the DHCP server will return the IP
address of the Do53 server (2001:db8:122:300::1). If a DNS Reference
Identifier option is present in the request, the DHCP server returns the
IP address(es) of the DoH server (2001:db8:122:300::2) (or
2001:db8:122:300::2 and 2001:db8:122:300::1 in this order).</t>
<t>An alternate design where a list of IP addresses is also included in
the same option conveying ADN is discussed in <xref
target="cust"></xref>.</t>
</section>
<section anchor="URI" title="DoH URI Templates">
<t>DoH servers may support more than one URI Template <xref
target="RFC8484"></xref>. Also, if the resolver hosts several DoH
services (e.g., no-filtering, blocking adult content, blocking malware),
these services can be discovered as templates. The following discusses a
mechanism for a DoH client to retrieve the list of supported templates
by a DoH server.</t>
<t>Upon discovery of a DoH resolver (<xref target="RI"></xref>), the DoH
client contacts that DoH resolver to retrieve the list of supported DoH
services using the well-known URI defined in <xref
target="I-D.btw-add-rfc8484-clarification"></xref>. DoH clients
re-iterates that request regularly to retrieve an updated list of
supported DoH services. Note that a "push" mode can be considered using
the mechanism defined in <xref target="I-D.ietf-dnssd-push"></xref>.</t>
<t>How a DoH client makes use of the configured DoH services is out of
scope of this document.</t>
</section>
<section title="Make Use of Discovered Encrypted DNS Server">
<t>Even if the use of a discovered encrypted DNS server is beyond the
discovery process and falls under encrypted server selection, the
following subsections discuss conditions under which discovered
encrypted DNS server can be used.</t>
<section anchor="auto" title="Encrypted DNS Auto-Upgrade">
<t>Additional considerations are discussed below for the use of DoH
and DoT servers provided by local networks:<list style="symbols">
<t>If the DNS server's IP address discovered by using DHCP/RA is
pre-configured in the OS or Browser as a verified resolver (e.g.,
part of an auto-upgrade program such as <xref
target="Auto-upgrade"></xref>), the DNS client auto-upgrades to
use the pre-configured encrypted DNS server tied to the discovered
DNS server IP address. In such a case the DNS client will perform
additional checks out of band, such as confirming that the Do53 IP
address and the encrypted DNS server are owned and operated by the
same organisation.</t>
<t>Similarly, if the ADN conveyed in DHCP/RA (<xref
target="RI"></xref>) is pre-configured in the OS or browser as a
verified resolver, the DNS client auto-upgrades to establish an
encrypted a DoH/DoT/DoQ session with the ADN.<vspace
blankLines="1" />In such case, the DNS client matches the domain
name in the DNS Reference Identifier DHCP/RA option with the
'DNS-ID' identifier type within subjectAltName entry in the server
certificate conveyed in the TLS handshake.</t>
</list></t>
</section>
<section anchor="identity" title="DNS Server Identity Assertion">
<t>If the discovered encrypted DNS server information is not
pre-configured in the OS or the browser, the DNS client needs evidence
about the encrypted server to assess its trustworthiness and a way to
appraise such evidence. The DNS client can validate the Policy
Assertion Token signature (Section 7 of <xref
target="I-D.reddy-add-server-policy-selection"></xref>) to
cryptographically assert the DNS server identity to identify it is
connecting to an encrypted DNS server hosted by a legal organization
and the user can identify the encrypted DNS server hosted by a
specific organization (e.g., ISP).</t>
</section>
<section anchor="ad" title="Other Deployment Options">
<t>Some deployment options to securely configure hosts are discussed
below. These options are provided for the sake of completeness.</t>
<t><list style="symbols">
<t>If Device Provisioning Protocol (DPP) <xref
target="DPP"></xref> is used, the configurator can securely
configure devices in the home network with the local DoT/DoH
server using DPP. If the DoT/DoH servers use raw public keys <xref
target="RFC7250"></xref>, the Subject Public Key Info (SPKI) pin
set <xref target="RFC7250"></xref> of raw public keys may be
encoded in a QR code. The configurator (e.g., mobile device) can
scan the QR code and provision SPKI pin set in OS/Browser. The
configurator can in-turn securely configure devices (e.g.,
thermostat) in the home network with the SPKI pin set using
DPP.</t>
<t>If a CPE is co-located with security services within the home
network, the CPE can use WPA-PSK but with unique pre-shared keys
for different endpoints to deal with security issues. In such
networks, <xref target="I-D.reddy-add-iot-byod-bootstrap"></xref>
may be used to securely bootstrap endpoint devices with the
authentication domain name and DNS server certificate of the local
network's DoH/DoT server. <vspace blankLines="1" />The OS would
not know if the WPA pre-shared-key is the same for all clients or
a unique pre-shared key is assigned to the host. Hence, the user
has to indicate to the system that a unique pre-shared key is
assigned to trigger the bootstrapping procedure. <vspace
blankLines="1" />If the device joins a home network using a single
shared password among all the attached devices, a compromised
device can host a fake access point, and the device cannot be
securely bootstrapped with the home network's DoH/DoT server.</t>
</list></t>
</section>
</section>
<section anchor="forwarder"
title="Hosting Encrypted DNS Forwarder in the CPE">
<section anchor="forwarder_m" title="Managed CPEs">
<t>The following mechanisms can be used to host a DoH/DoT forwarder in
a managed CPE (<xref target="mcpe"></xref>).</t>
<section anchor="acme" title="ACME">
<t>The ISP can assign a unique FQDN (e.g., cpe1.example.com) and a
domain-validated public certificate to the encrypted DNS forwarder
hosted on the CPE. Automatic Certificate Management Environment
(ACME) <xref target="RFC8555"></xref> can be used by the ISP to
automate certificate management functions such as domain validation
procedure, certificate issuance and certificate revocation.</t>
<t>The managed CPE should support a configuration parameter to
instruct the CPE whether it has to relay the encrypted DNS server
received from the ISP's network or has to announce itself as a
forwarder within the local network. The default behavior of the CPE
is to supply the encrypted DNS server received from the ISP's
network.</t>
</section>
<section title="Auto-Upgrade Based on Domains and their Subdomains">
<t>If the ADN conveyed in DHCP/RA (<xref target="RI"></xref>) is
pre-configured in popular OSes or browsers as a verified resolver
and the auto-upgrade (<xref target="auto"></xref>) is allowed for
both the pre-configured ADN and its sub-domains, the DoH/DoT client
will learn the local encrypted DNS forwarder using DHCP/RA and
auto-upgrade because the left-most label of the pre-configured ADN
would match the subjectAltName value in the server certificate.
Concretely, the CPE can communicate the ADN of the local DoH
forwarder (<xref target="acme"></xref>) to internal hosts using
DHCP/RA (<xref target="RI"></xref>).</t>
<t>Let's suppose that "example.net" is pre-configured as a verified
resolved in the browser or OS. If the DoH/DoT client discovers a
local forwarder "cpe1-internal.example.net", the encrypted DNS
client will auto-upgrade because the pre-configured ADN would match
subjectAltName value "cpe1-internal.example.net" of type dNSName. As
shown in <xref target="subdomainex"></xref>, the auto-upgrade to a
rogue server advertising "rs.example.org" will fail. <figure
align="center" anchor="subdomainex"
title="A Simplified Example of Auto-upgrade based on Sub-domains">
<artwork><![CDATA[
Rogue Server
| |
X<==DHCP=======|
| {ADN= |
| rs.example.org, @rs}
| | --,--,-
| ,+-,--+--. ,/ ISP \.
| ,-' `-. ,-' `-.
DoH/DoT --( LAN CPE----( S (@1) )
capable client `-. ,-'| `-. ,-'
| `--'--'--' | `--'--'--'
|<========DHCP========>|
|{ADN= |
| cpe1-internal.example.net, @i}
|
|<========DoH=========>|
| |
Legend:
* S: DoH/DoT server
* @1: IP address of S
* @i: internal IP address of the CPE
* @rs: IP address of a rogue server
]]></artwork>
</figure></t>
</section>
</section>
<section anchor="forwarder_u" title="Unmanaged CPEs">
<t>The approach specified in <xref target="forwarder_m"></xref> does
not apply for hosting a DNS forwarder in an unmanaged CPE.</t>
<t>The unmanaged CPE administrator (referred to as administrator) can
host a DoH/DoT forwarder on the unmanaged CPE. This assumes the
following:<list style="symbols">
<t>The encrypted DNS server certificate is managed by the entity
in-charge of hosting the encrypted DNS forwarder. <vspace
blankLines="1" />Alternatively, a security service provider can
assign a unique FQDN to the CPE. The encrypted DNS forwarder will
act like a private encrypted DNS server only be accessible from
within the home network.</t>
<t>The encrypted DNS forwarder will either be configured to use
the ISP's or a 3rd party encrypted DNS server.</t>
<t>The unmanaged CPE will advertise the encrypted DNS forwarder
ADN using DHCP/RA to internal hosts.</t>
</list></t>
<t><xref target="internal_forwarded"></xref> illustrates an example of
an unmanaged CPE hosting a forwarder which connects to a 3rd party
encrypted DNS server. In this example, the DNS information received
from the managed CPE (and therefore from the ISP) is ignored by the
Internal CPE hosting the forwarder.</t>
<t><figure align="center" anchor="internal_forwarded"
title="Example of an Internal CPE Hosting a Forwarder">
<artwork align="center"><![CDATA[ ,--,--,--. ,--,
,' Internal Managed ,-' '- 3rd Party
Host--( Network#A CPE--------CPE------( ISP )--- DNS Server
| `. ,-'| | `-. -' |
| `-'--'--' | |<==DHCP==>|`--' |
| |<==DHCP==>| | |
|<======DHCP=======>| | |
| {RI, @i} | |
|<==Encrypted DNS==>|<==========Encrypted DNS==========>|
Legend:
* @i: IP address of the DNS forwarder hosted in the Internal
CPE.
]]></artwork>
</figure></t>
</section>
</section>
<section title="Legacy CPEs">
<t>Hosts serviced by legacy CPEs that can't be upgraded to support the
options defined in <xref target="RI"></xref> won't be able to learn the
encrypted DNS server hosted by the ISP, in particular. If the ADN is not
discovered using DHCP/RA, such hosts will have to fallback to use the
special-use domain name defined in <xref
target="I-D.pp-add-resinfo"></xref> to discover the encrypted DNS server
and to retrieve the list of supported DoH services using the RESINFO
RRtype <xref target="I-D.pp-add-resinfo"></xref>.</t>
<t>The DHCP/RA option to discover ADN takes precedence over special-use
domain name since the special-use domain name is suseptible to both
internal and external attacks whereas DHCP/RA is only vulnerable to
internal attacks.</t>
</section>
<section anchor="Security" title="Security Considerations">
<section title="Spoofing Attacks">
<t>Because DHCP/RA messages are not encrypted or protected against
modification in any way, their content can be spoofed or modified by
active attackers (e.g., compromised devices within the home network).
An active attacker (Section 3.3 of <xref target="RFC3552"></xref>) can
spoof the DHCP/RA response to provide the attacker's DoH/DoT/DoQ
server. Note that such an attacker can launch other attacks as
discussed in Section 22 of <xref target="RFC8415"></xref>. The
attacker can get a domain name, domain-validated public certificate
from a CA, host a DoH/DoT/DoQ server and claim the best DNS privacy
preservation policy. Also, an attacker can use a public IP address,
get an 'IP address'-validated public certificate from a CA, host a
DoH/DoT/DoQ server and claim the best DNS privacy preservation
policy.</t>
<t>The possible mitigations for this attack are listed below:</t>
<t><list style="symbols">
<t>Encrypted DNS server pre-configured in the OS or browser. If
the local DoH/DoT server offers malware and phishing filtering
service, an attacker can spoof the DHCP/RA response to provide an
non-filtering DNS server pre-configured in the OS or browser,
which the attacker can leverage to deliver malware or mislead the
user to access phishing sites. If the discovered encrypted DNS
server does not meet the filtering requirements of the user, the
DNS client can take appropriate actions. For example, the action
by the DNS client can be not use the locally-discovered DoH/DoT
server if it does not offer malware and phishing filtering service
(e.g., <xref
target="I-D.reddy-add-server-policy-selection"></xref>).</t>
<t>Cryptographically assert the DNS server identity for the DNS
client to identify it is connecting to an is encrypted DNS server
hosted by an legal organization and for the user to identify the
encrypted DNS server hosted by a specific organization <xref
target="I-D.reddy-add-server-policy-selection"></xref>.</t>
</list></t>
<t>DoT/DoH sessions with rogue servers spoofing the IP address of a
DNS server will fail because the DNS client will fail to authenticate
that rogue server based upon PKIX authentication <xref
target="RFC6125"></xref> based upon the authentication domain name in
the Reference Identifier Option. DNS clients that ignore
authentication failures and accept spoofed certificates will be
subject to attacks (e.g., redirect to malicious servers, intercept
sensitive data).</t>
</section>
<section title="Deletion Attacks">
<t>If the DHCP responses or RAs are dropped by the attacker, the