Automatisation Reseau Et Apis

CCST Networking (Cisco Certified Support Technician)Cloud & IoT

Automatisation réseau et APIs

Définition

L'automatisation réseau consiste à utiliser des outils logiciels pour configurer, provisionner, tester et gérer les équipements réseau sans intervention manuelle CLI. Elle repose sur des APIs (Application Programming Interfaces) qui exposent les fonctionnalités des équipements de manière programmable. Les protocoles clés sont NETCONF, RESTCONF et les APIs REST, avec des modèles de données YANG.

Contexte

La gestion manuelle par CLI ne passe pas à l'échelle dans les réseaux modernes (centaines/milliers d'équipements). L'automatisation apporte cohérence, rapidité, reproductibilité et réduit les erreurs humaines. La certification CCST attend du candidat qu'il comprenne les concepts fondamentaux de l'automatisation et du réseau programmable.

Détails techniques

Gestion traditionnelle vs automatisée

Critère CLI manuelle Automatisé
Vitesse Lente (équipement par équipement) Rapide (en parallèle)
Cohérence Risque d'erreur humaine Configuration identique garantie
Reproductibilité Difficile Un script = même résultat à chaque exécution
Scalabilité ~10 équipements max Centaines/milliers
Audit Dépend de la documentation Automatique (version control, logs)

APIs réseau — types

API Transport Format Standard
SNMP (legacy) UDP 161/162 MIB IETF
NETCONF SSH (TCP 830) XML IETF RFC 6241
RESTCONF HTTPS JSON ou XML IETF RFC 8040
gNMI (gRPC Network Management Interface) gRPC / HTTP/2 Protobuf OpenConfig
REST API propre HTTPS JSON Propriétaire (Cisco DNA Center, Meraki)

YANG — modèle de données

YANG (Yet Another Next Generation) est un langage de modélisation qui décrit la structure des données de configuration et d'état d'un équipement réseau :

module ietf-interfaces {
  container interfaces {
    list interface {
      key "name";
      leaf name { type string; }
      leaf type { type identityref { base interface-type; } }
      leaf enabled { type boolean; default true; }
    }
  }
}

Les modèles YANG sont utilisés par NETCONF et RESTCONF pour structurer les requêtes et les réponses.

NETCONF — opérations

Opération Description
<get> Lire la configuration et l'état opérationnel
<get-config> Lire uniquement la configuration
<edit-config> Modifier la configuration
<copy-config> Copier une configuration (running → startup)
<lock> / <unlock> Verrouiller la config pour éviter les modifications concurrentes
<commit> Appliquer les changements (candidate → running)

RESTCONF — méthodes HTTP

Méthode Opération Équivalent NETCONF
GET Lire <get>
POST Créer <edit-config> (merge)
PUT Créer ou remplacer <edit-config> (replace)
PATCH Modifier partiellement <edit-config> (merge)
DELETE Supprimer <edit-config> (delete)

Outils d'automatisation

Outil Type Description
Ansible Agentless, YAML Playbooks déclaratifs, modules réseau (ios_config, nxos_config)
Python + Netmiko Script Bibliothèque Python pour SSH vers des équipements réseau
Python + NAPALM Script Abstraction multi-vendeur pour configuration réseau
Terraform IaC Infrastructure as Code pour cloud et réseau (providers Cisco, AWS)
Cisco DNA Center Plateforme Intent-based networking — API REST pour automatisation campus
Cisco Meraki Dashboard API API REST Gestion cloud des équipements Meraki

Architecture SDN (Software-Defined Networking)

┌───────────────────────────┐
│    Application Layer      │  (Dashboard, scripts, orchestrateurs)
│    (Northbound API)       │
├───────────────────────────┤
│    Control Layer          │  (Contrôleur SDN : Cisco DNA Center, OpenDaylight)
│    (Southbound API)       │
├───────────────────────────┤
│    Infrastructure Layer   │  (Switches, routeurs, APs)
└───────────────────────────┘
Interface Direction Exemples
Northbound API Contrôleur → Applications REST API
Southbound API Contrôleur → Équipements NETCONF, OpenFlow, CLI

Exemple concret

Scénario : un administrateur doit configurer un VLAN 50 (« Serveurs ») sur 40 switches d'accès Catalyst 9300.

  1. Sans automatisation : se connecter en SSH à chaque switch, taper les commandes → ~2 heures, risque d'erreur.
  2. Avec Ansible : un playbook YAML de 15 lignes :
    - name: Créer VLAN 50 sur tous les switches
      hosts: access_switches
      gather_facts: no
      tasks:
        - name: Configurer VLAN 50
          cisco.ios.ios_vlans:
            config:
              - vlan_id: 50
                name: Serveurs
                state: active
            state: merged
    
  3. ansible-playbook vlan50.yml → les 40 switches sont configurés en parallèle en ~30 secondes.
  4. Ansible génère un rapport de changements (changed/ok/failed) pour chaque switch.
  5. Le playbook est versionné dans Git → auditabilité complète.