I know that the docker daemon allocates a MAC address for the bridge interface docker0 creates.I run docker-ce 17.06 on KVM and bare metal nodes (Debian Jessie with backport kernel 4.9 something using the vendor deb). Only network option for dockerd is to set bip to 192.168.122.1/23, so the IP of docker0 on the host is 192.168.122.1.This is a simple standalone installation, no k8s etc. Containers are managed by gitlab-ci-runner, though I do not think tjis makes a difference.So to my understanding alll traffic from inside of a container is routed via this IP except for that going to neighboring containers on the same node.Now when I start a container which only pings another KVM or bare metal host in the same datacenter (not a container on the same node) once in a loop with 2 minutes sleep in between, the ping sometimes fails.I installed tcpdump inside the container, started it there in the background and saved the dump in case ping failed.Analysing the dump revealed that shortly before ping failed, an ARP request for 192.168.122.1 was answered with a different MAC once in a while. In the end I saw with ip addr show docker0 that the MAC of 192.168.122.1 changed on the node running dockerd.What could be the reason here?BTW: as a workaround the bridge interface is now created manually fixating the MAC via brctl and ip link and given as option to dockerd.
Self changing MAC response for docker0 interface
networking;docker;arp