Re: [Sidrops] trying to limit RP processing variability

Claudio Jeker <> Tue, 14 April 2020 09:18 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id BFBD83A089D for <>; Tue, 14 Apr 2020 02:18:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.918
X-Spam-Status: No, score=-1.918 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id A1bIYe32-eLY for <>; Tue, 14 Apr 2020 02:18:21 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-CHACHA20-POLY1305 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id CAD7A3A0899 for <>; Tue, 14 Apr 2020 02:18:20 -0700 (PDT)
Received: (qmail 3174 invoked by uid 1000); 14 Apr 2020 09:18:18 -0000
Date: Tue, 14 Apr 2020 11:18:18 +0200
From: Claudio Jeker <>
To: Robert Kisteleki <>
Cc: Stephen Kent <>, "" <>
Message-ID: <>
References: <> <> <> <> <>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <>
User-Agent: Mutt/1.10.1 (2018-07-13)
Archived-At: <>
Subject: Re: [Sidrops] trying to limit RP processing variability
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A list for the SIDR Operations WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 14 Apr 2020 09:18:23 -0000

On Tue, Apr 14, 2020 at 10:54:23AM +0200, Robert Kisteleki wrote:
> Hi Steve,
> >> If, at the previous run, the RP fetched the relevant (now missing
> >> object, then I see no reason to not use it again. Think of the previous
> >> run as an object a cache if you will: if you're looking for an object
> >> mentioned in the manifest, and you have it already (hash / name / etc.
> >> matches) then you can reuse it.
> > I probably should have said that an RP views an object as "missing" if
> > the the object is not present in the RP's cache and cannot be retrieved
> > from the relevant PP. Because RPs retrieve objects only if the objects
> > have changed (newly added or updated), an RP would not be aware that an
> > object is not present at a PP if the object is present in the RP's
> > cache. I recall a famous quote about whether an object that has not been
> > updated makes any noise when it is deleted from a PP, or something like
> > that :-)
> rsync has a flag (--delete) where it literally syncs, ie. not only
> fetches new/updated objects but also removes the local ones that no
> longer exist remotely. (Either this, or some other processes have to do
> cleanup, otherwise the local copy accumulates objects eternally.)
> I believe the NLnetLabs routinator and the NCC's RPKI validator use
> --delete with rsync. Maybe this behaviour changes if/when not using
> rsync, I'm not sure.
> >> Of course it can be useful to check if it still exists in the PP, but it
> >> seems to me the only benefit is to detect that it is missing from there
> >> and perhaps warn the PP operator. Otherwise the RP has a hard time
> >> arguing "no idea what this is since it's not there!".
> > I think I agree about the utility of detecting an object that has gone
> > missing from a PP, when the RP has the object locally cached. But, in my
> > experience, RP software was not designed to detect this case.
> I believe the discussion here is about specifying how RP software should
> (or must) behave, so that their behaviour is consistent. IMO in order to
> achieve that, the behaviour around missing objects should be part of the
> specification.

This should not only be about RP software but also the RPKI CA software
and the operation of such software and repositories.
If the CA software publishes only consistent repos the problem would be
solved. Also the operators of rpki repositories should check their repos
before publishing them as part of monitoring.

If the CA software is sloppy then the RP software will always have a hard
time to get consitent behaviour. It is the typical garbage in garbage out

:wq Claudio