summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc7283.txt
blob: 0f062c91901bfe957d3d418a0e8e2d63e6d6c962 (plain) (blame)
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
Internet Engineering Task Force (IETF)                            Y. Cui
Request for Comments: 7283                                        Q. Sun
Updates: 3315                                        Tsinghua University
Category: Standards Track                                       T. Lemon
ISSN: 2070-1721                                            Nominum, Inc.
                                                               July 2014


                    Handling Unknown DHCPv6 Messages

Abstract

   DHCPv6 is not specific about handling messages with unknown types.
   This memo describes the problems associated with receiving DHCPv6
   messages with unknown types, and defines how a DHCPv6 server, client,
   or relay agent should behave when receiving unknown DHCPv6 messages.
   This document also provides advice for authors of future documents
   that define new messages to be sent from DHCP servers to DHCP relay
   agents.  This document updates RFC 3315.

Status of This Memo

   This is an Internet Standards Track document.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   Internet Standards is available in Section 2 of RFC 5741.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   http://www.rfc-editor.org/info/rfc7283.


















Cui, et al.                  Standards Track                    [Page 1]
^L
RFC 7283            Handling Unknown DHCPv6 Messages           July 2014


Copyright Notice

   Copyright (c) 2014 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

   This document may contain material from IETF Documents or IETF
   Contributions published or made publicly available before November
   10, 2008.  The person(s) controlling the copyright in some of this
   material may not have granted the IETF Trust the right to allow
   modifications of such material outside the IETF Standards Process.
   Without obtaining an adequate license from the person(s) controlling
   the copyright in such materials, this document may not be modified
   outside the IETF Standards Process, and derivative works of it may
   not be created outside the IETF Standards Process, except to format
   it for publication as an RFC or to translate it into languages other
   than English.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  Requirements Language . . . . . . . . . . . . . . . . . . . .   3
   3.  Problem Statement . . . . . . . . . . . . . . . . . . . . . .   3
   4.  Relay Agent Behavior Update . . . . . . . . . . . . . . . . .   3
     4.1.  A Valid Message for Constructing a New Relay-forward
           Message . . . . . . . . . . . . . . . . . . . . . . . . .   4
     4.2.  Relaying a Message toward the Server  . . . . . . . . . .   5
     4.3.  Relaying a Message toward the Client  . . . . . . . . . .   5
   5.  Client and Server Behavior Update . . . . . . . . . . . . . .   5
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .   5
   7.  Contributors  . . . . . . . . . . . . . . . . . . . . . . . .   6
   8.  Normative References  . . . . . . . . . . . . . . . . . . . .   6










Cui, et al.                  Standards Track                    [Page 2]
^L
RFC 7283            Handling Unknown DHCPv6 Messages           July 2014


1.  Introduction

   DHCPv6 [RFC3315] provides a framework for conveying IPv6
   configuration information to hosts on a TCP/IP network.  But
   [RFC3315] is not specific about how to deal with messages with
   unrecognized types.  This document describes the problems associated
   with receiving DHCPv6 messages with unknown types, and defines the
   behavior of a DHCPv6 server, client, or relay agent when handling
   unknown DHCPv6 messages.

2.  Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119].

3.  Problem Statement

   When a relay agent receives a message, it sends the message toward
   either the server or the client.  The relay agent decides on the
   direction to forward based on the message type.  Since RFC 3315 was
   published, new message types have been defined.  Additional message
   types may be defined in the future.  RFC 3315 does not specify what
   to do when a DHCP agent does not recognize the type of message it has
   received.  This may lead to relay agents inappropriately dropping
   these messages and to other DHCP agents inappropriately processing
   these messages.

   In addition, there is no specific requirement for dealing with
   unknown messages by the client or server in RFC 3315.

   Note that it is expected that most future DHCPv6 messages will not be
   used to communicate directly with relay agents (though they may need
   to be relayed by relay agents).

4.  Relay Agent Behavior Update

   Relay agents relay messages toward servers and clients according to
   the message type.  The Relay-reply message is sent toward the client.
   The Relay-forward message and other types of messages are sent toward
   the server.

   We say "toward the client" and "toward the server" because relay
   agents may be chained together, so a relay message may be sent
   through multiple relay agents along the path to its destination.
   Relay-reply messages specify a destination address; the relay agent
   extracts the encapsulated message and sends it to the specified
   destination address.  Any message other than a Relay-reply does not



Cui, et al.                  Standards Track                    [Page 3]
^L
RFC 7283            Handling Unknown DHCPv6 Messages           July 2014


   have such a specified destination, so it follows the default
   forwarding path configured on the relay agent, which is always toward
   the server.

   The sole purpose of requiring relay agents to relay unknown messages
   is to ensure that when legitimate new messages are defined in the
   protocol, relay agents (even if they were manufactured prior to the
   definition of these new messages) will, by default, succeed in
   relaying such messages.

