Skip site navigation (1)Skip section navigation (2)
Date:      13 May 2002 09:24:02 +1000
From:      Andrew Reilly <areilly@bigpond.net.au>
To:        Archie Cobbs <archie@dellroad.org>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Network problems in recent -stable
Message-ID:  <1021245843.590.26.camel@gurney.reilly.home>
In-Reply-To: <200205121734.g4CHYRg16909@arch20m.dellroad.org>
References:  <200205121734.g4CHYRg16909@arch20m.dellroad.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi Archie,

Thanks for the help.

On Mon, 2002-05-13 at 03:34, Archie Cobbs wrote:
> Andrew Reilly writes:
> > I maintain an MS-PPTP VPN link between my FreeBSD system and my office
> > network, using the mpd port and netgraph.  This has, historically, been
> > really reliable, and works well.  Lately, I've been having problems,
> > though:
> > 
> > Often, mail sent _to_ the office mail server will hang, and qmail-send
> > will note a time-out.  Mail from the server is almost never a problem
> > (fetchmail), and messages sent manually, by typing SMTP through a telnet
> > session also always work fine.
[etc...]
> First, a question: what is the PPTP machine at the other end? Is it
> a MS machine or are both ends using mpd?

The other-end machine is an MS-NT5 or W2000 box.  Only my end is using
mpd.  I upgraded to mpd-3.8 (from 3.7) over the weekend.  Not sure if
anything was changed in that?

> What is supposed to happen is this: your local machine sends a large
> TCP packet to the office with the 'DF' bit set (this is path MTU
> discovery). The mpd machine sees that it must fragment the packet
> (because the packet is larger than the MTU on the 'ng0' interface).
> But the 'DF' (don't fragment) bit is set, so the mpd machine should
> send an ICMP packet back to the local machine, which should adjust
> accordingly.
> 
> So some step in that process may not be happening; this should be
> verifyable with tcpdump.
> 
> A possible workaround is to enable multi-link PPP, if both ends support
> doing that.
> 
> Another thing to play with is manually adjusting the MTU on the 'ng0'
> interface to see if that changes things. Also, see if larget ping
> packets get through ('ping -s 2000 ...') when send from either the mpd
> machine or the local machine.

One of the respondents on the local BUGS mailing list suggested that
too, and I have the following to report:

Running:
jot 1000 1300 | while read i; do sudo ping -c 1 -s $i corvus;
done>ping_log 2>&1

(corvus is a FreeBSD-4 server box on the network in the office).

The simultaneously running tcpdump -i ng0 said "ip reassembly time
exceeded" a few times, and ping_log looked normal everywhere except for
the entry where "1478 bytes from 192.168.10.13: ..." should have been,
where we got instead:
ping: sendto: Message too long

I'm not sure that it's necessarily packet size specific, because I saw
this happen when I was doing random sizes manually, when the ping -s
argument was 1468.

Unless you've done something to mpd-3.8 to fix things, I can report that
the problem has gone away as a result of adding the following line to my
ipfw rules:
add allow all from any to any frag

Since this change was added to rc.firewall in November 1999, I suspect
that something else must be at work, because I haven't had that rule in
place, _and_ I haven't been having problems until a couple of weeks ago.

Weird, but thankfully, all seems OK now.

Thanks again for your help.

-- 
Andrew


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1021245843.590.26.camel>