Correction du MTU sur une interface réseau

Problème constaté

Dans un cas particulier, je dois avoir un MTU modifié sur une interface résseau d’une machine.

Or j’avais le problème suivant :

Malgrès le paramètre MTU=1492 dans /etc/sysconfig/network-scripts/ifcfg-eth0, celui-ci reste à 1500, la valeur par défaut, lors du démarrage du réseau.

J’ai remarqué que lorsque j’arrête l’interface réseau ( ifdown eth0 ) et que je le redémarre, ( ifup eth0 ), j’ai le message d’erreur suivant :

SIOCSIFMTU: Invalid argument

Correction du problème

J’ai vu que le script /etc/sysconfig/network-scripts/ifup passe bien la commande forçant le MTU et c’est elle qui affiche le message d’erreur.

Si je force à la main le MTU après le démarrage de l’interface, le MTU change bien et je n’ai plus le message d’erreur.

J’ai donc modifié le script /etc/sysconfig/network-scripts/ifup-post qui est lancé après ifup de la manière suivante :

J’ai ajouté ceci à la fin du fichier.

# Correction PB MTU
if [ -n "$MTU" ]; then
ip link set dev $DEVICE mtu $MTU
fi

Je n’ai pas inventé ce code, c’est celui de la commande ifup.

Après reboot du serveur, ou redémarrage du réseau j’ai bien la bonne valeur de MTU.

Pour info, cela s’est produit sur une interface utilisant le module sk98lin.

J’ai vu sur le net, que cela peut venir d’un problème de driver.

Pour savoir quel module vous utilisez, tapez la commande suivante :

grep eth /etc/modprobe.conf

Cela me donne sur la machine en question « alias eth0 sk98lin ».

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.