Configurer une machine virtuelle sur serveur OVH avec une IP Failover

  • ovh
  • IP failover
  • adresse MAC
  • libvirt
  • kvm
  • machine virtuelle
  • bridge

Le fournisseur de services ovh propose un service d'IP Failover: des adresses IP permanentes qui peuvent être liées à l'un ou l'autre projet.

Nous utilisons ces adresses IP vers une machine vituelle, hébergée sur notre serveur principal.

Voici comment relier cette adresse IP à une machine virtuelle en modifiant son adresse MAC.

Créer un bridge sur la machine hôte

Pour cela, éditer le fichier /etc/network/interfaces :

(conseil: sauvegardez le fichier d'origine avant toute modification !)

l'IP de l'hôte est 94.23.44.XXX. Vous pouvez déterminer l'adresse de broadcast telle que décrit dans ce guide.

Voici ce vers quoi vous devriez arriver sur la machine hôte:

# The loopback network interface
auto lo
iface lo inet loopback

auto eth0

iface eth0 inet manual

iface eth0 inet6 manual

auto br0 
iface br0 inet static
        address 94.23.44.XX
        netmask 255.255.255.0
        network 94.23.44.0
        broadcast 94.23.44.255
        gateway 94.23.44.254
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        bridg_maxwait 0

iface br0 inet6 static
        address 2001:41D0:2:2D88::1
        netmask 64
        post-up /sbin/ip -f inet6 route add 2001:41D0:2:2Dff:ff:ff:ff:ff dev eth0
        post-up /sbin/ip -f inet6 route add default via 2001:41D0:2:2Dff:ff:ff:ff:ff
        pre-down /sbin/ip -f inet6 route del default via 2001:41D0:2:2Dff:ff:ff:ff:ff
        pre-down /sbin/ip -f inet6 route del 2001:41D0:2:2Dff:ff:ff:ff:ff dev eth0

Ceci fait, il est normalement possible de redémarrer le réseau sans quitter la console : service networking restart (en mode root). La machine doit continuer à répondre au ping.

La commande ifconfig doit renvoyer ceci (virbr0, virbr1 sont des sous-réseaux virtuels chez nous; ils ne seront pas forcément visibles chez vous) :

br0       Link encap:Ethernet  HWaddr 74:d0:2b:26:be:82  
          inet addr:94.23.44.XXX  Bcast:94.23.44.255  Mask:255.255.255.0
          inet6 addr: 2001:41d0:2:2d88::1/64 Scope:Global
          inet6 addr: fe80::76d0:2bff:fe26:be82/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:10158 errors:0 dropped:1 overruns:0 frame:0
          TX packets:10651 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1285075 (1.2 MB)  TX bytes:2848337 (2.8 MB)

eth0      Link encap:Ethernet  HWaddr 74:d0:2b:26:be:82  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:11366 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11679 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1613287 (1.6 MB)  TX bytes:2998767 (2.9 MB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:5606 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5606 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:862871 (862.8 KB)  TX bytes:862871 (862.8 KB)

virbr0    Link encap:Ethernet  HWaddr 36:3d:62:69:90:b8  
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

virbr1    Link encap:Ethernet  HWaddr 52:54:00:2e:70:ea  
          inet addr:192.168.100.1  Bcast:192.168.100.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Configurer ou modifier la configuration de la machine virtuelle

KVM-Qemu et libvirt doivent être installés et fonctionnels.

Tout d'abord, dans l'interface d'OVH, associez une adresse MAC à l'IP Failover.

Créez d'abord l'adresse MAC avant de créer la machine virtuelle et assignez là à votre machine.

Si vous avez déjà créé votre machine virtuelle, éditer la configuration du xml de la machine :

La partie "interfaces" de la machine doit contenir ceci :

    <interface type='bridge'>
      <mac address='02:00:00:bf:43:da'/>
      <source bridge='br0'/>
<!-- ajouté automatiquement par libvirt -->
      <target dev='vnet0'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
<!-- fin de l'ajout automatique -->
    </interface>

Attention: la machine virtuelle doit être à l'arrêt pour modifier son fichier de configuration !

Editer le réseau à l'intérieur de la machine virtuelle

Editer le fichier /etc/network/interfaces à l'intérieur de la machine virtuelle, tel qu'indiqué ici : http://guides.ovh.com/BridgeClient

L'IP Failover est 87.98.252.XX.

Ceci donne :

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
     address 87.98.252.XX
     netmask 255.255.255.255
     broadcast 87.98.252.92
     post-up route add 94.23.44.254 dev eth0
     post-up route add default gw 94.23.44.254
     post-down route del 94.23.44.254 dev eth0
     post-down route del default gw 94.23.44.254
     dns-nameservers 213.186.33.99
     dns-search ovh.net

Redémarrer le réseau et/ou la machine virtuelle.