When connecting to remote hosts via tcp6, all is good: === 11:46:01.279473 [server].ssh > [client].59270: P [tcp sum ok] 1:52(51) ack 1 win 58548 <nop,nop,timestamp 127298059 86994545> [flowlabel 0x2fb65] (len 83, hlim 64) 11:46:01.280145 [client].59270 > [server].ssh: P [tcp sum ok] 1:52(51) ack 52 win 32844 <nop,nop,timestamp 86994564 127298059> [flowlabel 0x6f2c8] (len 83, hlim 64) === When connecting to the same host from the same client just via tcp4, all is not quite so good: === 11:46:06.667847 IP (tos 0x0, ttl 64, id 62863, offset 0, flags [DF], length: 1148) [server].ssh > [client].59540: P [tcp sum ok] 3924:5020(1096) ack 4132 win 57920 <nop,nop,timestamp 127303449 87000040> 11:46:06.668774 IP (tos 0x0, ttl 64, id 1465, offset 0, flags [DF], length: 156) [client].59540 > [server].ssh: P [bad tcp cksum 100e (->fe32)!] 4132:4236(104) ack 5020 win 33304 <nop,nop,timestamp 87000083 127303449> === This is as observed via tcpdump on [client], which is what is producing the bad checksums. Obviously it doesn't cause a problem since no one listens to TCP checksums, but it's interesting. I only noticed it because I was tcpdump'ing for completely unrelated reasons, and it caught my eye. Client machine is amd64, running 64-bit mode 5-current fresh as of yesterday. Network interface is e1000, so fxp. Server is also freebsd but 4.10 I think, and 32-bit i386 architecture (not that it should matter). The client and server are dual-stack (v4 and v6 native addresses and on the same subnet...just local switch fabric). Also, while investigating this, witness caught a lock order reversal: fxp0: promiscuous mode enabled lock order reversal 1st 0xffffffff80653de0 bpf global lock (bpf global lock) _at_ /usr/src/sys/net/bpf .c:381 2nd 0xffffffff80851448 fxp0 (network driver) _at_ /usr/src/sys/dev/fxp/if_fxp.c:23 88 KDB: stack backtrace: witness_checkorder() at witness_checkorder+0x654 _mtx_lock_flags() at _mtx_lock_flags+0x4a fxp_ioctl() at fxp_ioctl+0x6f ifpromisc() at ifpromisc+0x98 bpf_detachd() at bpf_detachd+0xae bpfclose() at bpfclose+0xf8 spec_close() at spec_close+0x1fe vn_close() at vn_close+0x7a vn_closefile() at vn_closefile+0x59 fdrop_locked() at fdrop_locked+0x9f closef() at closef+0x40 close() at close+0xe0 syscall() at syscall+0x4b0 Xfast_syscall() at Xfast_syscall+0xa8 --- syscall (6, FreeBSD ELF64, close), rip = 0x200a65640, rsp = 0x7fffffffe6c8, rbp = 0x7fffffffe710 --- -- David W. Hankins "If you don't do it right the first time, Operations Engineer you'll just have to do it again." Internet Systems Consortium, Inc. -- Jack T. Hankins
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:07 UTC