Subject: Re: [Idr] AD Review of draft-ietf-idr-tunnel-encaps-15
From: John Scudder <[email-masked]>
To: Alvaro Retana <[email-masked]>
Cc: "[email-masked]" <[email-masked]>, idr-chairs <[email-masked]>, "idr@ietf. org" <[email-masked]>
Date: Mon, 4 May 2020 19:57:08 +0000
List-Id: Inter-Domain Routing <idr.ietf.org>

Hi Alvaro,

On Feb 21, 2020, at 7:47 AM, Alvaro Retana <[email-masked]<mailto:[email-masked]>> wrote:

428    o  The IP address in the sub-TLV's address subfield is not a valid IP
429       address (e.g., it's an IPv4 broadcast address).

[major] What is a "valid IP address"?  The text above says that
link-local are not allowed...and that a host address is expected...and
that the address must "belong"...now you added broadcast addresses.
Anything else?  Is a multicast destination "valid"?  Is there a
reference that can be added here to avoid having to define it?

This problem has been around from time immemorial; for example RFC 4271 has a couple of places where it says things like

   Syntactic correctness means that the NEXT_HOP attribute represents a
   valid IP host address.

I remember wrestling with this in years past, but I’m not sure I ever came up with a good solution. The best reference I can find is RFC 6890, "Special-Purpose IP Address Registries”, which defines what we generally refer to as “martians”. Using that, perhaps the rule could be rewritten something like this?

"o The IP address in the sub-TLV’s address subfield is listed in the relevant Special-Purpose IP Address Registry [RFC6890] as either not a valid destination, or not forwardable.”

In practice this would probably be implemented by using the implementation-specific “martian” list, but this gives us a way to cite it normatively. By the way, this nominally makes the text about link-local redundant, since both the v4 and v6 special-purpose registries include link-local.

—John