Date: Fri, 08 Jul 2022 12:10:06 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 265089] Connection errors with IPv6 source address validation Message-ID: <bug-265089-227@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D265089 Bug ID: 265089 Summary: Connection errors with IPv6 source address validation Product: Base System Version: CURRENT Hardware: amd64 OS: Any Status: New Severity: Affects Only Me Priority: --- Component: kern Assignee: bugs@FreeBSD.org Reporter: frank@pinky.sax.de With a current kernel I get connection errors (UDP and TCP) on some destina= tion address using IPv6. After a longer bisect session I determined commit=20 https://cgit.freebsd.org/src/commit/sys/netinet6?id=3D1817be481b8703ae86730= b151a6f49cc3022930f as possible reason. On my server the address 2a01:170:1023::1:1 is assigned to a bridge and a bind(named) listens on that address. With IPv6 source address validation switched on, the is no local UDP connection possible and the TCP connection needs several seconds for connection setup due to repeated packets. # sysctl net.inet6.ip6.source_address_validation=3D1 net.inet6.ip6.source_address_validation: 1 -> 1 # dig +tcp www.freebsd.org @2a01:170:1023::1:1 ... # tcpdump -nv -l -s0 -ttt -i lo0 port 53 and host 2a01:170:1023::1:1 tcpdump: listening on lo0, link-type NULL (BSD loopback), capture size 2621= 44 bytes 00:00:00.000000 IP6 (flowlabel 0x0954e, hlim 64, next-header TCP (6) paylo= ad length: 40) 2a01:170:1023::1:1.45851 > 2a01:170:1023::1:1.53: Flags [S], ck= sum 0x775a (incorrect -> 0x1ea5), seq 361203126, win 65535, options [mss 1220,nop,wscale 6,sackOK,TS val 1282807836 ecr 0], length 0 00:00:01.007286 IP6 (flowlabel 0x0954e, hlim 64, next-header TCP (6) paylo= ad length: 40) 2a01:170:1023::1:1.45851 > 2a01:170:1023::1:1.53: Flags [S], ck= sum 0x775a (incorrect -> 0x1ab5), seq 361203126, win 65535, options [mss 1220,nop,wscale 6,sackOK,TS val 1282808844 ecr 0], length 0 00:00:02.198040 IP6 (flowlabel 0x0954e, hlim 64, next-header TCP (6) paylo= ad length: 40) 2a01:170:1023::1:1.45851 > 2a01:170:1023::1:1.53: Flags [S], ck= sum 0x775a (incorrect -> 0x121f), seq 361203126, win 65535, options [mss 1220,nop,wscale 6,sackOK,TS val 1282811042 ecr 0], length 0 00:00:00.000036 IP6 (flowlabel 0xf1abb, hlim 64, next-header TCP (6) paylo= ad length: 40) 2a01:170:1023::1:1.53 > 2a01:170:1023::1:1.45851: Flags [S.], c= ksum 0x775a (incorrect -> 0x07de), seq 3974044347, ack 361203127, win 65535, opt= ions [mss 1220,nop,wscale 6,sackOK,TS val 339537496 ecr 1282811042], length 0 00:00:00.000023 IP6 (flowlabel 0x0954e, hlim 64, next-header TCP (6) paylo= ad length: 32) 2a01:170:1023::1:1.45851 > 2a01:170:1023::1:1.53: Flags [.], ck= sum 0x7752 (incorrect -> 0x31b3), ack 1, win 1030, options [nop,nop,TS val 1282811042 ecr 339537496], length 0 00:00:00.000212 IP6 (flowlabel 0x0954e, hlim 64, next-header TCP (6) paylo= ad length: 90) 2a01:170:1023::1:1.45851 > 2a01:170:1023::1:1.53: Flags [P.], c= ksum 0x778c (incorrect -> 0x83c0), seq 1:59, ack 1, win 1030, options [nop,nop,TS val 1282811042 ecr 339537496], length 58 19397+ [1au] A? www.freebsd.org. (= 56) 00:00:00.040982 IP6 (flowlabel 0xf1abb, hlim 64, next-header TCP (6) paylo= ad length: 32) 2a01:170:1023::1:1.53 > 2a01:170:1023::1:1.45851: Flags [.], ck= sum 0x7752 (incorrect -> 0x3150), ack 59, win 1030, options [nop,nop,TS val 339537537 ecr 1282811042], length 0 00:00:00.011714 IP6 (flowlabel 0xf1abb, hlim 64, next-header TCP (6) paylo= ad length: 156) 2a01:170:1023::1:1.53 > 2a01:170:1023::1:1.45851: Flags [P.], cksum 0x77ce (incorrect -> 0xd425), seq 1:125, ack 59, win 1030, options [nop,nop,TS val 339537546 ecr 1282811042], length 124 19397$ 2/0/1 www.freebsd.org. CNAME wfe2.nyi.freebsd.org., wfe2.nyi.freebsd.org. A 96.47.72.95 (122) 00:00:00.180334 IP6 (flowlabel 0x0954e, hlim 64, next-header TCP (6) paylo= ad length: 90) 2a01:170:1023::1:1.45851 > 2a01:170:1023::1:1.53: Flags [P.], c= ksum 0x778c (incorrect -> 0x82d7), seq 1:59, ack 1, win 1030, options [nop,nop,TS val 1282811275 ecr 339537496], length 58 19397+ [1au] A? www.freebsd.org. (= 56) 00:00:00.048581 IP6 (flowlabel 0xf1abb, hlim 64, next-header TCP (6) paylo= ad length: 168) 2a01:170:1023::1:1.53 > 2a01:170:1023::1:1.45851: Flags [P.], cksum 0x77da (incorrect -> 0x6586), seq 1:125, ack 59, win 1030, options [nop,nop,TS val 339537778 ecr 1282811275,nop,nop,sack 1 {1:59}], length 124 19397$ 2/0/1 www.freebsd.org. CNAME wfe2.nyi.freebsd.org., wfe2.nyi.freebsd.org. A 96.47.72.95 (122) 00:00:00.001475 IP6 (flowlabel 0x0954e, hlim 64, next-header TCP (6) paylo= ad length: 32) 2a01:170:1023::1:1.45851 > 2a01:170:1023::1:1.53: Flags [F.], c= ksum 0x7752 (incorrect -> 0x2ec8), seq 59, ack 125, win 1030, options [nop,nop,TS val 1282811324 ecr 339537778], length 0 00:00:00.000026 IP6 (flowlabel 0xf1abb, hlim 64, next-header TCP (6) paylo= ad length: 32) 2a01:170:1023::1:1.53 > 2a01:170:1023::1:1.45851: Flags [.], ck= sum 0x7752 (incorrect -> 0x2ec8), ack 60, win 1030, options [nop,nop,TS val 339537778 ecr 1282811324], length 0 00:00:00.000064 IP6 (flowlabel 0xf1abb, hlim 64, next-header TCP (6) paylo= ad length: 32) 2a01:170:1023::1:1.53 > 2a01:170:1023::1:1.45851: Flags [F.], c= ksum 0x7752 (incorrect -> 0x2ec7), seq 125, ack 60, win 1030, options [nop,nop,TS val 339537778 ecr 1282811324], length 0 00:00:00.000018 IP6 (flowlabel 0x0954e, hlim 64, next-header TCP (6) paylo= ad length: 32) 2a01:170:1023::1:1.45851 > 2a01:170:1023::1:1.53: Flags [.], ck= sum 0x7752 (incorrect -> 0x2ec8), ack 126, win 1029, options [nop,nop,TS val 1282811324 ecr 339537778], length 0 # route -vn6 get 2a01:170:1023::1:1 RTA_DST: inet6 2a01:170:1023::1:1; RTA_IFP: link ; RTM_GET: Report Metrics:= len 240, pid: 0, seq 1, errno 0, flags:<UP,GATEWAY,HOST,STATIC> locks: inits: sockaddrs: <DST,IFP> 2a01:170:1023::1:1 link#0 route to: 2a01:170:1023::1:1 destination: 2a01:170:1023::1:1 fib: 0 interface: lo0 flags: <UP,HOST,DONE,STATIC,PINNED> recvpipe sendpipe ssthresh rtt,msec mtu weight expire 0 0 0 0 16384 1 0 locks: inits: sockaddrs: <DST,GATEWAY,IFP,IFA> 2a01:170:1023::1:1 link#4 lo0 ::1 # ifconfig bridge0 bridge0: flags=3D8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu = 1500 ... inet6 2a01:170:1023::1:1 prefixlen 64 # ifconfig lo0 lo0: flags=3D8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384 options=3D680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6> inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 inet 127.0.0.1 netmask 0xff000000 groups: lo nd6 options=3D21<PERFORMNUD,AUTO_LINKLOCAL> Without IPv6 sources address validation everything works as expected: # sysctl net.inet6.ip6.source_address_validation=3D0 net.inet6.ip6.source_address_validation: 1 -> 0 # dig +tcp www.freebsd.org @2a01:170:1023::1:1 ... # tcpdump -nv -l -s0 -ttt -i lo0 port 53 and host 2a01:170:1023::1:1 tcpdump: listening on lo0, link-type NULL (BSD loopback), capture size 2621= 44 bytes 00:00:00.000000 IP6 (flowlabel 0xec843, hlim 64, next-header TCP (6) paylo= ad length: 40) 2a01:170:1023::1:1.22949 > 2a01:170:1023::1:1.53: Flags [S], ck= sum 0x775a (incorrect -> 0x1b12), seq 180291145, win 65535, options [mss 1220,nop,wscale 6,sackOK,TS val 414004004 ecr 0], length 0 00:00:00.000040 IP6 (flowlabel 0xa7579, hlim 64, next-header TCP (6) paylo= ad length: 40) 2a01:170:1023::1:1.53 > 2a01:170:1023::1:1.22949: Flags [S.], c= ksum 0x775a (incorrect -> 0x7d2e), seq 774534521, ack 180291146, win 65535, opti= ons [mss 1220,nop,wscale 6,sackOK,TS val 4249746656 ecr 414004004], length 0 00:00:00.000021 IP6 (flowlabel 0xec843, hlim 64, next-header TCP (6) paylo= ad length: 32) 2a01:170:1023::1:1.22949 > 2a01:170:1023::1:1.53: Flags [.], ck= sum 0x7752 (incorrect -> 0xa703), ack 1, win 1030, options [nop,nop,TS val 414004004 ecr 4249746656], length 0 00:00:00.000116 IP6 (flowlabel 0xec843, hlim 64, next-header TCP (6) paylo= ad length: 90) 2a01:170:1023::1:1.22949 > 2a01:170:1023::1:1.53: Flags [P.], c= ksum 0x778c (incorrect -> 0x2098), seq 1:59, ack 1, win 1030, options [nop,nop,TS val 414004004 ecr 4249746656], length 58 40814+ [1au] A? www.freebsd.org. (= 56) 00:00:00.036556 IP6 (flowlabel 0xa7579, hlim 64, next-header TCP (6) paylo= ad length: 32) 2a01:170:1023::1:1.53 > 2a01:170:1023::1:1.22949: Flags [.], ck= sum 0x7752 (incorrect -> 0xa69f), ack 59, win 1030, options [nop,nop,TS val 4249746698 ecr 414004004], length 0 00:00:00.007160 IP6 (flowlabel 0xa7579, hlim 64, next-header TCP (6) paylo= ad length: 156) 2a01:170:1023::1:1.53 > 2a01:170:1023::1:1.22949: Flags [P.], cksum 0x77ce (incorrect -> 0x3ec0), seq 1:125, ack 59, win 1030, options [nop,nop,TS val 4249746704 ecr 414004004], length 124 40814$ 2/0/1 www.freebsd.org. CNAME wfe2.nyi.freebsd.org., wfe2.nyi.freebsd.org. A 96.47.72.95 (122) 00:00:00.001365 IP6 (flowlabel 0xec843, hlim 64, next-header TCP (6) paylo= ad length: 32) 2a01:170:1023::1:1.22949 > 2a01:170:1023::1:1.53: Flags [F.], c= ksum 0x7752 (incorrect -> 0xa5ec), seq 59, ack 125, win 1030, options [nop,nop,TS val 414004052 ecr 4249746704], length 0 00:00:00.000024 IP6 (flowlabel 0xa7579, hlim 64, next-header TCP (6) paylo= ad length: 32) 2a01:170:1023::1:1.53 > 2a01:170:1023::1:1.22949: Flags [.], ck= sum 0x7752 (incorrect -> 0xa5ec), ack 60, win 1030, options [nop,nop,TS val 4249746704 ecr 414004052], length 0 00:00:00.000060 IP6 (flowlabel 0xa7579, hlim 64, next-header TCP (6) paylo= ad length: 32) 2a01:170:1023::1:1.53 > 2a01:170:1023::1:1.22949: Flags [F.], c= ksum 0x7752 (incorrect -> 0xa5eb), seq 125, ack 60, win 1030, options [nop,nop,TS val 4249746704 ecr 414004052], length 0 00:00:00.000017 IP6 (flowlabel 0xec843, hlim 64, next-header TCP (6) paylo= ad length: 32) 2a01:170:1023::1:1.22949 > 2a01:170:1023::1:1.53: Flags [.], ck= sum 0x7752 (incorrect -> 0xa5ec), ack 126, win 1029, options [nop,nop,TS val 414004052 ecr 4249746704], length 0 --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-265089-227>