0% ont trouvé ce document utile (0 vote)
3 vues35 pages

DEVNET

Le document présente un guide complet sur la programmation réseau avec Python, en abordant les fondamentaux du langage, l'utilisation des APIs, et les protocoles NETCONF et RESTCONF. Il explique comment automatiser les configurations réseau et interagir avec des équipements via des scripts Python, tout en intégrant des concepts comme YANG et JSON. Le contenu est structuré en chapitres, chacun détaillant des aspects spécifiques de la programmation réseau et des outils associés.

Transféré par

amizengmomn
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues35 pages

DEVNET

Le document présente un guide complet sur la programmation réseau avec Python, en abordant les fondamentaux du langage, l'utilisation des APIs, et les protocoles NETCONF et RESTCONF. Il explique comment automatiser les configurations réseau et interagir avec des équipements via des scripts Python, tout en intégrant des concepts comme YANG et JSON. Le contenu est structuré en chapitres, chacun détaillant des aspects spécifiques de la programmation réseau et des outils associés.

Transféré par

amizengmomn
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

2025

DEVNET

PRESENTED BY:
LOUZI YASMINE
CHAPITRE 1 :Les Fondamentaux Python
1.1 Interpréteur Python ............................................................................................................... 6
1.2 Langage et syntaxe de base ................................................................................................... 6
1.3 Types de données, Variables & Conversions: ........................................................................... 7
1.4 Listes & Dictionnaires ............................................................................................................ 7
1.5 Entrée utilisateur................................................................................................................... 8
1.6 Fonctions & Conditions If....................................................................................................... 8
1.7 Les Boucles ..................................................................................................................... 8
1.8 Accès aux fichiers ................................................................................................................. 9
1.9 APIs et Parsing JSON avec Python........................................................................................... 9
1.10 Bibliothèques API : requests, ncclient, xmltodict ................................................................. 12
1.11 Python et la programmation des réseaux............................................................................. 13
1.12 Programmation des Équipements Réseaux ......................................................................... 13
CHAPITRE 2 : Introduction à la Programmation des Réseaux via API
2.1 Introduction à la Programmation des Réseaux ...................................................................... 16
2.2 Présentation du domaine de DEVNET. .................................................................................. 17
2 .3 Programmation des réseaux via leurs APIs ........................................................................... 17
2.4 RFC liées à la programmation des réseaux ............................................................................ 18
2.5 Effectuer les opérations RESTCONF avec Python................................................................... 18
2.6 Effectuer les opérations NETCONF avec Python .................................................................... 19
CHAPITRE 3 : Définition d’une API
3.1 Définition simple d’une API .................................................................................................. 22
3.2 Rôle des API en réseau ........................................................................................................ 22
3.3 Requêtes d’interrogation des API via HTTPS ..................................................................... 22
CHAPITRE 4 : Modèles YANG
4.1 Présentation ....................................................................................................................... 25
4.2 Protocoles de transport & modèles de données .................................................................... 26
4.3 Sources de modèles ............................................................................................................ 26
4.4 Exploration des modèles YANG avec Python ......................................................................... 26
CHAPITRE 5 : NETCONF
5.1 Présentation NETCONF ....................................................................................................... 29
5.2 Piles de protocole NETCONF................................................................................................ 29
5.3 Opérations NETCONF .......................................................................................................... 29
[Link] + YANG + XML ..................................................................................................... 29
5.5 Exemple Python : edit-config................................................................................................ 30
CHAPITRE 6 :RESTCONF
6.1 Présentation RESTCONF ................................................................................................. 32
6.2 Pile protocolaire RESTCONF ................................................................................................ 32
6.3 Opérations ......................................................................................................................... 32
6.4 YANG et RESTCONF ,Format JSON/XML ........................................................................... 33
CHAPITRE 7 : Développement de Scripts d’API avec Python
7.1 CRUD RESTCONF et Postman .............................................................................................. 35
7.2 CRUD RESTCONF et Python ................................................................................................. 35
7.3 CRUD NETCONF et Python .................................................................................................. 36
CHAPITRE 1 :Les Fondamentaux Python
1.1 Interpréteur Python
Définition

