• Aucun résultat trouvé

Afin de répondre au mieux aux exigences d’un plan de contrôle virtuel, nous nous sommes basés sur un concept bien connu dans la communauté réseau qui est de faire une claire distinction entre les équipements de cœur et de bordure du réseau, comme c’est notamment le cas dans les architectures MPLS [Ghein, 2006]. Cette idée a été également évoquée

par[Casado et al., 2012] afin de faire évoluer les architectures SDN physiques actuelles vers

un modèle plus flexible. La nouveauté de notre proposition est que nous souhaitons faire remonter cette idée de conception des infrastructures du plan physique au plan virtuel. En effet, au meilleur de notre connaissance, aucun langage ou outil n’a encore intégré ce concept au niveau du plan virtuel ou même au niveau d’un plan de contrôle SDN.

Fab IO AC VoD DM PIO PAC DataFct h1 h2 Hx Net.A PFab

FIGURE20. Le modèle Edge-Fabric

Le modèle d’abstraction Edge-Fabric1 que nous proposons s’appuie sur quatre principaux types de composants, comme cela est schématisé à la figure20:

1. Dans la suite du document, nous utilisons la terminologie anglo-saxonne pour designer le modèle Edge-Fabric ainsi que ses composants (edges, data machines, etc.)

• Edges : composants virtuels qui supportent l’exécution des fonctions et des services réseaux complexes du plan de contrôle.

• Data machines : représentent des edges spécialisés qui effectuent des opérations complexes sur les paquets au niveau du plan de données.

• Fabrics : composants virtuels plus restreints qui se chargent principalement des problématiques liées au transport des paquets.

• Hosts and Networks : représentent les sources et destinations des paquets.

Ainsi, ce modèle permet, d’une part, une séparation claire entre les politiques de transport (ainsi que leurs exigences) et les services réseau plus complexes tels que le contrôle d’accès ou l’équilibrage de charge. D’autre part, la possibilité d’utiliser plusieurs équipements virtuels permet de répondre, si c’est nécessaire, aux différentes contraintes de l’infrastructure physique susceptibles de survenir. Dans ce qui suit nous présentons plus en détails chacun de ces composants virtuels et dans le chapitre suivant les primitives du langage AirNet qui permettent de les déclarer et de les configurer.

3.4.1 Edges

Dans notre modèle d’abstraction, les edges représentent des composants virtuels polyvalents disposés à la périphérie du réseau virtuel. De ce fait, ils seront, conceptuellement, connectés aux hôtes qui représentent les sources et destinations des paquets. Ainsi, les edges ont deux principales fonctionnalités :

• Interface hôte-réseau : interface par laquelle les hôtes informent le réseau de leurs besoins.

• Execution des fonctions réseaux : les edges offrent un support logique pour l’installation des services réseaux à valeur ajoutée, soit à l’entrée ou à la sortie de ce dernier.

Le rôle de l’interface hôte-réseau consiste principalement à identifier les différents flux qui entrent dans le réseau ainsi que leurs exigences. Cela est notamment réalisé en se basant sur les champs d’en-tête des paquets (source, destination, ToS, etc.). Concrètement, un edge examine les en-têtes des paquets entrant, puis attache à ces paquets une étiquette (label) qui sera par la suite utilisé pour l’acheminement au sein du cœur du réseau (la fabric). Ainsi, un edge doit fournir des primitives qui permettent, d’une part, de capturer et de discriminer les différents flux de paquets entrants et sortants et, d’autre part, de leur attribuer des étiquettes pour le transport à l’intérieur du réseau.

La deuxième fonctionnalité des edges est le support des fonctions réseaux complexes. En effet, le modèle Edge-Fabric suppose de cantonner l’intelligence du réseau à la périphérie et de garder son cœur simple, comme c’est déjà le cas dans beaucoup de cas d’utilisation réel[Casado et al., 2012]. Considérant cela, les edges devraient exposer un jeu d’instructions

riches, qui permet notamment aux administrateurs de spécifier leurs diverses fonctions réseaux telles que le contrôle d’accès ou l’inspection en profondeur des paquets. Dans le contexte de notre proposition, ces fonctions sont divisées en deux principaux types :

Chapitre 3 : Le modèle d’abstraction Edge-Fabric

• Statiques : fonctions qui seront installées et exécutées au niveau des commutateurs physique présents dans le plan de données, et vers lesquels un edge est associé. • Dynamiques : fonctions qui seront exécutées au niveau du contrôleur SDN (plan de

contrôle).

Enfin, les edges étant des composants logiques, ils peuvent dans la réalité mapper vers un ou plusieurs commutateurs physique de bordure, et de la même manière un commutateur physique peut être associé à un ou plusieurs edges logiques, comme cela est montré dans la figure21. Cette flexibilité est primordiale de sorte à être capable de considérer plusieurs contextes d’utilisation, divers choix de conception et aussi de pouvoir répondre à diverses contraintes de topologie physique comme par exemple que le fait de vouloir modéliser tous les points d’accès sans fils par un edge et les accès filaires par un autre.

E1 H Net E1 H Net E1 H Net Net Net E2 Net

