Subject: Re: Patch for timiting TCP MSS (i.e. for new PPPoE)
To: None <tech-net@netbsd.org>
From: Thor Lancelot Simon <tls@rek.tjls.com>
List: tech-net
Date: 12/04/2001 16:57:31
On Mon, Dec 03, 2001 at 10:01:48AM -0600, Hal Snyder wrote:
> Martin Husemann <martin@duskware.de> writes:
> 
> > Which still means you have to do it for each and every machine
> > behind a pppoe router. It's hard to cope from our understanding of
> > standards conformance, but we *realy* need a MSS clamping option for
> > routers!
> 
> I'll second that. Setting MTU on routes isn't enough, in the case
> where you have NetBSD on an intermediate router. It will help to have
> a way to clamp (selectively) the MSS hint from a host on the inside as
> it passes through the router out a certain interface or out a certain
> route.

Actually, this problem impacts us so severely for two reasons:

1) We don't always use Path MTU in the default configuration.  So, we use
   an MTU of 1500 for "local" hosts -- and a NAT can make hosts seem "local"
   that are actually not.  If we always used Path MTU, even for "local" hosts,
   a whole class of network configurations would stop giving NetBSD hosts
   such a hard time.

2) Our NAT code appears to corrupt locally-generated needs-frag ICMP
   messages, so a NetBSD router separating, say, an MTU-1400 PPPOE link
   and an MTU-1500 Ethernet will create a Path MTU blackhole.  I have an
   open PR on this, but I last time I looked I couldn't figure out how
   checksum regeneration for locally-generated ICMP messages was *supposed*
   to work, so I couldn't fix it.  

Bug #2 above is really serious and is probably responsible for many users'
complaints about PPPOE and Path MTU.  With it fixed, we "shouldn't need a
terrible hack like MSS clamping; with it there, we probably do.

Thor