IP Forwarding pour les serveurs OVH avec VMWare Server 2

Si vous êtes arrivé ici, c’est que vous avez peut-être déjà lu le guide OVH. Sinon, lisez-le. Ce dernier se base sur la distribution VMWare Server de OVH. Il s’agit d’une distrib Debian Etch 32bits avec VMWare Server 1.

Une fois que vous l’avez lu, vous pouvez vous rendre sur le Blog à Guigui pour savoir comment installer VMWare Server 2.0 sur votre propre distrib Debian… Parti de là, le guide OVH n’est plus tout à fait adapté. En effet, le script /etc/init.d/vmware a changé sur VMWare server 2.0. Il est donc impossible d’ajouter la commande “ip route add” après ifup vmnet8. Voilà donc:

Creez un fichier /etc/vmware/routes.conf. Dans ce fichier, insérez les IP failover pour vos machines virtuelles. Une par ligne.

Ensuite, creez un script “addroutes” dans /etc/vmware. En voici le code:

#!/bin/sh

while [ "$v" != "1" ];
do
v=$(ifconfig | grep -c vmnet1)
echo "Waiting for vmnet1"
done

if [ -e /etc/vmware/routes.conf ]; then
for address in `egrep -v "^#" /etc/vmware/routes.conf | awk '{ print $1 }'`; do
/sbin/ip route add $address dev vmnet1

# ATTENTION: Cette ligne n'est nécessaire que si vous utilisez FTP
# backup depuis la machine virtuelle. Adaptez-la a vos besoins
/sbin/iptables -t nat -A POSTROUTING --source $address --match iprange --dst-range ip_de_votre_ftpbackup -j SNAT --to ip_de_votre_dedié
done
fi

sysctl -p /etc/sysctl.conf
echo "Routes have been added"

Editez ensuite /etc/init.d/vmware et recherchez la ligne “# Start the virtual ethernet kernel service” (ligne 837 chez moi). Vous trouverez ceci:

# Start the virtual ethernet kernel service
vmware_start_vmnet() {
vmware_load_module $vnet
}

Ajoutez /etc/vmware/addroutes& à la fin:

# Start the virtual ethernet kernel service
vmware_start_vmnet() {
vmware_load_module $vnet
/etc/vmware/addroutes&
}

Attention. Le “&” à la fin de addroutes n’est pas une erreur. Il est indispensable. Ca permet de lancer le script en boucle, et de continuer le démarrage du script vmware. Car avant de démarrer vmnet1 et que addroutes puisse fonctionner, vmware va lancer d’autres vmnet. Si vous ne mettez pas le “&” à la fin, votre script va rester planté là, à attendre que vmnet1 soit monté, alors que le script vmware ne pourra pas le monté, car il attendra que addroutes se termine.

A noter la ligne “iptables -t nat…”. Celle-ci permet d’accéder au FTP Backup de OVH depuis les machines virtuelles. En effet, l’accès par une autre IP que celle du serveur dédié est refusé. Dès lors, il faut que les accès depuis les VM soient transmises au serveurs FTP Backup avec l’IP du dédié.

