Problème de détection de la carte réseau d’une VM Ubuntu VirtualBox (VMWare ou toutes autres solutions de virtualisation)

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 :

choix_carte_reseau_VBox

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.