Dear Mark,
Thank you for sharing all the details in your previous email. For
brevity I'm snipping most of your reply.
Job Snijders wrote:
> Would it not be advantageous to create at a minimum the 256 of the
> 'least-specific' objects?
MK: That may be a reasonable approach. Do you see any adverse effects
in simplifying the IRR Route creation logic to just have
least-specific?
I don't think I see a downside of mapping a single VRP to a single IRR
route/route6 object.
Synthesizing only the least-specific is how RPKI-integration was
implemented in IRRd v4, and that implemntation has seen quite some
flight hours by now. The approach seemed to work well in the last ~ 5
years. No request ever came up to extend IRRd v4 to synthesize (a
limited number of) more-specific route/route6 objects if maxLength was
present in the ROA generation request.
IRRd v4 does expose the 'maxLength' value by inserting a non-standard
RPSL attribute called 'max-length:' in the route/route6 object. While
this is not IETF-standardized, it seemed intuitive enough. RPSL parsers
are expected to ignore what they don't recognize anyway. ARIN could
mimick this practise. See the following example:
$ whois -h rr.ntt.net -- '-s RPKI -T route6 2001:67c:208c::/48' \
> egrep "route6|max-length|origin" | paste - - -
route6: 2001:67c:208c::/48 max-length: 48 origin: AS0
route6: 2001:67c:208c::/48 max-length: 48 origin: AS15562
I'd suggest to consider simplying the IRR creation logic to just a
singular least-specific route/route object, and not bother with
generating 'potentially up to 256' more-specific route/route6 objects.
I see a few advantages:
G* Every single VRP resulting from a ROA generation request will always
result in the instantiation of exactly one IRR route/route6 object. As
I understand the current proposal, sometimes a route/route6 object is
created, sometimes not, depending on the value of the maxLength. In
this I see a source for potential confusion.
* By creating just 1 route/route6 object per validated ROA payload, any
potential load on the NRTM mirror ecosystem is minimized to the
fullest extend possible: 65,285 ROAs on 'rpki.arin.net' will result in
72,082 Validated ROA Payloads thus result in 13,933 'route6:' objects
and 58,149 'route:' objects. A significant smaller number compared to
expanding up to 256 additional objects if maxLength is set wide enough.
* the use of maxLength isn't really recommended anyway, see BCP 185 /
RFC 9319 RFC 9319 - The Use of maxLength in the Resource Public Key Infrastructure (RPKI). As a rule of
thumb I recommend: 1 BGP announcement == 1 ROA == 1 IRR object and
avoid just using maxLength all together.
* Most transit providers and IXP route server operators create so-called
'upto /24' prefix-list-filters, regardless of maxLength values. So in
the vast majority of cases I don't think the additional up to 256
more-specific route objects would change anything.
Finally, if people can articulate why exactly synthesizing up to 256
more-specific route objects really would be a useful feature, it can
always be added at a later point in time. Adding extra objects to the
IRR has always been easier than removing them. 
Thanks!
Kind regards,
Job