Ce projet de recherche doctorale est publié a été réalisé par JEAN-LOUIS ROUGIER

Description d'un projet de recherche doctoral

Passage à l'échelle et robustesse du plan de contrôle de réseaux SDNs pour le chaînage de services

Mots clés :

Résumé du projet de recherche (Langue 1)

Les services réseau sont désormais largement déployés et souvent essentiels dans bien des réseaux. Ils couvrent un large spectre de fonctions comme la sécurité, l’accélération WAN (Wide Area Network), l’analyse de trafic et l’équilibrage de charge. Certaines fonctions qui composent tout ou partie d’un service global peuvent être situées physiquement à différents points de l’infrastructure réseau (WAN, réseau de data centre, campus etc.). Les nouveaux réseaux de data-centre et les architectures de type Internet cloud nécessitent une grande flexibilité dans le déploiement de services réseaux. De plus, la transition vers des plateformes virtualisées (ETSI NFV group [1]) demande un modèle agile d’insertion de services. Celui-ci doit être capable de supporter la fourniture élastique de services mais aussi le déplacement de fonctions et de « workloads » dans le réseau. Le chaînage de service (« service chaining ») est un terme général pour décrire un modèle commun de fourniture de multiples services dans un ordre spécifique. Le chaînage de service découple la fourniture de service de la topologie réseau sous-jacente et crée ainsi un plan de service dynamique répondant aux besoins de fourniture d’applications cloud et virtualisées. Les paquets et/ou les flux qui nécessitent un chaînage de service sont sélectionnés/classés et redirigés vers les services appropriés. De plus, le réseau et les services peuvent être amenés à partager leur contexte. La virtualisation des fonctions réseau, qui offre une plus grande flexibilité (montée en charge, placement des fonctions, adaptation etc.), et le SDN, qui rend le réseau davantage programmable, sont des technologies clefs pour le « service chaining » de nouvelle génération. Des groupes de travail commencent à émerger sur ce sujet mais tout reste à faire. Par ailleurs, les architectures SDNs présentent de nombreux avantages pour une gestion plus flexible et évolutive des réseaux, en rendant désormais possible la programmation réseau et une intégration naturelle vers les systèmes de virtualisation [2,3,35]. Néanmoins les déploiements de réseaux SDN actuels sont centralisés au niveau d'un "contrôleur". Si cette centralisation est voulue, comme dans un data centre [4,5,6] par exemple, elle n'est pas adaptée pour tous les cas de déploiements [7]. Nous proposons donc d'étudier la robustesse et de stabilité du plan de commande/gestion SDN distribué. Ces aspects couvriront notamment l'architecture (comment distribuer les fonctions entre les contrôleurs, combien de contrôleurs sont nécessaires, où les placer et quels sont leurs rôles respectifs) et protocolaires/algorithmiques (détection de panne, fail-over/self-recovery, maintien de la connectivité). Le re-routage des flux en cas de panne dans une infrastructure gérée par SDN (panne d’un contrôleur ou panne sur le lien de control) est un cas d'étude particulièrement intéressant (convergence rapide, occurrence de boucles transitoires,...). Le passage à l'échelle des réseaux SDN est également une problématique souvent trop négligée. Une liaison point-a-point du contrôleur vers tous les équipements ne passe pas à l'échelle, notamment en cas de forte latence [8,34]. Il faut donc étudier des algorithmes de distribution des politiques SDN à grande échelle. De manière générale, la distribution des informations s’accompagne d’une perte de précision dans les métriques caractérisant le réseau (si on veut limiter le volume des échanges entre les différentes entités). Un bon compromis entre passage à l’échelle et précision doit être trouvé [7]. Différentes infrastructures de distribution et de provisionnement devront être explorées. Un autre aspect que nous proposons d’étudier est le chaînage de service dans les réseaux SDN et notamment les mécanismes/protocoles d’urbanisation. Le SDN rend possible la virtualisation des fonctions réseaux tels que les firewalls, équilibreurs de charge et analyseurs DPI en re-routant ou dé-routant des flux mais également en les dupliquant pour des fonctions virtualisées placées dans le réseau. Dans ce contexte, il est donc nécessaire de développer des algorithmes capables d’optimiser à la fois l’utilisation de l’infrastructure mais également les services réseaux rendus par les multiples fonctions sous différentes contraintes telles que la QoS, des coûts d’exploitation (où placer les fonctions dans le réseau, quel traitement appliquer aux flux, quel contexte échanger entre le plan de control SDN et le manager de services etc.). Il s’agit donc de créer une « boucle » permettant l’optimisation du réseau grâce à des remontées de mesures pertinentes, l’optimisation du réseau puis la configuration des équipements. Dans ce contexte, on peut envisager une approche basée sur la théorie des graphes, l’optimisation combinatoire et l’algorithmique [9]. Une approche alternative basée sur l’apprentissage (machine learning) [10] sera également explorée, afin de permettre l’adaptation du réseau aux différents évènements (arrivée/départs de flux utilisateurs, modifications au sein du réseau etc.).

Résumé du projet de recherche (Langue 2)

