Subject: [BEHAVE] IPv4 requirements/BCP during NAT64 phase

From: Iljitsch van Beijnum <[email-masked]>
Date: Mon, 27 Jul 2009 12:52:56 +0200

Hi all,

I'm starting to think that we could solve some of the issues  
surrounding MTU, fragmentation and UDP 0 checksums that we are  
encountering with IPv6<->IPv4 translation by imposing some  
requirements / best current practices on the IPv4 hosts.

Basically, I want to tell IPv4 operators and application writers that:

1. They MUST support an MTU of at least 1260
     (maybe with the exception of low-speed client-only stuff such as  
dial-up)

2. They MUST generate correct UDP checksums for UDP used in applictions
     (UDP used for encapsulations where both ends can be reasonably  
assumed to be IPv4 would still be allowed to use a 0 checksum)

Thoughts?

Iljitsch

---

From: Hadriel Kaplan <[email-masked]>
Date: Mon, 27 Jul 2009 08:01:36 -0400

Considering the rather large number of IPv4 devices+apps on the planet compared to IPv6, wouldn't you have a better chance of specifying what IPv6 devices should do/not-do instead??

ISTM that Fred had sent an email a long time ago which basically summed up the UDP checksum change for IPv6: it was a layer violation for an IPv6 RFC to have done that.

-hadriel

> -----Original Message-----
> From: [email-masked] [mailto:[email-masked]] On Behalf
> Of Iljitsch van Beijnum
> Sent: Monday, July 27, 2009 6:53 AM
> To: Behave WG
> Subject: [BEHAVE] IPv4 requirements/BCP during NAT64 phase
> 
> Hi all,
> 
> _______________________________________________
> Behave mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/behave

---

From: Iljitsch van Beijnum <[email-masked]>
Date: Mon, 27 Jul 2009 15:39:03 +0200

On 27 jul 2009, at 14:01, Hadriel Kaplan wrote:

> Considering the rather large number of IPv4 devices+apps on the  
> planet compared to IPv6, wouldn't you have a better chance of  
> specifying what IPv6 devices should do/not-do instead??

No, because changing the base specifications takes forever from  
writing the doc until deployment. If it's something opertional it  
COULD happen quickly and in apps somewhere in the middle.

> ISTM that Fred had sent an email a long time ago which basically  
> summed up the UDP checksum change for IPv6: it was a layer violation  
> for an IPv6 RFC to have done that.

That's very interesting but doesn't help us with what to do now.

---

From: Hadriel Kaplan <[email-masked]>
Date: Mon, 27 Jul 2009 11:38:57 -0400

Correct me if I'm wrong, but wasn't your email proposing we do the same thing, but for IPv4 instead? 
 
You think that's easier than updating an IPv6 RFC or will be shorter than "forever"? 

-hadriel

> From: Iljitsch van Beijnum [mailto:[email-masked]]
> Sent: Monday, July 27, 2009 9:39 AM
> To: Hadriel Kaplan
> Cc: Behave WG
> Subject: Re: [BEHAVE] IPv4 requirements/BCP during NAT64 phase
>

---

From: Iljitsch van Beijnum <[email-masked]>
Date: Mon, 27 Jul 2009 19:24:09 +0200

> You think that's easier than updating an IPv6 RFC or will be shorter  

What I was proposing was twofold:

- No < 1260 MTUs. This is purely an operational issue, I don't know of  
any link layers (except obscure 25 year old stuff that is absolutely  
not used anymore) that are incapable of running with a 1260+ byte MTU.  
And I'm even willing to look the other way for stuff like dial-up.

- No 0 checksums for UDP applications. If applications use those today  
they would have to be updated. That takes time, but people update  
applications all the time. Updating the IPv6 base spec is much more  
difficult, especially because allowin < 1280 MTUs is a non-backward- 
compatible change.

So, in a word, yes.

---

From: Brian E Carpenter <[email-masked]>
Date: Tue, 28 Jul 2009 10:16:30 +1200

On 2009-07-27 22:52, Iljitsch van Beijnum wrote:
> Hi all,
> 
> I'm starting to think that we could solve some of the issues surrounding
> MTU, fragmentation and UDP 0 checksums that we are encountering with
> IPv6<->IPv4 translation by imposing some requirements / best current
> practices on the IPv4 hosts.
> 

Yep, that seems like a good pragmatic message to spray out to the
various NOGs and other ISP fora.

> assumed to be IPv4 would still be allowed to use a 0 checksum)

No hope of arbitary apps being updated on a relevant timescale I think,
until the apps begin to fail. It might be worth uttering such advice,
so that you could say "I told you so" later. But IPv6 will be blamed
for this, whatever we do.

    Brian

---

From: Lars Eggert <[email-masked]>
Date: Tue, 28 Jul 2009 15:21:14 +0200

> for an IPv6 RFC to have done that.

If you mean that a TSV area document should have made that change -  
possibly, but 2460 certainly got IETF consensus and hence was reviewed  
by the TSV area. The topic was also pretty extensively discussed with  
TSV folks at the time. I believe the decision to make this change in  
2460 was mostly for convenience (have it all in one place).

Lars

---

From: Hadriel Kaplan <[email-masked]>
Date: Wed, 29 Jul 2009 02:20:05 -0400

> From: Lars Eggert [mailto:[email-masked]]
> Sent: Tuesday, July 28, 2009 9:21 AM
> 

Nope, sorry for the confusion - I meant that a new IP layer would make or require changes to a UDP layer; or that a UDP layer would be any different based on the IP layer version its running over.  Imagine we created an IPv8 tomorrow, and said "oh and for IPv8, TCP-SACK is mandatory".

[And I'm not saying it was wrong or a no-brainer - I don't think it was obvious back then, only in hindsight now; and it was so much work involved that it'd be a miracle if this was the only issue... and it's easy for me to critique from the peanut gallery, decades later]

-hadriel