TCP and natd issues

Gary Allan dragonfly at gallan.plus.com
Thu Dec 23 13:29:32 PST 2004


Just completed a buildworld and install of DragonFly head 12/12/04 
12:00pm and it shows exactly the same behavior with natd and TCP 
connections as the current stable.

"tcpdump" is now working correctly and does not cause packet loss or 
lockups.

Attached is a small tcpdump from vr1 (router) and an ethereal capture 
from vr0 (desktop) from an attempt to view Google in a webrowser.

Running "Telnet <mailserver> 25" works without problems. Again only TCP 
traffic with a window size of 65535 seems to have this problem.

[This is the only common thing I can identify from traffic originating 
from PuTTY, Mozilla, IE, Thunderbird and Outlook.]

I'm tempted to compile snapshots from the past until I can find the 
commits that break things. Unfortunately my machine takes a while to do 
full buildworlds, any educated guesses as to when this may have been 
introduced are appreciated.

Regards

G.A.

hsu at XXXXXXXXXX wrote:
> Hi, can you check if a kernel between Dec 16 and Dec 20 works?  I suspect
> the breakage was before that, but want to rule out the huge commit I
> made on Dec 21.
>
> The other big networking changes went in on Dec 14, so a Dec 13 kernel
> would also be worth trying.
>
> Thanks.
>
> 							Jeffrey
>
Problems.

1. Using IPFW2 and natd does not process certain TCP connections correctly.

2. Running "tcpdump -i vr1" causes all traffic to be dropped.

When IPFW2 is configured for NAPT with natd I'm seeing certain TCP 
traffic blocked. I've used ethereal to capture the traffic from my 
desktop and the only pattern I can see is that all outgoing TCP traffic 
with a window size of 65535 never gets a response. (IE, FireFox, 
Outlook, Thunderbird). TCP connections using lower window sizes proceed 
normally ("telnet <mymailserver> 25" for example). UDP and ICMP traffic 
are also unaffected.

                      vr0     vr1
  [desktop]----------[ DragonFly ]----------[   Modem   ]--- NET
192.168.50.100      50.1        20.4      192.168.20.1
Here the ipfw logging shows responses from www.google.com and nat taking 
place. You can see that the packet from google was mapped back to 
192.168.50.100 but it was never actually received by my machine!

ipfw: 100 Divert 8668 TCP 66.102.11.104:80 192.168.20.4:1215 in via vr1
ipfw: 200 Accept TCP 66.102.11.104:80 192.168.50.100:1215 in via vr1
ipfw: 100 Divert 8668 TCP 66.102.11.104:80 192.168.50.100:1215 out via vr0
ipfw: 200 Accept TCP 66.102.11.104:80 192.168.50.100:1215 out via vr0
Also running tcpdump on the machine causes all network traffic passing 
through the box to be dropped until the tcpdump process is killed at the 
console. (as all SSH sessions drop out!)

The setup is identical to a FreeBSD 4.10 box that is working without 
issues. The machine is running DragonFly stable compiled 22-Dec-04.

Diagnostics

I've disabled SACK.
Bridging the interfaces works as expected.
I'm compiling the kernel to remove custom options and try under pf.
I can provide configs and traces to anyone interested, any help in 
resolving this would be appreciated.

Regards

G.A





More information about the Bugs mailing list