Re: [Ntp] NTPv5 Loop Detection without Stratum - Why do we want this?

Miroslav Lichvar <mlichvar@redhat.com> Mon, 12 September 2022 10:26 UTC

Return-Path: <mlichvar@redhat.com>
X-Original-To: ntp@ietfa.amsl.com
Delivered-To: ntp@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1A3BAC14CE36 for <ntp@ietfa.amsl.com>; Mon, 12 Sep 2022 03:26:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.679
X-Spam-Level:
X-Spam-Status: No, score=-7.679 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.571, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=redhat.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5tYwAdrlxvBQ for <ntp@ietfa.amsl.com>; Mon, 12 Sep 2022 03:26:01 -0700 (PDT)
Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 927E6C14F73B for <ntp@ietf.org>; Mon, 12 Sep 2022 03:26:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1662978360; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=Vo7LJ5Qz6s5SseWKM5KclxFXMvmLFscejenGfm7zvoA=; b=aDrYFUOPy0zKGMf7aeZNRVgM5ZZH4Q4mN4CQRuAmATjWkrAbsP7Deu8E/s8LOft40/0J8Z u9H7fp6K/ahS1QkjO+KFPW3+CO38FFJutlPrp48613rL3j2pj+VgjXe+6GNWKixHp3UBTi huoNiBavPSo3wIniTdJfrfc6+OYdq2s=
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-341-GAY6A0xjMDql1nUy3WSPJA-1; Mon, 12 Sep 2022 06:24:45 -0400
X-MC-Unique: GAY6A0xjMDql1nUy3WSPJA-1
Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 1600E85A58E; Mon, 12 Sep 2022 10:24:45 +0000 (UTC)
Received: from localhost (unknown [10.43.135.229]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4C2BD2027061; Mon, 12 Sep 2022 10:24:43 +0000 (UTC)
Date: Mon, 12 Sep 2022 12:24:42 +0200
From: Miroslav Lichvar <mlichvar@redhat.com>
To: Danny Mayer <mayer@pdmconsulting.net>
Cc: kristof.teichel=40ptb.de@dmarc.ietf.org, "ntp@ietf.org" <ntp@ietf.org>, Heiko Gerstung <heiko.gerstung=40meinberg.de@dmarc.ietf.org>
Message-ID: <Yx8I6sTGKTLKJr8c@localhost>
References: <DA1F1664-8A84-4197-844A-CA7E8DAA36B8@meinberg.de> <OF43150191.DABAA331-ONC12588B5.00362DC0-C12588B5.003861AF@ptb.de> <YxckOm2+TD3tTPN4@localhost> <7d7f0656-2fd2-b781-4913-526a4be8cb62@pdmconsulting.net> <Yxg4Cba58hI/aPKw@localhost> <aba44bbc-2204-735e-daff-a29a59dac9da@pdmconsulting.net> <YxmKlSVTzOQah/nc@localhost> <10b1b402-9386-4fb3-4297-38d31bdc5c96@pdmconsulting.net>
MIME-Version: 1.0
In-Reply-To: <10b1b402-9386-4fb3-4297-38d31bdc5c96@pdmconsulting.net>
X-Scanned-By: MIMEDefang 3.1 on 10.11.54.4
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
Archived-At: <https://mailarchive.ietf.org/arch/msg/ntp/NcSHaXBytnsKQ-fouF67wqJWB3I>
Subject: Re: [Ntp] NTPv5 Loop Detection without Stratum - Why do we want this?
X-BeenThere: ntp@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Network Time Protocol <ntp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ntp>, <mailto:ntp-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ntp/>
List-Post: <mailto:ntp@ietf.org>
List-Help: <mailto:ntp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ntp>, <mailto:ntp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 12 Sep 2022 10:26:07 -0000

On Thu, Sep 08, 2022 at 06:18:24PM -0400, Danny Mayer wrote:
> On 9/8/22 2:24 AM, Miroslav Lichvar wrote:
> > An NTP client can select multiple sources at the same time for its
> > synchronization. Look for "combine" in the NTP RFCs. With the "ntpq
> > peers" command you would see sources marked with the * and + symbols.
> Only is chosen (marked with a *). The + ones are possible candidates.

Only one is chosen to be the system peer (*), which determines stratum
and other values of the client, but other sources can pass the
clustering algorithm and be combined with the system peer for
synchronization. They have the + symbol.

Sources that don't pass the clustering algorithm have the - symbol.
They are not used for synchronization.

> > > > In orphan mode stratum is interpreted differently. Symmetric mode or
> > > > client/server mode makes no difference.
> > > There is no symmetric mode for client/server. A client is by definition one
> > > stratum value larger than the server. Peers can have the same stratum.
> > This is about the onwire protocol, not about source selection or
> > synchronization. A client polling a server can have a smaller, equal,
> > or higher stratum than the server.
> That's irrelevant. You are polling a server for time, what you do with it
> depends on the analysis done on the packets.

Right. So can you explain where measurements made in symmetric mode
are handled differently than in client/server mode? A pointer to the
RFC or code is sufficient.

> > Two client/server associations in opposite directions provide the same
> > functionality as a symmetric association, except the number of
> > exchanged messages is doubled, it's much easier to implement and
> > understand, and there are no replay attacks.
> That's a naive assumption. You can send any kind of replay no matter what
> the mode of the packet. Why do you think that you are sending twice as many
> packets in a symmetric association?

In symmetric mode each packet is a request and response at the same
time, i.e. the number of messages is halved when compared to two
client/server associations.

As the responses follow the polling interval and are not send
immediately when the request is received, this makes the symmetric
mode susceptible to replay attacks. In client/server mode each request
has its own response, independently from the polling of the other
client/server association.

> > > > If a local stratum-1 server had a poor reference clock (e.g. a GPS
> > > > receiver without PPS), it would be better to use a distant server with
> > > > higher stratum, i.e. stratum doesn't say much about accuracy.
> > > Then it wouldn't be a stratum-1 server any more.
> > What it would be?
> 
> I can only assume you have not read Section 3 of RFC5905 which tells you the
> answer.

Which part exactly?

In Section 3 I see: "Primary servers are assigned stratum one"

That is, a server that uses a poor reference clock is still stratum
one. A client which polls multiple servers would likely prefer a
different server, possibly with a higher stratum.

-- 
Miroslav Lichvar