Stage

Orchestration de réseaux virtuels dans un contexte fédéré

Équipes / Services concernés

Responsables

Khalil Drira

Date de publication

23.11.23

Le LAAS-CNRS, dans le cadre du projet SOFTANET, a développé une solution innovante d’optimisation et d’orchestration de réseaux fédérés. A partir d’un ensemble de réseau SDN interconnectés et orchestrés individuellement par des contrôleurs locaux, le système est capable de déterminer la composition optimale d’un slice réseau qui permettrait l’interconnexion d’un groupe d’utilisateurs. L’optimisation garantit que les critères demandés de QoS (débits, délais) sont respectés tout en répartissant au mieux la charge des liens pour maximiser les possibilités de déploiement de nouveaux slices. Ce résultat permet ensuite d’inférer un ensemble de règles de contrôle réseau (openflow), qui appliquées, génèreront la connectivité. Ces règles doivent être ensuite distribuées aux contrôleurs locaux qui auront en charge leur application. La première partie du stage, orientée ingénierie, consistera à développer ce processus de transformation et d’exécution des règles dans un environnement mixant l’émulation réseau et des matériels réels.  

Une fois la connectivité établie, un autre service plus prospectif, a été développé. Il s’agit du déploiement de réseaux overlay virtuels contrôlés. Plus simplement, l’initiateur de ce service peut demander le déploiement de commutateurs SDN virtuels dans ce réseau afin d’offrir le comportement d’un réseau contrôlable, mais sans mettre en péril l’infrastructure sous-jacente. La deuxième partie de ce stage, plus prospective, consiste à exploiter ce nouveau mécanisme pour déployer de nouveaux services applicatifs de contrôle (par exemple donner la priorité à certains flux du réseau dans certaines conditions ou couper une branche du réseau qui pourraient être corrompue par une attaque). On souhaiterait aussi comparer cette approche aux approches récentes de « multi-tenant » telles que celles proposées par la plateforme OpenVirtex. 

Le candidat devra posséder des connaissances approfondies en réseau et en programmation (Python, C++ ou Java).