Contrairement à ce que pourrait laisser penser le titre, il ne s’agit pas d’une belle histoire que je vais vous conter aujourd’hui mais la présentation et la mise en œuvre d’une possibilité intéressante d’Oracle VM : le rajout d’un pont factice ou dummy bridge en bon anglois.
Par défaut, Oracle VM crée un bridge rattaché à chaque carte réseau physique détectée sur le VM server. Ils sont dénommés xenbr0 rattaché à la carte eth0, xenbr1 rattaché à la carte eth1, … Il est possible ensuite d’attribuer ces bridges aux machines virtuelles par l’intermédiaire du menu de paramétrage réseau. Lors du démarrage de la machine virtuelle, une interface réseau virtuelle sera crée et rattaché au bridge.
Utilisation
Dans le cas d’un environnement de développement ou de test, il peut être intéressant de pouvoir disposer d’un bridge relié à aucune carte réseau, dans le cas par exemple où l’on utilise Oracle VM pour réaliser une architecture reliant plusieurs serveurs connectés par des réseaux différents. Un excellent exemple est l’installation d’un RAC Oracle Database virtualisé. Ce dernier demande notamment une interface réseau pour les échanges privés d’informations entre les deux nœuds du RAC.
Voici le schéma logique de notre maquette
Voici maintenant le schéma de réalisation de notre maquette avec Oracle VM
Réalisation
Nous allons nous appuyer sur Linux pour réaliser le bridge xenbr2. Il suffit de quatre lignes de commandes pour créer ce dummy bridge à exécuter sur le VM server :
# brctl addbr xenbr2 # brctl stp xenbr2 off # brctl setfd xenbr2 0 # ip link set xenbr2 up
Maintenant nous pouvons visualiser les bridges existants sur notre serveur de VM :
# brctl show bridge name bridge id STP enabled interfaces xenbr0 8000.0019bbcb8896 no eth0 xenbr2 8000.feffffffffff no
Nous pouvons aussi le visualiser à travers l’interface d’Oracle VM en ajoutant ce dummy bridge à chacun de nos nœuds du RAC.
Automatisation du démarrage
Il nous reste à faire un script à mettre dans /etc/init.d qui lancera automatiquement la création du bridge au démarrage du server VM :
#!/bin/sh # # chkconfig: 345 90 89 # description: lance la creation d'un dummy bridge # case "$1" in start) brctl addbr xenbr2 brctl stp xenbr2 off brctl setfd xenbr2 0 ip link set xenbr2 up ;; stop) echo "" ;; status) echo -n "Checking for dummy bridge" brctl show ;; *) echo "Usage: $0 {start|status}" ;; Esac
Il faut modifier les droits d’exécution du script :
chmod u+x dummy_bridge
Puis l’inscrire dans les scripts à lancer au démarrage avec chkconfig :
chkconfig --add dummy_bridge
Limites et perspectives
L’intérêt du dummy bridge se limite aux applications devant communiquer à travers un réseau situé sur un même server VM, donc pour les pools VM ne comportant qu’un seul serveur. Il peut être envisagé en mode haute disponibilité dans la mesure où les serveurs communiquant à travers le dummy bridge se trouvent sur le même VM server et seront déplacés automatiquement vers le même serveur du pool (comportant lui-même le dummy bridge) en cas de panne du serveur VM les hébergeant.