4.1.  A Valid Message for Constructing a New Relay-forward Message

   Section 20.1 of [RFC3315] states that:

      When a relay agent receives a valid message to be relayed, it
      constructs a new Relay-forward message.

   It does not define which types of messages are valid for constructing
   Relay-forward messages.  In this document, we specify the definition
   as follows.

      The message is valid for constructing a new Relay-forward message:

      (a)  if the message is a Relay-forward message, or

      (b)  if the relay agent recognizes the message type and is not the
           intended target, or

      (c)  if the relay agent does not recognize the message type.

   New DHCP message types may be defined in the future that are sent,
   unsolicited, to relay agents.  Relay agents that do not implement
   these messages will not recognize the messages as being intended for
   them.  Therefore, a relay agent that implements this specification
   will forward such messages to the DHCP servers to which it is
   configured to relay client messages.

   At this time, no such message types have been specified.  If such a
   message is specified in the future, it is possible that this would
   result in needless load on DHCP servers.  If such a message type is
   defined in a future specification, authors may need to consider a
   strategy for identifying non-conforming relays and not sending such
   messages to those relay agents.

   However, since DHCP servers do not respond to unknown messages, this
   is unlikely to create significant load and is therefore likely to be
   unnecessary.




Cui, et al.                  Standards Track                    [Page 4]
^L
RFC 7283            Handling Unknown DHCPv6 Messages           July 2014


4.2.  Relaying a Message toward the Server

   If the relay agent receives a Relay-forward message, Section 20.1.2
   of [RFC3315] defines the required behavior.  If the relay agent
   receives messages other than Relay-forward and Relay-reply and the
   relay agent does not recognize its message type, it MUST forward them
   as described in Section 20.1.1 of [RFC3315].

4.3.  Relaying a Message toward the Client

   If the relay agent receives a Relay-reply message, it MUST process
   the message as defined in Section 20.2 of [RFC3315], regardless of
   the type of message encapsulated in the Relay Message option.

5.  Client and Server Behavior Update

   A client or server MUST silently discard any received DHCPv6 message
   with an unknown message type.

6.  Security Considerations

   This document creates no new security issues that are not already
   present in RFC 3315.  By explicitly documenting the correct handling
   of unknown messages, this document, if implemented, reduces any
   security exposure that might result from incorrect handling of
   unknown messages.  The following issues are already present with
   Section 23 of [RFC3315], but we discuss them in detail here as
   guidance for implementors.

   As the relay agent will forward all unknown types of DHCPv6 messages,
   a malicious attacker can interfere with the relaying function by
   constructing fake DHCPv6 messages with an arbitrary type code.  The
   same problem may occur in current DHCPv4 and DHCPv6 practice, where
   the attacker constructs the fake DHCP message with a known type code.

   Clients and servers that implement this specification will discard
   unknown DHCPv6 messages.  Since RFC 3315 did not specify relay agent,
   client, or server behavior in the presence of unknown messages, it is
   possible that some servers or clients that have not been updated to
   conform to this specification will become vulnerable to attacks
   through the relay agent as a result of this change.

   For this reason, we recommend that relay agents, clients, and servers
   be updated to follow this new specification.  However, in most
   deployment scenarios, it will be much easier to attack clients
   directly than through a relay agent.  Furthermore, attacks using
   unknown message types are already possible on the local wire.




Cui, et al.                  Standards Track                    [Page 5]
^L
RFC 7283            Handling Unknown DHCPv6 Messages           July 2014


   So, in most cases, if clients are not upgraded, there should be
   minimal additional risk.  At sites where only servers and relay
   agents can be upgraded, the incremental benefit of doing so most
   likely exceeds any risk of vulnerable clients.

   Nothing in this update should be construed to mean that relay agents
   may not be administratively configurable to drop messages based on
   the message type, for security reasons (e.g., in a firewall).

7.  Contributors

   Many thanks to Bernie Volz, Tomek Mrugalski, Sheng Jiang, Cong Liu,
   and Yuchi Chen for their contributions to the document.

8.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC3315]  Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C.,
              and M. Carney, "Dynamic Host Configuration Protocol for
              IPv6 (DHCPv6)", RFC 3315, July 2003.





























Cui, et al.                  Standards Track                    [Page 6]
^L
RFC 7283            Handling Unknown DHCPv6 Messages           July 2014


Authors' Addresses

   Yong Cui
   Tsinghua University
   Beijing  100084
   P.R. China

   Phone: +86-10-6260-3059
   EMail: yong@csnet1.cs.tsinghua.edu.cn


   Qi Sun
   Tsinghua University
   Beijing  100084
   P.R. China

   Phone: +86-10-6278-5822
   EMail: sunqi@csnet1.cs.tsinghua.edu.cn


   Ted Lemon
   Nominum, Inc.
   2000 Seaport Blvd
   Redwood City, CA  94063
   USA

   Phone: +1-650-381-6000
   EMail: Ted.Lemon@nominum.com























Cui, et al.                  Standards Track                    [Page 7]
^L