One document matched: draft-ogud-dhc-udp-time-option-01.xml
<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2119 PUBLIC "" "./reference.RFC.2119.xml">
]>
<rfc category="info" docName="draft-ogud-dhc-udp-time-option-01" ipr="trust200902">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc iprnotified="no" ?>
<?rfc strict="yes"?>
<?rfc compact="yes" ?>
<front>
<title abbrev="DHCP quick and dirty time ">
Providing Time over DHCP and ND for devices w/o reliable clock upon boot</title>
<author fullname="Olafur Gudmundsson" initials="O." surname="Gudmundsson">
<organization>Shinkuro Inc.</organization>
<address>
<postal>
<street>4922 Fairmont Av, Suite 250</street>
<city>Bethesda</city>
<region>MD</region>
<code>20814</code>
<country>USA</country>
</postal>
<email>ogud@ogud.com</email>
</address>
</author>
<date />
<area>Internet</area>
<workgroup>DHC, 6MAN</workgroup>
<abstract>
<t>Many small inexpensive computing devices like home routers,
Rasberry Pi etc. do not have a battery to allow clock chip to
keep track of time, thus the systems have no idea what the
current time is upon boot. Number of modern
services take Time Synchronization for granted, but operating
systems do not allow the start of these services to be
deferred until after accurate clock has been confirmed. </t>
<t> NTP provides accurate fine grain clock synchronization
but in order for NTP to succeed DNS needs to work. DNSSEC
resolvers will fail if system clock is off by more than little
bit. This draft proposes a mechanism to offer "reasonable"
current time to devices upon boot via DHCP, DHCPv6 and ND.</t>
</abstract>
</front>
<middle>
<section title="Introduction">
<t> Many applications and protocols take it for granted that the
system clock is "correct". Applications that perform validity
checks against time stamps will in many cases fail if the system
time is far enough off. Many smaller less expensive systems that
are deployed into homes/offices do not have reliable cocks and/or
battery backup thus do not have neither accurate nor rough sense of time
when booting. Examples of such devices are Home/Office
Gateways/Routers, Entertainment Systems, Rasberry Pie development
boards, etc. in these case the cost of adding good clock chip and
battery power source for it is deemed to high. Same goes for
systems where battery has run out of juice, or are booting after
few weeks or moths of inactivity.
</t>
<t> This draft proposes to use an new DHCPv4 and v6 options to provide
rough current time, the draft also proposes an identical RA option for
IPv6 environments that use auto configuration.
</t>
<section title="Why knowing time is getting more important">
<t> Applications and services that use time are getting more and
more important, in particular when validating if servers are
offering good credentials.
</t>
<t> For example DNS <xref target="RFC1034" /> is being deployed
widely in resolvers with DNSSEC validation <xref target="RFC4033"/>
DNSSEC signatures rarely have signature lifetime of more than
one month and in some cases few hours. </t>
<t> Most devices use NTP <xref target="RFC5905"/> to correct the
clock on the device and maintain time. NTP servers are located
via DNS look-ups. If the device is performing DNSSEC resolution and/or
validation of answers, then NTP server lookups succeed
if the system clock has rough idea of current time otherwise
DNSSEC signatures fail temporal validation checks. This
leads to a deadlock NTP can only function if DNS is
functioning and DNSSEC can only function if NTP is
working. </t>
<t> Any protocol that checks certificates for correctness also
depends on correct time has potentially the same
false-negative behavior before time synchronization completes.
</t>
<t> This proposal also helps in the cases when NTP servers are
not reachable. This is not a replacement for NTP just an aid
at boot time.
</t>
</section>
<section title="Requirements notation">
<t>
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
<xref target="RFC2119" />.
</t>
</section>
</section>
<section title="Current Time options">
<t> Many of the devices that boot without accurate clock get their
IPv4 addresses from
DHCP <xref target="RFC2131"/> <xref target="RFC3315"/>
servers, it is natural to allow those DHCP clients to query the
server for what time it is, if they choose to do so. Currently
this is not specified.
</t>
<t> DHCP provides an option for clients to ask about NTP
servers, the answer is a DNS FQDN that requires DNS resolution to
work.
</t>
<t> On networks that use IPv6 autoconfiguration Neighbor Discovery
<xref target="RFC4861"/>
options can be used to provide the same service.
</t>
<t>
These option(s) are designed to provide "rough" time not accurate
time, NTP MUST be used by clients when available to get accurate time.
</t>
<t>
Entities that provide Current-Time answers SHOULD return
time that is within 10 minutes of current time.
</t>
<section title="Option allocations">
<t>
All the options defined below are fixed size options of 8
bytes/64 bits, the value returned is a 64-bit POSIX time_t
in network byte order. The time returned is always in UTC.
</t>
<t>
"Current Time" DHCP IPv4 option code is TBD1 see section
<xref target="D-4"/>
</t>
<t>
DHCPv6 OPTION_CURRENT_TIME DHCPv6 code is TBD2 see section <xref target="D-6"/>.
</t>
<t>
ND "Current Time Option" code is TBD3 see <xref target="N-D"/>.
</t>
</section>
</section>
<section title="IANA considerations">
<section title="DHCP Current Time option" anchor="D-4">
<t> IANA is requested to make an allocation of an option code in
the DHCP registry named
"Dynamic Host Configuration Protocol (DHCP) and Bootstrap
Protocol (BOOTP) Parameters",
sub registry
"BOOTP Vendor Extensions and DHCP Options".
The registration entry is:
<figure> <artwork>
Tag = TBD1;
Name = "Current Time ";
Data Length = 8 ;
Meaning = "Rough Current time" ;
Reference = "[This-document]";
</artwork> </figure>
</t>
</section>
<section title="DHCPv6 Current Time option" anchor="D-6">
<t> IANA is requested to make an allocation of an option code in
the DHCP registry named
"Dynamic Host Configuration Protocol for IPv6 (DHCPv6)"
sub-registry
"DHCP Option Codes".
The registered entry is:
<figure> <artwork>
Value = TBD2;
Description = "OPTION_CURRENT_TIME";
Reference= "[This-document]";
</artwork> </figure>
</t>
</section>
<section title="Neighbor Discovery option" anchor="N-D">
<t>
IANA is requested to make an allocation of an option in the
"Internet Control Message Protocol version 6 (ICMPv6)
Parameters"
sub-registry
"IPv6 Neighbor Discovery Option Formats"
<figure> <artwork>
Type = TBD3
Description = "Current time option"
Reference = "[This document]"
</artwork> </figure>
</t>
</section>
</section>
<section title="Security considerations">
<t> Devices that have alternate means to get accurate current time via
Radio signals etc. SHOULD NOT use the options specified in this
document.
</t>
<t> DHCP and ND clients with dynamic address currently depend on
"address provider" for getting decent IP address. The client is totally dependent on the "address
provider" to tell it where to find DNS resolvers that the client can
use to locate other services such as NTP.
Having a client accept a "current time" from the "address provider"
server when the client does not have accurate time, does not put
the client in any worse state than not knowing the current
time.
The onus is on the client configuration to know if the "system
time" at boot is reasonable, and when it is not, then use the
options specified above to get "better" guess of time.
</t>
<t> The alternative to having "address provision" protocols
provide time upon request is that the client devices/operating
systems become aware that certain capabilities/services can not be
enabled until NTP has successfully executed.
For example in our work on home routers using Unbound DNS
resolver we start the resolver in recursive mode only, once time
is accurate and path has been shown to pass DNSSEC records
through, unbound resolution mode is changed to validating.
</t>
</section>
<section title="Internationalizaiton Considerations">
<t> NONE</t>
</section>
<section title="Implementation Experience">
<t> This document is motivated by deploying validating
resolvers on a home routers without accurate clocks.
</t>
</section>
</middle>
<back>
<references title="Normative References">
<?rfc include='reference.RFC.2119'?>
<?rfc include='reference.RFC.2131'?>
<?rfc include='reference.RFC.3315'?>
<?rfc include='reference.RFC.4861'?>
</references>
<references title="Informative References">
<?rfc include='reference.RFC.1034'?>
<?rfc include='reference.RFC.4033'?>
<?rfc include='reference.RFC.4034'?>
<?rfc include='reference.RFC.4035'?>
<?rfc include='reference.RFC.5905'?>
</references>
<section title="Document history">
<t>[RFC Editor: Please remove this section before publication ]</t>
<t> 00 Initial version </t>
<t> 01 Changed document to use a new 64 bit DHCPv4 option, added DHCPv6 option
and ND option. Deleted references to Bulk Query, reworked
security considerations. </t>
</section>
</back>
</rfc>
| PAFTECH AB 2003-2026 | 2026-04-24 05:42:10 |