I've been having a bizarre problem with NetBSD i386 4.0.1 -release (and before that on 4.0 -release). After a bunch of trial and error, I found a solution to the problem. That's great insofar as "it works" now, but I still don't understand why the problem was happening, hence this post.

For now I just want to give a concise description of the setup, problem and solution, so that people can quickly see where it's going. Of course, I'd be glad to post more details as needed.

The setup is a box with a single modem and single network card (a Via Rhine II, interface vr0). The modem dials up to "the Internet" and vr0 connects to the local LAN. There is no NAT or IP forwarding going on; things are fairly much out of the box. Connections to the LAN work fine.

This was the problem: When connected with pppd to the Internet (interface ppp0), this connection does not work right when vr0 is UP. If I put vr0 DOWN, the ppp connection soon starts to work right. (This is from the box, not the LAN.) What do I mean by not right? Well, it seems DNS is working, but loading almost any web page will hang up after DNS and the request is sent -- unless maybe it is a very small web page.

Note, the same thing works just fine with Linux and OpenBSD, so it doesn't seem to be a hardware problem.

After a lot of frustration, the solution I found was: In the PPP setup, I'd been using MRU of 1280. Due to some of the symptoms above, I tried increasing it to the max of 1524, and the problem went away! After some experiments it seems that an MRU >= 1500 works, and anything less probably gives the problem. As an aside, the MTU of vr0 is of course 1500.

So the questions are, why on earth would the UP/DOWN state of the ethernet link affect the PPP connection, and only for too small MRU's? Could this cause other problems? Is there a better solution?