Un petit article pour vous informer d’un problème récurrent de carte réseau pour les VM VirtualBox (VMWare ou autres …).
J’ai rencontré ce problème dans 2 situations, et aussi bien pour une VM Ubuntu desktop que pour Ubuntu Server.
Le premier cas est quand vous changez le type de carte réseau au niveau du serveur Host pour votre VM :
Et le deuxième cas, quand vous charger votre VM sur un nouveau serveur Host (même une simple mise à jour).
Le problème est qu’Ubuntu détecte un changement de carte réseau et change le numéro de l’eth.
Pour résumer le problème, tout fonctionne bien, votre carte ethernet est en eth0. Vous opérer des modifications dans le cadre des cas cités ci-dessus, et vous n’avez plus de réseau sur votre VM.
Pourquoi ?
Voyons voir :
ifconfig
La carte eth0 a disparu, vous n’avez plus que l’interface de loopback
Et bien si vous faites un :
ifconfig -a
Vous pourrez remarquer que votre eth0 est devenue eth1. Ainsi vos fichiers de conf ne sont plus à jour, c’est pour cela que vous ne voyez pas eth1 en faisant un simple ifconfig.
Solution 1 (radicale) proposée par ctacat et testée par mes soins :
Rendez-vous dans le fichier /etc/udev/rules.d/70-persistent-net.rules :
sudo nano /etc/udev/rules.d/70-persistent-net.rules
Ce fichier référence les adresses MAC des cartes réseau détectées (y compris semble-t-il celles qui n’existent plus). Un changement de carte réseau dans Virtualbox (mais aussi dans la plupart des solutions de virtualisation) provoquant le changement de l’adresse MAC, une nouvelle ligne est créé, sous la forme :
SUBSYSTEM== »net », ACTION== »add », DRIVERS== »?* », ATTR{address}== »00:xx:xxc:xx:xx:xx », ATTR{type}== »1″, KERNEL== »eth* », NAME= »eth1″
Il devrait alors suffire de remettre eth0 à la place de eth1 dans ce fichier (sans oublier de changer le eth0, qui correspond à l’ancienne carte, en eth1, voire de supprimer la ligne), puis de redémarrer le réseau, et voilà, on garde son eth0 avec la nouvelle carte.
Personnellement, pour les machines virtuelles, j’adopte une méthode plus radicale : suppression du fichier puis reboot. Ubuntu redétecte les cartes réseau, recrée le fichier, et la configuration redevient cohérente.
Solution 2 :
Rendez-vous alors dans le fichier /etc/network/interfaces :
sudo nano /etc/network/interfaces
Et changez les lignes faisant référence à eth0 pour eth1. Sauvegardez le fichier et relancez votre service réseau :
sudo /etc/init.d/networking restart
Vous devriez voir à présent votre eth1 en faisant un simple ifconfig.
Sachez que si vous opérez des modifications de cartes réseau ou de VBox Serveur une nouvelle fois, le problème se reproduira. Votre eth1 deviendra eth2. Et ainsi de suite.
Voilà, j’espère vous avoir aidé. Si quelqu’un connait une commande pour renommer la carte réseau en eth0, la solution serait bienvenue, cela éviterait de modifier les fichiers de conf à chaque fois.
On peut aussi procéder autrement, en conservant son eth0.
Lorsqu’Ubuntu détecte une nouvelle carte graphique, il met à jour ce fichier :
/etc/udev.d/rules.d/70-persistent-net.rules
où sont référencées les adresses MAC des cartes réseau détectées (y compris semble-t-il celles qui n’existent plus). Un changement de carte réseau dans Virtualbox (mais aussi dans la plupart des solutions de virtualisation) provoquant le changement de l’adresse MAC, une nouvelle ligne est créé, sous la forme :
SUBSYSTEM== »net », ACTION== »add », DRIVERS== »?* », ATTR{address}== »00:xx:xxc:xx:xx:xx », ATTR{type}== »1″, KERNEL== »eth* », NAME= »eth1″
Il devrait alors suffire de remettre eth0 à la place de eth1 dans ce fichier (sans oublier de changer le eth0, qui correspond à l’ancienne carte, en eth1, voire de supprimer la ligne), puis de redémarrer le réseau (comme dans l’article), et voilà, on garde son eth0 avec la nouvelle carte.
Personnellement, pour les machines virtuelles, j’adopte une méthode plus radicale : suppression du fichier puis reboot. Ubuntu redétecte les cartes réseau, recrée le fichier, et la configuration redevient cohérente.
Merci pour cette solution, dès que j’ai un peu de temps je la test et je mettrais à jour mon article.
J’ai effectivement eu un problème avec l’interface eth0 sur VirtualBox, ayant récemment changer de PC. J’ai donc modifié le fichier 70-persistent-net.rules comme vous l’avez indiqué ci-dessus.
Merci pour ces explications qui m’ont fait gagner du temps!
Merci beaucoup, j’ai eu le même problème et effectivement la suppression du fichier 70-persistent-net.rules a tout corrigé après un redémarrage de la mv.
Franchement un grand merci pour ton tuto, tu ma sauver une VM avec plusieurs service installé
MERCI !
Mise à jour de l’article avec ta méthode comme première solution.
J’attendais de la tester en personne pour mettre à jour l’article, encore merci.
Merci beaucoup, ça m’a été super utile. 😀
Toujours aussi utile en 2012 ! 🙂