Update - 14th May: Problem solved. Looks like it's a bug in OpenBSD's "pf" (well, one that was fixed in a later version) - they were ignoring the "wscale" field of the TCP set up packets. Not an issue until people actually started using wscales of anything other than zero, which is a fairly recent phenomenon. I'm going to use this as a final excuse to abandon OpenBSD. Anyway, thanks to everyone who helped, particularly LarsG and jesup.
So here's the thing: a few months ago my wife bought a new PC, with Vista, and it doesn't connect properly to the outside world via my network. The relevent part of the network looks like this:
Vista Box <Ethernet> OpenBSD NAT gateway/router <PPPoE> DSL modem <DSL> Earthlink
This was kind of the first time I'd ever noticed a machine on my network having these kinds of problems, and I thought it was just a Vista thing. My other OpenBSD box, similarly connected, has no problem. Well, except for Multiply and Wikipedia where normal queries work fine but trying to post anything is a PITA. I'll talk about that in a moment.
After a while I just set up a SOCKS proxy on the OpenBSD server and that was enough to get things working. But I also noticed that my HD DVD player was having problems connecting to the outside world - and get this, when pointed at my internal web proxy, it worked too.
Skip forward to Ubuntu 8.04. I install this, and suddenly my laptop - which worked fine with 7.0something - has exactly the same problems as the Vista box. And probably the same issue as the HD DVD player - I haven't yet taken advantage of Toshiba's offer to send me the source code to the latter.
My network is the same as it ever was. The version of OpenBSD I'm running is ancient. I. Have. Not. Changed. Anything. Just upgraded one operating system on a device that no longer works and added two other devices. Anything that was working is still working. Anything "new", be it a new PC with Vista or an old PC with an upgraded version of Linux is not.
Conclusion: something has changed. Someone's introduced something new and funky into the way TCP/IP works, that's excited Microsoft and the Linux people, and it's totally screwed up my connection.
I've Googled around. Nobody else seems to be having the same issue. Or perhaps they are and I'm not using the right keywords. PPPoE has a known MTU/MRU issue, but the PPP client I use actually rewrites the headers of outgoing packets to force the other end to use the smaller packet size. Until "the upgrade" this worked fine.
I'm going to temporarily post this in my old Slashdot journal too in case anyone there can think of anything. What's changed? What was introduced in the last year or so that could be causing problems with a NAT/PPPoE connection?
All trademarks and copyrights on this page are owned by their respective owners. Comments are owned by the Poster. The Rest © 1997-2008 SourceForge, Inc.
SWAG (Score:1)
Re: (Score:1)
BTW Malda, YOUR FUCKING WEBSITE JUST TRIED TO PUT UP A POPUP. I am so glad I avoid this worthless piece of junk. You fuck up D1, insult those who have problems with it, and you whore your
I'm not sure I fully understand it... (Score:2)
I ask as I think about the motherboard for my play computer at home. It has 5
Re: (Score:1)
Well, if they're suddenly now implementing some feature of TCP/IP that's been ignored for the last thirty years, I'd still like to know what it is. The point is something has changed, and it appears to be an outside world thing rather than anything on my network, given everything that was working is still working.
As far as bandwidth caps et al go, nah. That would affect everything, not just stuff running newer software.
Subject (Score:2)
Re: (Score:1)
Re: (Score:2)
That said, the big difference I see is the handling of win. Perhaps this is tickling a bug in the OpenBSD box's support for slow-start? This is a TCP/IP tuning thing, which modern OSes will have played with, not a change in the protocol.
I VERY strong
Re: (Score:2)
I'm not an Earthlink tech so there's absolutely no chance of me running tcpdump on their side I'm afraid. The only thing I can trace is on my end.
There may be a bug in OpenBSD's PPPoE/PPP clients, but given this bug has only just surfaced, something clearly has changed in the way Linux and Windows do things that's causing the bug to show, hence the question.
Re: (Score:1)
Did some Googling on "openbsd window size" and noticed 4.3 had a change that might be relevant, though it's a stretch. The line goes:
Now the problem with this is that this would make sense if the computer having problems was the OpenBSD box, but it's fine, it can connect to everything, and indeed my workaround right now is for my machines to use the OpenBSD boxes as proxies, either Squid or SOCKS depending upon the appl
Re: (Score:1)
Re: (Score:2)
My guess is your NAT gateway (or some other connection tracking firwall on the path) doesn't understand wscale and drops packets that it thinks are outside the window. Do a tcpdump on your pppoe interface and compare, if it receives one additional packet from 66.35 but doesn't forward it to 10.0.0.12 then that's your problem
Re: (Score:2)
wscale 7 win 1 = wscale 0 win 128.
Re: (Score:1)
Alas, pf is a kernel feature, so I have to upgrade the entire operating system to fix this.
Anyway, thanks to everyone for their help. I'm probably going to redo the server closet now. The cheapest system I could put together (that isn't reconditioned and the wrong size and shape) is a Core Duo with 1G of RAM and a 160G HD which is way larger than what's necessary for a PPPoE NAT router/fire
Re: (Score:2)
Fixes to pf(4)'s TCP window scaling support
[voice style="Adam Savage"] Well, there's your problem! [/voice]
Alas, pf is a kernel feature, so I have to upgrade the entire operating system to fix this.
Two potential work-arounds: Disable window scaling in the tcp stack on all clients, or write some pf rule to drop wscale from the initial syn/syn-ack packets. Drawback is that window will be limited to 64K, which will degrade performance on high-speed/high-latency links.
Core Duo with 1G of RAM and a 160G HD
Gotta love Moore's law eh? Virtualbox, xen, vmware would probably all work well. Otoh, something like a wrt54gl running Tomato would be just fine in most situations.
Re: (Score:1)
Yeah, right now the only workaround is to set a window size on the clients I have access to. Unfortunately while my HD DVD player runs Busybox, I don't actually have shell access to it (damn you Toshiba! I thought the TOSLINK cable was bad enough, but this!) and my wife's PC runs Vista and, frankly, I don't know where to begin with that one.
I don't see any way to write a pf.conf rule to modify anything, let alone the window size. I've searched the manpage all over, and there's nothing obvious - the only
Re: (Score:1)
Ok, second stab, this time ensuring all traffic, not just TCP port 80, is shown as long as it is to and from the Ubuntu 8.04 box and isn't ssh or telnet traffic:
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:1)
Had a problem like that once ... (Score:2)
Turned out that several machines all used the same default IP address, so nothing worked.
Aother time, mixed up a crossover cable with a straight-through one ... gee, that didn't work too well either ...
Hopefully it will be something equally annoying ...