<?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.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-grant-ntp-server-identifier-extension-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="NTP Server Identifier">NTP Server Identifier Extension</title>
    <seriesInfo name="Internet-Draft" value="draft-grant-ntp-server-identifier-extension-00"/>
    <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="July" day="22"/>
    <area>Internet</area>
    <workgroup>Network Time Protocols</workgroup>
    <abstract>
      <?line 36?>

<t>This document defines an extension field that allows operators of NTP services the ability to provide additional information about their services 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 assist 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 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 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 256 bytes.</t>
        </dd>
        <dt>Server Identifier:</dt>
        <dd>
          <t>A Unicode string containing information about the server. In requests, this field shall be filled with zeroes. The length of this field <bcp14>SHALL</bcp14> be chosen such that the length requirements on extension fields from the NTP version in use are satisfied. If doing this requires padding of the string, the sender shall use zeroes to pad this field to the required length.</t>
        </dd>
      </dl>
      <section anchor="use">
        <name>Use of the Server Identifier Extension Field</name>
        <t>To request the server identifier of a server, a client includes in its request a Server Identifier Extension Field. This extension field shall be sent with a zeroed out server-identifier field, of length sufficient that the client expects the servers identifier to fit within the length of the server identifier field in its request.</t>
        <t>On receiving a Server Identifier Extension Field a server <bcp14>MAY</bcp14> choose to send its server identifier in the response. If it chooses to do so, it shall include a Server Identifier Extension Field in the response. The length of this Extension field <bcp14>SHALL</bcp14> be at most the length of the Server Identifier Extension Field in the request. If the server's identifier doesn't fit within the length requested by the client, the server <bcp14>SHALL</bcp14> truncate the identifier, providing as many bytes of it as fit within the space chosen in the request. If the identifier is shorter than the length of Server Identifier field in the Server Identifier Extension Field, the server <bcp14>MAY</bcp14> choose to pad the identifier with zeroes to make the length of the request and response identical.</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>There is a risk of amplification with this extension field if servers blindly respond with the full server identifier on any request. To avoid this risk, it is important servers stick closely to the guidance provided in section <xref target="use"/>.</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 121?>

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

-->

</rfc>