L’interpréteur Python est le programme qui exécute les instructions Python ligne par ligne.

Pourquoi Python pour DevNet ?

• Langage simple

• Idéal pour l’automatisation

• Dispose de bibliothèques réseau (requests, ncclient…)

Modes d’exécution

1. Mode interactif (REPL)

• On tape directement les commandes :

1. Mode Script

• On crée un fichier : [Link]

• On exécute :

Exemple:

1.2 Langage et syntaxe de base


Règles de base

• L’indentation est obligatoire.

• Les commentaires commencent par #.

6
Exemple:

1.3 Types de données, Variables & Conversions:


Types courants

Type Exemple

int 10

float 3.14

str "R1"

bool True

Exemple:

Conversion

1.4 Listes & Dictionnaires


Liste(collection ordonnée)

Dictionnaire(clé → valeur)

7
1.5 Entrée utilisateur

1.6 Fonctions & Conditions If


Conditions

Fonctions

1.7 Les Boucles


For

While

8
1.8 Accès aux fichiers
Lire un fichier

Écrire un fichier

1.9 APIs et Parsing JSON avec Python


What is an API ?

API = Application Programming Interface

An API is a set of rules that allows two computer systems to communicate together.

In networking:

• Instead of configuring a router manually with CLI (command line),

• We send commands and data via an API

Example:

✔ Ask a router to return its interface list


✔ Create a new Loopback
✔ Modify IP addresses
✔ Delete configurations

Real-life example

Think of an API like:

You go to a restaurant
The menu is the API
The kitchen is the server
9
You ask for a burger (request)
The kitchen gives it to you (response)

You don’t need to enter the kitchen or know how food is cooked
the API handles communication between you and the system.

Why APIs in networks?

Before automation, network engineers used:

Now with API:

➡ Faster
➡ Automated
➡ No human mistakes
➡ Can manage 1000 routers in seconds

What is JSON ?

JSON = JavaScript Object Notation

It is a text format to represent structured data, commonly used in APIs.

Example:

Routers and servers use JSON to exchange:

• Configuration

• Status

• Metrics

• Logs

10
What does “Parsing JSON” mean?

Parsing = reading and extracting data from JSON.

Why do we need to parse JSON in DevNet?

Because when we call a router’s API:

The router responds with JSON, for example:

We need Python to parse it to:

• Display interface names

• Export them

• Modify configuration

• Make decisions

Term Meaning

API A communication system that allows programs to talk to devices (like routers).

JSON A structured text format used to exchange data.

Parsing Reading JSON and extracting values in Python.

JSON vers Python

11
Python vers JSON

1.10 Bibliothèques API : requests, ncclient, xmltodict


GET avec requests

Xmltodict ,convertir XML → Python

ncclient pour NETCONF

12
1.11 Python et la programmation des réseaux
Exemple : Ping multiple

1.12 Programmation des Équipements Réseaux


Exemple simple (simulation)

Exercice:

1. Créer une liste de 5 routeurs et l’afficher.

2. Créer un dictionnaire contenant : hostname, ip, modèle.

3. Lire un fichier [Link] et afficher chaque ligne.

4. Récupérer du JSON depuis une API publique.

5. Écrire une fonction check_status() qui prend un ping et retourne "OK" ou "DOWN".

6. Faire un menu Python (1. afficher liste, 2. ajouter device, 3. supprimer).

13
CHAPITRE 2 : Introduction à la Programmation
des Réseaux via API
2.1 Introduction à la Programmation des Réseaux
La programmation des réseaux consiste à utiliser des langages de programmation, comme Python,
pour interagir avec des équipements, des services et des protocoles réseau. Au lieu de configurer
manuellement un routeur, un commutateur ou un pare-feu via l’interface CLI, on peut automatiser ces
tâches à l’aide de scripts.

Avec la croissance des environnements informatiques modernes (cloud, virtualisation, SDN, IoT…), les
entreprises doivent gérer des milliers d’équipements. La configuration manuelle devient lente, coûteuse,
sujette à des erreurs humaines et difficile à reproduire.

La programmation réseau permet donc :

• d’automatiser les configurations et tâches répétitives,

• d’améliorer la rapidité de déploiement,

• de réduire les erreurs humaines,

