Docker Swarm over Tailscale: custom network doesn't work but ingress does

Hello eguee,

I was doing something similar to what you were doing yesterday and noticed today it wasn’t working properly and found your post here while trying to find my answer which I have, and I believe that will help you as well.

The solution is to change the MTU under the network:

    driver_opts:
      com.docker.network.driver.mtu: 1280

Docker uses MTU packet size of 1500 and Tailscale uses 1280 so the Docker packets are being quietly dropped.

Packet size limits can also cause connection problems on certain types of networks.

Tailscale uses a MTU of 1280. If there are other interfaces which might send a packets larger than this, those packets might get dropped silently. These can be verified by using tcpdump.

In order to solve this, we can set the MTU at the LAN level to a lower value, or use MSS (Maxiumum Segment Size) clamping…
Troubleshooting guide · Tailscale Docs (unable-to-make-a-tcp-connection-between-two-nodes)