Chaînage de services
Le contrôleur Contrail prend en charge le chaînage de divers services des couches 2 à 7 tels que pare-feu, NAT, IDP, etc.
Principes de base du chaînage de services
Les services sont offerts en instanciant des machines virtuelles de service pour appliquer dynamiquement un ou plusieurs services au trafic de machine virtuelle (VM). Il est également possible d’enchaîner des services physiques basés sur des appliances.
La figure 1 montre le schéma de la chaîne de services de base, avec un service unique. La machine virtuelle de service engendre le service en utilisant la convention de l’interface gauche (SI gauche) et de l’interface droite (FI droit). Plusieurs services peuvent également être enchaînés.

Lorsque vous créez une chaîne de services, le logiciel Contrail crée des tunnels sur le réseau sous-jacent qui couvrent tous les services de la chaîne. La figure 2 montre deux points de terminaison et deux nœuds de calcul, chacun avec une instance de service et le trafic entrant et sortant d’un point d’extrémité à l’autre.

Voici les modes de services qui peuvent être configurés.
Mode transparent ou pont
Utilisé pour les services qui ne modifient pas le paquet. Également connu sous le nom de mode bump-in-the-wire ou Layer 2. Les exemples incluent le pare-feu de couche 2, IDP, etc.
Mode En réseau ou routé
Fournit un service de passerelle où les paquets sont routés entre les interfaces d’instance de service. Les exemples incluent NAT, pare-feu de couche 3, équilibreur de charge, proxy HTTP, etc.
Mode In-network-nat
Toutefois, comme pour le mode réseau, le trafic de retour n’a pas besoin d’être acheminé vers le réseau source. Le mode In-network-nat est particulièrement utile pour le service NAT.
Éléments de configuration du chaînage de services
Le chaînage de services requiert les éléments de configuration suivants dans la solution :
Modèle de service
Instance de service
Politique de service
Modèle de service
Les modèles de service sont toujours configurés dans l’étendue d’un domaine et peuvent être utilisés sur tous les projets d’un domaine. Un modèle peut être utilisé pour lancer plusieurs instances de service dans différents projets au sein d’un domaine.
Voici les paramètres à configurer pour un modèle de service :
Nom du modèle de service
Nom de domaine
Mode service
Transparent
En réseau
NAT en réseau
Nom de l’image (pour le service virtuel)
Si le service est un service virtuel, le nom de l’image à utiliser doit être inclus dans le modèle de service. Dans une configuration OpenStack, l’image doit être ajoutée à la configuration à l’aide de Glance.
Liste des interfaces
Liste ordonnée des interfaces---elle détermine l’ordre dans lequel les interfaces seront créées sur l’instance de service.
La plupart des modèles de service ont des interfaces de gestion, de gauche et de droite. Pour les instances de service nécessitant davantage d’interfaces, d'« autres » interfaces peuvent être ajoutées à la liste des interfaces.
Attribut IP partagé, par interface
Attribut Routes statiques activées, par interface
Options avancées
Évolutivité des services : utilisez cet attribut pour permettre à une instance de service d’avoir plusieurs instances de la machine virtuelle d’instance de service.
Flavor : attribuez une saveur OpenStack à utiliser lors du lancement de l’instance de service. Les saveurs sont définies dans OpenStack Nova avec des attributs tels que l’attribution des cœurs de processeur, de la mémoire et de l’espace disque.
Service Instance
Une instance de service est toujours gérée dans le cadre d’un projet. Une instance de service est lancée à l’aide d’un modèle de service spécifié à partir du domaine auquel le projet appartient.
Voici les paramètres à configurer pour une instance de service :
Nom de l’instance de service
Nom du projet
Nom du modèle de service
Nombre de machines virtuelles qui seront générées
Activer la mise à l’échelle des services dans le modèle de service pour plusieurs machines virtuelles
Liste des réseaux virtuels classés
Interfaces répertoriées dans l’ordre spécifié dans le modèle de service
Identifier le réseau virtuel pour chaque interface
Attribuer des itinéraires statiques pour les réseaux virtuels dont le routage statique est activé dans le modèle de service pour leur interface
Le trafic qui correspond à un itinéraire statique affecté est dirigé vers l’instance de service sur l’interface créée pour le réseau virtuel correspondant
Politique de service
Voici les paramètres à configurer pour une stratégie de service :
Nom de la stratégie
Nom du réseau source
Nom du réseau de destination
D’autres conditions de correspondance de stratégie, par exemple la direction et les ports source et de destination
Stratégie configurée en mode « routé/dans le réseau » ou « ponté/ »
Un type d’action appelé apply_service est utilisé :
Exemple : ' apply_service' : [DomainName :ProjectName :ServiceInstanceName]