SYN, ACK Failing for one client
I have a mail server, 192.168.1.1 behind a NAT with the external address of 100.60.60.10. I send mail to a number of clients, and with most of them it works fine and a packet capture on the firewall looks like this:
1 0.000000 192.168.1.1 140.160.150.90 TCP 76 49970→25 [SYN] Seq=0 Win=5840 Len=0 MSS=1460 SACK_PERM=1 TSval=635951574 TSecr=0 WS=128
2 0.000183 100.60.60.10 140.160.150.90 TCP 76 49970→25 [SYN] Seq=0 Win=5840 Len=0 MSS=1460 SACK_PERM=1 TSval=635951574 TSecr=0 WS=128
3 0.030467 140.160.150.90 100.60.60.10 TCP 76 25→49970 [SYN, ACK] Seq=0 Ack=1 Win=4380 Len=0 MSS=1460 TSval=2682612338 TSecr=635951574 SACK_PERM=1
4 0.030548 140.160.150.90 192.168.1.1 TCP 76 25→49970 [SYN, ACK] Seq=0 Ack=1 Win=4380 Len=0 MSS=1460 TSval=2682612338 TSecr=635951574 SACK_PERM=1
I have one client, however, where the handshake fails. I never get the fourth step where the SYN, ACK gets to my mail server's internal IP, instead I get a retransmission:
1 0.000000 192.168.1.1 200.150.150.100 TCP 76 47014→25 [SYN] Seq=0 Win=5840 Len=0 MSS=1460 SACK_PERM=1 TSval=635968811 TSecr=0 WS=128
2 0.000194 100.60.60.10 200.150.150.100 TCP 76 47014→25 [SYN] Seq=0 Win=5840 Len=0 MSS=1460 SACK_PERM=1 TSval=635968811 TSecr=0 WS=128
3 0.053761 200.150.150.100 100.60.60.10 TCP 76 25→47014 [SYN, ACK] Seq=0 Ack=1 Win=16384 Len=0 MSS=1460 WS=64 SACK_PERM=1 TSval=774073979 TSecr=635968811
4 3.004628 192.168.1.1 200.150.150.100 TCP 76 [TCP Retransmission] 47014→25 [SYN] Seq=0 Win=5840 Len=0 MSS=1460 SACK_PERM=1 TSval=635971816 TSecr=0 WS=128
The only difference I can see between the two is that the Win value is much higher in the one which fails, and there is a WS=64 entry which is not present in the successful handshake. Does this indicate that his mail server is sending something which my firewall can't deal with? Any help is much appreciated!