0

I have a couple of machines running Ubuntu Server 22.04.1 LTS and Docker version 20.10.17.

I've set up a swarm containing both the machines. These machines have ports tcp/2377, udp/4789, udp/7946, and tcp/7946 open. I've done no firewall configuration to do this a Ubuntu Server ships with its firewall service disabled. I've tested this with with these commands nc -zv HOST PORT and nc -zvu HOST PORT for tcp and udp respectively. All return success, apart from the tcp/2377 query from the manager node to the worker node, presumably this is fine as this port seems to be the manager specific port.

If I run a couple services in a stack on the same node, the services can communicate without issue. However, when the services are split across nodes, they are no longer able to connect with each other.

They are able to ping each other from within each container using the name of the other service.

However, they are not able to curl service_name any running web server, for example, running on the containers on separate machines.

I've tried to google this problem and tried turning off packet checksums by running sudo ethtool -K docker_gwbridge tx off; sudo ethtool -K docker0 tx off on both machines, and then restarting the machines after, with no success.

I'm looking for any other causes of this problem or maybe how I've misused commands above. I've ran a swarm across these nodes before using Ubuntu Desktop without this issue, and has come up switching to ubuntu server.

Thanks.

P.S. Happy to provide any additional info that's relevant.

freebie
  • 101
  • 1
  • I was about to suggest turning the checksum off as you did, but on the actual real interfaces (which might be real inside a VM but virtual outside). For example some combos of VMware + kernel version get a checksum issue specifically for tunneled traffic such as VXLAN on vmxnet3 type interfaces. – A.B Sep 07 '22 at 15:25

1 Answers1

1

I had the same issue after update ubuntu from version 18.04 to 22.04. Current system configuration: docker version: 20.10.17 ubuntu version: 22.04.1 LTS

After suggestion of turning off the checksum I did it with command:

sudo ethtool --offload <NETWORK INTERFACE> tx off

I found information how to do it here: How to Disable UDP Checksum

Daniel
  • 11
  • 1