Chapitre 4. Configuration du réseau

Table des matières
4.1. Configuration de l'hôte
4.2. Configuration de l'image
4.3. Partager un réseau virtuel
4.3.1. Serveur de réseau
4.3.2. Clients du réseau

Comme vous avez déjà dû le remarquer si vous avez déjà fait quelques essais avec QEMU, le réseau se configure rapidement à l'aide de l'option -net user [1]. Cependant cette configuration simple, si elle permet bien au système QEMU d'accéder au réseau, ne permet pas au système hôte d'y accéder.

Pour que le système QEMU s'intègre pleinement au réseau local il faut lui créer son propre réseau virtuel et router le traffic à l'aide d'une interface réseau virtuelle.

Assurez-vous d'avoir bien suivi les conseils de configuration du noyau Chapitre 1 avant de commencer.

Nous choisirons dans ce tutoriel de configurer un réseau 192.168.4.0/24. Nous aurons donc la configuration suivante:

Tableau 4-1. Réseau virtuel

NomValeur
Interfacetap0
Réseau192.168.4.0/24
Adresse hôte192.168.4.1
Adresse image192.168.4.2

Dans un premier temps il nous faut configurer le système pour qu'il puisse charger correctement le module qui nous permettra de mettre en place un pont. Sur un système Debian, éditez le fichier /etc/udev/permissions.rules et y ajouter les lignes suivantes:


# tun
KERNEL=="tun",                MODE="0666"
    

Suite à cette modification, redémarrez udev avec /etc/init.d/udev restart.

4.1. Configuration de l'hôte

QEMU va automatiquement chercher à exécuter un fichier /etc/qemu-ifup au démarrage. Cela va nous permettre de configurer le réseau de l'image.

Nous allons donc créer un fichier /etc/qemu-ifup (téléchargeable ici), dont le contenu sera le suivant:


#!/bin/sh

NET=192.168.4.0/24
GATEWAY=192.168.4.1

/sbin/ifconfig $1 $GATEWAY

/sbin/modprobe iptable_nat
/sbin/modprobe ip_nat_irc
/sbin/modprobe ip_nat_ftp
/sbin/modprobe iptable_filter
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe ip_conntrack_netbios_ns
/sbin/modprobe ip_conntrack_netlink

/sbin/iptables -D POSTROUTING -t nat -s $NET -d ! $NET -j MASQUERADE
/sbin/iptables -t nat -s $NET -d ! $NET -A POSTROUTING -j MASQUERADE
/bin/echo 1 > /proc/sys/net/ipv4/ip_forward
      

Assurez-vous que tous les modules noyau chargés ici sont bien présents dans le répertoire /lib/modules/2.6.16.5/kernel/net/ipv4/netfilter/ de l'hôte. N'hésitez pas à commenter les lignes qui ne vous seront pas nécessaires (comme celles concernant le chargement des modules ip_nat_irc, ip_conntrack_irc, ip_conntrack_netbios_ns etc., par exemple).

Le rôle de ce script est de configurer l'interface virtuelle nouvellement créée pour QEMU. Celui-ci passe son nom en premier paramètre lors de l'appel. Ensuite on charge les modules nécessaires, puis on crée les règles qui permettront à l'hôte et à l'image QEMU de communiquer via le réseau $NET.

Notes

[1]

Cette option est utilisée par défaut pour la configuration du réseau.