This goes part way through (as can be seen with -m) and then fails:

% ftp -6 -M http://cdn.openbsd.org/pub/OpenBSD//snapshots/amd64/base69.tgz
Trying 2a04:4e42:2d::729...
Requesting http://cdn.openbsd.org/pub/OpenBSD//snapshots/amd64/base69.tgz
ftp: Reading from socket: Connection reset by peer

While this works great:
% ftp -4 -M http://cdn.openbsd.org/pub/OpenBSD//snapshots/amd64/base69.tgz
Trying 151.101.66.217...
Requesting http://cdn.openbsd.org/pub/OpenBSD//snapshots/amd64/base69.tgz
305750530 bytes received in 76.80 seconds (3.79 MB/s)

Relatedly, I started out with https which reports a less actionable
error: Reading from socket: Undefined error: 0

The problem is reproducible with the first three CDNs in ftp.html, so
something about IPv6 in ftp(1) may be buggy. I'm connected through
Comcast Business, ipv6 seems otherwise viable (test-ipv6.com and random
browsing while using `family inet6 inet4`)

The tcpdump does look like an abrupt reset:

12:27:52.999920 2a04:4e42:2d::729.www > my-ip6.28710: . 
111080068:111081432(1364) ack 1 win 128 <nop,nop,timestamp 1608882729 
2991658650> [class 0x20] [flowlabel 0x45914]
12:27:53.000245 2a04:4e42:2d::729.www > my-ip6.28710: . 
111081432:111082796(1364) ack 1 win 128 <nop,nop,timestamp 1608882730 
2991658650> [class 0x20] [flowlabel 0x45914]
12:27:53.000253 my-ip6.28710 > 2a04:4e42:2d::729.www: . ack 111082796 win 19373 
<nop,nop,timestamp 2991658650 1608882729> [flowlabel 0x1a207]
12:27:53.000544 2a04:4e42:2d::729.www > my-ip6.28710: . 
111082796:111084160(1364) ack 1 win 128 <nop,nop,timestamp 1608882730 
2991658650> [class 0x20] [flowlabel 0x45914]
12:27:53.001045 2a04:4e42:2d::729.www > my-ip6.28710: . 
111084160:111085524(1364) ack 1 win 128 <nop,nop,timestamp 1608882730 
2991658650> [class 0x20] [flowlabel 0x45914]
12:27:53.001054 my-ip6.28710 > 2a04:4e42:2d::729.www: . ack 111085524 win 19373 
<nop,nop,timestamp 2991658650 1608882730> [flowlabel 0x1a207]
12:27:53.001319 2a04:4e42:2d::729.www > my-ip6.28710: . 
111085524:111086888(1364) ack 1 win 128 <nop,nop,timestamp 1608882733 
2991658650> [class 0x20] [flowlabel 0x45914]
12:27:53.001620 2a04:4e42:2d::729.www > my-ip6.28710: . 
111086888:111088252(1364) ack 1 win 128 <nop,nop,timestamp 1608882733 
2991658650> [class 0x20] [flowlabel 0x45914]
12:27:53.001629 my-ip6.28710 > 2a04:4e42:2d::729.www: . ack 111088252 win 19373 
<nop,nop,timestamp 2991658650 1608882733> [flowlabel 0x1a207]
12:27:53.001945 2a04:4e42:2d::729.www > my-ip6.28710: . 
111088252:111089616(1364) ack 1 win 128 <nop,nop,timestamp 1608882733 
2991658650> [class 0x20] [flowlabel 0x45914]
12:27:53.002322 2a04:4e42:2d::729.www > my-ip6.28710: . 
111089616:111090980(1364) ack 1 win 128 <nop,nop,timestamp 1608882733 
2991658650> [class 0x20] [flowlabel 0x45914]
12:27:53.002334 my-ip6.28710 > 2a04:4e42:2d::729.www: . ack 111090980 win 19373 
<nop,nop,timestamp 2991658650 1608882733> [flowlabel 0x1a207]
12:27:53.002645 2a04:4e42:2d::729.www > my-ip6.28710: . 
111090980:111092344(1364) ack 1 win 128 <nop,nop,timestamp 1608882733 
2991658650> [class 0x20] [flowlabel 0x45914]
12:27:53.002945 2a04:4e42:2d::729.www > my-ip6.28710: . 
111092344:111093708(1364) ack 1 win 128 <nop,nop,timestamp 1608882733 
2991658650> [class 0x20] [flowlabel 0x45914]
12:27:53.002953 my-ip6.28710 > 2a04:4e42:2d::729.www: . ack 111093708 win 19373 
<nop,nop,timestamp 2991658650 1608882733> [flowlabel 0x1a207]
12:27:53.003420 2a04:4e42:2d::729.www > my-ip6.28710: . 
111093708:111095072(1364) ack 1 win 128 <nop,nop,timestamp 1608882733 
2991658650> [class 0x20] [flowlabel 0x45914]
12:27:53.003720 2a04:4e42:2d::729.www > my-ip6.28710: . 
111095072:111096436(1364) ack 1 win 128 <nop,nop,timestamp 1608882733 
2991658650> [class 0x20] [flowlabel 0x45914]
12:27:53.003728 my-ip6.28710 > 2a04:4e42:2d::729.www: . ack 111096436 win 19373 
<nop,nop,timestamp 2991658650 1608882733> [flowlabel 0x1a207]
12:27:53.004020 2a04:4e42:2d::729.www > my-ip6.28710: . 
111096436:111097800(1364) ack 1 win 128 <nop,nop,timestamp 1608882734 
2991658650> [class 0x20] [flowlabel 0x45914]
12:27:53.004345 2a04:4e42:2d::729.www > my-ip6.28710: . 
111097800:111099164(1364) ack 1 win 128 <nop,nop,timestamp 1608882734 
2991658650> [class 0x20] [flowlabel 0x45914]
12:27:53.004361 my-ip6.28710 > 2a04:4e42:2d::729.www: . ack 111099164 win 19373 
<nop,nop,timestamp 2991658650 1608882734> [flowlabel 0x1a207]
12:27:53.004602 2a04:4e42:2d::729.www > my-ip6.28710: R 111099164:111099164(0) 
ack 1 win 0
12:27:53.004794 2a04:4e42:2d::729.www > my-ip6.28710: . 
111099164:111100528(1364) ack 1 win 128 <nop,nop,timestamp 1608882734 
2991658650> [class 0x20] [flowlabel 0x45914]
12:27:53.004813 my-ip6.28710 > 2a04:4e42:2d::729.www: R 
1537127405:1537127405(0) win 0
12:27:53.005049 2a04:4e42:2d::729.www > my-ip6.28710: . 
111100528:111101892(1364) ack 1 win 128 <nop,nop,timestamp 1608882734 
2991658650> [class 0x20] [flowlabel 0x45914]
12:27:53.005060 my-ip6.28710 > 2a04:4e42:2d::729.www: R 
1537127405:1537127405(0) win 0
12:27:53.005495 2a04:4e42:2d::729.www > my-ip6.28710: . 
111101892:111103256(1364) ack 1 win 128 <nop,nop,timestamp 1608882734 
2991658650> [class 0x20] [flowlabel 0x45914]
12:27:53.005506 my-ip6.28710 > 2a04:4e42:2d::729.www: R 
1537127405:1537127405(0) win 0
12:27:53.005751 2a04:4e42:2d::729.www > my-ip6.28710: . 
111103256:111104620(1364) ack 1 win 128 <nop,nop,timestamp 1608882734 
2991658650> [class 0x20] [flowlabel 0x45914]
12:27:53.005757 my-ip6.28710 > 2a04:4e42:2d::729.www: R 
1537127405:1537127405(0) win 0
12:27:53.006196 2a04:4e42:2d::729.www > my-ip6.28710: . 
111104620:111105984(1364) ack 1 win 128 <nop,nop,timestamp 1608882735 
2991658650> [class 0x20] [flowlabel 0x45914]
12:27:53.006203 my-ip6.28710 > 2a04:4e42:2d::729.www: R 
1537127405:1537127405(0) win 0
12:27:53.006459 2a04:4e42:2d::729.www > my-ip6.28710: . 
111105984:111107348(1364) ack 1 win 128 <nop,nop,timestamp 1608882735 
2991658650> [class 0x20] [flowlabel 0x45914]
12:27:53.006465 my-ip6.28710 > 2a04:4e42:2d::729.www: R 
1537127405:1537127405(0) win 0

Thanks
Greg

Reply via email to