Session 7 RESTCONF - Programmation des Réseaux - 2024-2025 PDF
Document Details
Uploaded by BeneficentRainforest7666
Université Moulay Ismail
2025
H. Hantouti
Tags
Summary
Ce document détaille la session 7 sur la programmabilité des réseaux, en se concentrant spécifiquement sur RESTCONF. Des concepts tels que le protocole HTTP, les données YANG, et les opérations CRUD sont abordés. Il s'agit d'une ressource pédagogique pour les étudiants d'ingénierie informatique.
Full Transcript
Matière: programmabilité des réseaux Programmabilité des réseaux Filiere: IA Année universitaire: 2024-2025 Professeur: H. Hantouti Restconf Restconf RESTCONF est un protocole HTTP qui fournit une interface de...
Matière: programmabilité des réseaux Programmabilité des réseaux Filiere: IA Année universitaire: 2024-2025 Professeur: H. Hantouti Restconf Restconf RESTCONF est un protocole HTTP qui fournit une interface de programmation pour accéder aux données définies dans YANG. Bien que NETCONF soit une amélioration significative par rapport à SNMP, il ne fournissait pas aux périphériques réseau une bonne interface API REST. Plutôt que de développer un protocole et un modèle de données entièrement nouveaux, l’IETF a étendu NETCONF à RESTCONF. Restconf RFC 8040 - Janvier 2017. Utilise HTTP(S) pour le transport. Étroitement couplé aux définitions du modèle de données YANG. Fournit des formats de données JSON ou XML. Donc, plus de NETCONF alors? RESTCONF ne remplace PAS NETCONF. RESTCONF fournit une API qui s’aligne sur d’autres API d’application Web pour fournir un point d’entrée facile pour les développeurs. Restconf Il est probable que NETCONF et RESTCONF soient utilisés simultanément par différents clients. Restconf Le serveur RESTCONF fonctionnant sur l'appareil interagit alors avec le magasin de données qui contient les données de configuration et les données d'état. Les attributs contenus dans le magasin de données sont définis par des modèles YANG. Pile de protocoles RESTCONF Restconf: HTTP Based Transport Comme les autres API REST, RESTCONF utilise le protocole HTTPS, en particulier HTTPS, pour encapsuler et envoyer des messages. L’authentification est effectuée à l’aide de modèles d’authentification HTTP typiques tels que l’authentification de base. Comprendre les opérations de RESTCONF Les API REST implémentent généralement des opérations CRUD (Create, Retrieve, Update et Delete) à l’aide des méthodes HTTP disponibles. RESTCONF mappe les opérations NETCONF dans ces méthodes HTTP comme indiqué dans ce tableau. RESTCONF NETCONF GET , POST (operation="create") PUT (operation="create/replace") DELETE (operation="delete") Restconf: Clients et serveurs/Demandes et réponses Comme tous les protocoles basés sur HTTP, RESTCONF suit le modèle Request -> Response entre le client et le serveur. Dans ce cas, le serveur est un agent RESTCONF exécuté sur un périphérique réseau. En-têtes RESTCONF L’un des principaux avantages de RESTCONF par rapport à NETCONF est sa capacité à utiliser JSON comme format de données. De nombreux développeurs préfèrent JSON (à XML) en raison de sa lisibilité et de sa surcharge réduite. Lors de l’élaboration d’une demande RESTCONF, vous spécifiez le format de données envoyé et demandé par l’agent. Cela se fait d’une manière HTTP typique; En-têtes RESTCONF Utilisation des en-têtes de requête : ► Content-Type : spécifiez le type de données envoyées par le client ► Accept : spécifiez le type de données demandées par le client RESTCONF décrit les types de fichiers (MIME) suivants à utiliser dans ces en-têtes pour indiquer le format demandé. o application/yang-data+json o application/yang-data+xml Création d’un URI RESTCONF Un aspect vrai de toutes les API REST est l’importance de l’URI dans l’identification des données demandées ou configurées, et RESTCONF ne fait pas exception. les modèles YANG SONT la documentation de l’API. Tous les URI RESTCONF suivent ce format : https:////données//[?] URI: /{module-name}/{resource-path}[?{query-string}] Création d’un URI RESTCONF ► ADRESSE - L’adresse IP (ou nom DNS) et le port où l’agent RESTCONF est disponible. ► ROOT - Le point d’entrée principal pour les requêtes RESTCONF. ► Avant de vous connecter à un serveur RESTCONF, vous devez déterminer la racine. ► Selon la norme RESTCONF, les périphériques doivent exposer une ressource appelée /. well-known/host-meta pour permettre la découverte de la racine par programmation. ► data - Le type de ressource API RESTCONF pour les données ► [MODULE YANG:] CONTAINER - Le conteneur du modèle de base utilisé. ► L’inclusion du nom du module est facultative. ► LEAF - Un élément individuel provenant de l’intérieur du conteneur. ► [?\] - Certains périphériques réseau peuvent prendre en charge les options envoyées en tant que paramètres de requête qui ont un impact sur les résultats renvoyés. Création d’un URI RESTCONF: exemple à l’aide des détails du modèle, vous pouvez construire les URI pour les demandes RESTCONF. Liste des interfaces : https:///restconf/data/ietf-interfaces:interfaces Exemples Récupérer la liste de toutes les interfaces: GET /restconf/data/ietf-interfaces:interfaces Obtenir les détails d'une interface spécifique: GET /restconf/data/ietf- interfaces:interfaces/interface=GigabitEthernet0/0 Exemples Configurer la description d'une interface: PUT https:///restconf/data/Cisco-IOS-XE-native:native/interface/GigabitEthernet=0/0 Corps de la requette: { "Cisco-IOS-XE-native:native": { "interface": { "GigabitEthernet": { "0": { "name": "GigabitEthernet0/0", "description": "Link to Server1" } } } } } Restconf documentation -No specific documentation for the Restconf API, the yang modules are the documentation. - Some Postman collections are available, can serve as documentation. Example: