Udev: renommer mon interface réseau

20

Je viens d'installer RHEL 6.3 sur un serveur Dell 1950. Ce serveur est composé de deux ports GBit, Gb0 et Gb1.

Pour une raison obscure, nous avonsudev choisi de nommer Gb0 eth1 et Gb1 eth0 . 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 dmesgjournal, 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 udevchanger comme ça? J'ai un autre serveur similaire, où je n'ai pas ce problème.

Hugo
la source
alors quelle est la mission maintenant? toujours Gb0 == eth1 & Gb1 == eth0?
umläute
une fois vérifier grep -R 'rename5' /etc/udev/rules.d/parce que dans les journaux pourquoi il est affiché rename5une autre règle pour la même chose?
Rahul Patil
J'ai fait la même chose pour les interfaces réseau et cela apparaît comme ça dans le journal (si vous suivez la logique, il attribue simplement un nom faux à eth1 d'origine afin qu'il puisse renommer eth0 d'origine en eth1). Donc, selon le journal, tout devrait bien se passer. Êtes-vous sûr que les noms ne sont pas encore corrects?
zagrimsan
L'affectation est toujours erronée: Gb0 == eth1 & Gb1 == eth0. C'est comme si les modifications que j'avais apportées au fichier n'étaient pas appliquées. Je n'ai aucune trace de rename5 dans /etc/udev/rules.d/. Ce que je comprends, c'est quand le démarrage du noyau eth0 et eth1 sont boot mais udev les commute. eth0 => eth1 et eth1 => eth0
Hugo
Avez-vous trouvé une solution? Je me bats aussi avec ce problème. Au démarrage normal, je me retrouve avec p1p1 et p1p2. Mais depuis que j'ai branché un câble réseau sur p1p2, sur certains boot (pas tous, ce qui est bizarre), je me retrouve avec p1p1 et rename3!?!? Udev renomme eth1 en rename3 au lieu de p1p2 pour une raison quelconque. Bien sûr, cela brise la configuration réseau i / f et le pare-feu X- (pas que je suis sur Ubuntu
Huygens

Réponses:

9

Bien que ce soit assez tard, j'ai résolu mon problème en supprimant le

KERNEL="eth*",

partie de la règle dans le /etc/udev/rules.d/70-persistent-net.rulesfichier. 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.

Ancaglon
la source
Cela m'a aussi résolu sur Ubuntu 14.04. Exactement le même comportement que l'OP (sauf que le renommage était en pXpY).
ndemou
9

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.

Hugo
la source
1
/etc/sysconfigest sur linux redhat / centos. Sur Ubuntu, ces fichiers seraient sous/etc/network/if-up.d
nmgeek
6

J'ai pu résoudre ce problème en supprimant /etc/udev/rules.d/70-persistent-net.ruleset en redémarrant simplement .

Clayton Dukes
la source
1

avez-vous essayé de créer un blanc /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

cesar
la source
1
Cela a corrigé deux de mes trois périphériques réseau. Au lieu d'un fichier vierge, j'ai créé un lien vers / dev / null. Je m'attends à ce que l'une ou l'autre approche fonctionne.
MrMas
Il semble que ce soit des changements autour de la v210 que le fichier a été supprimé de systemd si je lis ceci correctement: github.com/systemd/systemd/commit/…
nhed
0

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.

cy8g3n
la source