10 thoughts on “IP Forwarding pour les serveurs OVH avec VMWare Server 2

  1. Bonsoir,

    J’ai installé Vmware server 2 sur une debian 64 chez OVH , crée et installer ma vm avec ubuntu server sur l’interface Vmnet1 (Hostonly) , jusqu’à la tout ce passe bien 🙂

    j’ai configurer l’interface réseau sur le dédié et appliquer le /sbin/ip route add ipfailover dev vmnet1
    du coté de la vm:
    auto eth0
    iface eth0 inet static
    address ipfailover
    netmask 255.255.255.255
    post-up /sbin/route add default dev eth0

    après un reboot de la machine virtuel je commence par un ping sur le dédié et la rien, paquet envoyé mais pas reçu 🙁

    ma question est ce que j’ai sauter une étape ??? sinon quelle est l’ip à mettre dans l’interface Vmnet1 sur le dédié??

    Merci pour votre aide

    Cordialement

  2. Bonjour Hakos,

    As-tu suivi le guide de Guiguiàbloc ?

    Tu as bien fait la configuration sur la VM, pas de problème. Mais as-tu activé l’IP Forwarding sur ta machine physique ?

    Dans /etc/sysctl.conf, ajouter:

    net.ipv4.conf.vmnet1.proxy_arp=1
    net.ipv4.ip_forward=1

    Puis lancer:

    sysctl -p /etc/sysctl.conf

    Ensuite, si tu as fait le script addroutes décrit dans cet article, tu peux vérifier si les routes sont actives en tapant la commande “route”. Tu dois voir afficher entre autre des adresses ipfailover que tu auras mis dans “routes.conf”.

    En espérant avoir pu t’aider.

  3. Bonjour,

    Enfin de conte tout est rentrée dans l’ordre , et ca fonctionne très bien , bravo pour le script de forwarding il marche très bien aussi.

    Bonne continuation .

    Cordialement

  4. Salut Deurk,

    En fait, la modif sysctl.conf ne se fait qu’une fois. Dès lors, il est inutile de la mettre dans le script. Par contre, dans le script addroutes qui est exécuté au démarrage de vmware, tu retrouves la commande sysctl -p /etc/sysctl.conf qui permet de relancer le forwarding. Je l’y ai mis car au redémarrage du serveur, mon forwarding ne marchait plus.

  5. hello

    J’ai suivi attentivement les différents posts de superkim et de Guiguiàbloc (merci à eux) t cela ne marche pas !!!!

    la config
    Hote OVH : ubuntu serveur 8.10 64 bits, noyau 2.6.28.8-xxxx-std-ipv4-64
    Hote dedibox : ubuntu serveur 8.04 64 bits, noyau 2.6.25.4dedibox-r9-smp-x64

    Le problème (dans les 2 cas) : mon guest n’arrive pas à sortir sur internet !!!

    par contre (toutjours en config Hostonly) si je lui donne comme eth0 inet dhcp, alors je ping mon hote !! (et il ne sort pas ce qui est normal)
    si je lui donne comme eth0 inet dhcp et guest configuré en NAT, alors je ping mon hote et ne sort sur le net !! normal)

    pour ce qui est de la config en hostonly
    j’ai suivi les recommandations
    Sur l’hote
    root@sf1:~# cat /etc/sysctl.conf
    net.ipv4.ip_forward=1
    net.ipv4.conf.vmnet1.proxy_arp=1
    root@sf1:~# route -n
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    ipfailover 0.0.0.0 255.255.255.255 UH 0 0 0 vmnet1
    10.0.254.0 0.0.0.0 255.255.255.240 U 0 0 0 dummy0
    192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet8
    94.23.8.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
    10.0.253.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet1
    0.0.0.0 94.23.8.254 0.0.0.0 UG 100 0 0 eth0

    sur le guest
    root@guest.sf1:~# cat /etc/network/interfaces
    auto lo
    iface lo inet loopback
    auto eth0
    iface eth0 inet static
    address ipfailover
    netmask 255.255.255.255
    post-up /sbin/route add dev eth0

    pour les dns du guest j’ai les même DNS que le host

    Je précise que je teste la manip chez ovh sur un kimsufi et chez free avec une dedibox pro

    je penche pour un problème de config au niveau du noyau ou un problème avec les ip_forward sur le guest (faut il l’activer ?)

    merci de vos remarques et commentaires avisés

  6. Bonsoir,

    J’obtiens systématiquement cette erreur lors de l’écécution de addroutes :

    Waiting for vmnet1
    Error: an inet prefix is expected rather than “xxx.xxx.xxx.xxx”.

    Et ceux pour les différentes ip failover.

    Une idée car tout ce que j’ai trouvé sur le net ne m’apportes aucune solution ni idée sur le problème engendrant cette erreur.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.