I am not able to communicate between docker containers and VirtualBox guest due to IP checksum failure.
On my host (Ubuntu 20.04) I have a Docker network with multiple containers (Ubuntu 18.04) communicating with each other.
My host also has a VirtualBox running, with a guest (Ubuntu 18.04) that I would like to be able to communicate with all the Docker containers.
I have added an extra VirtualBox network interface which is bridged to the docker bridge. I can ping the Docker containers from the VirtualBox host.
Problem is TCP packets incoming in the VirtualBox guest are dropped due to checksum error (e.g. TCP syn-ack is ignored)
I guess the Docker containers offload IP checksumming to the "network card", i.e. Docker, which cheats and saves the CPU time because the packets are only used internally.
However that does not work when I add a VirtualBox to the docker bridge.
I tried playing with ethtool:
- In Docker container:
$ ethtool -K eth0 tx off
netlink error: Operation not permitted
- In VirtualBox guest (make no difference):
$ ethtool -K enp0s9 rx on/off