Hi.

On Mon, May 04, 2020 at 01:49:34PM +0200, Mark Jonas wrote:
> Hi Reco,
> 
> > > > Ok. Can you run tcpdump while you're running curl?
> > > > Specifically,
> > > >
> > > > tcpdump -s0 -pnni any -w /tmp/curl.pcap tcp port 443
> > >
> > > I tried to dump from within the running container but failed.
> >
> > It's way too complicated. Docker is basically a one big NAT, so please
> > run tcpdump on a host instead.
> 
> I used the identical image to run the container on an amhf host
> (Raspberry Pi 3). So there is now no QEMU in the way.

Curious. Just tested it with curl at Marvell Armada 385 (runs Debian 10,
armhf), works as supposed to.
I could also test it on Exynos 5422 (also runs Debian 10, armhf), but
it'll be the same.


> > But this hiccup gave me an idea - maybe libssl on armhf is perfectly
> > fine, but it's qemu which fails to emulate certain CPU instruction.
> 
> curl https://www.google.com still fails on the armhf host. So QEMU is
> out of the game.

Ok. Is it possible to run curl via strace from inside the docker?
Something like this would be perfect (-o designates an output file):

strace -o /tmp/curl -e trace=file curl https://www.google.com


Specifically, it should try to open a symlink to
/etc/ssl/certs/GlobalSign_Root_CA_-_R2.pem.
Here it's called /etc/ssl/certs/4a6481c9.0, may be machine-specific.


> Packet capturing now also worked. For capturing QEMU was the problem.
> I also captured aria2c (succeeds with warning) and wget (silently
> succeeds).

For the archives, curl's pcap looks like this:

SYN
SYN,ACK
TLS client hello
TLS server hello, change cipher spec (an upgrade from TLSv1.2 to TLS1.3)
Alert (Level: Fatal, Description: Unknown CA) <- curl sends this
RST
FIN,ACK

wget and aria show what they're supposed to (TLS handshake, Application
Data ping pong).

Reco

Reply via email to