Re: connection hangs over IP masq (not the usual MTU problem)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





> There's one site I can't reach through my
> Linux IP masqerading gateway.  Searching
> and reading about the MTU issues has not helped
> me resolve this problem, nor can I find any other
> explanation for the hangs I'm observing.  I
> would be extremely grateful for any assistance.

I dont understand whats going on, but after connection establishment,
and a successful exchange of a 100 byte request, it doesnt look like
any of the acks sent by the client are reaching the oracle server.

The client is seeing the data from oracle coming in, since tcpdump
is running at your end. There is a strange loss of a packet between
tcpdump seeing it and the client TCP, however (??). TCP sends the first
packet to the application up, hence you see some stuff, but it wont
send up out of order received data, so you dont see anything more.

Not very helpful, I'm afraid..

reformatted trace:

1] 12:48:25.483873 pimlott.ne.mediaone.net.62080 >
bigip-www.us.oracle.com.www:
        S 2876545954:2876545954(0) win 5840
        <mss 1460,sackOK,timestamp 98472547 0,nop,wscale 0> (DF)

      client advertises an mss of 1460

2] 12:48:25.573873 bigip-www.us.oracle.com.www >
pimlott.ne.mediaone.net.62080:
        S 2987440750:2987440750(0) ack 2876545955 win 8192 <mss 1380>

      oracle end advertising an mss of 1360

3] 12:48:25.583873 pimlott.ne.mediaone.net.62080 >
bigip-www.us.oracle.com.www:
        . ack 1 win 5840 (DF)

      3 way handshake done, connection established successfully

4] 12:48:28.583873 pimlott.ne.mediaone.net.62080 >
bigip-www.us.oracle.com.www:
        P 1:102(101) ack 1 win 5840 (DF)

      client sends 101 bytes  to oracle

5] 12:48:28.673873 bigip-www.us.oracle.com.www >
pimlott.ne.mediaone.net.62080:
        . ack 102 win 64759 (DF)

      oracle acks 102, which means it got 1 - 101 bytes contained in
      packet 4] from the client successfully.

6] 12:48:28.673873 bigip-www.us.oracle.com.www >
pimlott.ne.mediaone.net.62080:
        P 1:1381(1380) ack 102 win 8192

      oracle sends bytes 1 - 1380 in a full sized packet to client

7] 12:48:28.673873 bigip-www.us.oracle.com.www >
pimlott.ne.mediaone.net.62080:
        P 1381:1492(111) ack 102 win 8192

      oracle sends 111 more bytes to client

8] 12:48:28.673873 bigip-www.us.oracle.com.www >
pimlott.ne.mediaone.net.62080:
        P 1492:2872(1380) ack 102 win 64860 (DF)

      oracle sends 1380 additional bytes (1492 - 2871)

9] 12:48:28.693873 pimlott.ne.mediaone.net.62080 >
bigip-www.us.oracle.com.www:
        . ack 1381 win 8280 (DF)

      client acks 1381 i.e it received packet 6], at least.

10] 12:48:28.703873 pimlott.ne.mediaone.net.62080 >
bigip-www.us.oracle.com.www:
        . ack 1381 win 8280 (DF)

      client acks 1381 again, which implies it did not get packet 7],
      probably, and got packet 8] directly, which is out of order data,
      and triggers another ack.  This is strange, because if tcpdump is
      running on your client, then the packet was at least seen by the
      NIC, but not by TCP.  It might have been dropped for another
      reason at a higher point in the stack.

11] 12:48:28.793873 bigip-www.us.oracle.com.www >
pimlott.ne.mediaone.net.62080:
        . 2872:4252(1380) ack 102 win 64860 (DF)

      oracle sends more data: bytes 2872 - 4251.

12] 12:48:28.803873 pimlott.ne.mediaone.net.62080 >
bigip-www.us.oracle.com.www:
        . ack 1381 win 8280 (DF)

      client sends an ack again of 1381, since it has a hole in its
      receive sequence

13] 12:48:32.843873 bigip-www.us.oracle.com.www >
pimlott.ne.mediaone.net.62080:
        P 1:1381(1380) ack 102 win 8192

      oracle for some reason resends the first packet again
      (1 - 1380), which       was actually acked by the client.
      oracle didnt get the ack, most likely. Retransmission timer went off.

14] 12:48:32.843873 bigip-www.us.oracle.com.www >
pimlott.ne.mediaone.net.62080:
        P 1381:1492(111) ack 102 win 8192

      oracle retransmits 1381 - 1492

15] 12:48:32.863873 pimlott.ne.mediaone.net.62080 >
bigip-www.us.oracle.com.www:
        . ack 1381 win 8280 (DF)

      client acks 1381 again, which means it hasnt gotten
      the resend either.

16] 12:48:41.183873 bigip-www.us.oracle.com.www >
pimlott.ne.mediaone.net.62080:
        P 1:1381(1380) ack 102 win 8192

      oracle resends the first data packet, bytes 1 - 1380, again.
      oracle hasnt gotten any of the acks the client sent..

17] 12:48:41.183873 bigip-www.us.oracle.com.www >
pimlott.ne.mediaone.net.62080:
        P 1381:1492(111) ack 102 win 8192

      oracle resends the next 111 bytes, again.

18] 12:48:41.203873 pimlott.ne.mediaone.net.62080 >
bigip-www.us.oracle.com.www:
   . ack 1381 win 8280 (DF)

      repeats the ack..

thanks,
Nivedita

-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html



-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux