scp from linux to linux via an ipsec tunnel between openBSD gateway and lancom 
1611+ router fails( hangs) if tcp window scaling is enabled.

This is my setup:

Redhat Linux ES3  <---> dc0 openBSD IPSEC dc1 <---- internet -----> lancom 
1611+ <---> Redhat Linux ES4

RHES3 does  
      scp a.a host:/directory
        ask for password, and then hangs, given the file is larger that about 
1300 bytes.

      tcpdump on openBSD dc0 and enc0 shows: 

      RHES3 sends SYN with wscale=0, receives SYN with wscale=3
              sends and receives some small packets during negotiation
            sends a first full size packet, which I see on dc0, but not on enc0
            and hangs, repeating this first packet.

This only happens, when RHES3 is copying data to RHES4.

If RHES3 is copying data from RHES4, it works, but very slow.

The problem can be worked around by setting net.ipv4.tcp_window_scaling=0 on 
RHES3, effectively disabling the window scale feature.

Is this a known problem? Or possibly caused by some sort of misconfiguration?

I will happily provide more details, tcpdumps etc. if you are interested.

I found that Stephen Hemminger claims on Linux World Expo Feb. 2005 that 
openBSD might fail to track state when  window scaling is in effect. See 
http://developer.osdl.org/shemminger/LWE2005_TCP.pdf . 

Reply via email to