Ripasso rapido
Ripasso rapido: Automazione e Programmabilità – CCNA
Questa scheda di ripasso ti aiuta a rivedere i concetti fondamentali di automazione, programmabilità e reti controller-based richiesti nel percorso Cisco CCNA.
Cosa devi sapere davvero
Automazione e programmabilità sono diventate una parte importante del CCNA perché le reti moderne non vengono gestite solo tramite configurazione manuale da CLI. Sempre più spesso vengono usati controller, API, template, strumenti di automazione, formati strutturati e modelli programmabili.
Per CCNA non devi diventare sviluppatore software avanzato, ma devi capire i concetti fondamentali: cosa sono le API, come funziona REST, perché si usano JSON e YAML, cosa significa SDN, quali sono le differenze tra northbound e southbound API e perché strumenti come Ansible o Cisco DNA Center aiutano nella gestione delle reti.
Il punto centrale è questo: l'automazione serve a rendere la rete più coerente, scalabile, veloce da gestire e meno dipendente da configurazioni manuali ripetitive.
Concetti chiave
- Automation: uso di strumenti o script per eseguire attività ripetitive senza intervento manuale continuo.
- Programmability: capacità di controllare dispositivi o servizi tramite codice, API o modelli strutturati.
- API: interfaccia che permette a sistemi diversi di comunicare.
- REST API: API basata su richieste HTTP e risorse.
- JSON: formato dati strutturato molto usato nelle API.
- YAML: formato leggibile usato spesso in file di configurazione e automazione.
- SDN: modello che separa piano di controllo e piano dati.
- Controller-based networking: rete gestita da un controller centrale.
- Northbound API: API tra controller e applicazioni superiori.
- Southbound API: API o protocollo tra controller e dispositivi di rete.
- Cisco DNA Center: piattaforma Cisco per gestione, automazione e assurance.
- Ansible: strumento di automazione basato su playbook.
- NETCONF: protocollo per configurare dispositivi di rete in modo programmabile.
- RESTCONF: protocollo che espone dati di configurazione tramite approccio REST.
Differenze da non confondere
| Concetto | Significato principale |
|---|---|
| API | Interfaccia tra sistemi |
| REST | Stile API basato su HTTP |
| JSON | Formato dati strutturato |
| YAML | Formato leggibile per configurazioni |
| SDN | Separazione controllo/dati |
| Controller | Gestione centralizzata della rete |
| Northbound API | Controller verso applicazioni |
| Southbound API | Controller verso dispositivi |
| Ansible | Automazione tramite playbook |
| NETCONF | Configurazione programmabile di rete |
| RESTCONF | Configurazione via modello REST |
Perché serve l'automazione di rete
La configurazione manuale dispositivo per dispositivo può funzionare in piccole reti, ma diventa difficile quando la rete cresce.
Problemi della gestione manuale:
- errori umani;
- configurazioni incoerenti;
- tempi lunghi;
- troubleshooting più complesso;
- difficoltà nel documentare cambiamenti;
- difficoltà nel ripetere procedure identiche;
- scarsa scalabilità.
L'automazione aiuta a:
- applicare configurazioni coerenti;
- ridurre errori;
- velocizzare attività ripetitive;
- standardizzare procedure;
- documentare meglio;
- distribuire modifiche su molti dispositivi;
- integrare rete, sicurezza e sistemi IT.
Per CCNA devi ricordare che automazione non significa eliminare il networking tradizionale, ma gestirlo in modo più efficiente.
API
Una API, Application Programming Interface, è un modo standard con cui un software può comunicare con un altro software.
Nel networking, una API può permettere di:
- leggere informazioni da un dispositivo;
- inviare configurazioni;
- consultare statistiche;
- creare oggetti;
- modificare policy;
- interrogare un controller;
- integrare la rete con strumenti esterni.
Esempio concettuale: invece di entrare su ogni switch via CLI per controllare lo stato delle interfacce, un sistema può interrogare una API e raccogliere automaticamente i dati.
REST API
REST è uno stile molto diffuso per progettare API.
Le REST API usano normalmente HTTP e operazioni come:
- GET: leggere informazioni;
- POST: creare una nuova risorsa;
- PUT: aggiornare o sostituire una risorsa;
- PATCH: modificare parzialmente una risorsa;
- DELETE: eliminare una risorsa.
Per CCNA devi riconoscere soprattutto il significato generale dei metodi HTTP.
Esempio:
- GET può essere usato per leggere lo stato di un dispositivo;
- POST può essere usato per creare un oggetto;
- PUT può essere usato per aggiornare una configurazione;
- DELETE può essere usato per rimuovere una risorsa.
Codici HTTP
Le API REST restituiscono spesso codici di stato HTTP.
Alcuni codici comuni:
| Codice | Significato |
|---|---|
| 200 | OK, richiesta riuscita |
| 201 | Created, risorsa creata |
| 400 | Bad Request, richiesta errata |
| 401 | Unauthorized, autenticazione mancante o errata |
| 403 | Forbidden, accesso non autorizzato |
| 404 | Not Found, risorsa non trovata |
| 500 | Server Error, errore lato server |
Nei quiz CCNA può comparire il concetto che un codice 200 indica successo, mentre 404 indica risorsa non trovata.
JSON
JSON, JavaScript Object Notation, è un formato dati strutturato molto usato nelle API.
È composto da coppie chiave-valore.
Esempio concettuale:
- hostname: Router1;
- interface: GigabitEthernet0/1;
- status: up.
JSON è molto usato perché è leggibile, leggero e facile da elaborare per applicazioni e script.
Per CCNA devi riconoscere che JSON usa spesso parentesi graffe, coppie chiave-valore e strutture annidate.
YAML
YAML è un formato leggibile spesso usato per configurazioni, automazione e playbook.
È comune in strumenti come Ansible.
YAML usa indentazione per rappresentare la struttura dei dati. Questo lo rende leggibile, ma richiede attenzione agli spazi.
Per CCNA devi sapere che YAML è spesso scelto per file di configurazione e automazione perché è più leggibile per gli esseri umani rispetto ad altri formati.
JSON vs YAML
JSON e YAML possono rappresentare dati strutturati, ma sono usati spesso in contesti leggermente diversi.
| Formato | Uso tipico |
|---|---|
| JSON | API, scambio dati tra sistemi |
| YAML | Configurazioni, playbook, automazione |
JSON è molto comune nelle risposte API. YAML è molto comune nei file scritti da operatori o strumenti di automazione.
SDN
SDN significa Software-Defined Networking.
Il concetto principale è separare:
- control plane: decide dove deve andare il traffico;
- data plane: inoltra concretamente il traffico.
Nelle reti tradizionali, ogni dispositivo prende molte decisioni localmente. In un modello SDN o controller-based, un controller può avere una visione più centralizzata della rete e distribuire policy o configurazioni.
Per CCNA devi capire che SDN non significa che non esistano più router e switch. Significa che il controllo e la gestione possono essere più centralizzati e programmabili.
Control plane e data plane
Il control plane riguarda decisioni e logica.
Esempi:
- calcolo delle route;
- informazioni di routing;
- decisioni di forwarding;
- policy;
- controllo della topologia.
Il data plane riguarda l'inoltro effettivo del traffico.
Esempi:
- forwarding dei pacchetti;
- switching dei frame;
- applicazione pratica delle decisioni di forwarding.
Differenza semplice:
- control plane = decide;
- data plane = inoltra.
Controller-based networking
In una rete controller-based, un controller centrale gestisce dispositivi, policy, configurazioni e informazioni operative.
Il controller può:
- distribuire configurazioni;
- applicare policy;
- raccogliere dati;
- monitorare lo stato della rete;
- automatizzare attività;
- fornire API;
- semplificare provisioning e troubleshooting.
Un controller non elimina la necessità di conoscere routing, switching, sicurezza e wireless. Li coordina in modo più centralizzato.
Northbound API e southbound API
Questi due concetti sono molto importanti.
Le northbound API sono API tra il controller e applicazioni superiori, dashboard, orchestratori o strumenti esterni.
Le southbound API o protocolli collegano il controller ai dispositivi di rete.
Differenza semplice:
- northbound = verso applicazioni e sistemi di gestione;
- southbound = verso router, switch, access point e dispositivi.
Esempio:
- una dashboard usa una northbound API per chiedere dati al controller;
- il controller usa una southbound API o protocollo per configurare un dispositivo.
Cisco DNA Center
Cisco DNA Center è una piattaforma Cisco per gestione e automazione della rete.
Può essere usata per:
- gestione centralizzata;
- inventory dispositivi;
- automazione configurazioni;
- policy;
- assurance;
- monitoraggio;
- troubleshooting;
- integrazione tramite API.
Nel contesto CCNA, non serve conoscere ogni funzione avanzata, ma devi riconoscere Cisco DNA Center come piattaforma controller-based per gestione e automazione di rete.
Ansible
Ansible è uno strumento di automazione molto usato per configurazione e gestione.
Caratteristiche importanti:
- usa playbook;
- i playbook sono spesso scritti in YAML;
- può automatizzare attività ripetitive;
- può configurare molti dispositivi in modo coerente;
- usa moduli;
- è agentless in molti scenari, cioè non richiede un agente installato sul dispositivo gestito.
Esempio concettuale: invece di configurare manualmente dieci switch, un playbook Ansible può applicare una configurazione standard a tutti.
Playbook
Un playbook è un file che descrive attività da eseguire.
Può includere:
- dispositivi target;
- variabili;
- task;
- moduli da usare;
- configurazioni da applicare;
- verifiche.
I playbook aiutano a rendere le operazioni ripetibili e documentate.
Per CCNA devi collegare Ansible a YAML e al concetto di automazione dichiarativa o procedurale tramite task.
NETCONF
NETCONF è un protocollo usato per installare, modificare, eliminare e leggere configurazioni di dispositivi di rete.
Usa spesso modelli dati strutturati come YANG.
Concetti importanti:
- gestione programmabile;
- configurazioni strutturate;
- lettura e modifica dello stato;
- approccio più controllato rispetto allo screen scraping della CLI.
Per CCNA, devi riconoscere NETCONF come protocollo di configurazione e gestione programmabile dei dispositivi.
RESTCONF
RESTCONF fornisce un modo per accedere a dati di configurazione e stato usando un approccio simile a REST.
Usa HTTP e può rappresentare dati in formati come JSON o XML.
Differenza semplice:
- NETCONF è un protocollo specifico per gestione configurazioni;
- RESTCONF espone dati di configurazione usando principi REST.
Per CCNA devi sapere che RESTCONF è collegato a programmabilità, API e modelli dati.
YANG
YANG è un linguaggio di modellazione dei dati usato per descrivere configurazioni e stato dei dispositivi di rete.
YANG definisce la struttura dei dati che protocolli come NETCONF e RESTCONF possono usare.
Per CCNA non serve scrivere modelli YANG complessi, ma devi sapere che YANG descrive dati di rete in modo strutturato.
Intent-based networking
Intent-based networking significa esprimere cosa si vuole ottenere, lasciando al sistema il compito di tradurre quell'intento in configurazioni e policy.
Esempio:
- intento: il reparto guest deve accedere solo a Internet;
- sistema: applica VLAN, ACL, policy e configurazioni necessarie.
Il concetto è importante perché molte piattaforme moderne cercano di spostare la gestione dalla singola configurazione manuale all'obiettivo desiderato.
Vantaggi dell'automazione
I principali vantaggi sono:
- riduzione degli errori manuali;
- maggiore velocità;
- configurazioni coerenti;
- scalabilità;
- documentazione implicita tramite file e template;
- ripetibilità;
- integrazione con altri sistemi;
- provisioning più rapido;
- troubleshooting più efficiente.
In una rete grande, automatizzare una modifica riduce il rischio di avere dispositivi configurati in modo diverso per errore umano.
Rischi dell'automazione
L'automazione non è priva di rischi.
Rischi comuni:
- propagare velocemente un errore su molti dispositivi;
- usare template sbagliati;
- non testare modifiche;
- gestire male credenziali o token API;
- mancanza di controllo versioni;
- permessi eccessivi agli strumenti di automazione;
- poca documentazione;
- assenza di rollback.
Per questo automazione e change management devono lavorare insieme.
Version control
Il version control permette di tracciare modifiche a file, script, template e configurazioni.
Vantaggi:
- sapere chi ha modificato cosa;
- tornare a versioni precedenti;
- collaborare meglio;
- documentare cambiamenti;
- ridurre errori;
- supportare audit e troubleshooting.
Git è un esempio comune di sistema di controllo versione.
Nel contesto CCNA, devi capire il valore del version control anche se non devi diventare esperto Git.
Troubleshooting automazione e API
Quando una automazione non funziona, devi controllare:
- credenziali;
- token API;
- permessi;
- endpoint corretto;
- metodo HTTP corretto;
- payload corretto;
- formato JSON o YAML valido;
- connettività verso controller o dispositivo;
- risposta HTTP;
- log dello strumento;
- compatibilità del dispositivo.
Esempio: se una API restituisce 401, il problema è probabilmente autenticazione. Se restituisce 404, la risorsa o endpoint potrebbe non esistere.
Errori comuni nei quiz
- Pensare che automazione significhi sostituire completamente gli amministratori di rete.
- Confondere JSON e YAML.
- Pensare che YAML sia usato solo per API.
- Confondere northbound e southbound API.
- Pensare che SDN elimini router e switch.
- Confondere control plane e data plane.
- Pensare che REST sia un protocollo di routing.
- Pensare che GET modifichi configurazioni.
- Dimenticare che POST, PUT, PATCH e DELETE possono modificare risorse.
- Confondere Ansible con un protocollo di routing.
- Pensare che automazione elimini la necessità di test e change management.
- Dimenticare che un errore automatizzato può propagarsi molto velocemente.
Mini scenario d'esame
Un team vuole applicare la stessa configurazione di base a venti switch. Farlo manualmente richiede tempo e può generare errori diversi su ogni dispositivo. La soluzione più adatta è usare uno strumento di automazione, come Ansible, con un playbook e template controllati.
Un altro scenario: una dashboard deve leggere informazioni da un controller di rete. La comunicazione tra dashboard e controller avviene tramite una northbound API.
Mini checklist prima del quiz
Prima di iniziare il quiz dovresti saper spiegare:
- cosa significa automazione di rete;
- cosa significa programmabilità;
- cosa fa una API;
- cosa caratterizza una REST API;
- la differenza tra GET, POST, PUT e DELETE;
- cosa indicano codici HTTP come 200, 401 e 404;
- cosa sono JSON e YAML;
- la differenza tra JSON e YAML;
- cosa significa SDN;
- la differenza tra control plane e data plane;
- cosa sono northbound e southbound API;
- a cosa serve Cisco DNA Center;
- a cosa serve Ansible;
- cosa sono NETCONF, RESTCONF e YANG;
- perché automazione e change management devono essere collegati.
FAQ
Che cosa significa automazione di rete?
Significa usare strumenti, script, template o controller per eseguire attività di rete in modo ripetibile e meno manuale.
Che cosa sono le API nel networking?
Le API permettono a software, controller e strumenti esterni di comunicare con dispositivi o piattaforme di rete.
Che differenza c'è tra JSON e YAML?
JSON è molto usato nello scambio dati tramite API. YAML è spesso usato per file di configurazione e playbook perché è leggibile dagli operatori.
Che cos'è SDN?
SDN significa Software-Defined Networking. È un modello che separa il piano di controllo dal piano dati e permette una gestione più centralizzata e programmabile.
Qual è la differenza tra northbound API e southbound API?
Le northbound API collegano controller e applicazioni superiori. Le southbound API o protocolli collegano controller e dispositivi di rete.
A cosa serve Ansible?
Ansible serve ad automatizzare configurazioni e attività ripetitive, spesso usando playbook scritti in YAML.
Che cosa sono NETCONF e RESTCONF?
Sono tecnologie usate per gestire configurazioni e dati dei dispositivi in modo programmabile e strutturato.
L'automazione elimina gli errori?
No. Riduce molti errori manuali, ma se viene progettata male può propagare rapidamente errori su molti dispositivi.
Ora metti alla prova quello che hai ripassato
Dopo il ripasso, passa al quiz per verificare se hai davvero capito i concetti principali.