Subject: [Rift] IPv4 vs IPv6

From: Mikael Abrahamsson <[email-masked]>
Date: Thu, 18 Jul 2019 06:42:28 +0200 (CEST)

Hi,

Reading https://tools.ietf.org/html/draft-ietf-rift-rift-06, I came across 
this:

"All RIFT routers MUST support IPv4 forwarding and MAY support IPv6 
forwarding."

Reading the charter on https://datatracker.ietf.org/wg/rift/about/ :

"The protocol must support IPv6 and should also support IPv4."

So while I see that technically these two statements aren't in violation 
of each other, it seems the "MAY" for IPv6 in the main architecture 
document seems to violate the spirit of the charter and IPv6 focus in the 
IETF as of the past 5 years.

Could someone please explain the rationale for this?

-- 
Mikael Abrahamsson    email: [email-masked]

---

From: Tony Przygienda <[email-masked]>
Date: Thu, 18 Jul 2019 12:26:25 -0400

Please dig out the archive where that discussion was brought up by Alvaro
and follow up there if you still have doubts.

In short: the protocol DOES support v6 and it DOES support v6

every router running RIFT MUST support v4 and MAY support v6. Rationale for
this on the mentioned thread.

--- tony

On Thu, Jul 18, 2019 at 12:42 AM Mikael Abrahamsson <[email-masked]>
wrote:

> _______________________________________________
> RIFT mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/rift
>

---

From: Mikael Abrahamsson <[email-masked]>
Date: Thu, 18 Jul 2019 20:22:25 +0200 (CEST)

> and follow up there if you still have doubts.

Since I cannot reply to that thread (I just subscribed to the list so I 
don't have an original email to reply to), that's hard.

Anyhow, I think the IPv4 MUST should be removed. It's 2019 now, we should 
not mandate IPv4 support in anything.

> not to the requirements _of devices runing RIFT_:  we cannot mandate 
> that everyone in reality will run IPv6 forwarding on the fabric so the 
> reality is that every silicon does IPv4 today and some does IPv6. And

This fact doesn't warrant making IPv4 a MUST. Think 5-10 years down the 
line, there might be IPv6 only silicon and control plane. Why should 
future implementors be required to implement IPv4 if they do not want to?

> then IPv4 over IPv6 is reality while IPv6 over IPv4 is not (since IPv6 
> does ND anyway so why would you).  So it is very good for v6 here to 
> basically make it an implicit transport for v4 (by saying running v6 
> does _automatically_ give you v4 forwarding) while making sure that v4 
> being-de-facto-what-e'one-can-do is the lowest common denominator of the 
> router's running RIFT. RIFT being only usable if a router/switch can do 
> IPv6 is simply not a practical proposition AFAIS.  We could arguably 
> split it into a "RIFT router/switch requirements document" but that 
> seems just paper bloat ...

I am not proposing making IPv6 a MUST, but I am against making IPv4 a 
MUST. Better to be silent on the matter in that case so future 
implementors can decide for themselves.

I just made me cringe when I read the IPv4 MUST in the document.

---

From: Tony Przygienda <[email-masked]>
Date: Thu, 18 Jul 2019 14:49:49 -0400

Aha ok, what you say is reasonable. I was steered here originally by the
fact the even cheapest stuff today does v4 and if we have v6 support on the
fabric v4 forwarding over v6 nexthops is possible at basically zero config
cost and you have a great v4 to v6 migration story. but with the angle you
propose I see that writing "SHOULD support v4" would be better assuming
silicon will become v6 only over years and v4 will vanish.

We can't write of course "MUST support v6" since that makes the stuff
undeployable in foreseable future albeit we all wish the world would have
moved on for last 20 years :-}

Other opinions?

--- tony

"

---

From: Alvaro Retana <[email-masked]>
Date: Thu, 18 Jul 2019 13:39:46 -0700

On July 18, 2019 at 3:50:34 PM, Tony Przygienda ([email-masked]) wrote:

[Speaking as a WG member.]

Aha ok, what you say is reasonable. I was steered here originally by the
fact the even cheapest stuff today <http://airmail.calendar/2019-07-18
12:00:00 GMT-3> does v4 and if we have v6 support on the fabric v4
forwarding over v6 nexthops is possible at basically zero config cost and
you have a great v4 to v6 migration story. but with the angle you propose I
see that writing "SHOULD support v4" would be better assuming silicon will
become v6 only over years and v4 will vanish.

Other opinions?

I would go all the way and not make specific support Normative.  Even a
“SHOULD support IPv4” could raise a lot of questions.

