Open petr-ujezdsky opened 3 months ago
Just found out official download link for 4.22.0
for Apple Silicon thanks to this gist and reproduced this issue.
So 4.22.0
works with both Intel and Apple Silicon. 4.32.0
and now 4.33.0
are still broken on both Intel and Apple Silicon.
I will try to bisect the versions to find the first bad one.
Found it. The last working version is 4.22.1
(download for Apple Silicon). Versions 4.23.0
(download for Apple Silicon) and newer are broken.
Description
I am using
wg-easy
successfully inside Docker for Mac version4.22.0
. However newer versions of Docker for Mac break the TCP layer makingwg-easy
not working at all. I have tried the newer Docker for Mac version on both Intel and M3 MacBook with the same result.Docker for Mac 4.22.0 (working)
client - another macbook
server -
wg-easy
containerTCP is successfully established in the beginning -
S -> S. -> .
(3-way handshake, see documentation). Then follows the web page data.Docker for Mac 4.32.0 (broken)
client - another macbook
server -
wg-easy
containerThere seems to be problem with the
S.
packet delivery tocurl
from website.curl
then can not complete the 3-way handshake and times out after a while. I have read that thecksum incorrect
can be false positive due to computation offloading to NIC, but it does seem like it is the cause.What I have tried
Inspect NAT and routing
Before
tcpdump
I was looking atiptables -vxn -L
andiptables -vxn -L -t nat
for some routing issues. But thetcpdump
shows that the packets are routed properly all the way to thecurl
.Inspect checksum computation
I have compared output of
ethtool -k wg0
andethtool -k eth0
from inside thewg-easy
container for both Docker for Mac versions and they are the same.I have tried to disable checksum on macbook client
Direct communication using
nc
I can successfully comunicate between client and
wg-easy
container usingnc
clientwg-easy
containerBoth TCP and UDP (
-u
) is working.Docker setting
Use kernel networking for UDP
I have tried the switch
Resources > Network > Use kernel networking for UDP
in both ON and OFF positions (with restart).Versions
Client
MacBook M1 Sonoma 14.5 WireGuard app from App Store, version
1.0.16 (27)
Server
MacBook Intel Sonoma 14.4.1 WireGuard app from App Store, version
1.0.16 (27)
Docker for Mac 4.22.0 / 4.32.0MacBook M3 Sonoma 14.5 WireGuard app from App Store, version
1.0.16 (27)
Docker for Mac 4.32.0Reproduce
wg-easy
container (see below)wg-easy
web administration athttp://0.0.0.0:51821
wg-easy
start commandSee documentation
wg0.conf
(generated after startup and when adding new clients, at./data/wg0.conf
)Client configuration (QR code / downloaded via web administration)
Expected behavior
I expect the network to work (eg. internet web pages are loaded), being routed properly through the VPN tunnel.
docker version
docker info
Diagnostics ID
257AADD6-96D6-41D9-87E7-605D420CD0E8/20240718105011
Additional Info
Information for older and working Docker for Mac installation (on Intel MacBook, I have not found version 4.22.0 for Apple Silicon).
Diagnostics ID
docker version
docker info