Virtualisation uml network

From UnixWiki

Jump to: navigation, search


Il existe plusieurs façons de mettre en réseau un système User-Mode avec le système hôte. Nous allons ici vous présenter uniquement la façon la plus classique avec un noyau 2.6, qui devrait satisfaire la plupart d'entre vous:

[edit] Mise en réseau du côté de l'hôte

Du coté de l'hôte, il va falloir créer une interface réseau qui pourra rentrer en communication avec l'interface de l'invité. Cette interface, généralement appelée /dev/tap0, est créée par l'outil tunctl. Ce programme fait partie du package uml-utilities que vous devrez donc installer. Attention, cette opération concerne le système hôte. Vous devrez naturellement choisir deux adresses IP (pour l'hôte et pour l'invité) qui appartiennent au même sous réseau. C'est par exemple le cas de 192.168.2.1 (hôte) et 192.168.2.2 (invité) que nous utiliserons ici.

1) installer les outils uml sur le système hote

2) créer une interface /dev/tap0 sur le host

  • tunctl -u uid

L'outil tunctl va créer une interface qui sera rendue accessible à l'utilisateur ayant pour identificateurs uid. Par exemple, l'utilisateur root possède l'uid 0. Il est conseillé de fournir l'identificateur de l'utilisateur sous lequel vous lancerez le noyau User-Mode.

3) Fixer une adresse IP du coté host sur tun0

  • ifconfig tap0 inet 192.168.2.1 netmask 255.255.255.0 broadcast 192.168.2.255 up

[edit] Mise en réseau du côté de l'invité

Il faut maintenant lancer le noyau User-Mode en lui précisant quelle est l'interface réseau du système hôte qu'il faut utiliser. Dans la plupart des cas, cette interface sera /dev/tap0.

1) Lancer le noyau UML

  • Les options à rajouter sont les suivantes: "eth0=tuntap,tap0"
  • Exemple de commande complète: vmlinux ubd0=umlrootfs con1=fd:0,fd:1 con0=fd:2 con=/dev/null eth0=tuntap,tap0

2) Configurer l'interface eth0 dans la machine UML Il faut maintenant configurer l'interface réseau du système invité. Par défaut, nous utiliserons l'interface eth0. Vous pouvez la configurer manuellement avec ifconfig, mais il est préférable de la définir dans les fichiers de configuration du système. Voici les étapes à suivre sur un système gentoo:

  • éditez le fichier /etc/conf.d/net:
config_eth0=( "192.168.2.2 netmask 255.255.255.0" )
routes_eth0=( "default gw 192.168.2.1" )
  • indiquez les adresses IP de vos serveurs DNS dans le fichier /etc/resolv.conf
nameserver a.b.c.d
nameserver e.f.g.h
  • ajoutez le script de configuration de l'interface eth0 aux fichiers de démarrage:
rc-update add net.eth0 default

[edit] Installer les outils réseau pour l'invité

Il faut maintenant installer les outils réseau qui manquent. Il est probable que vous ayez à travailler sur votre système User-Mode par ssh, notamment si vous avez besoin de plusieurs consoles pour travailler dessus. Il faudra donc installer ssh, et aussi les outils tels que bind-tools (parfois appelé dnsutils), pour avoir accès à des commandes tels que nslookup.

1) Installation de ssh:

  • Depuis l'environnement chrooté, lancez l'installation de ssh de cette façon:
emerge openssh
  • Lancez automatiquement le serveur ssh au démarrage du système invité:
rc-update add sshd default

2) Installation des autres outils réseau:

Pour avoir les outils DNS, lancez la commande suivante:

emerge bind-tools

Suite

Personal tools
Reference cards