2. Etat de l’art et pistes de recherche A. Passage à l’échelle et robustesse du plan contrôle SDN La robustesse des architectures SDNs dépend beaucoup des architectures mises en œuvre et du type de contrôleur utilisé. Le re-routage des flux en cas de panne dans une infrastructure gérée par SDN (panne d’un contrôleur ou panne sur le lien de control) est un cas d'étude à approfondir (convergence rapide, occurrence de boucles transitoires,...). Une solution pour atteindre des objectifs de cicatrisation rapide repose certainement dans une collaboration harmonieuse entre des protocoles de contrôle « classiques » au niveau des équipements (détection locale de panne, routage) et les mécanismes mis en œuvre au niveau du/des contrôleurs SDN, comme par exemple dans l’approche proposée dans l’architecture « Segment Routing » à l’IETF [11]. Le passage à l’échelle des architectures SDN, notamment via la distribution du plan de contrôle, a encore été peu étudié. Une première famille d’approches, comme par exemple DIFANE [12] et DevoFlow [13], adresse ce problème en ajoutant des mécanismes dans le plan de données, c’est à dire dans les switchs. L’objectif est de réduire la quantité de trafic entre les switchs et le contrôleur SDN. DIFANE consiste à délester une partie des décisions de routage du contrôleur vers certains switchs appelés « authority switches ». Cette technique permet de réduire la charge du contrôleur ainsi que le temps d’instanciation des règles de routages. DevoFlow introduit de nouveaux mécanismes dans les switchs afin de remonter uniquement les événements importants au contrôleur. Une seconde famille d’approches consiste en la distribution du plan de control SDN. HyperFlow ‎[14], Onix ‎[15], et Devolved Controllers [16] visent la distribution du plan de control tout en maintenant une vue globale et cohérente du réseau. Ces approches conduisent à des compromis entre cohérence des états et passage à l’échelle, comme montré dans [7]. Elles considèrent que les applications ont besoin d’une vue du réseau en entier. D’autres approches sont envisagées pour au contraire découper le réseau en « domaines » (avec du coup une perte de vision globale). Kandoo [17] propose une organisation hiérarchique des contrôleurs SDN en deux couches : la couche basse regroupe les contrôleurs qui n’ont aucune interconnexion et aucune connaissance globale de l’état du réseau et la couche haute est un contrôleur logiquement centralisé qui maintient une vue globale du réseau. La relation de cette distribution avec les algorithmes d’inclusion (« embedding algorithm ») [18], introduits dans le contexte des réseaux virtuels, semble prometteuse. De tels algorithmes, adaptés à une architecture SDN distribuée, pourraient représenter une solution automatique, susceptible d’apporter un bon compromis entre robustesse, distribution [19] et performance. Finalement, le problème de placement de serveur a été encore peu abordé. Par exemple, ce thème est abordé de manière très théorique dans [20], mais la problématique d’attachement des équipements aux différents contrôleurs n’est pas abordée. B. Chaînage de Services Le « service chaining » dans des environnements virtualisés est abordé dans différents groupes de (pré-)standardisation comme par exemple à l’IETF [21] ou au sein du groupe ETSI NFV (Network Function Virtualization) [1]. Ce dernier, fondé et animé par les plus gros opérateurs/fournisseurs de service réseau, poussent pour l’adoption des principes de virtualisation du monde de l’IT et du cloud par le monde du réseau. De toutes premières tentatives de « softwarisation » du réseau avaient été proposées, notamment via la virtualisation de commutateurs SDN [22]. Cependant, de nombreux champs restent à explorer comme par exemple l’optimisation conjointe du SDN et des services (placement des fonctions lors de la phase de design ou en temps-réel, actions/réactions dans le réseau en fonction des flux utilisateurs…) et l’automatisation du déploiement (échange de contexte, cohérence des politiques [23] …). L’idée est de construire une « boucle » de rétro-action pour l’optimisation du réseau virtualité et piloté par SDN. Il existe de nombreux outils pour la mesure de l’utilisation des ressources et la prévision des demandes par exemple [24,25]. Néanmoins, ces outils ne prennent en général pas compte les performances au niveau des applications. Afin de fermer la boucle, les algorithmes de composition de service [25-27], typiquement défini dans le cadre des services web, peuvent être étendue de manière à optimiser le chaînage de service réseaux, aussi bien du point de vue du service de l’utilisateur que du fournisseur de service. Ces optimisations sont généralement des problèmes très complexes. Nous pourrons étudier si la distribution de ces optimisations est possible, afin d’être plus simple à mettre en œuvre [28,29]. Des solutions heuristiques seront également explorées, comme par exemple les algorithmes génétiques. Il est parfois difficile d’obtenir des solutions efficaces en un temps raisonnable et/ou avec un faible échange d’information entre les équipements. De plus, la complexité des relations entre les différents facteurs mis en jeu rend difficile la recherche de solutions optimales (ou du moins efficaces). Dans ces conditions, des approches alternatives basées sur méthodes d’apprentissage (machine learning) [30] deviennent assez populaires. Ces techniques font l’objet de nombreuses études à l’heure actuelle, comme par exemple pour la classification du trafic [31], l’optimisation des data-centres [32] ou dans le contexte de réseaux sans-fils [33], mais n’ont pas (à notre connaissance) été appliquées au domaine de boucle d’optimisation pour les réseaux SDN. L’idée est de sélectionner stratégiquement les solutions efficaces et de s’adapter aux évolutions de l’environnement du réseau en fonction de paramètres mesurées localement, sans forcément connaître les relations complexes reliant ces paramètres. Une telle technique pourrait par exemple être judicieuse pour l’optimisation du placement de services en temps réel (ajout/retrait de fonctionnalités réseaux sur des machines virtuels sur certains points de présence), afin de s’adapter aux demandes des flux utilisateurs.