Proxmox SDN : réglage du MTU des CT Docker tournant sur des VM

Réseau Open source Docker Virtualisation Proxmox SDN

Récemment j'ai basculé mon infrastructure personnelle sur un cluster Proxmox VE. J'en ai profité pour mettre en place le SDN basé sur VxLAN qui est fourni d'office avec la dernière version 8.1.3 de Proxmox VE. Tout s'est bien passé sauf pour les conteneurs Docker tournant dans des VM. La faute au MTU. Voici donc comment configurer le MTU sur Docker.

Pour s'assurer que les 50 octets supplémentaires de l'en-tête VXLAN peuvent être contenu dans un paquet, il faut régler les mtu des VM ou CT LXC. Si le MTU de votre carte réseau est de 1500, alors le mtu de la carte réseau de la machine virtuelle ou du conteneur devra être réglé à 1500-50, soit 1450. Cela se règle sur dans les paramétrages réseaux de la carte réseau de la machine virtuelle ou du conteneur depuis l'interface web d'administration de PVE.

Exemple avec une machine virtuelle :

vm-mtu

Exemple avec un conteneur :

ct-mtu

J'ai tenté de modifier l'unité de service /lib/systemd/system/docker.service comme ceci :

(...)
ExecStart=/usr/bin/dockerd --mtu 1450 -H fd:// --containerd=/run/containerd/containerd.sock
(...)

Mais ça plante Docker.

J'ai configuré alors comme ceci et sans générer de plantage du daemon Docker :

vim /etc/docker/daemon.json :

{
  "mtu": 1450
}

Le réglage du daemon Docker ne suffit pas. Il faut également préciser le MTU dans le docker-compose.yml :

vim docker-compose.yml :

version: '3.3'
networks:                                
  default:                               
    driver: bridge                       
    driver_opts:                         
      com.docker.network.driver.mtu: 1450
(...)

À adapter selon votre gestion des réseaux.

Article précédent Article suivant