Forum Linux.général OpenVz : Plusieurs IP Failovers pour une même machine virtuelle

Posté par  .
Étiquettes : aucune
0
12
fév.
2009
Salut,

J'ai plusieurs serveurs chez OVH, tournant tous sous OpenVz. J'utilise OpenVz pour séparer mes services (Apache, MySQL, mail, etc.). Chaque machine virtuelle tourne sous Debian.

De base, une adresse Failover est associée à chaque machine virtuelle (configurées en venet avec l'IP failover).

Pour migrer un site web, j'aimerai faire pointer une Seconde IP failover vers une de ces machines virtuelles existantes. Au total, deux IP failovers pointeront donc sur cette même machine. Disons 91.xx.xx.11 et 91.xx.xx.22.

91.xx.xx.11 ayant été déclarée à l'installation de la machine virtuelle, en venet, elle fonctionne parfaitement. Par contre, pour 91.xx.xx.22, c'est une autre histoire.

J'ai tenté de configurer l'alias directement dans le network/interfaces de la machine virtuelle, en ajoutant un :

auto venet0:1
iface venet0:1 inet static
address 91.xx.xx.22
netmask 255.255.255.255
broadcast 0.0.0.0


(suivi d'un /etc/init.d/networking restart, bien entendu...)

Cela ne fonctionne pas, l'IP 91.xx.xx.22 pointe toujours vers la "racine" du serveur dédié. J'ai bien tenté d'ajouter des règles de routage, sur le serveur "racine" :

ip route add -net 91.xx.xx.22 netmask 255.255.255.255 dev venet0


Sans succès.


Dans tous les cas, soit cette IP 91.xx.xx.22 ne répond pas (du moins, c'est redirect.ovh.net qui me répond, avec un beau "Time to live exceeded"), soit elle pointe vers le serveur dédié "racine", et non vers ma machine virtuelle.

L'idéal serait donc de rediriger 91.xx.xx.22 vers 91.xx.xx.11 proprement...
Une possibilité serait de rediriger le port 80 (et accessoirement le 22, aussi) avec iptables. Mais je trouve ça "crade" (et peu pratique). D'autres suggestions ?

[ sachant que 91.xx.xx.11 fonctionne parfaitement, et pointe bien vers la machine virtuelle en question ]



J'espère que mes propos sont clairs, l'expliquer n'est pas évident.

Si vous aviez des idées, des pistes, ou même des mots clés pour faciliter mes recherches Google, je prends tout, absolument tout.

En espérant que l'un d'entre vous pourra m'aider,
Merci d'avance.
  • # -host ?

    Posté par  . Évalué à 1.

    je rebondis juste sur ta commande "route", tu veux spécifier une route statique vers un host, or tu spécifies une option "-net".

    L'usage normal serait de spécifier l'option "host" à la place de "net", ne pas mettre le masque et de spécifier l'interface comme tu l'as fait.

    Etant donné que 91.xx.xx.22 doit être dans le même reseau que 91.xx.xx.11 (si j'ai bien compris) , alors le masque doit-être identique, donc différent de 255.255.255.255 à priori
    • [^] # Re: -host ?

      Posté par  . Évalué à 1.

      Merci pour cette réponse.
      Cependant, je viens de tester, sans succès.

      route add -host 91.xx.xx.22 dev venet0
      • [^] # Re: -host ?

        Posté par  . Évalué à 1.

        regarde aussi la définition de ton adresse 91.xx.xx.22 pour mettre le même masque que 91.xx.xx.11
        • [^] # Re: -host ?

          Posté par  . Évalué à 2.

          Les interfaces à venet utilisent des réseaux en /32 : ie, c'est en point-à-point avec l'hôte, qui fait le routage de façon transparente.

          Donc, pas de netmask avec les VM qui utilisent ces interfaces virtuelles ;)
  • # venet vs veth

    Posté par  . Évalué à 6.

    Tu ne peux pas changer la conf réseau d'une VM qui utilise les venet, dans cette VM : ces interfaces virtuelles doivent être gérées par l'hôte, et configurées en passant par lui (si tu veux que l'invité puisse gérer sa conf réseau, avec firewall, routes et cie, il faut prendre du veth - mais ça a surtout un intérêt si tu veux mettre un VPN ou assimilé dans la VM ; sinon, le venet suffit a priori)...

    Si tu veux simplement assigner deux IP à une VM, tu as juste à faire (avec les droits root, bien sûr - et dans l'hôte, évidemment) : "vzctl set ${ID} --ipadd 91.xx.xx.11 --ipadd 91.xx.xx.22 --save" ... Ce sera l'hôte OpenVZ qui s'occupera des routes (rien à spécifier manuellement ; à part éventuellement sur les routeurs en amont, si tu fais des choses un poil exotiques, avec plusieurs réseaux disjoints... m'enfin).

    Ton conteneur se retrouvera alors avec les deux adresses spécifiées...

    ... bon, si il a déjà "91.xx.xx.11", vzctl va te dire qu'il a déjà cette adresse et qu'il ne la rajoute pas (il rajoutera quand même celle qui manque).

    Sinon, si tu veux repartir de zéro, tu fais "vzctl set ${ID} --ipdel all --save", puis, tu rajoutes les deux, comme j'ai écrit au-dessus.
    • [^] # Re: venet vs veth

      Posté par  . Évalué à 1.

      Merci !

      Ca fonctionne au poil. La commande executée, un restart de la machine virtuelle, et tout est rentré dans l'ordre. Finalement, il n'y avait pas besoin de chercher midi à 14h, il suffisait juste de chercher au bon endroit.

      Merci beaucoup à vous tous, pour le temps que vous avez accordés à mon problème.
      • [^] # Re: venet vs veth

        Posté par  . Évalué à 2.

        Même pas besoin de redémarrer la machine ;)

        Si tu avais un SSH d'ouvert vers elle, ou quelque chose du genre, tu risques de perdre la connexion, mais le temps que les réglages soient appliqués, tu peux de nouveau y accéder (et par les deux adresses).

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.