From owner-freebsd-net@FreeBSD.ORG Thu Oct 25 15:18:41 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4CB8816A419 for ; Thu, 25 Oct 2007 15:18:41 +0000 (UTC) (envelope-from citrin@citrin.ru) Received: from mail.classis.ru (classis.ru [213.248.60.120]) by mx1.freebsd.org (Postfix) with ESMTP id DEDA813C481 for ; Thu, 25 Oct 2007 15:18:40 +0000 (UTC) (envelope-from citrin@citrin.ru) Received: from [81.19.65.37] (unknown [81.19.65.37]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: citrin@citrin.ru) by mail.classis.ru (Postfix) with ESMTP id 91532B828 for ; Thu, 25 Oct 2007 19:18:35 +0400 (MSD) Message-ID: <4720B3C5.9070806@citrin.ru> Date: Thu, 25 Oct 2007 19:18:29 +0400 From: Anton Yuzhaninov User-Agent: Thunderbird by compcn MIME-Version: 1.0 To: freebsd-net@freebsd.org References: <47206EE2.6030606@citrin.ru> <3171D7CB-2E63-4FAF-92A9-3907D44AB845@fnop.net> In-Reply-To: <3171D7CB-2E63-4FAF-92A9-3907D44AB845@fnop.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: RELENG_7: can't connect to Solaris X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Oct 2007 15:18:41 -0000 On 25.10.2007 15:01, Rui Paulo wrote: > > On 25 Oct 2007, at 11:24, Anton Yuzhaninov wrote: > >> >> I can't connect from FreeBSD 7 box to Solaris 9. While between >> FreeBSD6 and Solaris 9 tcp work fine. >> >> I run on FreeBSD, and it nod't work: >> $ fetch -o /dev/null http://mail6:8274 fetch: transfer timed out >> >> OS versions: >> FreeBSD citrin.rambler.stack.net 7.0-PRERELEASE FreeBSD 7.0-PRERELEASE >> #0: Fri Oct 19 00:31:03 MSD 2007 >> citrin@citrin.rambler.stack.net:/usr/obj/usr/src/sys/GENERIC amd64 >> SunOS mail6 5.9 Generic_117172-07 i86pc i386 i86pc >> >> tcpdump on freebsd side: >> 04:26:28.332895 81.19.65.162.57161 > 81.19.71.6.8274: S [bad tcp cksum >> 3038!] 3123015513:3123015513(0) win 65535 > 8,sackOK,timestamp 498561841 0> (DF) (ttl 64, id 27368, len 60, bad >> cksum 0!) >> 04:26:28.333213 81.19.71.6.8274 > 81.19.65.162.57161: S [tcp sum ok] >> 2890615179:2890615179(0) ack 3123015514 win 33304 > 622594948 498561841,mss 1460,nop,wscale 1,nop,nop,sackOK> (DF) (ttl >> 62, id 16035, len 64) >> 04:26:28.333290 81.19.65.162.57161 > 81.19.71.6.8274: . [bad tcp cksum >> 793f!] ack 1 win 260 (DF) (ttl >> 64, id 27369, len 52, bad cksum 0!) >> 04:26:28.334892 81.19.65.162.57161 > 81.19.71.6.8274: P [bad tcp cksum >> 572f!] 1:88(87) ack 1 win 260 >> (DF) (ttl 64, id 27370, len 139, bad cksum 0!) >> 04:26:28.335148 81.19.71.6.8274 > 81.19.65.162.57161: . [tcp sum ok] >> ack 88 win 33260 (DF) (ttl 62, >> id 16036, len 52) >> >> snoop in Solaris show same: >> 1 0.00000 81.19.65.162 -> 81.19.71.6 TCP D=8274 S=57161 Syn >> Seq=3123015513 Len=0 Win=65535 Options=> 8,sackOK,tstamp 498561841 0> >> 2 0.00001 81.19.71.6 -> 81.19.65.162 TCP D=57161 S=8274 Syn >> Ack=3123015514 Seq=2890615179 Len=0 Win=33304 Options=> 622594948 498561841,mss 1460,nop,wscale 1,nop,nop,sackOK> >> 3 0.00028 81.19.65.162 -> 81.19.71.6 TCP D=8274 S=57161 >> Ack=2890615180 Seq=3123015514 Len=0 Win=260 Options=> 498561841 622594948> >> 4 0.00162 81.19.65.162 -> 81.19.71.6 TCP D=8274 S=57161 Push >> Ack=2890615180 Seq=3123015514 Len=87 Win=260 Options=> 498561843 622594948> >> 5 0.00003 81.19.71.6 -> 81.19.65.162 TCP D=57161 S=8274 >> Ack=3123015601 Seq=2890615180 Len=0 Win=33260 Options=> 622594948 498561843> >> >> >> With net.inet.tcp.rfc1323=0 tcp work, but it should work with >> rfc1323=1 (and in FreeBSD 6 tcp to SunOS work with rfc1323=1). >> >> net.inet.tcp.log_debug=1 and nothing about this connection logged. > > As silby@ already pointed out to me, try changing TCP_MAX_WINSHIFT in > src/sys/netinet/tcp.h to 4. > With TCP_MAX_WINSHIFT 4 it works. But from other host with RELENG_7 tcp to Solaris work fine with unmodified kernel: IP (tos 0x0, ttl 64, id 6224, offset 0, flags [DF], proto TCP (6), length 60) 81.19.66.129.58995 > 81.19.71.6.8274: S, cksum 0x8ec9 (correct), 3166145604:3166145604(0) win 65535 IP (tos 0x0, ttl 62, id 16631, offset 0, flags [DF], proto TCP (6), length 64) 81.19.71.6.8274 > 81.19.66.129.58995: S, cksum 0xa422 (correct), 3226718107:3226718107(0) ack 3166145605 win 33304 IP (tos 0x0, ttl 64, id 6225, offset 0, flags [DF], proto TCP (6), length 52) 81.19.66.129.58995 > 81.19.71.6.8274: ., cksum 0x6602 (correct), ack 1 win 260 IP (tos 0x0, ttl 64, id 6226, offset 0, flags [DF], proto TCP (6), length 139) 81.19.66.129.58995 > 81.19.71.6.8274: P, cksum 0x5639 (correct), 1:88(87) ack 1 win 260 IP (tos 0x0, ttl 62, id 16632, offset 0, flags [DF], proto TCP (6), length 52) 81.19.71.6.8274 > 81.19.66.129.58995: ., cksum 0xe4c2 (correct), ack 88 win 33260 IP (tos 0x0, ttl 62, id 16633, offset 0, flags [DF], proto TCP (6), length 623) 81.19.71.6.8274 > 81.19.66.129.58995: P, cksum 0x13b8 (correct), 1:572(571) ack 88 win 33260 IP (tos 0x0, ttl 62, id 16634, offset 0, flags [DF], proto TCP (6), length 52) 81.19.71.6.8274 > 81.19.66.129.58995: F, cksum 0xe286 (correct), 572:572(0) ack 88 win 33260 IP (tos 0x0, ttl 64, id 6227, offset 0, flags [DF], proto TCP (6), length 52) 81.19.66.129.58995 > 81.19.71.6.8274: ., cksum 0x6371 (correct), ack 573 win 257 IP (tos 0x0, ttl 64, id 6228, offset 0, flags [DF], proto TCP (6), length 52) 81.19.66.129.58995 > 81.19.71.6.8274: F, cksum 0x636b (correct), 88:88(0) ack 573 win 260 IP (tos 0x0, ttl 62, id 16635, offset 0, flags [DF], proto TCP (6), length 52) 81.19.71.6.8274 > 81.19.66.129.58995: ., cksum 0xe282 (correct), ack 89 win 33260 First 5 packets in session almost same, but connction no stalled after 5th packet. -- WBR, Anton Yuzhaninov