[j-nsp] Netscreen NAT and TCP window scaling issues

chk mailinglists.chk at gmail.com
Thu Mar 11 19:29:07 EST 2010


I have a client sitting behind a netscreen firewall that is seeing a 
delay when trying to connect via tcp to a server on the internet while 
being natted to the netscreens external IP and TCP window scaling is 
enabled. If I create a one-to-one nat mapping specifically for the 
client the connection is instant.

Here is the tcpdump on the server when the client tries to connect while 
being natted to the netscreens external IP with TCP window scaling enabled

16:23:08.847308 IP x.x.x.x.42852 > y.y.y.177.22: S 
3899166006:3899166006(0) win 65535 <mss 1380,nop,wscale 
3,nop,nop,timestamp 153981609 0,sackOK,eol>
16:23:09.755649 IP x.x.x.x.42852 > y.y.y.177.22: S 
3899166006:3899166006(0) win 65535 <mss 1380,nop,wscale 
3,nop,nop,timestamp 153981618 0,sackOK,eol>
16:23:10.756198 IP x.x.x.x.42852 > y.y.y.177.22: S 
3899166006:3899166006(0) win 65535 <mss 1380,nop,wscale 
3,nop,nop,timestamp 153981628 0,sackOK,eol>
16:23:11.756782 IP x.x.x.x.42852 > y.y.y.177.22: S 
3899166006:3899166006(0) win 65535 <mss 1380,nop,wscale 
3,nop,nop,timestamp 153981638 0,sackOK,eol>
16:23:12.757413 IP x.x.x.x.42852 > y.y.y.177.22: S 
3899166006:3899166006(0) win 65535 <mss 1380,nop,wscale 
3,nop,nop,timestamp 153981648 0,sackOK,eol>
16:23:13.758127 IP x.x.x.x.42852 > y.y.y.177.22: S 
3899166006:3899166006(0) win 65535 <mss 1380,nop,wscale 
3,nop,nop,timestamp 153981658 0,sackOK,eol>
16:23:15.759429 IP x.x.x.x.42852 > y.y.y.177.22: S 
3899166006:3899166006(0) win 65535 <mss 1380,nop,wscale 
3,nop,nop,timestamp 153981678 0,sackOK,eol>
16:23:19.762105 IP x.x.x.x.42852 > y.y.y.177.22: S 
3899166006:3899166006(0) win 65535 <mss 1380,sackOK,eol>
16:23:19.762130 IP y.y.y.177.22 > x.x.x.x.42852: S 
4286889391:4286889391(0) ack 3899166007 win 5840 <mss 1460>


Here is the tcpdump on the server when the client tries to connect while 
a one-to-one nat is in place with TCP window scaling enabled

17:51:42.373439 IP x.x.x.x.49165 > y.y.y.177.22: S 
1731332088:1731332088(0) win 65535 <mss 1380,nop,wscale 
3,nop,nop,timestamp 409029697 0,sackOK,eol>
17:51:42.438272 IP y.y.y.177.22 > x.x.x.49165: S 
1297584268:1297584268(0) ack 1731332089 win 5792 <mss 
1460,nop,nop,timestamp 1704280650 409029697,nop,wscale 9>

When the client is being natted to the netscreens public IP we see the 
SYN makes it to the server, but the server ignores the SYN if the TCP 
window scale option is set. As soon as the client leaves the window 
scale option unset the server responds with a SYN-ACK. So it appears 
there is an issue with window scaling and we verified that disabling 
window scaling on the client resulted in instant connection. With that 
being said, we also saw that connections were not delayed if windows 
scaling was enabled and the client had a one-to-one mapping on the 
netscreen. Any ideas on why there is an issue with window scaling and 
one-to-many nat mappings?



More information about the juniper-nsp mailing list