Projet TouSIX - Aspects techniques
Le projet TouSIX (Toulouse SDN Internet eXchange) a pour but d'intégrer des solutions SDN dans le point d'échange existant.
L'intérêt de mettre en place des solutions SDN dans ce type de réseau permet dans un premier temps de régler en partie les problèmes rencontrés par les points d'échange Internet.
Euro-IX a permis de relever les exigences et les services souhaités pour un IXP. Sur les parties concernant le monitoring et le contrôle des ports, il est possible de constituer un palliatif à travers un SDN.
Nous avons par exemple les statistiques par Ethertype qui peuvent être relevés à l'aide de règles bien spécifiques. De plus, ces statistiques seront plus précises que des solutions qui reposent sur de l’échantillonnage comme sFlow.
Une autre utilisation peut être de limiter les entrées des ports par une liste de règles. Ces règles vont vérifier la présence de certains champs. On peut autoriser par exemple une liste d'adresses MAC à pouvoir être redirigées vers un port spécifique pour du monitoring.
Dans un deuxième temps, cela nous permet de pouvoir proposer des services supplémentaires pour un point d'échange Internet.
Ce sont quelques exemples parmi tant d'autres possibilités qui nous sont ouverte avec ce projet.
La situation actuelle du réseau de TouIX permet de rendre ce projet possible. La taille du réseau (comprenant peu d’équipements et une douzaine de membres) permet encore à l’IXP d'être flexible, contrairement à d'autres structures opérationnels, qui ont des topologies complexes et possèdent un grand nombre de membres.
Schéma de la topologie actuelle
En rouge les liens qui sont considérés comme actifs, qui seront privilégiés pour le transit.
En bleu sont représentés les liens de secours.
Vu qu'il est possible d'utiliser plusieurs liens entre le POP de Cogent et celui de TLS00, nous avons fait le choix d’agréger deux liens pour augmenter la disponibilité entre les deux switches.
Le trafic qui transite sur le réseau est représentatif des règles qui ont étés appliques sur les switches. Seules les machines été déclarées par les membres, ainsi que le type de trafic autorisé sur le réseau circulent. Toute trame qui ne correspond pas à la configuration des switches est automatiquement ignorée en bordure de réseau.
La partie administraion de la topologie est basé sur le réseau historique de TouIX. Elle abrite notamment l'outil de gestion du réseau TouSIX-Manager.
TouSIX-Manager
L'objectif initial de ce logiciel est de proposer une plate-forme capable de pouvoir gérer la nouvelle architecture TouSIX.
Cela se traduit par plusieurs objectifs:
- Maintenir cette architecture en production le plus longtemps possible sans intervention humaine.
- Simplifier la gestion du point d'échange en proposant des interfaces utilisateurs simples.
- Permettre l'ajout de services supplémentaires liées aux technologies SDN via l'utilisation d'OpenFlow.
Ci-dessous, nous avons une vue représentant les différents blocs fonctionnels qui ont été construits:
Il y a donc deux grandes composantes qui sont compris dans la solution : Un contrôleur OpenFlow personnalisé (Ryu) et une collection d'applications web fortement liées entre elles.
Le premier bloc correspondant au contrôleur a plusieurs objectifs :
- Améliorer l'autonomie du point d'échange en proposant des solutions de contrôle de l'état du réseau
- Proposer une interface pour gérer la modification des règles (REST API)
- Notifier les application web d'évènements survenant dans le réseau (monitoring, alertes...)
Ce contrôleur est basé sur Ryu, et comporte des applications fonctionnant en parallèle qui remplissent les objectifs cités au-dessus.
Le deuxième bloc est l'endroit qui rassemble le plus d'intelligence.
On peut regrouper les applications qui la composent en quatre grandes parties:
- Une partie qui va gérer les membres présents sur TouSIX. Son rôle reste en grande partie administrative (gestion des accès aux pages, mise à jour des formulaires...)
- La gestion des statistiques relevés sur le réseau. Celle-ci comprend la réception des données et le traitement avant l'envoi aux utilisateurs.
- Une fonction de génération de configuration BGP. Celle-ci sera généré à partir du contenu de la base de données. Elle sera déployé sur les serveurs de routage utilisant BIRD.
- La génération et le déploiement des règles OpenFlow. Elle se base sur la topologie et la déclaration des membres effectués dans la base de données.
Les principaux travaux qui ont été effectués pour cette solution se situent au dessus du contrôleur. Ceci permet d'éviter d'être liée à une seule solution de contrôleur. Mais aussi de privilégier les couches d'abstraction hors du contrôleur.
Le code source est disponible à cette adresse:
https://github.com/umbrella-fabric/TouSIX-Manager