Académique Documents
Professionnel Documents
Culture Documents
Projet de Fin D'Etudes: Diplôme D'ingénieur D'etat en Génie Télécommunications Et Réseaux
Projet de Fin D'Etudes: Diplôme D'ingénieur D'etat en Génie Télécommunications Et Réseaux
Télécommunications et Réseaux
REMERCIEMENTS
Mes sincères remerciements vont aux personnes qui ont contribué de près ou de loin au bon
déroulement et à l’aboutissement de ce projet de fin d’études.
Il me serait impossible de ne pas dire un grand MERCI à ma famille : mes chers parents, mon
cher frère, mes chères sœurs et mes amis pour leur soutien et leurs encouragements qu’ils
n’ont pas cessés de me témoigner, tout au long de cette période, parfois très difficile. Il est sûr
que sans leur présence, je ne serais pas arrivé à mener à bout ce projet de fin d’études.
Je voudrais par la même voix remercier amplement les membres de jury qui ont bien voulu
me faire l’honneur d’évaluer et d’apprécier ce travail.
Page I
Résumé
RESUME
Les technologies sous-jacentes ont été évoluées, mais la gestion des réseaux est demeurée
stagnante pendant des décennies. En général, les réseaux qui sont conçus et entretenus
manuellement ne sont plus efficaces pour répondre aux besoins actuels en termes de rapidité
et facilité de gestion.
Par ailleurs, l’automatisation des ressources réseaux et de la gestion des services apporte aux
équipes opérationnelles de multiples avantages concrétisés par l’agilité et la souplesse. Dans
ce sens le SDN (Sofware-Defined Networking) est présenté comme la solution conçue pour
rendre les infrastructures réseaux plus flexibles et plus faciles à gérer. En effet, cette
technologie assure une gestion centralisée et automatique des équipements réseaux, en
ajoutant un niveau d'abstraction à l’infrastructure. La séparation des parties décisionnelles et
opérationnelles autorise une grande souplesse dans le déploiement, l’évolution et
l’automatisation à travers des API (Interfaces de Programmation d'Applications), notamment les
APIs REST.
A cet égard, le groupe OCP a déployé une nouvelle infrastructure basée sur l'offre CISCO
ACI (Application Centric Infrastructure), comme une solution SDN fourni par CISCO. Cette
solution implique un point de contrôle central s’appelle APIC pour la gestion du réseau. Par
lequel, toutes les opérations du réseau sont effectuées en utilisant une interface qu'il expose.
Cette interface est généralement une API REST et permet la programmation du réseau et
l'intégration avec d'autres systèmes.
L’objectif ultime du présent Projet de fin d’étude est la mise en place d’une application Web
de gestion et d’automatisation du réseau permettant à l’APIC d’effectuer toutes les opérations
du réseau. Afin d’avoir une meilleure mise en place de ce projet, l’application est tenu de
fournir des interfaces faciles à utiliser par l’administrateur réseaux, assurer la réduction de
temps moyen d’exécution des tâches et réduire au maximum la complexité des opérations
effectuée.
Mots-clés : Automatisation des réseaux, SDN, Plan de contrôle distribué, Plan de contrôle
P a g e II
Résumé
centralisé, CISCO ACI, APIC, Spine, Leaf, Application Web, CRUD, API REST, URI.
Page
III
Abstract
ABSTRACT
The underlying technologies have evolved, but network management has remained stagnant
for decades. In general, networks that are manually designed and maintained are no longer
effective in meeting today's needs for speed and manageability.
On the other hand, the automation of network resources and service management brings
multiple benefits to operational teams in terms of agility and flexibility. In this sense, SDN
(Software-Defined Networking) is presented as the solution designed to make network
infrastructures more flexible and easier to manage. Indeed, this technology ensures centralized
and automatic management of network equipment, adding a level of abstraction to the
infrastructure. The separation of the decisional and operational parts allows great flexibility in
deployment, evolution and automation through APIs (Application Programming Interfaces),
especially REST APIs.
In this regard, OCP Group has deployed a new infrastructure based on the CISCO ACI
(Application Centric Infrastructure) offering, as an SDN solution provided by CISCO. This
solution involves a central control point called APIC for network management. Through
which, all network operations are performed using an interface that it exposes. This interface
is usually a REST API and allows the programming of the network and the integration with
other systems.
The ultimate goal of this Final Year Project is the implementation of a Web-based network
management and automation application allowing APIC to perform all network operations. In
order to have a better implementation of this project, the application is required to provide
easy- to-use interfaces for the network administrator, ensure the reduction of average task
execution time and reduce the complexity of the operations performed.
1.1 Introduction..............................................................................................................................................4
1.2 Présentation du groupe OCP....................................................................................................................4
1.3 Fiche signalétique....................................................................................................................................5
1.4 Organigramme de l’entreprise.................................................................................................................5
1.5 Service réseaux et télécom RT................................................................................................................6
PARTIE 2 : CONTEXTE GENERAL DU PROJET............................................................................................................... 7
P a g e IV
Table des matières
4.2. API-REST..........................................................................................................................................32
4.2.1 Contraintes architecturales REST.................................................................................................33
4.2.2 API REST et HTTP.......................................................................................................................35
4.3. Exemple d'appel d'API REST au serveur APIC de Cisco.................................................................39
4.4. Sérialisation des données et JSON....................................................................................................41
4.4.1 L’envoie des variables d'un programme.......................................................................................41
4.4.2 Comparaison entre les langages de sérialisation des données......................................................42
5. Conclusion.............................................................................................................................................45
CHAPITRE 3 : MISE EN PLACE DE L’APPLICATION DE GESTION ET D’AUTOMATISATION DU
RESEAU.................................................................................................................................................................46
1. Introduction............................................................................................................................................47
2. Etude préalable et discussion des besoins..............................................................................................47
2.1. Critique de l'existant..........................................................................................................................47
2.2. Exemple de création d’une politique : création d’un vlan sous un pool...........................................47
2.2.1. L’ouverture d’une session avec l’ACI..........................................................................................47
2.2.2. Création d’un VLAN sous un VLAN pool...................................................................................49
2.3. Discussion des besoins......................................................................................................................50
2.3.1. Spécification des besoins..............................................................................................................50
2.3.2. Besoins fonctionnels.....................................................................................................................50
2.3.3. Besoins non fonctionnels..............................................................................................................51
3. Conception de l’application...................................................................................................................51
3.1. Diagramme de cas d'utilisations........................................................................................................51
3.1.1. Cas d’utilisation de menu ACI......................................................................................................52
3.1.2. Cas d’utilisation de menu Gestion................................................................................................53
3.2. Diagramme de séquence....................................................................................................................54
3.2.1. Le diagramme de séquence « Authentification »..........................................................................54
3.2.2. Le diagramme de séquence « Création d’un VLAN sous un pool »............................................55
4. Mise en place de l’application...............................................................................................................56
4.1. Technologies de développement........................................................................................................56
4.1.1. Outils techniques...........................................................................................................................56
4.1.2. Technologies et Framework..........................................................................................................57
4.2. Déploiement de l’application.............................................................................................................58
4.2.1. Déploiement classique...................................................................................................................58
4.2.2. Déploiement distribué...................................................................................................................58
4.3. GRIFAPIC : une application Web d’automatisation et de gestion de réseaux..................................58
4.3.1. La page d’authentification.............................................................................................................59
4.3.2. Menu Dashboard...........................................................................................................................59
4.3.3. Menu ACI.....................................................................................................................................61
4.3.4. Menu Gestion................................................................................................................................66
5. Conclusion.............................................................................................................................................66
CONCLUSION GENERALE...............................................................................................................................67
BIBLIOGRAPHIE................................................................................................................................................69
ANNEXE 1.............................................................................................................................................................71
ANNEXE 2.............................................................................................................................................................72
ANNEXE 3.............................................................................................................................................................73
Page V
Liste des tableaux
P a g e VI
Liste des figures
P a g e VII
Liste des figures
P a g e VIII
Liste des abréviations et symboles
CRUD Create Read Update Delete VRF Virtual Routing and Forwarding
IP Internet Protocol
IR Infrastructures Réseaux
IT Information Technology
MO Management Object
P a g e IX
Glossaire
GLOSSAIRE
ACI
un centre de données Cisco qui utilise
La solution SDN pour centre de données de
l'approche ACI.
Cisco, les concepts de définition de politiques
que le contrôleur APIC transmet ensuite aux CRUD
commutateurs du réseau à l'aide du protocole Dans le développement de logiciels, un
OpFlex, le plan de contrôle partiellement acronyme qui fait référence aux quatre actions
distribuer de chaque commutateur créant les les plus courantes effectuées par un programme
entrées de la table de transfert pour prendre en : Créer, Lire, Mettre à jour et Supprimer.
charge les politiques apprises du contrôleur. Il
prend également en charge une GUI, une CLI OpenFlow
et des API. Le standard ouvert pour le Software-Defined
Networking (SDN) tel que défini par l'Open
Ansible Networking Foundation (ONF).
Une application de gestion de configuration
populaire, qui peut être utilisée avec ou sans OpFlex
serveur, utilisant un modèle de poussée pour Le protocole sud utilisé par le contrôleur Cisco
déplacer les configurations dans les dispositifs, ACI et les commutateurs qu'il contrôle
avec de fortes capacités pour gérer les
REST
configurations des périphériques réseau
Un type d'API qui permet à deux programmes
API qui qui résident sur des ordinateurs distincts de
Un mécanisme logiciel qui permet aux communiquer, avec un ensemble de six
composants de communiquer entre eux attributs API primaires tels que définis au
début de ce siècle par son créateur, Roy
API RESTfull Fielding. Ces attributs sont l'architecture
Toute API qui utilise les règles du REST client/serveur, le fonctionnement sans état, la
possibilité d'être caché, les interfaces
APIC
uniformes, les couches et le code à la demande.
Le logiciel qui joue le rôle de contrôleur, en
contrôlant les flux que les commutateurs créent
pour définir où les trames sont transmises, dans
Page X
Introduction générale
INTRODUCTION GENERALE
Dans le modèle traditionnel d'exploitation et de contrôle des réseaux, les ingénieurs réseau
configurent manuellement divers appareils et apportent des modifications. Ils sont
responsables de la planification et de la mise en œuvre de la configuration distribuée des
appareils, appareil par appareil, pour implémenter le réseau. Cela nécessite un long délai pour
planifier et mettre en œuvre les changements. Aujourd'hui, tous les départements
informatiques sont sous pression pour fournir aux clients finaux une plus grande agilité et de
meilleures performances. Par exemple, les entreprises veulent que l'infrastructure lance de
nouvelles applications le plus rapidement possible. Pour y répondre, l'infrastructure doit
s'adapter rapidement et automatiquement aux besoins applicatifs.
L'automatisation des réseaux élimine les étapes manuelles de gestion des services, telles que
la connexion aux routeurs et commutateurs pour modifier la configuration avant de se
déconnecter. Elle permet aux ingénieurs réseau et les opérateurs de mettre en œuvre les
changements plus rapidement, avec une meilleure cohérence et meilleures pratiques
opérationnelles.
Les années 2010 ont vu l'introduction d'un nouveau modèle opérationnel de réseau : le
Software Defined Networking (SDN). Le SDN est une approche visant à rendre les réseaux
plus flexibles et plus agiles à travers le découplage du plan de contrôle sur le plan de données.
À ce jour, le SDN est mondialement reconnu comme une architecture qui permet aux
applications de programmer le réseau pour accélérer son déploiement et d’offrir une meilleure
visibilité sur le réseau. Il n'existe donc pas de SDN unique. Chaque fournisseur conçoit son
SDN en fonction de ses propres intérêts [1].
Page 1
Introduction générale
en réseau, ces derniers étant chargés de les mettre en œuvre. En particulier, les contrôleurs
permettent aux programmes de configurer et d'exploiter automatiquement les réseaux par le
biais d'interfaces de programmation d'applications (API) puissantes.
Dans ce cadre, le groupe OCP a déployé une nouvelle infrastructure basée sur l'offre CISCO
ACI. Alors, selon le contexte de stage effectué au sein de service réseau du siège social du
groupe OCP, l’objectif du présent projet est la mise en place d’une application Web
d’automatisation et de gestion de réseau adaptée à la solution CISCO ACI. Cette application
Web présente l’interface utilisé pour effectuer toute les configurations au niveau du contrôleur
ACI, par son API REST (Representational State Transfer). La rapidité, la disponibilité et la
simplicité d’utilisation, sont les conditions que l’application doit assurer, pour arriver à une
meilleure implémentation du projet.
En dernier chapitre, nous aborderons la mise en place de l’application Web. Pour cela,
nous allons commencer par la détermination des besoins à travers une étude de
l’existant. Par la suite, on va se focaliser sur la conception à l’aide des outils UML et la
présentation des technologies utilisées, afin d’arriver à l’explication des différentes
interfaces de l’application réalisée.
Page 2
Chapitre I
Le groupe L’Office Chérifien des Phosphates est l’un des leaders mondiaux sur le
marché du phosphate et des produits dérivés. Il est un acteur de référence incontournable sur
le marché international depuis sa création en 1920 [3]. Présent sur toute la chaine de valeur,
l’OCP extrait, valorise et commercialise du phosphate et des produits dérivés, acide
phosphorique et engrais. Il est le premier exportateur mondial de roches et d’acide
phosphorique, et l’un des plus importants producteurs d’engrais. L’OCP maîtrise toute la
chaîne de création de valeur de l’industrie phosphatière : extraction et traitement du minerai,
transformation de cette matière première en un produit liquide intermédiaire : l’acide
phosphorique, et fabrication des produits finis par concentration et granulation de cet acide ou
par purification : engrais et acide phosphorique purifié. La variété et la qualité des sources des
phosphates contenus dans le sous- sol marocain, parmi les plus importantes au monde,
assurent la richesse de la gamme de produits offerts par OCP. Sa stratégie commerciale repose
notamment sur un portefeuille de produits innovants et de qualité, adaptés à la diversité des
sols et des variétés végétales. Sa capacité industrielle massive, couplée à la flexibilité de son
appareil productif, lui assure une structure de coûts optimale.
Présence mondiale
L’OCP a des filiales dispatchées dans les différents coins dans les cinq continents du
monde. Ses filiales sont bel et bien des bureaux OCP, des bureaux pour les représentations
commerciales ou bien des unités de production.
Présence nationale
Le groupe OCP a plusieurs sites situés aux différents emplacements du royaume,
Page 4
Chapitre I : Présentation de l’organisme d’accueil et de PFE
Casablanca, Jorf Lasfar, Safi, Khouribga, Benguerir, Youssoufia, Laâyoune et Boucraâ. Ces
sites sont principalement des unités d’extraction (sites miniers), ou bien des unités de
transformations chimiques (production d’acide phosphoriques, d’engrais, laverie …).
1.3 Fiche Signalétique
Ce stage a été effectué au sein du siège social du groupe OCP dans le service réseaux et
télécoms. La figure 1 représente l’organigramme de la direction du siège de Casablanca.
Page 5
Chapitre I : Présentation de l’organisme d’accueil et de PFE
Les technologies sous-jacentes ont en grande partie évolué, mais la gestion des réseaux
est demeurée stagnante pendant des décennies. En général, les réseaux sont conçus et
entretenus manuellement. Cependant, les approches traditionnelles et manuelles de
configuration et d'actualisation des réseaux à ce jour sont lentes et sujettes à l'erreur. Par
conséquent, ils ne sont pas efficaces pour répondre aux demandes d'une charge de travail en
constante évolution. L'automatisation des ressources réseaux et de la gestion des services
permet aux équipes opérationnelles de réseau de gagner en agilité et en souplesse, tout en
satisfaisant de manière efficace les exigences des entreprises modernes.
2.2 Problématique
Page 7
Chapitre I : Présentation de l’organisme d’accueil et de PFE
Le besoin exprimé par notre service est la mise en place d’une application Web de
gestion et d’automatisation du réseau en vue de faciliter le travail de l’administrateur réseau et
obtenir un meilleur contrôle et une visibilité optimale sur les ressources réseau.
Pour une meilleure mise en place du ce projet, on doit aborder les points suivants :
Après avoir répondu aux principales questions à citer : Quel est l’objectif que l’on
recherche ? Quel est le planning ? Il s’avère primordial de rédiger la charte de projet, qui se
veut un aperçu détaillé du projet, permet à toutes les parties concernées (intervenants) de
parvenir à une entente et de décrire les principaux aspects comme les objectifs, la portée et les
ressources nécessaires [4]. Le tableau 2 présente la charte de notre projet.
Page 8
Chapitre I : Présentation de l’organisme d’accueil et de PFE
Date : 12/04/2022
Charte du projet
Page : 1/1
Afin de garantir le bon déroulement de n’importe quel projet, il faut s’assurer dans un
premier lieu d’une organisation rigoureuse et efficace de l'équipe projet. Pour cela, après avoir
lancé le projet, une équipe a été construite. Cette équipe est composée de membres de
Page 9
Chapitre I : Présentation de l’organisme d’accueil et de PFE
2.6 Planification
P a g e 10
Chapitre I : Présentation de l’organisme d’accueil et de PFE
2.7 Conclusion
Ce chapitre introductif est une mise dans le contexte du projet. Nous avons donné un
aperçu général sur l’organisme d’accueil. Ensuite, nous avons présenté le cadre général du
projet y compris la problématique et la démarche que nous allons utiliser lors du traitement de
notre sujet. Le chapitre suivant, portera principalement sur l’état de l’art de la solution
d’automatisation CISCO ACI et les besoins théoriques nécessaires sur les APIs RESTpour la
réalisation de notre application Web.
P a g e 11
Chapitre II
1. Introduction
Aujourd'hui, tous les services IT subissent des pressions pour offrir une plus grande
souplesse et un meilleur rendement aux clients finaux. Pour répondre à ces besoins, les
infrastructures doivent s'adapter de manière rapide et automatique aux besoins applicatifs.
C'est pourquoi le Software Defined Networking (SDN) a vu le jour.
L’objectif principal de ce chapitre, est de présenter en premier lieu le SDN, et traiter par
la suite Cisco ACI comme une solution SDN fournie par CISCO. Finalement nous allons se
concentre sur les interfaces de programmation d'applications (API), plus précisément les API
REST (Representational State Transfer).
Au cours des dix dernières années, les réseaux définis par logiciel (SDN) et la
programmabilité ont introduit une approche différente de la construction et de la gestion des
réseaux informatiques. Le SDN est une approche visant à rendre les réseaux plus flexibles et
plus agiles. La fondation Open Networking a initialement défini le SDN comme une solution
qui dissocie le plan de contrôle et le plan de données, permettant au plan de contrôle de
devenir directement programmable [6].
A ce jour, le SDN est mondialement reconnu comme une architecture qui ouvre le
réseau aux applications. Celle-ci intègre les deux aspects suivants : permettre aux applications
de programmer le réseau pour accélérer son déploiement ; offrir une meilleure visibilité sur le
réseau. Il n'existe donc pas de SDN unique avec une solution ou un protocole unique. Chaque
fournisseur conçoit son SDN en fonction de ses propres intérêts. Un SDN implique
généralement un point de contrôle central pour la gestion du réseau appelé contrôleur, par
lequel, toutes les opérations du réseau sont effectuées soit en utilisant une interface graphique,
soit une interface qu'il expose. (Voir figure 4). Cette interface (Northbound API) est
généralement une API REST qui permet la programmation du réseau et l'intégration avec
d'autres systèmes. De même, le contrôleur communique avec les périphériques du réseau au
moyen d'une interface appelée "Southbound API", En utilisant des protocoles tels que
OpenFlow, RESTCON et OpFlex.
P a g e 13
Chapitre II : La solution Cisco ACI et les API REST
Le contrôleur SDN
En effet, Un contrôleur centralisé contrôle tous les périphériques du réseau, qui sont
chargés de transmettre les paquets d'une interface à une autre selon des règles établies. Pour
cela, le SDN s'appuie sur différents protocoles dont le plus connu est OpenFlow. Ces
protocoles permettent la communication entre les contrôleurs et les périphériques réseau.
La figure 5, montre le routage des paquets entre deux réseaux distants via une
implémentation SDN utilisant le protocole OpenFlow. Dans l'approche SDN, la charge de
calcul associée au contrôle est largement supprimée du routeur. Le routeur différencie le
paquet et détermine qu'il sort de l'interface, mais ce comportement provient des règles
publiées par le contrôleur.
L'interface Northbound (NBI) d'un contrôleur ouvre le contrôleur afin que ses données
et ses fonctions puissent être utilisées par d'autres programmes, permettant la programmation
du réseau, avec un développement beaucoup plus rapide. Les programmes peuvent extraire
des informations du contrôleur en utilisant les APIs de ce dernier. Les NBIs permettent
également aux programmes d'utiliser les capacités du contrôleur pour programmer des flux
dans les dispositifs en utilisant les SBIs du contrôleur.
P a g e 15
Chapitre II : La solution Cisco ACI et les API REST
Pour bien comprendre le sujet des NBI, voici une brève explication d'une API REST
utilisée pour un contrôleur. REST (Representational State Transfer) décrit un type d'API qui
permet aux applications de s'installer sur différents hôtes, en utilisant des messages HTTP
pour transférer des données sur l'API. Lorsque l'application s'exécute sur un système différent,
quelque part dans le réseau, et non sur le contrôleur, l'API a besoin d'un moyen d'envoyer les
données dans les deux sens sur un réseau IP, et les API REST répondent à ce besoin. La
figure 6 illustre les grandes idées avec une API REST. L'application s'exécute sur un hôte
situé en haut de la figure 6. Dans ce cas, à l'étape 1, elle envoie une requête HTTP GET à un
URI particulier (Les concepts de GET et d'URI seront expliqués plus loin dans ce chapitre).
Toutefois, l'URI ne correspond pas à une page Web, mais identifie plutôt un objet du
contrôleur, généralement une structure de données que l'application doit apprendre puis
traiter. Par exemple, l'URI peut identifier un objet qui est la liste des interfaces physiques d'un
périphérique spécifique ainsi que l'état de chacune d'elles.
Figure 6: Exemple de processus d'un GET utilisant une API REST [7].
P a g e 16
Chapitre II : La solution Cisco ACI et les API REST
L'ACI est basé sur un modèle de politique qui dissocie la conception du réseau de
l'infrastructure physique et se concentre sur les besoins (réseau, sécurité et services) des
applications, et permet aux exigences des applications d'être définies comme des politiques.
Dans l'ACI, chaque aspect de la congestion du réseau est défini par des politiques qui
décrivent comment le système doit se comporter.
P a g e 17
Chapitre II : La solution Cisco ACI et les API REST
Les deux principaux composants de l'ACI sont les commutateurs Nexus L3 câblés selon
une topologie en forme Leaf-Spine pour l'infrastructure de commutation physique,
et l'Application Policy Infrastructure Controller (APIC) pour la gestion centralisée du réseau
et la surveillance en temps réel de son état. L'APIC expose les fonctionnalités de la structure
ACI par le biais d'une API REST prenant en charge les payloads JSON et XML, et permet
l'intégration avec les logiciels de cloud computing (par exemple Google Cloud Platform,
AWS), les logiciels de virtualisation (par exemple VMware vCenter) et les logiciels
d'automatisation (par exemple Terraform, Ansible). Les ingénieurs peuvent également
communiquer avec l'APIC par le biais d'une interface graphique Web offrant une vue
d'ensemble de la structure ACI ou par le biais de scripts personnalisés.
Dans un système de contrôle impératif, le contrôleur reçoit les demandes de l'API nord
et indique aux périphériques du réseau comment ils doivent être configurés. En d'autres
termes, le contrôleur indique explicitement aux commutateurs comment gérer le trafic réseau
en leur envoyant les commandes ou instructions exactes pour effectuer le changement. Le
protocole Openflow utilise une approche impérative.
Le contrôle déclaratif utilise les concepts de la théorie des promesses, un modèle basé
sur des objets intelligents qui prennent en charge les changements d'état de la configuration
initiés par un contrôleur central. Ces objets intelligents sont également chargés d'informer le
système central des anomalies et des exceptions. Dans la commande déclarative, le contrôleur
demande aux commutateurs d'atteindre un état souhaité, mais ne leur dit pas précisément
comment le faire. Dans son sens, OpFlex est un système axé sur les politiques utilisé pour
gérer un grand nombre de dispositifs. Il fonctionne en abstrayant les politiques et s'appuie sur
des dispositifs intelligents et autonomes pour les interpréter, d'où le contrôle déclaratif.
définitions de politiques à
P a g e 19
Chapitre II : La solution Cisco ACI et les API REST
travers l'infrastructure. Il n'existe actuellement aucun protocole standard sur tous les
commutateurs physiques et virtuels, les routeurs et les services réseau des couches 4 à 7 pour
y parvenir. Et c'est ce vide qui a conduit au développement de "OpFlex" [9].
L'architecture Leaf-Spine est devenue la norme dans le déploiement actuel des réseaux
de centres de données, en surmontant certaines des limites des architectures traditionnelles.
L'architecture leaf-Spine, comme son nom l'indique, comprend des commutateurs Spine
et Leaf. L’infrastructure de type Fabric Leaf-Spine composée de commutateurs de la série
Nexus 9000. Tous les appareils de la fabrique sont connectés via une liaison 40G, qui peut
être mise à niveau vers 100G. Dans cette conception, comme la figure 8 montre :
P a g e 20
Chapitre II : La solution Cisco ACI et les API REST
Les schémas de trafic dans le centre de données peuvent être divisés en deux catégories
: le trafic nord-sud (ou vertical) et le trafic est-ouest (ou latéral).
Le trafic est-ouest domine dans les réseaux des centres de données, ce qui est souligné
par Cisco dans le Global Cloud Index 2015-2020 [12]. Cette augmentation du trafic est-ouest
est due à de multiples facteurs.
Tout d'abord, la façon dont les applications sont développées a changé. Pendant
longtemps, le modèle typique était l'application monolithique. Il s'agit d'une seule grande
application composée de plusieurs sous-systèmes ou capacités. Avec une application
P a g e 21
Chapitre II : La solution Cisco ACI et les API REST
monolithique, le trafic est généralement nord-sud. De nos jours, les applications ont tendance
à être décomposées en plusieurs composants appelés services, ce qui permet de développer et
de déployer chaque service indépendamment des autres. C'est le modèle des micro-services.
Si une application Web est déployée dans un centre de données et elle est construite autour de
l'architecture micro-service, une seule requête à l'application peut nécessiter la
communication de plusieurs services entre eux, ce qui génère des flux de trafic latéraux
puisque les services peuvent probablement résider dans des end-points différents.
Une topologie Spine-Leaf gère mieux le trafic latéral et offre une meilleure évolutivité.
Cette architecture raccourcit les chemins de communication entre deux end-points. En effet, le
trafic provenant d'un end-point est toujours au même nombre de sauts de sa destination
puisque les Leafs sont entièrement maillées avec les Spines. Par conséquent, la latence du
trafic est- ouest est plus faible et prévisible.
Redirection du trafic
Le champ VLAN ID inclus dans l'en-tête Ethernet est long de 12 bits, ce qui permet
4096 possibilités. Il est donc possible d'utiliser 4096 VLAN différents sur un même appareil.
Cependant, cela induit certaines limitations pour les réseaux de centres de données. 4096
VLANs, cela semble beaucoup, mais ce n'est pas suffisant dans un environnement cloud
hébergeant l'infrastructure réseau de centaines de clients. Ensuite, l'utilisation d'approches
traditionnelles comme le protocole Spanning Tree pour construire une topologie sans boucle
peut entraîner un grand nombre de liens désactivés pour un réseau L2 couvrant l'ensemble du
centre de données. D'où l'introduction du réseau local extensible virtuel (VXLAN) disponible
dans le RFC 7348 [13]. L’ACI apparaît au monde extérieur comme un commutateur unique et
P a g e 22
Chapitre II : La solution Cisco ACI et les API REST
À l'entrée, l'ACI encapsule les paquets VLAN externe, VXLAN et NVGRE dans un
paquet VXLAN. La figure 10 illustre la normalisation de l'encapsulation ACI. Il traverse
ensuite la fabrique en deux sauts au plus. À sa sortie, le trafic est décapsulé.
Tous les nœuds de commutation contiennent une copie complète du modèle concret.
Lorsqu'un administrateur crée dans l'APIC une politique qui représente une configuration,
P a g e 24
Chapitre II : La solution Cisco ACI et les API REST
l'APIC met à jour le modèle logique. L'APIC effectue ensuite l'étape intermédiaire de création
d'une politique entièrement élaborée qu'il pousse dans tous les nœuds de commutation où le
modèle concret est mis à jour.
L'APIC dispose bien sûr d'une interface graphique pratique, mais la puissance réside
dans le contrôle logiciel, c'est-à-dire dans la programmation du réseau. Le même logiciel de
virtualisation, ou le même logiciel de cloud ou d'automatisation, voire des scripts écrits par
l'ingénieur réseau, peuvent définir les EPGs, les politiques, etc. Mais tous ces acteurs accèdent
au système ACI en s'interfaçant à l'APIC, comme le montre la figure 13 ; l'ingénieur réseau
n'a plus besoin de se connecter à chaque commutateur individuel et de configurer les
commandes CLI.
P a g e 25
Chapitre II : La solution Cisco ACI et les API REST
Les composants physiques et logiques qui composent la structure ACI sont enregistrés
dans une structure hiérarchique appelée arbre d'informations de gestion (Management
Information Tree : MIT). Chaque nœud de la MIT est un objet géré (Managed Object : MO)
qui est une abstraction d'une ressource de la fabrique.
Le modèle de politique (policy model) est une structure de données orientée objet
composée d'objets gérés qui sont des instances de classes. Un MO peut représenter un objet
physique tel qu'un commutateur, ou un objet logique tel qu'un EPG. Chaque MO est identifié
par un nom distinctif (Distinguished-Name : DN), et contient les propriétés (relations
enfant/parent, attributs de l'objet, etc.) qui composent l'objet.
Le Northbound REST API de l'APIC est en fait une interface vers le MIT permettant
des opérations CRUD (création, lecture, mise à jour et suppression) sur les MO.
La manipulation des MOs dans le modèle, libère les ingénieurs de la tâche d'administrer
des configurations de composants isolés et individuels. Ces caractéristiques permettent
l'automatisation et le provisionnement flexible des charges de travail qui peuvent localiser
n'importe quelle charge de travail n'importe où dans l'infrastructure. Les services connectés au
P a g e 26
Chapitre II : La solution Cisco ACI et les API REST
réseau peuvent être facilement déployés et l'APIC fournit un cadre d'automatisation pour gérer
le cycle de vie de ces services connectés au réseau.
3.3.3.1 Tenant
Un Tenant est un conteneur logique pour les politiques d'application qui permettent à un
administrateur d'exercer un contrôle d'accès basé sur le domaine. Un Tenant représente une
unité d'isolement du point de vue de la politique, mais il ne représente pas un réseau privé.
Les Tenants peuvent représenter un client dans un contexte de fournisseur des services, une
organisation ou un domaine dans un contexte d'entreprise, ou simplement un regroupement
pratique des politiques. La figure suivante fournit une vue d'ensemble de la partie Tenant de
la MIT.
P a g e 27
Chapitre II : La solution Cisco ACI et les API REST
Les Tenants peuvent être isolés les uns des autres ou partager des ressources. Les
principaux éléments que contient le Tenant sont les filtres, les contrats, les réseaux extérieurs,
les Bridge Domains (BD), les Virtual Routing and Forwarding (VRF), et les Applications
profiles qui contiennent des EPG (End-point groups). Les entités du Tenant héritent de ses
politiques. La figure 17 illustre un exemple des policy objects et leurs relations mutuelles
utilisés pour configurer le réseau d'une application à trois niveaux dans ACI.
Figure 17: Les politiques du Tenant pour une simple application Web
P a g e 28
Chapitre II : La solution Cisco ACI et les API REST
La communication entre plusieurs VRF reste possible grâce à un processus appelé fuite
de route VRF, de sorte que la communication inter-Tenant peut toujours avoir lieu tant que les
adresses IP ne se chevauchent pas.
Lorsqu'un sous-réseau est attribué à un BD, une passerelle est automatiquement créée
sur toutes les Leafs de la fabrique où le BD existe. C’est ce qu'on appelle une passerelle
pervasive ou anycast. L'adresse IP et l'adresse MAC de la passerelle du BD sont les mêmes
sur toutes les Leafs, de sorte que les End-points peuvent se déplacer de manière transparente
entre les Leafs. Un VNID, ainsi qu'une adresse IP multicast sont associés à un BD lors de sa
création.
L’Application Profile définit les politiques, les services et les relations entre les EPGs.
Les Applications profiles contiennent un ou plusieurs EPGs. Les applications modernes
contiennent de multiples composants. Par exemple, une application de commerce électronique
peut nécessiter un serveur Web, un serveur de base de données, des données situées dans un
réseau de stockage et un accès à des ressources extérieures permettant des transactions
financières. L'application profile contient autant (ou aussi peu) des EPGs que nécessaire qui
sont logiquement liés à la fourniture des capacités d'une application.
P a g e 29
Chapitre II : La solution Cisco ACI et les API REST
L'ACI suit un modèle de confiance zéro, ce qui signifie que la communication inter-
EPG n'est pas autorisée, sauf s'il existe un contrat. Toutefois, les End-points appartenant au
même EPG peuvent librement communiquer entre eux par défaut. Les contrats définissent les
types de trafic qui peuvent passer entre les EPGs, y compris les protocoles et les ports
autorisés.
La relation entre un EPG et un contrat peut être de deux types : un EPG peut fournir ou
consommer un contrat (ou les deux). Et pour être utile, un contrat doit avoir au moins un
consommateur et un fournisseur. Lorsqu'un EPG fournit un contrat, la communication avec ce
EPG peut être initiée par d'autres EPGs conformément aux règles du contrat. Lorsqu'un EPG
consomme un contrat, les terminaux de l'EPG consommateur sont en mesure d'entamer une
communication avec tous les terminaux d'un EPG fournissant ce contrat.
Jusqu'à présent, les constructions fondamentales pour configurer le réseau avec une
approche application centric ont été couvertes dans la section précédente. En fait, les
Politiques d'accès doivent être définies au préalable, sinon les politiques du Tenant ne seront
pas activées. Les interfaces externes d'accès au fabrique (Fabric access external-facing
interfaces) se connectent à des périphériques externes tels que des contrôleurs de machines
virtuelles, des hôtes et des routeurs.
Comme pour les Tenant policies, les access policies font également appel à de
nombreux objets de politique. Certains d'entre eux sont présentés dans la Figure 18.
P a g e 30
Chapitre II : La solution Cisco ACI et les API REST
3.3.3.2.1 Domaine
Tous les EPGs ont besoin d'un domaine, qui indique simplement la portée d'un pool de
VLAN (c'est-à-dire où le pool sera appliqué). Un domaine peut être soit physique, soit virtuel,
soit externe.
Pourquoi les VLAN sont-ils nécessaires en premier lieu ? Les VLAN sont toujours
nécessaires sur le lien entre un port de Leaf et le dispositif qui s'y connecte, car le nœud Leaf
doit connaître l'EPG de l’End-point à l'origine du trafic. Les VLANs sont donc utilisés par les
leafs pour identifier les End-points. C'est relativement facile si un périphérique comme un
ordinateur portable est directement branché sur le port d'un nœud Leaf. Dans ce cas, le VLAN
par port peut être utilisé, ce qui signifie que le trafic atteignant un nœud Leaf à partir de ce
port sera automatiquement mappé à un VLAN
Un VLAN Pool n'est rien d'autre qu'une collection d'ID de VLAN attribués par blocs.
Chaque domaine doit être associé à un seul pool VLAN. Et chaque AAEP peut être associé à
un ensemble de domaines (VLAN).
3.3.3.2.3 AAEP
Le profil d'entité d'accès attachable (Attachable Access Entity Profile AAEP) est la
construction logique qui lie les pools de VLAN dénommés dans un domaine aux interfaces de
commutateur leaf.
P a g e 31
Chapitre II : La solution Cisco ACI et les API REST
Dans le modèle de configuration, les EPGs sont étroitement liés aux VLANs. Pour que
le trafic puisse circuler, un EPG doit être déployé sur un port leaf avec un VLAN dans un
domaine physique, VMM, L2out, L3out ou Fibre Channel. Voir la figure 19.
Les API permettent aux programmes exécutés sur différents ordinateurs de travailler en
coopération, en échangeant des données pour atteindre un objectif.
Dans un monde de logiciel API, certaines applications créent une API, et de nombreuses
autres applications utilisent (consomment) l'API. Les développeurs de logiciels ajoutent des
API à leurs logiciels afin que d'autres logiciels d'application puissent utiliser les
fonctionnalités de la première application. Lors de l'écriture d'une application, le développeur
écrira un peu de code, mais souvent il peut faire une grande partie du travail en recherchant
les API qui peuvent fournir les données et les fonctions, réduisant la quantité de nouveau code
à écrire. Par conséquence, une grande partie du développement de logiciels modernes est axée
sur la compréhension et l'apprentissage des nouvelles API, ainsi que des bibliothèques
disponibles sous forme des logiciels préconstruits qui peuvent être utilisés pour accomplir des
tâches plutôt que d'écrire l'équivalent à partir de zéro.
Cette section de deuxième chapitre se concentre sur deux conventions qui permettent
aux logiciels d'automatisation de communiquer.
Ce qui suit se concentre sur les conventions et les normes pour les données et les
variables échangées via les APIs, en se concentrant sur l'une d'entre elles : JavaScript Object
Notation (JSON). Si REST fournit une méthode standard pour communiquer entre deux
programmes automatisés sur un réseau, alors JSON définit comment communiquer les
variables utilisées par les programmes
4.2. API-REST
REST est un style architectural pour les systèmes hypermédia distribués. Comme
d'autres styles architecturaux. Ce style a ses principes directeurs et ses contraintes. Ces
principes doivent être satisfaits si une interface de service doit être qualifiée de RESTful.
P a g e 33
Chapitre II : La solution Cisco ACI et les API REST
Les API REST suivent un ensemble de règles de base. Tout d'abord, littéralement, l'API
REST contient six propriétés qui ont été définies il y a des décennies par son créateur, Roy
Fielding [16]. Ces six propriétés sont :
Architecture client/serveur
Apatride (Stateless)
Cachable (Cacheable)
Interface uniforme (Uniforme Interface)
Système de couches (Layered system)
Code à la demande (Code on demand)
1. Le client REST de gauche exécute un appel d'API REST, qui génère un message envoyé au
serveur REST.
2. Le serveur REST de droite possède un code API qui prend en compte la demande et décide
P a g e 34
Chapitre II : La solution Cisco ACI et les API REST
de la manière de répondre.
P a g e 35
Chapitre II : La solution Cisco ACI et les API REST
3. Le serveur REST renvoie le message de réponse avec les variables de données appropriées
dans le message de réponse.
4.2.1.2 Stateless
La nature Stateless (sans état) des API REST signifie que REST n'enregistre ni n'utilise
les informations sur les échanges d'API afin de traiter les échanges d'API ultérieurs. En
d'autres termes, chaque demande et réponse d'API n'utilise pas d'autres antécédents pris en
compte lors du traitement de la demande.
4.2.1.3 Cacheable
Pour comprendre ce que signifie cacehable, imaginez ce qui se passe lorsque vous
naviguez sur un site Web. Lorsqu’un navigateur charge une nouvelle page Web, la page Web
elle-même contient divers objets (texte, images, vidéo, audio). Certains objets changent
rarement, il est donc préférable de les télécharger une seule fois et de ne plus jamais les
télécharger ; dans ce cas, le serveur marque cet objet comme pouvant être mis en cache. Les
API REST exigent que toute ressource demandée via un appel d'API ait une méthode explicite
pour marquer la ressource comme pouvant être mise en cache ou non. L'objectif reste le
même, améliorer les performances en récupérant les ressources moins fréquemment.
Lors de la création d'API REST, les développeurs acceptent d'utiliser les mêmes
normes. Par conséquent, chaque API a une interface uniforme. Une interface est un contrat
entre un client et un service, partagé par toutes les API REST. Ceci est utile car cela aide les
développeurs à s'assurer qu'ils se comprennent lorsqu'ils utilisent l'API.
P a g e 36
Chapitre II : La solution Cisco ACI et les API REST
Une API doit définir les types de protocoles réseau qu'elle prend en charge, et de
nombreuses API basées sur REST utilisent le protocole HTTP.
Les créateurs d'API basées sur REST choisissent souvent HTTP car la logique du
protocole correspond à certains des concepts plus généralement définis pour les API REST.
HTTP utilise les mêmes principes que REST : il fonctionne avec un modèle client/serveur, il
utilise un modèle de fonctionnement sans état et il inclut des en-têtes qui marquent
explicitement les objets comme pouvant ou non être mis en cache. Il comprend également des
verbes qui indiquent l'action souhaitée pour une paire de requête et de réponse HTTP, c'est
ainsi que les applications aiment fonctionner.
P a g e 37
Chapitre II : La solution Cisco ACI et les API REST
Update : Permet au client de modifier (mettre à jour) la valeur des variables qui
existent sur le serveur.
Delete : Permet au client de supprimer du serveur différentes instances de
variables de données.
Par exemple, si vous utilisez l'API REST Northbound d'un contrôleur ACI, vous pouvez
vouloir créer quelque chose de nouveau, comme une nouvelle politique. Du point de vue de la
programmation, la politique existe comme un ensemble connexe de paramètres de
configuration sur l’APIC, représenté en interne par des variables. Pour ce faire, une
application client REST utiliserait une action de création, à l'aide de l'API RESTful de l'APIC,
qui crée des variables sur ce dernier. Le concept de création d'une nouvelle configuration au
niveau du contrôleur est réalisé via l'API à l'aide d'une action Créer selon l'acronyme
générique CRUD.
D'autres exemples d'actions CRUD incluent une vérification de l'état de cette nouvelle
configuration (une action de lecture), une mise à jour pour modifier un paramètre spécifique
de la nouvelle configuration (une action de mise à jour) ou une action pour supprimer
complètement la définition de la politique de sécurité (une action de suppression).
HTTP utilise des verbes qui reflètent les actions CRUD. Il définit le concept de
demande (Request) et de réponse HTTP, le client envoyant une demande et le serveur
répondant par une réponse. Chaque demande/réponse énumère un verbe d'action dans l'en-tête
de la demande HTTP, qui définit l'action HTTP. Les messages HTTP comprennent également
une URI, qui identifie la ressource manipulée pour cette demande. Comme toujours, le
message HTTP est transporté en IP et TCP, avec des en-têtes et des données, comme
représenté sur la Figure 21.
Figure 21: Verbe HTTP et URI dans un en-tête d’une requête [18].
Chaque fois qu’un utilisateur ouvre un navigateur Web et qu’il clique sur un lien, le
navigateur génère un message de requête HTTP GET dont la structure est similaire à celle de
P a g e 38
Chapitre II : La solution Cisco ACI et les API REST
la figure 21. Le message comprend un en-tête HTTP avec le verbe GET et l'URI. Les
ressources renvoyées dans la réponse sont les composants d'une page Web, comme les
fichiers texte, les
P a g e 39
Chapitre II : La solution Cisco ACI et les API REST
fichiers image et les fichiers vidéo. HTTP fonctionne bien avec REST en partie parce que
HTTP possède des verbes qui correspondent aux actions de programme courantes dans le
paradigme CRUD. Le Tableau 4 répertorie les verbes HTTP et les termes CRUD à des fins de
référence et d'étude faciles.
En plus d'utiliser les verbes HTTP pour exécuter les fonctions CRUD d'une application,
REST utilise les URI pour identifier la ressource sur laquelle la requête HTTP agit. Pour les
API REST, la ressource peut être l'une des nombreuses ressources définies par l'API. Chaque
ressource contient un ensemble de variables connexes, définies par l'API et identifiées par un
URI.
Par exemple, imaginons qu'un utilisateur crée une API basée sur REST. Ce faisant, il
crée un ensemble de ressources qu'il souhaite mettre à disposition via l'API, et il attribue
également un URI unique à chaque ressource. En d'autres termes, le créateur d'API crée un
URI et un ensemble de variables correspondant, et définit les actions qui peuvent être
exécutées sur ces variables (lecture, mise à jour, etc.).
Le créateur de l'API crée également une documentation API qui répertorie les
ressources et l'URI qui identifie chaque ressource, entre autres détails. Le programmeur d'une
application client REST peut lire la documentation de l'API, élaborer une requête API REST
et demander la ressource spécifique, comme le montre l'exemple de la figure 22.
P a g e 40
Chapitre II : La solution Cisco ACI et les API REST
Figure 22: Une requête API REST qui demande une ressource spécifique à travers l’URI [18].
La figure 22 présente les URI sous forme de valeurs génériques ; cependant, les
ingénieurs réseau d'aujourd'hui doivent être capables de lire la documentation de l'API, de
voir les URIs dans cette documentation et de comprendre la signification de chaque partie de
l'URI. La figure 23 présente un URI spécifique à Northbound REST API du Cisco DNA
Center comme exemple de certains des composants de l'URI.
Figure 23: Structure d’un URI pour une requête REST GET [18].
HTTPS : Les lettres qui précèdent le :// identifient le protocole utilisé - dans ce
cas, HTTP Secure (qui utilise HTTP avec un cryptage SSL).
Nom d'hôte ou adresse IP : Cette valeur se trouve entre le // et le premier /, et
identifie l'hôte.
Path (Resource) : Cette valeur se trouve après le premier / et se termine soit à la
fin de l'URI ou avant tout autre champ supplémentaire). HTTP appelle ce champ
le Path, mais pour une utilisation avec REST, le champ identifie de manière
unique la ressource telle qu'elle est définie par l’API.
Pour mettre en évidence le lien entre l'API, l'URI et la partie ressource de l'API, il peut
être utile de faire un tour général de la documentation de l'API pour toute API basée sur
REST. Par exemple, lorsque Cisco a créé DNA Center, il a créé l'interface Northbound basée
sur REST et a choisi un URI.
P a g e 41
Chapitre II : La solution Cisco ACI et les API REST
Par exemple, l'URI de la figure 23 demande au Centre DNA Cisco une liste de tous les
périphériques connus, le Centre DNA Cisco renvoyant un dictionnaire de valeurs pour chaque
périphérique. Il se peut que vous souhaitiez plutôt obtenir ce dictionnaire de valeurs pour un
seul périphérique. L'API du centre Cisco DNA vous le permet en ajoutant des paramètres à la
fin de l'URI. Voir la figure 24.
Figure 24: Structure d’un URI pour une requête REST GET avec des paramètres
supplémentaires [17].
Pour rassembler certains des concepts de l'API REST, la figure 25 présente un exemple
d'appels d'API à l'aide d'une application logicielle appelée outil d'environnement de
développement d'API.
L'exemple suivant, montre l'utilisation d'une application appelée Postman qu’on peut la
télécharger et l’utilisé gratuitement [20]. Pour effectuer un appel d’API REST au serveur
P a g e 42
Chapitre II : La solution Cisco ACI et les API REST
APIC
P a g e 43
Chapitre II : La solution Cisco ACI et les API REST
On utilisent une requête REST est de type GET. Dans cet exemple notre requête demande la
liste des Tenants existes dans l’APIC.
Figure 25: Appel d'API REST au serveur APIC de Cisco à l’aide de Postman.
1. : Ce champ définie la nature de l’action. (GET pour la lecture, POST pour la création, …).
2. : L’URI utilisé :
21. : le protocole utilisé dans l’URI
22. : « sandboxapicdc.cisco.com » : indique un nom d'hôte. Dans ce cas est le serveur
ACI fournie par le site DevNet de Cisco.
23. : ce champ indique le path ou le chemin.
24. : ce champ comporte les paramètres qui permettent d’identifier spécifiquement ce
que l'API doit fournir au client REST.
3. : Ce champ montre les données renvoyées sous format JSON par la réponse GET HTTP
REST du serveur APIC.
4. : La réponse contient un nombre des tenants égale à neuf.
5. : Le nom de la première tenant est « infra »
6. : Statut : elle indique le code d'état de la réponse GET, soit 200, ce qui signifie " OK ".
P a g e 44
Chapitre II : La solution Cisco ACI et les API REST
À ce stade, nous avons une bonne compréhension de base des mécanismes de l'API
REST. En acquérant certaines compétences et en utilisant la documentation de l'API pour
n'importe quelle API REST, nous pouvons maintenant expérimenter et essayer d'effectuer des
opérations REST API CRUD. Les données envoyées dans la requête sous forme de texte,
généralement au format JSON.
Tout d'abord, les programmes écrits dans des langues différentes utilisent des
conventions différentes pour stocker leurs variables en interne, car il n'existe pas de norme
pour le stockage des variables internes dans toutes les langues. En fait, les programmes écrits
dans la même langue mais avec des versions différentes de cette langue peuvent ne pas
stocker toutes leurs variables avec les mêmes conventions internes.
Pour surmonter ces problèmes, les applications ont besoin d'une méthode standard de
représentation des variables pour la transmission et le stockage de ces variables en dehors du
programme. Les langages de sérialisation des données assurent cette fonction.
P a g e 45
Chapitre II : La solution Cisco ACI et les API REST
1. Le serveur collecte les données représentées en interne et les transmet au code API.
2. L'API convertit la représentation interne en un modèle de données représentant ces
variables (avec JSON comme indiqué sur la figure26).
3. Le serveur envoie le modèle de données au format JSON via des messages sur le réseau.
4. Le client REST prend les données reçues et convertit les données au format JSON en
variables dans le format natif de l'application client.
Les différents langages de sérialisation des données existent pour répondre à différents
besoins qui sont apparus au fil des ans.
JSON :
P a g e 46
Chapitre II : La solution Cisco ACI et les API REST
JSON est construit sur deux structures. Une collection de paires nom/valeur. Dans
différents langages, les structures de ce type peuvent être appelées objets, enregistrements,
dictionnaires, tables de hachage, listes à clés ou tableaux associatifs. Une liste ordonnée de
valeurs. Dans la plupart des langages, cela s'appelle un tableau, une liste, un vecteur ou une
séquence.
Ces deux structures sont des structures de données génériques. Presque tous les
langages de programmation modernes les prennent en charge sous une forme ou une autre. Il
est logique que les formats de données interchangeables avec les langages de programmation
soient également basés sur ces structures.
Les valeurs peuvent être des chaînes, des nombres, des booléens, des valeurs nulles, des
objets ou des tableaux entre guillemets doubles.
XML :
Dans les années 90, lorsque les navigateurs Web et le WWW ont été créés, les pages
Web utilisaient principalement le HTML pour définir les pages Web. En tant que langage de
marquage, le HTML définissait la manière d'ajouter le texte d'une page Web à un fichier, puis
d'ajouter des "balises". Par exemple, le marquage comprend des codes pour les titres, les types
et tailles de police, les couleurs, les hyperliens, etc.
L'eXtensible Markup Language (XML) est apparu plus tard pour apporter certaines
améliorations aux langages de marquage antérieurs. En particulier, au fil du temps, les pages
Web sont devenues de plus en plus dynamiques, et pour rendre les pages dynamiques, les
fichiers devaient stocker des variables dont les valeurs pouvaient être modifiées et remplacées
au fil du temps par le serveur Web. Pour définir les variables à substituer dans une page Web,
le monde avait besoin d'un langage de marquage capable de définir des variables de données.
P a g e 47
Chapitre II : La solution Cisco ACI et les API REST
Au fil du temps, le XML s'est développé au-delà de son utilisation initiale en tant que
langage de marquage. Les caractéristiques de XML en font également un langage de
sérialisation de données général utile, et il est utilisé comme tel aujourd'hui.
Si l'on compare XML à JSON, les deux tentent d'être lisibles par l'homme, mais XML
reste un peu plus difficile à lire.
YAML :
YAML acronyme de Yet Another Markup Language dans sa version 1.0, devient
l'acronyme récursif de YAML Ain't Markup Language . YAML ne tente pas de définir les
détails du marquage (alors que XML le fait). Au lieu de cela, YAML se concentre sur les
détails du modèle de données (structure). YAML s'efforce également d'être propre et simple :
parmi les langages de sérialisation/modélisation de données répertoriés ici, YAML est
facilement le plus facile à lire pour toute personne novice en matière de modèles de données.
Ansible, fait un usage intensif des fichiers YAML. La figure 29 en présente un bref
échantillon. Et pour souligner l'importance de la lisibilité, même si nous avons aucune idée de
ce que fait Ansible, on peut deviner certaines des fonctions en lisant simplement le fichier.
P a g e 48
Chapitre II : La solution Cisco ACI et les API REST
5. Conclusion
P a g e 49
Chapitre III
1. Introduction
N’importe quel projet, a pour but de répondre à un besoin. La mise en place de notre
application Web aura lieu pour faciliter le travail de l’administrateur réseaux au sein du
service IR. L’objectif de ce chapitre est de présenter dans la première partie une étude de
l’existant afin de déterminer les besoins fonctionnelle et non fonctionnelle. La deuxième
partie du chapitre se concentre sur la présentation de la solution à l’aide des outils de
conception UML. La dernière partie sera consacré pour la présentation des technologies et les
outils utilisés pour la réalisation, afin d’arrivé à l’explication des différentes interfaces de
l’application.
Dans le cadre d’automatisation des réseaux, Le groupe OCP a déployé une nouvelle
infrastructure basée sur l'offre CISCO ACI, comme une solution SDN fournie par CISCO.
L’équipe d’infrastructure réseaux du service réseaux télécom est chargé par la mise en place
des actions de création des objets d’ACI, afin d’assurer le bon fonctionnement de
l’architecture. Les actions effectuées sont les suivantes :
Création d’un vlan sous un pool.
Création d’un Bridge Domain et l’associer avec une VRF.
Création d’une EPG (sous une application Profile) et l’associer avec un BD et un
Physical Domain.
Ajout de ports statiques sous l’EPG (avec choix du port type VPC ou port
standard et choix du tag mode tagged ou untagged).
La communication avec le serveur APIC pour créer ces politiques est effectué à l’aide
de logiciel Postman. La création d’un Vlan sous un VLAN-pool, sera pris comme un exemple
de création d’une politique.
2.2. Exemple de création d’une politique : création d’un vlan sous un pool
P a g e 47
Chapitre III : Mise en place de l’application Web
L’étape suivante consiste à écrire le corps sous format JSON de la requête qui contient
le nom d’administrateur et le mot de passe. Le corps de chaque type de requête qui s’appelle
payload, est défini précédemment dans les documentations. Il reste alors que copier le
payload correspondant, et modifier les valeurs des variables selon le besoin demandé. Le
payload doivent être injectée dans le champ Body de l’application Postman.
A ce stade, la préparation de l’URI et de payload est terminée. Il nous reste que choisir
le verbe POST et cliqué sur le bouton send pour envoyer la demande au serveur. La figure
suivante montre les étapes expliqué précédemment. La figure 30 présente l’URI et le payload
de la requête d’authentification.
Le serveur renvoie en retour une réponse JSON qui contient la valeur de l’attribue
« token ». Token est une clé fournie par l’ACI. Elle est utilisée pour ouvrir une session afin de
permettre effectuer n’importe quelle action dans l’ACI. Le message 200 OK indique que
l’authentification à l’ACI est effectuée. La réponse d’authentification est montrée dans La
figure 31.
P a g e 48
Chapitre III : Mise en place de l’application Web
Après la réussite de l’authentification à l’ACI, une session maintenant est ouverte vers
le serveur pour appliquer notre action. Pour créer un VLAN sous un Pool on doit déterminer
initialement l’URI.
https://sandboxapicdc.cisco.com/api/node/mo/uni/infra/
vlanns-[L3_OUT_VLAN_POOL]-static/from-[vlan-31]-to-[vlan-31].json
Dans l’URI on doit déterminer le nom du VLAN pool, le mode d’allocation « static ou
dynamic » et le rang des VLANs qu’on veut créer. Dans ce cas le nom du pool est
L3_OUT_VLAN_POOL, le mode d’allocation est statique et l’ID du vlan est 31.
Statuts : 200 OK. Donc la création de notre vlan 31 est très bien effectuée.
A la lumière de l’exemple précédent, il est très clair que l’utilisation de Postman pour
effectuer des actions de configuration rencontre les problèmes suivants :
-La rapidité : Le choix des URIs et la génération des payloads pour chaque
action peut demander un temps très importants.
P a g e 49
Chapitre III : Mise en place de l’application Web
Suite à l'identification des problématiques, plusieurs actions ont été défini avec des
objectifs précis et clairs. Le besoin exprimé par le service IR, c’est la mise en place d’une
application Web de gestion et d’automatisation du réseau en vue de faciliter le travail de
l’administrateur réseau.
Les besoins fonctionnels, sont les fonctionnalités que système doit fournir aux
utilisateurs. Dans notre cas, les besoins fonctionnels dégagé sont :
P a g e 50
Chapitre III : Mise en place de l’application Web
3. Menu Dashboard : ce menu permet d’afficher les objets (Tenants, VRF, BD, Vlan
pool, …) créer au niveau du serveur APIC.
Les besoins non fonctionnels peuvent être défini par l'expression de besoins en matière
de performance, le type de matériel ou le type de conception.
L'application doit avoir un niveau de sécurité fiable pour gérer la visibilité d'accès aux
informations partagées dans l'application qui sera déployée sur le réseau de l'entreprise
Côté performance, l'application doit être rapide d'usage pour les utilisateurs avec des
outils de recherche et de temps de réponse rapide.
3. Conception de l’application
L’étape de conception est très importante pour la réussite d’un projet informatique.
Cette phase vise à définir une feuille de route, concevoir et valider le projet avant de passer à
la réalisation du système. Elle permette aussi d’avoir une bonne réflexion, une bonne
organisation du travail et une bonne communication entre les différents intervenants.
Les cas d'utilisation définissent comment le système doit être utilisé et décrivent ses
exigences fonctionnelles. Chaque cas d'utilisation contient un ou plusieurs scénarios qui
définissent la manière dont le système doit interagir avec les utilisateurs (appelés acteurs)
pour atteindre un objectif de travail ou une fonction spécifique. Un acteur de cas d'utilisation
peut être un humain ou un autre système que celui que nous essayons de définir. Les cas
d'utilisation évitent le jargon technique et essaient d'utiliser le langage de l'utilisateur final ou
de l'expert du domaine.
P a g e 51
Chapitre III : Mise en place de l’application Web
P a g e 52
Chapitre III : Mise en place de l’application Web
P a g e 53
Chapitre III : Mise en place de l’application Web
P a g e 54
Chapitre III : Mise en place de l’application Web
P a g e 55
Chapitre III : Mise en place de l’application Web
Pour faciliter le travail et le bien organiser, nous avons utilisé plusieurs logiciels.
P a g e 56
Chapitre III : Mise en place de l’application Web
Front End :
Blade est le moteur de template utilisé par Laravel. Son but est
de permettre d’utiliser du php sur notre vue mais d'une manière
assez particulière [24].
Bootstrap 4 est un framework CSS. Un framework correspond
à un ensemble de librairies regroupées dans un but précis et
possédant des règles internes que doivent suivre les utilisateurs
[25].
Back End :
Laravel est un framework PHP multiplateforme, il offre un
environnement de développement très fonctionnel, ainsi que des
interfaces de ligne de commande intuitives et expressives. Les
applications Laravel sont hautement évolutives et leur base de
code est facile à maintenir [26].
Database :
Mysql est un système de gestion de bases de données
relationnelles SQL, stocke les données dans des tables séparées
plutôt que de tout rassembler dans une seule table. Cela améliore
la rapidité et la souplesse de l'ensemble. Les tables sont reliées
par des relations définies, qui rendent possible la combinaison de
données entre plusieurs tables durant une requête [27].
P a g e 57
Chapitre III : Mise en place de l’application Web
Maintenant l'application est prête à être déployée, pour le déploiement on a deux choix.
Le déploiement classique ou le déploiement distribuer.
Le déploiement classique, il s’agit d’un déploiement dans un seul serveur sans aucun
backup pour sauver l’application au cas d’une panne. Cette solution ne coûte pas si cher, mais
elle coûtera trop cher dans le cas d’un échec du système, sans garantie de maintenir le
fonctionnement de l'application.
P a g e 58
Chapitre III : Mise en place de l’application Web
P a g e 59
Chapitre III : Mise en place de l’application Web
Cisco permet la connexion à son serveur APIC en utilisant les informations suivantes :
URL : sandboxapicdc.cisco.com
Login : admin
Password : !v3G@!4@Y
Après la synchronisation, l’ACI envoi la liste des Tenants et la liste des domaines
physiques à notre interface Dashboard. Les Tenants ou bien les domaines physiques
s’affichera sous forme des boutons. Pour afficher la liste des VRFs d’un Tenant il suffit de
cliquer sur le Tenant correspondant. Pour afficher la liste des Bridges Domain d’un VRF, on
clique sur ce VRF. Une clique sur un Bridge Domain, permettre d’afficher quelques
informations sur ce dernier. Le même scénario sera répété si on veut afficher les informations
d’un EPG. On doit choisir le Tenant, l’application profile puis l’EPG. Pour afficher les
informations d’un VLAN pool, on doit accéder à ce dernier à travers son domaine physique.
La figure 39 montre la liste des objets récupérer après la synchronisation avec l’ACI. Chaque
liste des objets est un réponse API REST d’une requête de type GET.
P a g e 60
Chapitre III : Mise en place de l’application Web
Le menu Dashboard permet aussi la visualisation des équipements réseaux ajouté dans
l’interface gestion des équipements, sous forme d’un tableau qui englobe les informations
nécessaires.
Le menu ACI est le menu principal de notre application. La création des différents
objets d’ACI se présente dans ce menu.
Pour créer un vlan pool, il suffit de remplir les informations d’authentification à l’ACI,
choisir le nom du pool, le mode d’allocation, et choisir le rang initial des VLANs dans ce
pool. L’annexe 2 présente l’interface de création de pool sous le nom vlan_grif2 et qui
comporte le rang de VLANs de 10 à 20. Après la création du vlan pool on doit l’associer à un
domaine physique. La figure 40 présente le choix du domaine physique à partir d’une liste
récupérer depuis l’APIC. Ce qui garantit l’élimination d’avoir des erreurs de saisies.
P a g e 61
Chapitre III : Mise en place de l’application Web
Après le choix du domaine, il suffit de cliquer sur créer pour compléter la création. Au
niveau du Back End on a utilisé deux requêtes de type POST. La première est pour la création
d’un pool. La deuxième est pour l’association du pool à un domaine physique. Une requête de
type GET est utilisé pour récupérer les domaines physiques.
Pour créer un ou plusieurs VLANs sous un pool, on doit cliquer sur « Create VLAN
under a Pool », choisir entre un ou plusieurs VLAN, remplir les informations
d’authentification à l’ACI, choisir un pool et taper l’ID du VLAN. La figure 41 montre
l’interface création d’un ou plusieurs VLAN sous un pool.
La création d’un VLAN sous un pool est l’exemple quand a choisie dans la partie étude
de l’existant, afin d’exprimer les besoins et les problèmes qu’on doit résoudre. La figure 41
P a g e 62
Chapitre III : Mise en place de l’application Web
Un Bridge Domain est un objet ACI qu’on doit créer sous un VRF. Comme pour toutes
les actions de créations, on doit remplir initialement les informations d’authentification à
l’ACI. Par la suite on doit choisir un Tenant, un VRF puis saisir les informations de BD. La
figure 42 présente l’interface de création d’un BD.
La création de BD sous un VRF nécessite deux requête GET pour récupérer la liste des
Tenants et la liste des VRF. Les noms de Tenant et de VRF seront utilisés comme des valeur
dans la requête de création de BD.
L’ajout de port statique un EPG est la dernière action demandé dans le cahier de charge.
Pour ajouter un port statique on doit choisir initialement le type de port, VPC ou standard.
Après l’authentification à l’ACI, on doit choisir un Tenant, une Application profile, un EPG,
un commutateur (Node) en cas du port statique, le port, un VLAN, et le mode de Tag (Trunk,
Access (802.1P) ou Access (Untagged)). La figure 44 montre l’interface d’ajout d’un port
statique de type standard ou VPC à un EPG.
P a g e 64
Chapitre III : Mise en place de l’application Web
Pour développer l’interface de création d’un port statique, on a utilisé les requêtes suivantes :
4.3.3.6 Wizard
L’étape 6 de menu wizard est la confirmation de la création de toute les actions effectuer.
P a g e 65
Chapitre III : Mise en place de l’application Web
Pour faciliter la gestion du stock, on a développé un espace des équipements réseaux qui
liste chaque équipement ses informations (référence, type, état, marque, site). La figure 46
montre l’interface de gestion des équipements.
Chaque utilisateur dispose d’un login et un mot de passe, pour accéder à l’application et
réaliser les tâches demandées.
5. Conclusion
CONCLUSION GENERALE
Ce travail vient pour achever la formation d’ingénieur d’état au sein de l’Ecole Nationale des
Sciences Appliquées de Safi. Il est inscrit dans une démarche d’amélioration des
performances de service réseaux et télécoms de siège de groupe OCP, qui sert à mettre en
place une application de gestion et d’automatisation du réseau, basée sur la solution
d’automatisation Cisco ACI.
P a g e 67
Conclusion Générale
En perspectives cette application pourrait être améliorée et enrichie par des fonctionnalités
avancées. Elle pourrait être basée sur plusieurs solutions d’automatisation et non pas une
seule. Les offres SDN actuelles de Cisco, à savoir ACI pour le centre de données, SDA
(Software- Defined Access) pour le campus de l'entreprise et SD-WAN (Software-Defined
WAN) pour le réseau étendu de l'entreprise. Avoir une application basée à la fois sur les
solutions ACI et SDA, par exemple, ouvrira un œil sur l’automatisation des réseaux dans le
Software-Defined Networking multi-domaine.
P a g e 68
Bibliographie
BIBLIOGRAPHIE
[1] J. Durant, «Le SDN Pour Les Nuls.,» 2015. [En ligne]. Available: https://alln-extcloud-
storage.cisco.com/gblogs/sites/53/2015/12/JRES2015-SDN-pour-les-nuls-11.pdf. [Accès le 20
juin 2022].
[2] «Happy Birthday, Cisco Application Centric Infrastructure.,» Cisco, 2014. [En ligne]. Available:
https://blogs.cisco.com/perspectives/happy-birthday-cisco-application-centric-infrastructure.
[Accès le 01 06 2022].
[3] Secretariat générale de groupe ocp, «Organigrammes nominatifs des Directions et Filiales du
Groupe OCP,» p. 68, 2009.
[5] W. Odom, «CCNA 200-301 Official Cert Guide,» vol. 2, p. 364, 2020.
[7] W. Odom, «CCNA 200-301 Official Cert Guide,» vol. 2, p. 366, 2020.
[8] «Cisco ACI for Data Center,» Cisco, 2022. [En ligne]. Available:
https://www.cisco.com/c/en/us/solutions/data-center-virtualization/application-centric-
infrastructure/. [Accès le 30 mai 2022].
[9] E. Debray, «Au-delà du SDN: OpFlex un nouveau protocole pour Application Centric
Infrastructure,» Cisco, 09 avril 2014. [En ligne]. Available:
https://gblogs.cisco.com/fr/datacenter/14303/. [Accès le 01 juin 2022].
[10] W.Odom, «CCNA 200-301 Official Cert Guide,» vol. 2, p. 371, 2020.
[11] W.Odom, «CCNA 200-301 Official Cert Guide,» vol. 2, p. 370, 2020.
[12] C. Systems, «Cisco Global Cloud Index 2015-2020,» 2015. [En ligne]. Available:
https://www.cisco.com/c/dam/m/en_us/service-
provider/ciscoknowledgenetwork/files/622_11_15-16-Cisco_GCI_CKN_2015-
2020_AMER_EMEAR_NOV2016.pdf. [Accès le 05 juin 2022].
[14] «Cisco Application Centric Infrastructure Fundamentals, Release 4.2(x),» 08 10 2019. [En ligne].
Available: http://www.cisco.com. [Accès le 08 06 2022].
P a g e 69
Bibliographie
[15] W.Odom, «CCNA 200-301 Official Cert Guide,» vol. 2, p. 372, 2020.
[18] W.ODOM, «Official Cert Guide, CCNA 200-301,,» vol. 2, pp. 414-416, 2020.
[23] W. Stallings, «Software-Defined Network and OpenFlow,» The Internet Protocol Journal, vol. 16,
n° %11, p. 3, 2013.
[24] S. Jose, «Cisco Application Centric Infrastructure Fundamentals, Release 4.2(x),» 8 octobre
2019. [En ligne]. Available: http://www.cisco.com. [Accès le 05 juin 2022].
[29] «Le framework PHP Laravel – la construction d’applications web pour tous,» 24 mai 2022. [En
ligne]. Available: https://kinsta.com/fr/base-de-connaissances/qu-est-ce-que-laravel/. [Accès le
15 juin 2022].
[30] «Qu’est-ce que MySQL ? Une explication simple pour les débutants,» 26 mai 2022. [En ligne].
Available: https://kinsta.com/fr/base-de-connaissances/qu-est-ce-que-mysql/. [Accès le 15 juin
2022].
P a g e 70
Annexes
ANNEXE 1
Organigramme du groupe OCP1
1
[26]
P a g e 71
Annexes
ANNEXE 2
Interface de création d’un VLAN pool
P a g e 72
Annexes
ANNEXE 3
Requêtes de type GET :
Récupérer la liste des VLANS pool :
base_ URI = 'https://{APIC}/api/'
URI _prepend = 'node/mo/uni/infra.json?query-target=subtree&target- subtree-
class=fvnsVlanInstP&query-target-filter=not(wcard(fvnsVlanInstP.dn," ui_"))'
URI = base_ URI + URI _prepend
P a g e 73
Annexes
payload = {
'aaaUser':
{'attributes':
{'name': '{username}',
'pwd': '{password}',
}
}
}
Création d'un VLAN :
payload =
{ "fvnsEncapBlk":
{ "attributes": {
"dn": "uni/infra/vlanns-[{VlanPool_name}]-{AllocMode}/from-[{Vlan_Range_L}]-to-[{Vlan_Range_H}]",
"from": "{Vlan_Range_L}",
"to": "{Vlan_Range_H}",
"rn": "from-[{Vlan_Range_L}]-to-[{Vlan_Range_H}]",
"status": "created"
P a g e 74
Annexes
},
"children": []
}
}
Création d'un VLAN pool :
base_ URI = 'https://{APIC}/api/'
URI _prepend = 'node/mo/uni/infra/vlanns-[{Vlan_name}]- {AllocMode}.json'
URI = base_url + url_prepend
payload = {
"fvnsVlanInstP": {
"attributes": {
"dn": "uni/infra/vlanns-[{Vlan_name}]-{AllocMode}",
"name": "{Vlan_name}".format(Vlan_name=Vlan_name),
"descr": "{Vlan_description}",
"rn": "vlanns-[{Vlan_name}]-{AllocMode}",
"status": "created"
},
"children": [
{
"fvnsEncapBlk": {
"attributes": {
"dn": "uni/infra/vlanns-[{Vlan_name}]-{AllocMode}/from-[{Vlan_Range_L}]-to-
[{Vlan_Range_H}]",
"allocMode": "{AllocModeRange}",
"descr": "{Vlan_Rangedescription}",
"from": "{Vlan_Range_L}",
"to": "{Vlan_Range_H}",
"rn": "from-[{Vlan_Range_L}]-to-
[{Vlan_Range_H}]",
"status": "created"
},
"children": []
}
}
]
}
}
payload =
{ "infraRsVlanNs":
{ "attributes": {
"tDn": "uni/infra/vlanns-[{Vlan_name}]-{AllocMode}",
"status": "created,modified"
},
"children": []
}
}
payload ={
"fvAEPg":
{ "attributes":
{
"dn": "uni/tn-{Tenant_name}/ap-{App_Prof_name}/epg-{EPG_name}",
"prio": "{prio}",
"name": "{EPG_name}",
"nameAlias": "{EPG_Alias}",
"descr": "{EPG_Description}",
"rn": "epg-{EPG_name}",
"status": "created,modified"
},
"children": [
{
"fvRsBd":
{ "attributes":
{
"tnFvBDName": "{BD_name}",
"status": "created,modified"
},
"children": []
}
},
{
"fvRsDomAtt": {
"attributes": {
"tDn": "uni/phys-{Domain_name}",
"status": "created"
},
"children": []
}
}
]
}
}
Création d'un BD :
base_ URI = 'https://{APIC}/api/'
URI _prepend = 'node/mo/uni/tn-{Tenant_name}/BD-{BD_name}.json'
URI = base_ URI + URI _prepend
payload = {
"fvBD": {
"attributes": {
"dn": "uni/tn-{Tenant_name}/BD-{BD_name}",
"arpFlood": "{arpFlood}",
"name": "{BD_name}",
"nameAlias": "{BD_Alias}",
"descr": "{BD_Description}",
"rn": "BD-{BD_name}",
"status": "created,modified"
},
"children": [
{
"fvRsCtx":
{ "attributes":
{
P a g e 76
Annexes
"tnFvCtxName": "{VRF_name}",
"status": "created,modified"
},
P a g e 77
Annexes
"children": []
}
}
]
}
}
payload ={
"fvRsPathAtt": {
"attributes": {
"dn": "uni/tn-{Tenant_name}/ap-{App_Prof_name}/epg-{EPG_name}/rspathAtt-[{dn}]",
"encap": "{vlan}",
"tDn": "{dn}",
"rn": "rspathAtt-[{dn}]",
"status": "created"
},
"children": []
}
}
payload ={
"fvRsPathAtt": {
"attributes": {
"dn": "uni/tn-{Tenant_name}/ap-{App_Prof_name}/epg-{EPG_name}/rspathAtt-[{dn}]",
"encap": "{vlan}",
"mode": "{mode}",
"tDn": "{dn}",
"rn": "rspathAtt-[{dn}]",
"status": "created"
},
"children": []
}
}
P a g e 78
Mise en place d’une application
Web de gestion et
d’automatisation du réseau basée
sur la solution Cisco ACI
Les technologies sous-jacentes ont été évoluées, mais la gestion des réseaux est demeurée stagnante
pendant des décennies. En général, les réseaux qui sont conçus et entretenus manuellement ne sont
plus efficaces pour répondre aux besoins actuels en termes de rapidité et facilité de gestion.
Par ailleurs, l’automatisation des ressources réseaux et de la gestion des services apporte aux équipes
opérationnelles de multiples avantages concrétisés par l’agilité et la souplesse. Dans ce sens le SDN
(Sofware-Defined Networking) est présenté comme la solution conçue pour rendre les infrastructures
réseaux plus flexibles et plus faciles à gérer. En effet, cette technologie assure une gestion centralisée
et automatique des équipements réseaux, en ajoutant un niveau d'abstraction à l’infrastructure. La
séparation des parties décisionnelles et opérationnelles autorise une grande souplesse dans le
déploiement, l’évolution et l’automatisation à travers des API (Interfaces de Programmation
d'Applications), notamment les APIs REST.
A cet égard, le groupe OCP a déployé une nouvelle infrastructure basée sur l'offre CISCO ACI
(Application Centric Infrastructure), comme une solution SDN fourni par CISCO. Cette solution
implique un point de contrôle central s’appelle APIC pour la gestion du réseau. Par lequel, toutes les
opérations du réseau sont effectuées en utilisant une interface qu'il expose. Cette interface est
généralement une API REST et permet la programmation du réseau et l'intégration avec d'autres
systèmes.
L’objectif ultime du présent Projet de fin d’étude est la mise en place d’une application Web de
gestion et d’automatisation du réseau permettant à l’APIC d’effectuer toutes les opérations du réseau.
Afin d’avoir une meilleure mise en place de ce projet, l’application est tenu de fournir des interfaces
faciles à utiliser par l’administrateur réseaux, assurer la réduction de temps moyen d’exécution des
tâches et réduire au maximum la complexité des opérations effectuée.
Mots-clés : Automatisation des réseaux, SDN, Plan de contrôle distribué, Plan de contrôle
centralisé, CISCO ACI, APIC, Spine, Leaf, Application Web, CRUD, API REST, URI.
GRIF Abdelali, Elève ingénieur en Réseaux et Télécommunications, ENSA de SAFI, Promotion 2022