LTE modem: IPv4 ping works, but HTTPS connections are reset

I have a Qualcomm MSM8916-based LTE/4G USB modem connected to a Linux machine. The SIM card is an XL Go Izi SIM card from XL Axiata, Indonesia.

The LTE connection appears to work, but I am having a strange connectivity problem.

What works:

ping google.com works over IPv4:


$ ping -4 google.com

PING google.com (64.233.170.113) 56(84) bytes of data.

64 bytes from sg-in-f113.1e100.net (64.233.170.113): icmp_seq=1 ttl=64 time=249 ms

64 bytes from sg-in-f113.1e100.net (64.233.170.113): icmp_seq=2 ttl=64 time=137 ms

64 bytes from sg-in-f113.1e100.net (64.233.170.113): icmp_seq=3 ttl=64 time=134 ms

...

8 packets transmitted, 8 received, 0% packet loss

rtt min/avg/max/mdev = 134.289/201.634/249.126/45.846 ms

But pinging 8.8.8.8 does not work.

HTTPS connections fail during the TLS handshake:


$ curl -v -4 https://www.google.com

Host www.google.com:443 was resolved.

IPv6: (none)

IPv4: 216.239.38.120

Trying 216.239.38.120:443...

ALPN: curl offers h2,http/1.1

TLSv1.3 (OUT), TLS handshake, Client hello (1):

Recv failure: Connection reset by peer

OpenSSL SSL_connect: Connection reset by peer in connection to www.google.com:443

IPv6 does not appear to be available through the modem:


$ ping -6 google.com

ping: connect: Network is unreachable

and:


$ curl -v -6 https://www.google.com

IPv6: 2001:4860:4802:32::78

Trying [2001:4860:4802:32::78]:443...

Immediate connect fail ... Network is unreachable

Additional tests:


$ traceroute -4 google.com

traceroute to google.com (142.251.10.101), 30 hops max, 60 byte packets

1  192.168.100.1  1.057 ms  2.235 ms  3.346 ms

2  * * *

3  * * *

4  * * *

...

30  * * *


$ ping -4 -M do -s 1472 216.239.38.120

30 packets transmitted, 0 received, 100% packet loss


$ ping -4 -M do -s 1300 216.239.38.120

6 packets transmitted, 0 received, 100% packet loss

What could cause this behavior?

How could this be related to the XL Axiata mobile network/APN, CGNAT, MTU/MSS, packet filtering, transparent proxying, or something specific to the Qualcomm MSM8916 modem?

What additional tests would be useful to determine whether the problem is on my Linux machine, the USB modem, or the mobile carrier network?