a) Mapping un-à-un b) Mapping un-à-plusieurs c) Mapping plusieurs-à-un

s1

s1 s2

s1

Infrastructure physique

FIGURE21. Possibilités de mapping pour les edges

3.4.2 Data machines

Les data machines sont des edges spéciaux dont la seule particularité est que leurs fonctions sont toutes exécutées au niveau du plan de données. En effet, les data machines dans le plan virtuel sont semblables aux middleboxes qu’on retrouve communément dans les réseaux au niveau physique. Chaque data machine peut embarquer une ou plusieurs fonctions qui sont capables d’effectuer un traitement complexe sur les données que transportent un paquet tels que de la compression, du chiffrement ou du transcodage. Une date machine, comme les edges, peut aussi mapper vers une ou plusieurs machines physiques réelles.

Un autre aspect important des data machine est que, à l’inverse des edges classiques, elles ne participent aucunement au processus de prise de décision et de contrôle. En effet, ces machines opèrent exclusivement au niveau du plan de données, elles reçoivent en entrée un paquet et retourne en sortie un ou plusieurs paquets.

3.4.3 Fabrics

Les fabrics2 représentent des composants virtuels qui se chargent exclusivement de la logique de transport entre les edges et les data machines. Concrètement, une fabric représente une collection d’équipements de commutation physique de cœur de réseau dont le premier objectif est le transport des paquets d’un point à un autre.

Pour identifier un flux de paquets, une fabric se base exclusivement sur un label qui a été préalablement inséré par un edge, permettant ainsi de séparer les deux interfaces "hôte-réseau" et "réseau-réseau". Cette séparation est une des clés de modularité de ce modèle. En effet, un administrateur peut mettre à jour les fonctions qui sont appliquées sur un flux au niveau d’un edge et tant qu’il ne change pas le label qui leur a été attribué, la politique de transport au niveau de la fabric ne sera pas impactée. Inversement, un administrateur a aussi la possibilité d’effectuer des mises à jour dans les politiques de transport sans que cela impact ou nécessite un changement au niveau des politiques installées sur les edges.

Ainsi, les fabrics exposent un jeu d’instructions plus restreint comparé à celui des edges. Ces instructions incluent principalement des primitives qui permettent de transporter les flux d’un edge à un autre suivant des contraintes de QoS, mais aussi des primitives qui permettent de faire passer un flux par des data machines puis de le récupérer et de l’acheminer vers sa destination finale.

Communément, un réseau virtuel contiendra une seule fabric qui représentera ses capacités de transport. Néanmoins, un administrateur a aussi la possibilité d’utiliser plusieurs fabrics afin de prendre en considération des contraintes physiques ou des objectifs de contrôle de haut niveau, sachant que deux fabrics peuvent mapper vers un groupe de commutateurs commun ou distinct. En effet, l’utilisation des fabrics peut être pensée sous trois principales approches :

• Une seule fabric (Figure 22a) : approche similaire à celle du modèle One Big Switch par le fait qu’elle permet d’abstraire toutes les capacités de transport du réseau au sein d’une seule et unique fabric.

• Plusieurs fabrics en parallèle (Figure 22 b) : approche qui permet de distinguer plusieurs possibilités de transport au sein d’un réseau. Ce souhait peut être d’ordre conceptuel (politiques de haut niveau) ou en rapport à des contraintes physiques qu’un administrateur souhaite faire remonter au niveau virtuel.

• Une séquence de fabrics (Figure22c) : approche qui permet d’expliciter un chemin de transport qui est constitué de plusieurs tronçons différents. Cette différence peut-être la aussi d’ordre physique ou simplement conceptuel.

Enfin, il est à noter que, comme pour les edges, un administrateur a le choix entre plusieurs possibilités de mapping, notamment : un-à-un, un-à-plusieurs ou plusieurs-à-un. La seule contrainte qui existe est que les équipements physiques doivent être des équipements de cœur de réseau.

2. Comme indiqué précédemment, dans la suite du document nous écrivons fabric et non fabrique pour rester syntaxiquement cohérent avec le modèle Edge-Fabric

Chapitre 3 : Le modèle d’abstraction Edge-Fabric Fab E1 E2 H Net Fab1 E1 E2 H Net Fab2 Fab1 E1 E2 H Net GW Fab2

a) Réseau virtuel avec une seule fabric

b) Réseau virtuel avec deux fabrics en parallèle

c) Réseau virtuel avec deux fabrics en séquence

FIGURE22. Trois principales approches d’utilisation des fabrics

3.4.4 Hosts et Networks

Les hosts (hôtes) et les networks (réseaux) sont des composants qui permettent de représenter les sources et destinations des paquets. Un host représente une seule machine munie d’une adresse logique et physique alors qu’un network représente un sous-réseau logique composé d’une collection de machines. Notez que seuls des noms symboliques sont manipulés et non des adresses réseaux. Ces abstractions masquent donc divers détails techniques de bas niveau spécifiques aux machines hôtes, permettant ainsi aux administrateurs de manipuler, au sein de leurs programmes, des identifiants qui sont significatifs à leurs objectifs de haut niveau en lieu et place des traditionnelles adresses IP et MAC.