RFC 5908

Network Time Protocol (NTP) Server Option for DHCPv6

๐Ÿ“… published June 2010, from ietf

RFC 5908: Network Time Protocol (NTP) Server Option for DHCPv6 โœจ

Bestie, RFC 5908 is the spec for how a DHCPv6 server can hand NTP server locations to hosts. Your clock stays on time because of it ๐Ÿ•ฐ๏ธ๐Ÿ’–

Here's the title block, served with a cherry on top ๐Ÿ’

  • RFC number: 5908 ๐ŸŽ€
  • Authors: R. Gayraud (Unaffiliated) and B. Lourdelet (Cisco Systems, Inc.) ๐Ÿ‘ฏโ€โ™€๏ธ
  • Category: Standards Track ๐Ÿ‘‘
  • ISSN: 2070-1721
  • Date: June 2010 ๐Ÿ“…
  • Obsoletes and updates: the title block doesn't list anything this RFC obsoletes or updates ๐Ÿ™ˆ

Abstract

Okay so the abstract is giving main character energy ๐Ÿ’… The NTP Server Option for Dynamic Host Configuration Protocol for IPv6 (DHCPv6) provides NTPv4 (Network Time Protocol version 4) server location information to DHCPv6 hosts. Serving NTP server locations to hosts? Iconic ๐ŸŒธ

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/rfc5908 ๐Ÿ”—

Copyright (c) 2010 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. Read the fine print, babe ๐Ÿ’€

Table of Contents

1. Introduction ....................................................2
2. Requirements Notation ...........................................2
3. Related Work and Usage Model ....................................2
4. NTP Server Option for DHCPv6 ....................................3
   4.1. NTP Server Address Suboption ...............................4
   4.2. NTP Multicast Address Suboption ............................5
   4.3. NTP Server FQDN Suboption ..................................6
5. Appearance of This Option .......................................6
6. Security Considerations .........................................7
7. RFC 4075 Deprecation ............................................7
8. IANA Considerations .............................................7
9. References ......................................................8
   9.1. Normative References .......................................8
   9.2. Informative References .....................................8

1. Introduction โœจ

Okay, so this document defines a DHCPv6 option along with its suboptions ๐ŸŽ€ Their whole job is to give DHCPv6 hosts NTP server location info, for Network Time Protocol version 4 [RFC5905] or greater.

2. Requirements Notation ๐Ÿ“

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be read as described in [RFC2119]. Those are the official words, so no vibes-based interpretation ๐Ÿซถ

The NTP service is publicly offered on the Internet by a bunch of organizations. Those servers can be used but should not be abused, so any method that's tasked with spreading NTP server locations has to act responsibly and avoid overloading public servers ๐Ÿฅบ When you use DHCPv6 to offer NTP server location, and you need to hand a device a hardcoded configuration, that configuration MUST NOT include a server location that isn't part of the organization distributing the device. Typically, this option points to an NTP server run by the same organization that operates the DHCPv6 server ๐Ÿ 

The location of an NTP service, like any other Internet service, can be given as an IP address or a Fully Qualified Domain Name (FQDN). DHCP hands info to lots of devices at once, so it's prone to amplifying mistakes, and the config needs real care ๐Ÿ˜ญ Specifying the NTP service by FQDN adds a layer of indirection, which can help as a mitigation if something's misconfigured. DNS can be used to redirect misconfigured clients to an IPv6 address that isn't configured on any host, so you don't have to change the NTP server's address itself. Smart, right? ๐Ÿง 

The NTP specification defines a whole set of configuration parameters, but changing those is best left to the client itself ๐Ÿ’… So the DHCPv6 option for NTP is restricted to server location only.

4. NTP Server Option for DHCPv6 ๐Ÿฆ‹

This option is a container for server location information about one NTP server or one Simple Network Time Protocol (SNTP) [RFC4330] server. It can show up multiple times in a DHCPv6 message. Each instance is treated by the NTP client or SNTP client as a server to include in its configuration ๐ŸŒˆ

The option itself doesn't have a value. Instead, it holds one or more suboptions that carry NTP server or SNTP server location. This option MUST include one, and only one, time source suboption. The currently defined time source suboptions are NTP_OPTION_SRV_ADDR, NTP_OPTION_SRV_MC_ADDR, and NTP_OPTION_SRV_FQDN. They carry the server location as a unicast or multicast IPv6 address, or as an NTP or SNTP server FQDN. More time source suboptions may be defined in the future ๐Ÿ”ฎ The FQDN option gives the most deployment flexibility, resiliency, and security, but the IP address options exist for cases where you don't want a DNS dependency ๐Ÿซง

If the NTP server or SNTP server location is an IPv6 multicast address, the client SHOULD use that address as an NTP multicast group address and listen to messages sent to the group in order to synchronize its clock ๐Ÿ“ก

Here's the format of the NTP Server Option ๐Ÿ‘€

      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |      OPTION_NTP_SERVER        |          option-len           |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                         suboption-1                           |
     :                                                               :
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                         suboption-2                           |
     :                                                               :
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     :                                                               :
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                         suboption-n                           |
     :                                                               :
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

       option-code: OPTION_NTP_SERVER (56),

       option-len: Total length of the included suboptions.

This document doesn't set any priority between the client's embedded configuration (if it has one) and the NTP or SNTP servers found through this option. In particular, the client is allowed to use its own configured NTP or SNTP servers and the servers discovered via DHCP at the same time ๐Ÿค

4.1. NTP Server Address Suboption ๐ŸŒท

