L’écosystème Openstack s’enrichie au fil des ans. Un ensemble de bonne pratique est disponible sur la page openstack.

Notre architecture de référence se compose des composants mandataire ainsi qu’un découpage réseau facilitant la montée en charge.

L’architecture présentée est une architecture simple qui ne comporte pas de haute disponibilité. Le découpage des fonctions permet de rajouter des nœuds (neutron gateway, compute& storage contrôler, cloud contrôler) de façon indépendante. Il est tout à fait plus simple de rajouter de la bande passante en rajoutant des nœud de type réseau, ou d’augmenter son SLA cloud avec le cloud contrôler.

 

Implémentation de l’architecture réseau

Les contraintes suivantes nous ont amené à créer un réseau par dessus un réseau physique, en bon anglicisme c’est un réseau « overlay » (au dessus de). L’idée est de créer un environnement de contrôleurs complètement virtualisés. Cela amène beaucoup de bénéfices liés à la virtualisation.

L’ architecture physique classique utilisée lors de ces différents articles se compose de trois serveurs physiques possédant deux interfaces réseau. L’un vers internet et l’autre un réseau privé de couche L2 (layer 2 dans la pile réseau).

Sur un host Debian stock du serveur physique 1, nous allons commencer la configuration réseau.

sudo apt-get install openvswitch-switch openvswitch-common

Et voilà, vous avez openvswitch installé sur votre serveur. Il existe plusieurs façons d’utiliser ce switch virtuel. Soit en autonomie, soit managé par un système central. Pour des questions de simplicité, nous utiliserons le système autonome. Cela veut dire que pour chaque hôte physique participant à la plateforme private cloud, il doit être configurer localement. En soit, ce n’est pas gênant avec des systèmes d’automatisation (ansible, chef, puppet, salt …).

 

Cible réseau logique / physique

 

Le symbole </> représente un switch virtuel et <-[]-> un switch physique.

 

Création des quatre switches virtuels

sudo ovs-vsctl add-br internet
sudo ovs-vsctl add-br stockage
sudo ovs-vsctl add-br admin
sudo ovs-vsctl add-br cloud
sudo ovs-vsctl add-br acces

A la création des switch virtuel, un port a été créé sur la machine hôte qui lie celui-ci avec le switch. En quelque sorte, le hote est rattaché automatiquement à ce switch virtuel de façon logique. Pour que ce switch puisse accéder au switch physique, il y a deux possibilités :

  • Déclarer un port réseau physique dans ce switch ;
  • Ou utiliser le routage du noyau linux pour faire communiquer le switch virtuel et le switch physique (c’est ce qui se passe pour le réseau « overlay » Openstack).

Attaché les ports physiques aux switchs

 

sudo ovs-vsctl add-port internet eth0
sudo ovs-vsctl add-port acces eth1

 Une bonne pratique de sécurité est de cloisonner les différents flux entre eux. Pour ce faire, nous utilisons le mécanisme de vlan. Pour simplifier la configuration, nous préférons rajouter une couche réseau supplémentaire qui se charge de tagguer (vlan) l’ensemble des flux reçu d’un port particulier. Cela permet d’être modulable et flexible. Et pour relier les switches entre elle, openvswitch propose des patchs port. Ces patchs ports sont en quelque sorte une liaison point à point entre deux switches virtuels.

Déclaration des ports de type patch

 

sudo ovs-vsctl add-port admin ap 
sudo ovs-vsctl set interface ap type=patch options:peer=pa
sudo ovs-vsctl add-port acces pa
sudo ovs-vsctl set interface pa type=patch options:peer=ap
sudo ovs-vsctl add-port stockage sp
sudo ovs-vsctl set interface sp type=patch options:peer=ps
sudo ovs-vsctl add-port acces ps
sudo ovs-vsctl set interface ps type=patch options:peer=sp
sudo ovs-vsctl add-port cloud cp
sudo ovs-vsctl set interface cp type=patch options:peer=pc
sudo ovs-vsctl add-port acces pc
sudo ovs-vsctl set interface pc type=patch options:peer=cp

Création des vlans access

 

sudo ovs-vsctl set interface pa tag=3900
sudo ovs-vsctl set interface ps tag=3901
sudo ovs-vsctl set interface pc tag=3902

Vérifions maintenant la configuration réseau de ce serveur.

 

sudo ovs-vsctl show

    Bridge cloud
        Port cp
            Interface cp
                type: patch
                options: {peer=pc}
        Port cloud
            Interface cloud
                type: internal
    Bridge acces
        Port cd
            tag: 3902
            Interface cd
                type: patch
                options: {peer=pc}
        Port ps
            tag: 3901
            Interface ps
                type: patch
                options: {peer=sp}
        Port &amp;amp;quot;eth1&amp;amp;quot;
            Interface &amp;amp;quot;eth1&amp;amp;quot;
        Port acces
            Interface acces
                type: internal
        Port pa
            tag: 3900
            Interface pa
                type: patch
                options: {peer=ap}
    Bridge admin
        Port admin
            Interface admin
                type: internal
        Port ap
            Interface ap
                type: patch
                options: {peer=pa}
    Bridge stockage
        Port stockage
            Interface stockage
                type: internal
        Port cp
            Interface sp
                type: patch
                options: {peer=ps}

 

Pour que ce hôte physique puisse se connecter aux réseaux virtuels, il faut déclarer une adresse ip aux ports du switch. Voici le plan d’adressage ipv4

Admin : 192.168.200.2/24

Stockage : 192.168.100.2/24

Cloud : 192.168.0.2/24

 Voilà la mise en place du réseau virtuel. C’est l’une des premières choses à faire lors que nous partons de zéro. Avec une architecture réseau bien définie, l’installation par la suite sera grandement facilitée.

Le prochain article sera consacré à la mise en place d’un routeur, firewall d’accès à la plateforme.

En attendant, les deux autres serveurs physiques seront déployés de la même manière.