Je viens d'installer RHEL 6. sur un serveur Dell 1950. Ce serveur est composé de deux ports GBit, Gb0 et Gb1.
Pour une raison obscure, udev
a choisi de nommer Gbeth1
et Gb1eth0
. Ce n'est certainement pas une bonne trouvaille pour moi et donne juste de la confusion.
J'ai donc modifié la configuration dans /etc/udev/rules.d/70-persistent-net.rules
:
# PCI device 0x14e4:0x164c (bnx2)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", \
ATTR{address}=="00:20:19:52:d3:c0", \
ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
# PCI device 0x14e4:0x164c (bnx2)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", \
ATTR{address}=="00:20:19:52:d3:be", \
ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
Je viens de changer le champ "NAME" du fichier afin de refléter ce que je veux. J'ai redémarré le serveur et cela n'a pas fonctionné.
Dans le journal dmesg
, je peux lire ce qui suit:
udev: renamed network interface eth1 to rename5
udev: renamed network interface eth0 to eth1
udev: renamed network interface rename5 to eth0
Une idée sur ce qui ne va pas ici? Pourquoi udev
commute-t-il ainsi? J'ai un autre serveur similaire, où je n'ai pas ce problème.
Dans mon cas, le problème vient du fait que l'adresse mac de chaque interface a été définie dans trois fichiers:
/etc/udev/rules.d/70-persistent-net.rules
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
Nous avons besoin de cohérence entre le fichier ifcfg et net.rules pour l'adresse mac.
Bien que ce soit assez tard, j'ai résolu mon problème en supprimant le
KERNEL="eth*",
partie de la règle dans /etc/udev/rules.d/70-persistent-net.rules
fichier. Cela fonctionne car, une fois qu'UDEV a renommé le périphérique en "renommer *", cette partie arrête la correspondance de la règle. Ainsi, sa suppression permet d'attribuer le nom correct au périphérique approprié, quel que soit le nom d'UDEV entre-temps.
J'ai pu résoudre ce problème en supprimant simplement /etc/udev/rules.d/70-persistent-net.rules
et redémarrage.
avez-vous essayé de créer un _ /etc/udev/rules.d/80-net-name-slot.rules
?
depuis Udev v197, udev a implémenté des noms d'interface réseau prévisibles, en créant un fichier vierge dans ce chemin puis en redémarrant, vous devriez retrouver vos noms d'interface à ce qu'ils étaient.
j'ai répondu à une question similaire à: Creating eth0 with consistent network device naming
Cela peut également se produire car eth0, eth1, wlan0, wlan1 etc. sont des noms de noyau standard (en cas de dénomination de schéma non persistante). Dans la documentation udev, il est dit:
NOM
Nom à utiliser pour une interface réseau. Voir systemd.link (5) pour un mécanisme de niveau supérieur pour définir le nom de l'interface. Le nom d'un nœud de périphérique ne peut pas être modifié par udev, seuls des liens symboliques supplémentaires peuvent être créés.
N'utilisez donc jamais les noms eth *, wlan * etc. pour les règles udev.