Routage dans le DataCenter
Dans une architecture traditionnelle "Three-Tier", la topologie est essentiellement contrôlée par des protocoles de niveau 2. Elle avait été mise au point en partant du principe que la quantité de flux nord-sud (utilisateur vers serveur) était supérieure à celle est-ouest (serveur vers serveur). Dans certains cas cette architecture reste toujours valable, mais le plus souvent certaines fonctionnalités comme le CDN (Content Delivery Network) ou le vMotion pour les serveurs virtuels génèrent des trafics est-ouest largement supérieurs. Dans l'architecture "Three-Tier", le dialogue entre des serveurs positionnés sur des commutateurs ToR (Top of Rack) différents doit passer par la distribution et/ou le cœur. Dans certains cas, le nombre de sauts peut même varier entre certains serveurs. Vous pouvez retrouver une synthèse des différentes topologies dans le chapitre "Gestion de la capacité" du livre "Méthodologies appliquées".
Lorsque le nombre de machines et les quantités de flux augmentent, cette architecture est mise en défaut. Même si les limitations liées au protocole STP (Spanning Tree Protocol) ont été contournées depuis longtemps à l'aide de la virtualisation des commutateurs et l'agrégation LACP IEEE 802.3ad, l'évolutivité en terme de gestion de la capacité reste très limitée.
Adaptée du modèle mis au point par Charles Clos au sein des laboratoires Bell dans les années 1950, l'architecture "Leaf-Spine" apporte un nouveau modèle mathématique.
L'architecture Clos propose un modèle construit autour d'un cœur statistiquement non-bloquant. Dans le modèle original, on retrouve trois niveaux : "Input" ou "Ingress", "Middle" et "Output" ou "Egress". Pour une application réseau, il est plus simple de représenter les niveaux "Ingress" et "Egress" comme étant équivalents sur un même plan. L'expansion des débits entre les serveurs positionnés sur des "Leaf" différents se fait par adjonction de "Spine".
En s'inspirant du cours "Packet Switch Architectures" de l'Université de Stanford, le modèle mathématique Clos peut se synthétiser de la façon suivante.
Sur le plan physique, chaque serveur est à trois sauts des autres, c'est pour cette raison que l'on parle de topologie "3-stage". Cette architecture peut s'agrandir horizontalement par adjonction de "Leaf" et de "Spine". Bien que des protocoles de niveau 2, tels que SPB (Shortest Path Bridging) ou TRILL (TRansparent Interconnection of Lots of Links), pourraient être utilisés sur le plan logique pour des petits DataCenters, il est préférable d'implémenter du niveau 3 avec tous les liens actifs et la recherche du meilleur chemin entre deux points.
Pour les DataCenters de taille raisonnable, un IGP (Interior Gateway Protocol) comme OSPF (Open Shortest Path First) ou ISIS (Intermediate System to Intermediate System) est une solution plus simple à implémenter et supporte plus nativement ECMP (Equal Cost MultiPath).
BGP (Border Gateway Protocol) est connu depuis des dizaines d'années comme gérant le routage dans internet, dont la particularité est la grande quantité de routes. Il est considéré comme un EGP (Exterior Gateway Protocol) à vecteur de chemin (path vector protocol). En d'autres termes, c'est un protocole à vecteur de distance avec des attributs supplémentaires. Bien qu'un peu plus complexe qu'un IGP, BGP s'avère bien adapté aux DataCenters demandant de prendre en compte un plus grand nombre de préfixes. Plus simple à implémenter et plus adapté à l'ECMP, eBGP (external BGP) possède des attributs offrant une meilleure visibilité.