Réseau virtuel · 3 min read · Feb 10, 2026

La configuration parfaite de Xen 3.0.3 pour Debian Sarge - Page 5

4.5 Créer un réseau local virtuel à partir des machines virtuelles (optionnel)

(Ce chapitre est optionnel. Ce qui est décrit ici ne fonctionne que si vous avez installé Xen à partir des sources.)

Dans ce chapitre, je veux créer un réseau virtuel avec mes machines virtuelles, c’est-à-dire un réseau qui est différent du réseau de dom0.

Vous pouvez trouver un dessin de ce que je veux faire ici : http://wiki.xensource.com/xenwiki/XenNetworkingUsecase#head-7f23d0f2248cb0c70458f9339b4405e2b1bfc271

J’ai fait la même chose avec Xen 2.0.7 ici : https://www.howtoforge.com/perfect_xen_setup_debian_ubuntu_p6. Cependant, la manière d’y parvenir avec Xen 3 a complètement changé. Xen 3 configure toutes les règles de pare-feu, passerelles, etc. automatiquement. De plus, nous n’avons plus besoin d’interface réseau fictive pour notre réseau virtuel. Il est important de savoir que Xen 3 attribue des passerelles du réseau 10.x.x.x à nos machines virtuelles, donc il est judicieux d’attribuer également des adresses IP du réseau 10.x.x.x à nos machines virtuelles. Si vous leur donnez des adresses IP du réseau 192.168.3.x (comme nous l’avons fait avec Xen 2.0.7 sur https://www.howtoforge.com/perfect_xen_setup_debian_ubuntu_p6), alors vos machines virtuelles n’auront pas accès à Internet.

Nous allons donc donner à vm01 l’adresse IP 10.0.0.1 et à vm02 l’adresse IP 10.0.0.2.

Tout d’abord, nous éditons /etc/xen/xend-config.sxp et désactivons le pontage et activons le NAT (traduction d’adresse réseau) à la place :

vi /etc/xen/xend-config.sxp

| [...] #(network-script network-bridge) #(vif-script vif-bridge) (network-script network-nat) (vif-script vif-nat) [...] |

Ensuite, nous modifions les fichiers de configuration de vm01 et vm02 :

/etc/xen/vm01-config.sxp :

vi /etc/xen/vm01-config.sxp

| name="vm01" kernel="/boot/vmlinuz-2.6-xenU" root="/dev/hda1" memory=32 disk=['file:/vserver/images/vm01.img,hda1,w','file:/vserver/images/vm01-swap.img,hda2,w'] vif=[ 'ip=10.0.0.1' ] dhcp="off" hostname="vm01.example.com" ip="10.0.0.1" netmask="255.0.0.0" gateway="10.0.0.254" extra="3" |

/etc/xen/vm02-config.sxp :

vi /etc/xen/vm02-config.sxp

| name="vm02" kernel="/boot/vmlinuz-2.6-xenU" root="/dev/hda1" memory=32 disk=['file:/vserver/images/vm02.img,hda1,w','file:/vserver/images/vm02-swap.img,hda2,w'] vif=[ 'ip=10.0.0.2' ] dhcp="off" ip="10.0.0.2" netmask="255.0.0.0" gateway="10.0.0.254" hostname="vm02.example.com" extra="3" |

Ensuite, éteignez vm01 et vm02 :

xm shutdown vm01  
xm shutdown vm02

Attendez quelques secondes et vérifiez avec xm list que vm01 et vm02 ont été arrêtés. Puis redémarrez le système :

shutdown -r now

Si vm01 et vm02 ne démarrent pas automatiquement au démarrage, démarrez-les maintenant :

xm create /etc/xen/vm01-config.sxp  
xm create /etc/xen/vm02-config.sxp

Vous devriez maintenant être en mesure de pinger vm02 depuis vm01 et vice versa, et vous devriez également pouvoir pinger dom0 et les hôtes sur Internet !

Supposons maintenant que nous avons un serveur web sur le port 80 dans vm01 et un serveur de messagerie sur le port 25 dans vm02. Comme ils sont dans leur propre réseau (10.x.x.x), nous ne pouvons pas y accéder de l’extérieur à moins de rediriger ces ports vers la vm appropriée. Nous pouvons créer les règles de redirection de port nécessaires sur dom0 avec l’aide d’iptables :

iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 80 -j DNAT --to 10.0.0.1:80  
iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 25 -j DNAT --to 10.0.0.2:25

Si nous nous connectons à dom0 maintenant sur le port 80, nous sommes redirigés vers vm01. Il en va de même pour le port 25 et vm02.

Bien sûr, les règles de redirection sont perdues lorsque nous redémarrons dom0. Par conséquent, nous mettons les règles dans /etc/network/if-up.d/iptables, qui est exécuté automatiquement lorsque le système démarre :

vi /etc/network/if-up.d/iptables

| #!/bin/sh ### Redirection de port ### iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 80 -j DNAT --to 10.0.0.1:80 iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 25 -j DNAT --to 10.0.0.2:25 |

Maintenant, nous devons rendre ce script exécutable :

chmod 755 /etc/network/if-up.d/iptables

Chaque fois que vous avez besoin de règles de redirection de port supplémentaires, exécutez-les sur le shell de dom0, puis ajoutez-les à /etc/network/if-up.d/iptables afin qu’elles soient disponibles même après un redémarrage.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.