<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-grant-ntp-server-identifier-extension-01" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="NTP Server Identifier">NTP Server Identifier Extension</title>
    <seriesInfo name="Internet-Draft" value="draft-grant-ntp-server-identifier-extension-01"/>
    <author fullname="Sarah Grant">
      <organization/>
      <address>
        <email>sarah.grant.ietf@gmail.com</email>
      </address>
    </author>
    <author fullname="David Venhoek">
      <organization/>
      <address>
        <email>david@venhoek.nl</email>
      </address>
    </author>
    <date year="2026" month="October" day="22"/>
    <area>Internet</area>
    <workgroup>Network Time Protocols</workgroup>
    <abstract>
      <?line 36?>

<t>This document defines an extension field that gives operators of NTP services the ability to provide additional information about their servers to clients which request it.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-grant-ntp-server-identifier-extension/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Network Time Protocols Working Group mailing list (<eref target="mailto:ntp@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ntp/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/ntp/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/signalsforgranted/draft-grant-ntp-server-identifier-extension"/>.</t>
    </note>
  </front>
  <middle>
    <?line 40?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Operators of NTP services may choose to have system architectures which result in multiple servers responding for the same IP address. This is particularly notable in the case of deployments which use load balancing of UDP traffic, or the use of anycast IP addresses. In such situations, the server operator may want to provide an indication which actual server responded to a request. This information can be useful in identifying infrastructure, providing ongoing monitoring, and assisting in triaging faults or issues with services.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="current-deployments">
      <name>Current Deployments</name>
      <t>Many operators use various methods to include diagnostic information about the network segment, datacentre location, region, or other details pertaining to their infrastructure in NTP responses with the NTP reference identifier most commonly being used.</t>
    </section>
    <section anchor="the-server-identifier-extension-field">
      <name>The Server Identifier Extension Field</name>
      <t>The Server Identifier Extension Field contains the following structure, based on the general structure of an NTP extension field defined in <xref target="RFC5905"/>:</t>
      <figure anchor="fig-extension-field-diagram">
        <name>Extension Field Structure</name>
        <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 = TBD              |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
.                                                               .
.                      Server Identifier                        .
.                                                               .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>
      <dl>
        <dt>Field Type:</dt>
        <dd>
          <t>The type which identifies the Server Identifier Extension Field. To be determined by IANA. (Draft implementations: <strong>0xf101</strong>)</t>
        </dd>
        <dt>Length:</dt>
        <dd>
          <t>Length of the Server Identifier Extension Field. The length is in octets expressed as an unsigned 16-bit integer and it includes the header itself. Implementations <bcp14>SHALL</bcp14> keep the length of this extension field at less than 64 octets.</t>
        </dd>
        <dt>Server Identifier:</dt>
        <dd>
          <t>A UTF-8 encoded Unicode string containing information about the server. In requests, this field shall be filled with zeroes. The length of this field should be chosen such that the length requirements on extension fields from the NTP version in use are satisfied. If the string is shorter than the field, the sender <bcp14>SHALL</bcp14> pad the remainder of the field with zeroes. The identifier ends at the first zero octet or at the end of the field, whichever comes first.</t>
        </dd>
      </dl>
      <section anchor="use">
        <name>Use of the Server Identifier Extension Field</name>
        <t>To request the server identifier, a client includes a Server Identifier Extension Field in its request, long enough to hold the identifier it expects. Clients wishing to reliably receive the identifier should use the maximum permitted length.</t>
        <t>On receiving a Server Identifier Extension Field, a server <bcp14>MAY</bcp14> choose to send its server identifier in a Server Identifier Extension Field with matching length to the one in the request. If the server's identifier doesn't fit within that length, the server should not include the extension field in its response.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Operators should note that NTP packets are not confidential and that revealing this information to clients may expose sensitive details about their network, services, or their configuration. Deployments not wishing to expose this data to clients should be configured to filter or ignore this extension on non-monitoring interfaces.</t>
      <t>As the extension field in a response is never bigger than the one in the corresponding request (<xref target="use"/>), this extension cannot increase the DDoS amplification risk of NTP.</t>
      <t>The identifier sent in responses doesn't depend on the requested length, so varying the request length discloses no additional information. Operators concerned about enumeration of servers should consider limiting the extension to trusted clients.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to allocate the following entries in the NTP Extension Field Types registry <xref target="RFC5905"/>:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Field Type</th>
            <th align="left">Meaning</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">TBD</td>
            <td align="left">Server Identifier</td>
            <td align="left">this memo</td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC5905">
        <front>
          <title>Network Time Protocol Version 4: Protocol and Algorithms Specification</title>
          <author fullname="D. Mills" initials="D." surname="Mills"/>
          <author fullname="J. Martin" initials="J." role="editor" surname="Martin"/>
          <author fullname="J. Burbank" initials="J." surname="Burbank"/>
          <author fullname="W. Kasch" initials="W." surname="Kasch"/>
          <date month="June" year="2010"/>
          <abstract>
            <t>The Network Time Protocol (NTP) is widely used to synchronize computer clocks in the Internet. This document describes NTP version 4 (NTPv4), which is backwards compatible with NTP version 3 (NTPv3), described in RFC 1305, as well as previous versions of the protocol. NTPv4 includes a modified protocol header to accommodate the Internet Protocol version 6 address family. NTPv4 includes fundamental improvements in the mitigation and discipline algorithms that extend the potential accuracy to the tens of microseconds with modern workstations and fast LANs. It includes a dynamic server discovery scheme, so that in many cases, specific server configuration is not required. It corrects certain errors in the NTPv3 design and implementation and includes an optional extension mechanism.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5905"/>
        <seriesInfo name="DOI" value="10.17487/RFC5905"/>
      </reference>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>
    <?line 123?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to acknowledge Marco Davids, Miroslav Lichvar, Giovane Moura, Ruben Nijveld, and Ask Bjørn Hansen for providing thoughtful discussion and inspiration for this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
TRcAAA==

-->

</rfc>