• de standardiser et documenter les opérations,

• d’intégrer le réseau avec d’autres systèmes (supervision, inventaire, sécurité, DevOps…).

Rôle de Python dans la Programmation des Réseaux

Python est aujourd’hui le langage le plus utilisé dans le domaine des réseaux car :

• il est simple à apprendre,

• il possède de nombreuses bibliothèques (requests, netmiko, napalm…),

• il permet d’interagir avec des équipements via CLI, SSH, API REST, SNMP, etc.

Grâce à Python, un administrateur réseau peut :

• récupérer automatiquement des informations sur des routeurs,

• pousser des configurations à des dizaines d’équipements,

• superviser l’état d’un réseau,

• effectuer des mises à jour massives,

• interagir avec des APIs fournies par Cisco, Juniper, Fortinet, VMware…

Un changement dans la façon de gérer les réseaux

Autrefois, les réseaux étaient administrés appareil par appareil. Aujourd’hui, on se dirige vers une
approche programmée et automatisée :
16
• SDN (Software Defined Networking),

• Infrastructure as Code,

• DevNet,

• Automatisation et orchestration,

• APIs REST dans les équipements modernes.

Ainsi, les ingénieurs réseaux ne se contentent plus de connaître la configuration CLI, mais doivent
également développer des compétences en :

• programmation,

• scripts d’automatisation,

• compréhension des APIs,

• formats d’échange (JSON, XML),

• DevOps & NetDevOps.

2.2 Présentation du domaine de DEVNET.


Cisco DevNet est un domaine qui combine :

− Programmation
− Automatisation réseau
− APIs des équipements réseau
− Infrastructure programmables (SDN, NFV, Intent-based networking)

L’objectif :
Automatiser, configurer, superviser et dépanner des réseaux à l’aide du code.

Pourquoi DevNet existe ?

Parce que les réseaux deviennent :

− Trop complexes pour être configurés manuellement


− Basés sur des APIs au lieu de CLI
− Dynamiques (SDN, Cloud, IoT…)
− Un ingénieur DevNet = un ingénieur réseau + un développeur.

2 .3 Programmation des réseaux via leurs APIs


Définir une API:

17
Une API = interface permettant à 2 systèmes de communiquer.

Les équipements modernes (Cisco IOS-XE, Juniper, Huawei…) exposent :

• RESTCONF API (HTTP + JSON/XML)

• NETCONF API (SSH + XML + YANG)

Grâce à Python, on peut :

- Lire la configuration
- Modifier des interfaces
- Créer des VLAN
- Vérifier l’état du routeur
- Automatiser des tâches répétitives

2.4 RFC liées à la programmation des réseaux


Les RFC importantes :

RFC Description

RFC 6241 NETCONF standard

RFC 8040 RESTCONF standard

RFC 6020 YANG 1.0

RFC 7950 YANG 1.1

RFC 7951 JSON Encoding for YANG

2.5 Effectuer les opérations RESTCONF avec Python


RESTCONF utilise

− HTTP(S)
− JSON ou XML
− Les modèles YANG

Exemple Python :RESTCONF GET

18
2.6 Effectuer les opérations NETCONF avec Python
NETCONF utilise :

• SSH

• XML

• YANG

Exemple Python:NETCONF GET

19
Additionnelle :

Requêtes d’interrogation via HTTPS:

Exemple GET simple

Postman + Python:

Exemple POST dans Postman


Body (JSON):

Exemple POST en Python

20
Programmation des équipements réseaux via leurs API :

Exemple GET sur DEVNET Sandbox

21
CHAPITRE 3 : Définition d’une API
3.1 Définition simple d’une API

Une API (Application Programming Interface) est une interface qui permet à deux programmes de
communiquer.

Dans DevNet :
➡ Les routeurs, switchs et firewalls exposent des APIs réseau pour accéder à la configuration.

3.2 Rôle des API en réseau


Les API permettent :

✔ Automatisation
✔ Supervision
✔ Modification automatique de la configuration
✔ Intégration réseau/cloud
✔ Zero-Touch Provisioning
✔ Network Programmability

3.3 Requêtes d’interrogation des API via HTTPS


Méthodes HTTP

Méthode Signification

