7 Network Working Group G. Huang
8 Request for Comments: 3706 S. Beaulieu
9 Category: Informational D. Rochefort
14 A Traffic-Based Method of Detecting Dead Internet
15 Key Exchange (IKE) Peers
19 This memo provides information for the Internet community. It does
20 not specify an Internet standard of any kind. Distribution of this
25 Copyright (C) The Internet Society (2004). All Rights Reserved.
29 This document describes the method detecting a dead Internet Key
30 Exchange (IKE) peer that is presently in use by a number of vendors.
31 The method, called Dead Peer Detection (DPD) uses IPSec traffic
32 patterns to minimize the number of IKE messages that are needed to
33 confirm liveness. DPD, like other keepalive mechanisms, is needed to
34 determine when to perform IKE peer failover, and to reclaim lost
39 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
40 2. Document Roadmap . . . . . . . . . . . . . . . . . . . . . . . 3
41 3. Rationale for Periodic Message Exchange for Proof of
42 Liveliness . . . . . . . . . . . . . . . . . . . . . . . . . . 3
43 4. Keepalives vs. Heartbeats . . . . . . . . . . . . . . . . . . 3
44 4.1. Keepalives . . . . . . . . . . . . . . . . . . . . . . . 3
45 4.2. Heartbeats . . . . . . . . . . . . . . . . . . . . . . . 5
46 5. DPD Protocol . . . . . . . . . . . . . . . . . . . . . . . . . 6
47 5.1. DPD Vendor ID. . . . . . . . . . . . . . . . . . . . . . 7
48 5.2. Message Exchanges. . . . . . . . . . . . . . . . . . . . 7
49 5.3. NOTIFY(R-U-THERE/R-U-THERE-ACK) Message Format . . . . . 8
50 5.4. Impetus for DPD Exchange . . . . . . . . . . . . . . . . 9
51 5.5. Implementation Suggestion. . . . . . . . . . . . . . . . 9
52 5.6. Comparisons. . . . . . . . . . . . . . . . . . . . . . . 10
53 6. Resistance to Replay Attack and False Proof of Liveliness. . . 10
54 6.1. Sequence Number in DPD Messages. . . . . . . . . . . . . 10
58 Huang, et al. Informational [Page 1]
60 RFC 3706 Detecting Dead IKE Peers February 2004
63 6.2. Selection and Maintenance of Sequence Numbers. . . . . . 11
64 7. Security Considerations. . . . . . . . . . . . . . . . . . . . 11
65 8. IANA Considerations. . . . . . . . . . . . . . . . . . . . . . 12
66 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12
67 9.1. Normative Reference. . . . . . . . . . . . . . . . . . . 12
68 9.2. Informative References . . . . . . . . . . . . . . . . . 12
69 10. Editors' Addresses . . . . . . . . . . . . . . . . . . . . . . 12
70 11. Full Copyright Statement . . . . . . . . . . . . . . . . . . . 13
74 When two peers communicate with IKE [2] and IPSec [3], the situation
75 may arise in which connectivity between the two goes down
76 unexpectedly. This situation can arise because of routing problems,
77 one host rebooting, etc., and in such cases, there is often no way
78 for IKE and IPSec to identify the loss of peer connectivity. As
79 such, the SAs can remain until their lifetimes naturally expire,
80 resulting in a "black hole" situation where packets are tunneled to
81 oblivion. It is often desirable to recognize black holes as soon as
82 possible so that an entity can failover to a different peer quickly.
83 Likewise, it is sometimes necessary to detect black holes to recover
86 This problem of detecting a dead IKE peer has been addressed by
87 proposals that require sending periodic HELLO/ACK messages to prove
88 liveliness. These schemes tend to be unidirectional (a HELLO only)
89 or bidirectional (a HELLO/ACK pair). For the purpose of this
90 document, the term "heartbeat" will refer to a unidirectional message
91 to prove liveliness. Likewise, the term "keepalive" will refer to a
92 bidirectional message.
94 The problem with current heartbeat and keepalive proposals is their
95 reliance upon their messages to be sent at regular intervals. In the
96 implementation, this translates into managing some timer to service
97 these message intervals. Similarly, because rapid detection of the
98 dead peer is often desired, these messages must be sent with some
99 frequency, again translating into considerable overhead for message
100 processing. In implementations and installations where managing
101 large numbers of simultaneous IKE sessions is of concern, these
102 regular heartbeats/keepalives prove to be infeasible.
104 To this end, a number of vendors have implemented their own approach
105 to detect peer liveliness without needing to send messages at regular
106 intervals. This informational document describes the current
107 practice of those implementations. This scheme, called Dead Peer
108 Detection (DPD), relies on IKE Notify messages to query the
109 liveliness of an IKE peer.
114 Huang, et al. Informational [Page 2]
116 RFC 3706 Detecting Dead IKE Peers February 2004
119 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
120 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
121 document are to be interpreted as described in RFC-2119 [1].
125 As mentioned above, there are already proposed solutions to the
126 problem of detecting dead peers. Section 3 elaborates the rationale
127 for using an IKE message exchange to query a peer's liveliness.
128 Section 4 examines a keepalives-based approach as well as a
129 heartbeats-based approach. Section 5 presents the DPD proposal
130 fully, highlighting differences between DPD and the schemes presented
131 in Section 4 and emphasizing scalability issues. Section 6 examines
132 security issues surrounding replayed messages and false liveliness.
134 3. Rationale for Periodic Message Exchange for Proof of Liveliness
136 As the introduction mentioned, it is often necessary to detect that a
137 peer is unreachable as soon as possible. IKE provides no way for
138 this to occur -- aside from waiting until the rekey period, then
139 attempting (and failing the rekey). This would result in a period of
140 loss connectivity lasting the remainder of the lifetime of the
141 security association (SA), and in most deployments, this is
142 unacceptable. As such, a method is needed for checking up on a
143 peer's state at will. Different methods have arisen, usually using
144 an IKE Notify to query the peer's liveliness. These methods rely on
145 either a bidirectional "keepalive" message exchange (a HELLO followed
146 by an ACK), or a unidirectional "heartbeat" message exchange (a HELLO
147 only). The next section considers both of these schemes.
149 4. Keepalives vs. Heartbeats
153 Consider a keepalives scheme in which peer A and peer B require
154 regular acknowledgements of each other's liveliness. The messages
155 are exchanged by means of an authenticated notify payload. The two
156 peers must agree upon the interval at which keepalives are sent,
157 meaning that some negotiation is required during Phase 1. For any
158 prompt failover to be possible, the keepalives must also be sent at
159 rather frequent intervals -- around 10 seconds or so. In this
160 hypothetical keepalives scenario, peers A and B agree to exchange
161 keepalives every 10 seconds. Essentially, every 10 seconds, one peer
162 must send a HELLO to the other. This HELLO serves as proof of
163 liveliness for the sending entity. In turn, the other peer must
164 acknowledge each keepalive HELLO. If the 10 seconds elapse, and one
165 side has not received a HELLO, it will send the HELLO message itself,
166 using the peer's ACK as proof of liveliness. Receipt of either a
170 Huang, et al. Informational [Page 3]
172 RFC 3706 Detecting Dead IKE Peers February 2004
175 HELLO or ACK causes an entity's keepalive timer to reset. Failure to
176 receive an ACK in a certain period of time signals an error. A
177 clarification is presented below:
180 Peer A's 10-second timer elapses first, and it sends a HELLO to B.
181 B responds with an ACK.
184 10 second timer fires; ------>
185 wants to know that B is alive;
187 Receives HELLO; acknowledges
189 <------ resets keepalive timer, sends
191 Receives ACK as proof of
192 B's liveliness; resets timer.
195 Peer A's 10-second timer elapses first, and it sends a HELLO to B.
196 B fails to respond. A can retransmit, in case its initial HELLO is
197 lost. This situation describes how peer A detects its peer is dead.
199 Peer A: Peer B (dead):
201 10 second timer fires; ------X
202 wants to know that B is
205 Retransmission timer ------X
206 expires; initial message
207 could have been lost in
208 transit; A increments
214 After some number of errors, A assumes B is dead; deletes SAs and
215 possibly initiates failover.
217 An advantage of this scheme is that the party interested in the other
218 peer's liveliness begins the message exchange. In Scenario 1, peer A
219 is interested in peer B's liveliness, and peer A consequently sends
226 Huang, et al. Informational [Page 4]
228 RFC 3706 Detecting Dead IKE Peers February 2004
231 the HELLO. It is conceivable in such a scheme that peer B would
232 never be interested in peer A's liveliness. In such a case, the onus
233 would always lie on peer A to initiate the exchange.
237 By contrast, consider a proof-of-liveliness scheme involving
238 unidirectional (unacknowledged) messages. An entity interested in
239 its peer's liveliness would rely on the peer itself to send periodic
240 messages demonstrating liveliness. In such a scheme, the message
241 exchange might look like this:
243 Scenario 3: Peer A and Peer B are interested in each other's
244 liveliness. Each peer depends on the other to send periodic HELLOs.
248 10 second timer fires; ------>
249 sends HELLO. Timer also
250 signals expectation of
252 Receives HELLO as proof of A's
255 <------ 10 second timer fires; sends
257 Receives HELLO as proof
261 Peer A fails to receive HELLO from B and marks the peer dead. This
262 is how an entity detects its peer is dead.
264 Peer A: Peer B (dead):
265 10 second timer fires; ------X
266 sends HELLO. Timer also
267 signals expectation of
272 Some time passes and A assumes B is dead.
274 The disadvantage of this scheme is the reliance upon the peer to
275 demonstrate liveliness. To this end, peer B might never be
276 interested in peer A's liveliness. Nonetheless, if A is interested
277 B's liveliness, B must be aware of this, and maintain the necessary
278 state information to send periodic HELLOs to A. The disadvantage of
282 Huang, et al. Informational [Page 5]
284 RFC 3706 Detecting Dead IKE Peers February 2004
287 such a scheme becomes clear in the remote-access scenario. Consider
288 a VPN aggregator that terminates a large number of sessions (on the
289 order of 50,000 peers or so). Each peer requires fairly rapid
290 failover, therefore requiring the aggregator to send HELLO packets
291 every 10 seconds or so. Such a scheme simply lacks scalability, as
292 the aggregator must send 50,000 messages every few seconds.
294 In both of these schemes (keepalives and heartbeats), some
295 negotiation of message interval must occur, so that each entity can
296 know how often its peer expects a HELLO. This immediately adds a
297 degree of complexity. Similarly, the need to send periodic messages
298 (regardless of other IPSec/IKE activity), also increases
299 computational overhead to the system.
303 DPD addresses the shortcomings of IKE keepalives- and heartbeats-
304 schemes by introducing a more reasonable logic governing message
305 exchange. Essentially, keepalives and heartbeats mandate exchange of
306 HELLOs at regular intervals. By contrast, with DPD, each peer's DPD
307 state is largely independent of the other's. A peer is free to
308 request proof of liveliness when it needs it -- not at mandated
309 intervals. This asynchronous property of DPD exchanges allows fewer
310 messages to be sent, and this is how DPD achieves greater
313 As an elaboration, consider two DPD peers A and B. If there is
314 ongoing valid IPSec traffic between the two, there is little need for
315 proof of liveliness. The IPSec traffic itself serves as the proof of
316 liveliness. If, on the other hand, a period of time lapses during
317 which no packet exchange occurs, the liveliness of each peer is
318 questionable. Knowledge of the peer's liveliness, however, is only
319 urgently necessary if there is traffic to be sent. For example, if
320 peer A has some IPSec packets to send after the period of idleness,
321 it will need to know if peer B is still alive. At this point, peer A
322 can initiate the DPD exchange.
324 To this end, each peer may have different requirements for detecting
325 proof of liveliness. Peer A, for example, may require rapid
326 failover, whereas peer B's requirements for resource cleanup are less
327 urgent. In DPD, each peer can define its own "worry metric" - an
328 interval that defines the urgency of the DPD exchange. Continuing the
329 example, peer A might define its DPD interval to be 10 seconds.
330 Then, if peer A sends outbound IPSec traffic, but fails to receive
331 any inbound traffic for 10 seconds, it can initiate a DPD exchange.
338 Huang, et al. Informational [Page 6]
340 RFC 3706 Detecting Dead IKE Peers February 2004
343 Peer B, on the other hand, defines its less urgent DPD interval to be
344 5 minutes. If the IPSec session is idle for 5 minutes, peer B can
345 initiate a DPD exchange the next time it sends IPSec packets to A.
347 It is important to note that the decision about when to initiate a
348 DPD exchange is implementation specific. An implementation might
349 even define the DPD messages to be at regular intervals following
350 idle periods. See section 5.5 for more implementation suggestions.
354 To demonstrate DPD capability, an entity must send the DPD vendor ID.
355 Both peers of an IKE session MUST send the DPD vendor ID before DPD
356 exchanges can begin. The format of the DPD Vendor ID is:
359 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
360 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
362 ! HASHED_VENDOR_ID !J!N!
364 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
366 where HASHED_VENDOR_ID = {0xAF, 0xCA, 0xD7, 0x13, 0x68, 0xA1, 0xF1,
367 0xC9, 0x6B, 0x86, 0x96, 0xFC, 0x77, 0x57}, and MJR and MNR correspond
368 to the current major and minor version of this protocol (1 and 0
369 respectively). An IKE peer MUST send the Vendor ID if it wishes to
370 take part in DPD exchanges.
372 5.2. Message Exchanges
374 The DPD exchange is a bidirectional (HELLO/ACK) Notify message. The
375 exchange is defined as:
379 HDR*, NOTIFY(R-U-THERE), HASH ------>
381 <------ HDR*, NOTIFY(R-U-THERE-
394 Huang, et al. Informational [Page 7]
396 RFC 3706 Detecting Dead IKE Peers February 2004
399 The R-U-THERE message corresponds to a "HELLO" and the R-U-THERE-ACK
400 corresponds to an "ACK." Both messages are simply ISAKMP Notify
401 payloads, and as such, this document defines these two new ISAKMP
402 Notify message types:
408 An entity that has sent the DPD Vendor ID MUST respond to an R-U-
409 THERE query. Furthermore, an entity MUST reject unencrypted R-U-
410 THERE and R-U-THERE-ACK messages.
412 5.3. NOTIFY(R-U-THERE/R-U-THERE-ACK) Message Format
414 When sent, the R-U-THERE message MUST take the following form:
417 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
418 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
419 ! Next Payload ! RESERVED ! Payload Length !
420 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
421 ! Domain of Interpretation (DOI) !
422 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
423 ! Protocol-ID ! SPI Size ! Notify Message Type !
424 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
426 ~ Security Parameter Index (SPI) ~
428 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
429 ! Notification Data !
430 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
432 As this message is an ISAKMP NOTIFY, the Next Payload, RESERVED, and
433 Payload Length fields should be set accordingly. The remaining
436 - Domain of Interpretation (4 octets) - SHOULD be set to IPSEC-DOI.
438 - Protocol ID (1 octet) - MUST be set to the protocol ID for ISAKMP.
440 - SPI Size (1 octet) - SHOULD be set to sixteen (16), the length of
441 two octet-sized ISAKMP cookies.
443 - Notify Message Type (2 octets) - MUST be set to R-U-THERE
450 Huang, et al. Informational [Page 8]
452 RFC 3706 Detecting Dead IKE Peers February 2004
455 - Security Parameter Index (16 octets) - SHOULD be set to the
456 cookies of the Initiator and Responder of the IKE SA (in that
459 - Notification Data (4 octets) - MUST be set to the sequence number
460 corresponding to this message
462 The format of the R-U-THERE-ACK message is the same, with the
463 exception that the Notify Message Type MUST be set to R-U-THERE-ACK.
464 Again, the Notification Data MUST be sent to the sequence number
465 corresponding to the received R-U-THERE message.
467 5.4. Impetus for DPD Exchange
469 Again, rather than relying on some negotiated time interval to force
470 the exchange of messages, DPD does not mandate the exchange of R-U-
471 THERE messages at any time. Instead, an IKE peer SHOULD send an R-
472 U-THERE query to its peer only if it is interested in the liveliness
473 of this peer. To this end, if traffic is regularly exchanged between
474 two peers, either peer SHOULD use this traffic as proof of
475 liveliness, and both peers SHOULD NOT initiate a DPD exchange.
477 A peer MUST keep track of the state of a given DPD exchange. That
478 is, once it has sent an R-U-THERE query, it expects an ACK in
479 response within some implementation-defined period of time. An
480 implementation SHOULD retransmit R-U-THERE queries when it fails to
481 receive an ACK. After some number of retransmitted messages, an
482 implementation SHOULD assume its peer to be unreachable and delete
483 IPSec and IKE SAs to the peer.
485 5.5. Implementation Suggestion
487 Since the liveliness of a peer is only questionable when no traffic
488 is exchanged, a viable implementation might begin by monitoring
489 idleness. Along these lines, a peer's liveliness is only important
490 when there is outbound traffic to be sent. To this end, an
491 implementation can initiate a DPD exchange (i.e., send an R-U-THERE
492 message) when there has been some period of idleness, followed by the
493 desire to send outbound traffic. Likewise, an entity can initiate a
494 DPD exchange if it has sent outbound IPSec traffic, but not received
495 any inbound IPSec packets in response. A complete DPD exchange
496 (i.e., transmission of R-U-THERE and receipt of corresponding R-U-
497 THERE-ACK) will serve as proof of liveliness until the next idle
500 Again, since DPD does not mandate any interval, this "idle period"
501 (or "worry metric") is left as an implementation decision. It is not
506 Huang, et al. Informational [Page 9]
508 RFC 3706 Detecting Dead IKE Peers February 2004
513 The performance benefit that DPD offers over traditional keepalives-
514 and heartbeats-schemes comes from the fact that regular messages do
515 not need to be sent. Returning to the examples presented in section
516 4.1, a keepalive implementation such as the one presented would
517 require one timer to signal when to send a HELLO message and another
518 timer to "timeout" the ACK from the peer (this could also be the
519 retransmit timer). Similarly, a heartbeats scheme such as the one
520 presented in section 4.2 would need to keep one timer to signal when
521 to send a HELLO, as well as another timer to signal the expectation
522 of a HELLO from the peer. By contrast a DPD scheme needs to keep a
523 timestamp to keep track of the last received traffic from the peer
524 (thus marking beginning of the "idle period"). Once a DPD R-U-THERE
525 message has been sent, an implementation need only maintain a timer
526 to signal retransmission. Thus, the need to maintain active timer
527 state is reduced, resulting in a scalability improvement (assuming
528 maintaining a timestamp is less costly than an active timer).
529 Furthermore, since a DPD exchange only occurs if an entity has not
530 received traffic recently from its peer, the number of IKE messages
531 to be sent and processed is also reduced. As a consequence, the
532 scalability of DPD is much better than keepalives and heartbeats.
534 DPD maintains the HELLO/ACK model presented by keepalives, as it
535 follows that an exchange is initiated only by an entity interested in
536 the liveliness of its peer.
538 6. Resistance to Replay Attack and False Proof of Liveliness
540 6.1. Sequence Number in DPD Messages
542 To guard against message replay attacks and false proof of
543 liveliness, a 32-bit sequence number MUST be presented with each R-
544 U-THERE message. A responder to an R-U-THERE message MUST send an
545 R-U-THERE-ACK with the same sequence number. Upon receipt of the R-
546 U-THERE-ACK message, the initial sender SHOULD check the validity of
547 the sequence number. The initial sender SHOULD reject the R-U-
548 THERE-ACK if the sequence number fails to match the one sent with the
551 Additionally, both the receiver of the R-U-THERE and the R-U-THERE-
552 ACK message SHOULD check the validity of the Initiator and Responder
553 cookies presented in the SPI field of the payload.
562 Huang, et al. Informational [Page 10]
564 RFC 3706 Detecting Dead IKE Peers February 2004
567 6.2. Selection and Maintenance of Sequence Numbers
569 As both DPD peers can initiate a DPD exchange (i.e., both peers can
570 send R-U-THERE messages), each peer MUST maintain its own sequence
571 number for R-U-THERE messages. The first R-U-THERE message sent in a
572 session MUST be a randomly chosen number. To prevent rolling past
573 overflowing the 32-bit boundary, the high-bit of the sequence number
574 initially SHOULD be set to zero. Subsequent R-U-THERE messages MUST
575 increment the sequence number by one. Sequence numbers MAY reset at
576 the expiry of the IKE SA, moving to a newly chosen random number.
577 Each entity SHOULD also maintain its peer's R-U-THERE sequence
578 number, and an entity SHOULD reject the R-U-THERE message if it fails
579 to match the expected sequence number.
581 Implementations MAY maintain a window of acceptable sequence numbers,
582 but this specification makes no assumptions about how this is done.
583 Again, it is an implementation specific detail.
585 7. Security Considerations
587 As the previous section highlighted, DPD uses sequence numbers to
588 ensure liveliness. This section describes the advantages of using
589 sequence numbers over random nonces to ensure liveliness.
591 While sequence numbers do require entities to keep per-peer state,
592 they also provide an added method of protection in certain replay
593 attacks. Consider a case where peer A sends peer B a valid DPD R-U-
594 THERE message. An attacker C can intercept this message and flood B
595 with multiple copies of the messages. B will have to decrypt and
596 process each packet (regardless of whether sequence numbers or nonces
597 are in use). With sequence numbers B can detect that the packets are
598 replayed: the sequence numbers in these replayed packets will not
599 match the incremented sequence number that B expects to receive from
600 A. This prevents B from needing to build, encrypt, and send ACKs.
601 By contrast, if the DPD protocol used nonces, it would provide no way
602 for B to detect that the messages are replayed (unless B maintained a
603 list of recently received nonces).
605 Another benefit of sequence numbers is that it adds an extra
606 assurance of the peer's liveliness. As long as a receiver verifies
607 the validity of a DPD R-U-THERE message (by verifying its incremented
608 sequence number), then the receiver can be assured of the peer's
609 liveliness by the very fact that the sender initiated the query.
610 Nonces, by contrast, cannot provide this assurance.
618 Huang, et al. Informational [Page 11]
620 RFC 3706 Detecting Dead IKE Peers February 2004
623 8. IANA Considerations
625 There is no IANA action required for this document. DPD uses notify
626 numbers from the private range.
630 9.1. Normative Reference
632 [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
633 Levels", BCP 14, RFC 2119, March 1997.
635 9.2. Informative References
637 [2] Harkins, D. and D. Carrel, "The Internet Key Exchange (IKE)",
638 RFC 2409, November 1998.
640 [3] Kent, S. and R. Atkinson, "Security Architecture for the
641 Internet Protocol", RFC 2401, November 1998.
643 10. Editors' Addresses
647 170 West Tasman Drive
650 Phone: (408) 525-5354
651 EMail: ghuang@cisco.com
656 2000 Innovation Drive
660 Phone: (613) 254-3678
661 EMail: stephane@cisco.com
666 124 Grove Street, Suite 205
669 Phone: (508) 553-8644
670 EMail: danyr@cisco.com
674 Huang, et al. Informational [Page 12]
676 RFC 3706 Detecting Dead IKE Peers February 2004
679 11. Full Copyright Statement
681 Copyright (C) The Internet Society (2004). This document is subject
682 to the rights, licenses and restrictions contained in BCP 78 and
683 except as set forth therein, the authors retain all their rights.
685 This document and the information contained herein are provided on an
686 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE
687 REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE
688 INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR
689 IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
690 THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
691 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
693 Intellectual Property
695 The IETF takes no position regarding the validity or scope of any
696 Intellectual Property Rights or other rights that might be claimed
697 to pertain to the implementation or use of the technology
698 described in this document or the extent to which any license
699 under such rights might or might not be available; nor does it
700 represent that it has made any independent effort to identify any
701 such rights. Information on the procedures with respect to
702 rights in RFC documents can be found in BCP 78 and BCP 79.
704 Copies of IPR disclosures made to the IETF Secretariat and any
705 assurances of licenses to be made available, or the result of an
706 attempt made to obtain a general license or permission for the use
707 of such proprietary rights by implementers or users of this
708 specification can be obtained from the IETF on-line IPR repository
709 at http://www.ietf.org/ipr.
711 The IETF invites any interested party to bring to its attention
712 any copyrights, patents or patent applications, or other
713 proprietary rights that may cover technology that may be required
714 to implement this standard. Please address the information to the
715 IETF at ietf-ipr@ietf.org.
719 Funding for the RFC Editor function is currently provided by the
730 Huang, et al. Informational [Page 13]