This suboption is meant to appear inside the OPTION_NTP_SERVER option. It specifies the IPv6 unicast address of an NTP server or SNTP server available to the client ๐Ÿ’Œ

Here's the format of the NTP Server Address Suboption ๐Ÿงฉ

      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |    NTP_SUBOPTION_SRV_ADDR     |        suboption-len = 16     |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                                                               |
     |                                                               |
     |                   IPv6 address of NTP server                  |
     |                                                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       IPv6 address of the NTP server: An IPv6 address,

       suboption-code: NTP_SUBOPTION_SRV_ADDR (1),

       suboption-len: 16.

๐ŸŽ€ Part 1 ends here, bestie! Part 2 picks up with Section 4.2 (NTP Multicast Address Suboption) and carries on from there โœจ

5. Appearance of This Option โœจ

Okay bestie, so OPTION_NTP_SERVER can show up multiple times in a single DHCPv6 message ๐ŸŽ€, and the order they appear in doesn't matter one bit ๐Ÿ™ƒ. The client just uses its usual algorithms to figure out which server(s) or multicast group(s) it should prefer when syncing its clock โฐ๐Ÿ’–

The OPTION_NTP_SERVER option MUST NOT appear in messages other than these: Solicit, Advertise, Request, Renew, Rebind, Information-Request, and Reply. If it turns up in any other message, the receiver MUST ignore it ๐Ÿ™ˆ not me reading an option in the wrong message lol

The option number for this option MAY appear in the "Option Request" option [RFC3315] in these messages: Solicit, Request, Renew, Rebind, Information-Request, and Reconfigure. If this option number shows up in the "Option Request" option in any other message, the receiver SHOULD ignore it ๐Ÿ’…โœจ

6. Security Considerations ๐Ÿ’€

Okay this section is serious, so listen up ๐Ÿซถ. This option could be used by an intruder to advertise the address of a malicious NTP server or SNTP server, and that could mess with the clocks of clients on the network ๐Ÿ˜ญ. The consequences can be critical, because a bunch of security protocols depend on time synchronization to run their algorithms. For example, an attacker could break connectivity between SEND-enabled nodes [RFC3971] just by messing with the clock on those nodes ๐Ÿšจ

To prevent these attacks, it is strongly advisable to lock down the use of this option by either:

  • using the NTPv4 Autokey public key authentication, as defined in [RFC5906] or,
  • using authenticated DHCP as described in [RFC3315], Section 21.

7. RFC 4075 Deprecation ๐Ÿฅ€

"Simple Network Time Protocol (SNTP) Configuration Option for DHCPv6" [RFC4075] gives you some automatic time server setup for IPv6, since it explains how to send SNTP [RFC4330] server addresses through DHCPv6 ๐Ÿ•ฐ๏ธ. BUT, this approach isn't suitable for every NTP deployment. It isn't an extensible mechanism, and the "SNTP" acronym causes some semantic confusion ๐Ÿ™ƒ. Plus, only offering IPv6 addresses to specify server location doesn't meet NTP requirements that make use of an FQDN (Fully-Qualified Domain Name) as well. For all of the reasons above, this document makes [RFC4075] deprecated ๐Ÿ‘‹โœจ

8. IANA Considerations ๐Ÿ“‹

IANA has assigned 56 as an option code from the "DHCPv6 Options Codes" registry for OPTION_NTP_SERVER ๐ŸŽ‰.

IANA is required to maintain a new number space of NTP time source suboptions, located in the BOOTP-DHCP Parameters Registry. The initial suboptions are described in Section 4 of this document. IANA assigns future NTP time source suboptions with an "IETF Consensus" policy, as described in [RFC5226]. Future proposed suboptions are to be referenced symbolically in the documents that describe them, and shall be assigned numeric codes by IANA when approved for publication as an RFC ๐Ÿ”ข๐Ÿ’œ

9. References ๐Ÿ“š

9.1. 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.

[RFC5226]  Narten, T. and H. Alvestrand, "Guidelines for Writing an
           IANA Considerations Section in RFCs", BCP 26, RFC 5226,
           May 2008.

[RFC5905]  Mills, D., Martin, J., Ed., Burbank, J., and W. Kasch,
           "Network Time Protocol Version 4: Protocol and Algorithms
           Specification", RFC 5905, June 2010.

[RFC5906]  Haberman, B., Ed. and D. Mills, "Network Time Protocol
           Version 4: Autokey Specification", RFC 5906, June 2010.

9.2. Informative References

[RFC3971]  Arkko, J., Kempf, J., Zill, B., and P. Nikander, "SEcure
           Neighbor Discovery (SEND)", RFC 3971, March 2005.

[RFC4075]  Kalusivalingam, V., "Simple Network Time Protocol (SNTP)
           Configuration Option for DHCPv6", RFC 4075, May 2005.

[RFC4330]  Mills, D., "Simple Network Time Protocol (SNTP) Version 4
           for IPv4, IPv6 and OSI", RFC 4330, January 2006.

Authors' Addresses ๐Ÿซถ

Richard Gayraud
Unaffiliated

EMail: richardgayraud@free.fr


Benoit Lourdelet
Cisco Systems, Inc.
Village ent. GreenSide, Bat T3,
400, Av de Roumanille,
06410 BIOT - Sophia-Antipolis Cedex
France

Phone: +33 4 97 23 26 23
EMail: blourdel@cisco.com

That's the whole spec, bestie! ๐ŸŒˆ๐Ÿ‘‘ Go forth and sync those clocks ๐Ÿฆ‹๐Ÿ’–

๐Ÿ“ฆ where this page comes from