My 2c.

Alvaro.

---

From: Randy Bush <[email-masked]>
Date: Thu, 18 Jul 2019 13:54:26 -0700

SHOULD support ipv4 and ipv6.  MUST support at least one.

randy

---

From: Tony Przygienda <[email-masked]>
Date: Thu, 18 Jul 2019 22:45:22 -0400

If the consensus is that we should be dropping the sentence completely in
the next versions and not specify any RIFT router requirements, I think
that's perfectly reasonable as well.

--- tony

On Thu, Jul 18, 2019 at 4:39 PM Alvaro Retana <[email-masked]>
wrote:

> fact the even cheapest stuff today
> <http://airmail.calendar/2019-07-18%2012:00:00%20GMT-3> does v4 and if we
> have v6 support on the fabric v4 forwarding over v6 nexthops is possible at
> basically zero config cost and you have a great v4 to v6 migration story.
> but with the angle you propose I see that writing "SHOULD support v4" would
> be better assuming silicon will become v6 only over years and v4 will
> vanish.
>

---

From: Bruno Rijsman <[email-masked]>
Date: Fri, 19 Jul 2019 06:30:48 +0200

That would be my vote.

AFAIK the protocol supports v4-only, v6-only, and v4-and-v6.

I don’t see a need to put a requirement in the spec that a router must support a specific subset of those options.  That is up to the implementor / operator.

— Bruno

> On Jul 19, 2019, at 4:45 AM, Tony Przygienda <[email-masked]> wrote:
> 
> If the consensus is that we should be dropping the sentence completely in the next versions and not specify any RIFT router requirements, I think that's perfectly reasonable as well. 
> 
> --- tony 
> 
> On Thu, Jul 18, 2019 at 4:39 PM Alvaro Retana <[email-masked] <mailto:[email-masked]>> wrote:
> On July 18, 2019 at 3:50:34 PM, Tony Przygienda ([email-masked] <mailto:[email-masked]>) wrote:
> 
>> Aha ok, what you say is reasonable. I was steered here originally by the fact the even cheapest stuff today <http://airmail.calendar/2019-07-18%2012:00:00%20GMT-3> does v4 and if we have v6 support on the fabric v4 forwarding over v6 nexthops is possible at basically zero config cost and you have a great v4 to v6 migration story. but with the angle you propose I see that writing "SHOULD support v4" would be better assuming silicon will become v6 only over years and v4 will vanish.
>> 
>> We can't write of course "MUST support v6" since that makes the stuff undeployable in foreseable future albeit we all wish the world would have moved on for last 20 years :-}
>> 
>> Other opinions?
> 
> I would go all the way and not make specific support Normative.  Even a “SHOULD support IPv4” could raise a lot of questions.
> 
> My 2c.
> 
> Alvaro.
> 
>

---

From: Tony Przygienda <[email-masked]>
Date: Fri, 19 Jul 2019 11:17:13 -0400

good, let's remove the sentence but we have to resolve the following
scenario now.

v6 LIEs are exchanged, with that we have v6 gateways

now, if v4 addresses are not present, no v4 LIEs can be exchanged but a
node may be able to forward v4 over v6 gateways (in fact highly desirable).
How do we know whether v4 can or cannot be forwarded over the link?

A possible solution is to send on the adjacency which address families can
be forwarded like this

/* Link capabilities */

struct LinkCapabilities {
    /* indicates that the link's `local ID` can be used as its BFD
       discriminator and the link is supporting BFD */
    1: optional bool                           bfd =
            common.bfd_default;

*    2: optional bool                           v4_forwarding_capable = true;*}

which will allow a node to decide whether it installs the v4 route v6
nexthop with v6 gateways on this link if it does not have a v4 address. Or
we just say "v4 can be forwarded over RIFT links even if only v6 LIEs have
been exchanged?" ...

-- tony

On Fri, Jul 19, 2019 at 12:30 AM Bruno Rijsman <[email-masked]>
wrote:

> I don’t see a need to put a requirement in the spec that a router must
> support a specific subset of those options.  That is up to the implementor
> / operator.
>
> — Bruno
>
>> <http://airmail.calendar/2019-07-18%2012:00:00%20GMT-3> does v4 and if
>> we have v6 support on the fabric v4 forwarding over v6 nexthops is possible
>> at basically zero config cost and you have a great v4 to v6 migration
>> story. but with the angle you propose I see that writing "SHOULD support
>> v4" would be better assuming silicon will become v6 only over years and v4
>> will vanish.
>>