GET Lire des données

POST Créer, ajouter

PUT Modifier

DELETE Supprimer

Exemple avec Postman :

1. URL :

2. Headers :

• Accept: application/yang-data+json

22
• Authorization: Basic Auth

3. Click → Send

4. Lire la réponse JSON

Exemple Python (GET) :

23
CHAPITRE 4 : Modèles YANG

24
4.1 Présentation
YANG = Yet Another Next Generation
Un langage pour décrire la structure et le type des données des équipements réseau.

Les APIs (RESTCONF/NETCONF) utilisent les modèles YANG pour :

• Organiser les données

• Valider les configurations

• Générer automatiquement JSON/XML

Structure d’un modèle YANG:

Composants :
• module
• container
• list
• leaf

Analyse d’un modèle YANG:

Étudiant doit identifier :


• les containers
• les feuilles (leaf)
• les types (string, boolean…)

25
4.2 Protocoles de transport & modèles de données
Protocole Format Transport

NETCONF XML SSH

RESTCONF JSON + XML HTTPS

4.3 Sources de modèles

Source Description

ietf Standards Internet

ieee Standards des réseaux

openconfig Google + opérateurs, modèles modernisés

Cisco native Modèles propres à Cisco

4.4 Exploration des modèles YANG avec Python


Exemple : télécharger un modèle YANG depuis un routeur IOS-XE.

26
Exemple2 :

27
CHAPITRE 5 : NETCONF

28
5.1 Présentation NETCONF
NETCONF = protocole standardisé (RFC 6241) pour gérer des équipements réseau via XML.

• Fonctionne via SSH


• Envoie des RPC
• Utilise XML pour la configuration

5.2 Piles de protocole NETCONF


• Transport layer : SSH

• Messages : RPC Layer

• Configuration data layer


• Operations : edit-config, get-config…

5.3 Opérations NETCONF

Opération Rôle

get Lire l’état

get-config Lire la configuration

edit-config Modifier la configuration

copy-config Copier une config

delete-config Supprimer

[Link] + YANG + XML


Exemple RPC :

29
5.5 Exemple Python : edit-config

30
CHAPITRE 6 :RESTCONF

31
6.1 Présentation RESTCONF

RESTCONF = interface HTTP sur les données YANG (RFC 8040).


Plus moderne que NETCONF.

6.2 Pile protocolaire RESTCONF

• Fonctionne via HTTPS

• Utilise : GET, POST, PUT, DELETE

• Utilise YANG comme modèle

• Format JSON/XML

RESTCONF dans Postman:

Exemple URL:

6.3 Opérations
Opération Description

GET Lire

POST Ajouter

PUT Modifier

DELETE Supprimer

Exemples Python:

GET

POST

32
6.4 YANG et RESTCONF ,Format JSON/XML
RESTCONF utilise les modèles YANG pour décrire la configuration et l’état des équipements réseau. Les
données échangées entre le client et le serveur RESTCONF sont envoyées sous forme de fichiers JSON
ou XML. JSON est léger et facile à lire, tandis que XML est plus structuré et souvent utilisé dans les
systèmes traditionnels. RESTCONF utilise donc YANG pour le modèle, et JSON/XML pour le transport des
données.

RESTCONF avec Python:

33
CHAPITRE 7 : Développement de Scripts d’API
avec Python

34
7.1 CRUD RESTCONF et Postman
CRUD
CRUD is an acronym that stands for the four basic operations you can perform on data in any system (like
databases or network devices):

• C → Create: Add new data.

• R → Read: Retrieve or view existing data.

• U → Update: Modify existing data.

• D → Delete: Remove data.

Postman
Postman is a tool that lets you send HTTP requests to APIs (like RESTCONF) to test them. It’s very
useful for learning and testing CRUD operations on network devices or any API.

• You can simulate Create, Read, Update, Delete operations on your network device through
RESTCONF using Postman.

CRUD RESTCONF

Create POST

Read GET

Update PUT

Delete DELETE

7.2 CRUD RESTCONF et Python


Create (POST)

Read (GET)

35
Update (PUT)

Delete (DELETE)

7.3 CRUD NETCONF et Python

36

Vous aimerez peut-être aussi