Subject: Re: [ippm] v6 option types for IOAM data fields

From: "C. M. Heard" <[email-masked]>
Date: Mon, 29 Oct 2018 08:03:28 -0700

On Thu, 25 Oct 2018 15:06:57 +0000 Frank Brockners (fbrockne) wrote:
> Quick heads up: In the 6MAN meeting in BKK, we’ll review
> draft-ioametal-ippm-6man-ioam-ipv6-options-01 – which requests 2 option
> types from the DO/HbyH options sub-registry.
>
> While the bulk of the IOAM work is progressed in the IPPM WG, we’d greatly
> appreciate your feedback on draft-ioametal-ippm-6man-ioam-ipv6-options-01,
> which defines how IOAM data fields are carried using v6 extension headers.
> Cc’ing the IPPM WG as well, to keep everyone on the same page.

I have two brief comments on this work.

First, I see that the Incremental Tracing Option changes length in transit.
It is not appropriate for it to be carried in an IPv6 option intended for
use on the open Internet, for exactly the same reason that insertion of
extension headers by intermediate nodes is not allowed on the open Internet.

Second, I see that two IPv6 option code points are requested, one with the
"chg" flag set, the other with the "chg" flag clear. While there is no harm
in this, it is not strictly necessary; the only real purpose of this flag
is to determine whether the option data is or is not included in the
Authentication Header Integrity Check Value computation.

Mike Heard

---

From: "Frank Brockners (fbrockne)" <[email-masked]>
Date: Mon, 29 Oct 2018 18:35:40 +0000

Thanks Mike. On the scope of an IOAM deployment: 
draft-ietf-ippm-ioam-data-04 clarifies in section 3 that IOAM is a domain focused feature, i.e. not expected to be deployed on the open Internet.

Frank

-----Original Message-----
From: C. M. Heard <[email-masked]> 
Sent: Montag, 29. Oktober 2018 16:03
To: 6man <[email-masked]>; IPPM <[email-masked]>
Cc: Frank Brockners (fbrockne) <[email-masked]>
Subject: Re: v6 option types for IOAM data fields

On Thu, 25 Oct 2018 15:06:57 +0000 Frank Brockners (fbrockne) wrote:
> draft-ioametal-ippm-6man-ioam-ipv6-options-01 – which requests 2 
> option types from the DO/HbyH options sub-registry.
>
> While the bulk of the IOAM work is progressed in the IPPM WG, we’d 
> greatly appreciate your feedback on 
> draft-ioametal-ippm-6man-ioam-ipv6-options-01,

First, I see that the Incremental Tracing Option changes length in transit.
It is not appropriate for it to be carried in an IPv6 option intended for use on the open Internet, for exactly the same reason that insertion of extension headers by intermediate nodes is not allowed on the open Internet.

Second, I see that two IPv6 option code points are requested, one with the "chg" flag set, the other with the "chg" flag clear. While there is no harm in this, it is not strictly necessary; the only real purpose of this flag is to determine whether the option data is or is not included in the Authentication Header Integrity Check Value computation.

Mike Heard

---

From: Mark Smith <[email-masked]>
Date: Tue, 30 Oct 2018 09:25:32 +1100

Hi Frank,

On Tue., 30 Oct. 2018, 05:36 Frank Brockners (fbrockne), <[email-masked]>
wrote:

> draft-ietf-ippm-ioam-data-04 clarifies in section 3 that IOAM is a domain
> focused feature, i.e. not expected to be deployed on the open Internet.
>

That still violates RFC 8200, there are no exceptions for "closed" domains.

>From section 3:

"Designers of
   carrier protocols for IOAM must specify mechanisms to ensure that
   IOAM data stays within an IOAM domain.  In addition, the operator of
   such a domain is expected to put provisions in place to ensure that
   IOAM data does not leak beyond the edge of an IOAM domain, e.g. using
   for example packet filtering methods."

Neither the designers or the operators can ensure this IOAM information
won't leak.

Possible reasons it can leak:

- operator configuration error - e.g. forgetting to configure the domain
boundary (e.g. router with multiple domain exit interfaces, forgetting to
add that option on one of them), or misconfiguring it.

- partial device failure - the device still forwards packets, but ceases to
remove this information due to a hardware fault that has appeared

- vendor implementation bugs that fails to remove the information.

Any or all of these can occur, and as it is on egress, the consequences may
not be visible to the domain network operator, because network operators
rarely inspect packets after they've left their network. Once a packet is
sent onto somebody else, it is assumed to have been sent without faults.

There are many instances of leaks at the boundary of what are supposed to
be closed domains, such as packets containing RFC1918 private addresses (in
packet headers themselves, or in DNS packets - such a big problem that www.a
s112.net <http://as112.net> was created), and route leaks e.g.
https://bgpmon.net/how-the-internet-in-australia-went-down-under/

As operators usually have only one device at the edge of the domain, that
would be performing the domain boundary function, that device becomes a
single point of failure. Enforcement is therefore quite fragile. A domain
boundary enforced by two domain edge devices in-line would increase
robustness, however I'd think that would be rarely deployed, because we
haven't seen that commonly with IPv4 NAT.

The only way for an operator to ensure these leaks don't and never occur is
for the domain to literally not be physically connected to the Internet
i.e. the domain is air gapped from the Internet. If there is a link between
the domain and the Internet that can carry IP packets, then there is always
a possibility that information can leak from the domain.

So accepting that leaks can always occur, a far more robust option is to
leave the original packet alone entirely, and encapsulate it in a domain
local IPv6 header (i.e RFC2473, section 3.1) with domain local limited
addresses (i.e. ULA addresses) and the additional EH.

That still doesn't ensure that packet won't leak outside the domain,
because those packets will follow a default route, however as the packet's
addressing is invalid outside of the domain, that packet will be dropped
once it reaches either an invalid Internet address filter, or a default
free Internet router. The packet with the failed-to-be-removed outer ULA
IPv6 header will never reach the destination address of the inner packet,
because the DA of the inner packet is in the ULA IPv6 packet's payload.

Failure of the mechanism would be much more obvious, localised to the
domain implementing the mechanism (rather than being externalised to
somebody else's domain/network), and absolute, because the failure mode is
packets being entirely discarded.

Regards,
Mark.

> --------------------------------------------------------------------
> IETF IPv6 working group mailing list
> [email-masked]
> Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
> --------------------------------------------------------------------
>