Pagina che incorpora in ordine tutte le note della cartella Day 59-63 - Note complete. Sono le note complete: la fonte di studio. Il ripasso veloce è 00 Automation - Riassunto.
Day 59 — Intro, SDN e AI/ML
Day 59 (part 1) Intro to Network Automation
Core Logic
01:21 L’automazione di rete segna il passaggio dalla gestione manuale “hop-by-hop” (CLI) a un modello programmabile centralizzato. L’obiettivo è eliminare l’errore umano, garantire la conformità delle configurazioni (evitando il config drift) e ridurre le spese operative (OPEX).
🏗️ Anatomia dei Piani Logici
Per comprendere il Software-Defined Networking (SDN), è fondamentale scomporre le funzioni di rete in tre piani distinti:
L’SDN centralizza il Control Plane in un software chiamato Controller. Gli apparati fisici diventano meri esecutori del Data Plane.
Interfacce di Sistema
Southbound Interface (SBI) 17:49: Il protocollo con cui il controller istruisce gli switch (es. OpenFlow, NETCONF, OpFlex).
Northbound Interface (NBI) 20:24: API (solitamente REST) che permettono alle applicazioni di dialogare con il controller per programmare la rete.
📉 Estrazione di Valore e Benefici
L’automazione non è solo SDN, ma include script (Python) e strumenti di gestione (Ansible):
Riduzione Errore: Eliminazione dei typo manuali.
Scalabilità: Modifiche su centinaia di dispositivi in una singola operazione.
Analisi Analitica: Il controller offre una visione globale della topologia, facilitando il troubleshooting rispetto al modello tradizionale distribuito.
📑 Formati Dati (Verso la Programmabilità)
A differenza della CLI (pensata per gli umani), l’automazione utilizza dati strutturati per la comunicazione tra macchine:
JSON / XML: Formati standard che rendono i dati facilmente leggibili dai programmi senza necessità di complessi parsing dell’output “show”.
Analisi dei fondamentali di Artificial Intelligence (AI) e Machine Learning (ML) applicati al networking, con focus sui modelli di apprendimento e sulle funzionalità intelligenti del Cisco Catalyst Center.
🌐 Definizioni Fondamentali
Artificial Intelligence (AI)
L’uso di sistemi computazionali per simulare l’intelligenza umana, inclusi il riconoscimento di pattern, l’apprendimento autonomo e il problem solving. 01:52
Machine Learning (ML)
Un sottogruppo dell’AI che permette ai computer di apprendere dai dati e migliorare le performance nel tempo senza essere esplicitamente programmati per ogni specifica attività. 04:08
Analizza i dati storici per prevedere eventi futuri. 20:48
Traffic Forecasting: Ottimizzazione della banda e prevenzione della congestione.
Security Threat Detection: Identificazione proattiva di anomalie e attacchi.
Predictive Maintenance: Sostituzione hardware prima del guasto critico.
🎨 Generative AI
Crea nuovi contenuti (testo, immagini, codice) basandosi su pattern appresi. 21:45
Generazione Configurazioni: Creazione automatica di script per dispositivi di rete.
Troubleshooting: Analisi dei log e suggerimenti di risoluzione.
Scripting: Automazione tramite script Python generati dall’AI. 28:32
Rischio Allucinazioni
I modelli LLM (come ChatGPT) possono generare configurazioni sintatticamente corrette ma tecnicamente errate. È imperativo verificare sempre l’output prima dell’implementazione in produzione. 25:18
🏛️ AI nel Cisco Catalyst Center (ex DNA Center)
L’infrastruttura Cisco utilizza l’AI per passare da una gestione reattiva a una proattiva. 29:01
🚀 Funzionalità Chiave:
AI Network Analytics: Stabilisce una baseline del comportamento normale della rete per rilevare anomalie specifiche. 29:51
Machine Reasoning Engine (MRE): Esegue la Root-cause analysis automatizzata per risolvere problemi complessi più velocemente. 30:52
AI Endpoint Analytics: Identifica e classifica i dispositivi connessi (IoT, PC, Mobile) per applicare policy di sicurezza e segmentazione. 32:02
AI-Enhanced RRM: Ottimizza le frequenze Wi-Fi e la potenza di trasmissione degli Access Point per ridurre le interferenze. 32:51
📝 Esempio di Automazione AI (Python)
L’AI può generare script per automatizzare il Control Plane:
from netmiko import ConnectHandlerdef enable_interface(device_ip, interface): # Esempio di script generato per abilitare una G0/0 device = { 'device_type': 'cisco_ios', 'host': device_ip, 'username': 'admin', 'password': 'password123', } with ConnectHandler(**device) as net_connect: config_commands = [f'interface {interface}', 'no shutdown'] output = net_connect.send_config_set(config_commands) print(output)
Summary per l'esame CCNA
Comprendere la differenza tra Supervised (etichettato) e Unsupervised (non etichettato).
Sapere che le Neural Networks sono alla base del Deep Learning.
Riconoscere MRE e AI Network Analytics come pilastri del Cisco Catalyst Center.
Ricordare che l’AI nelle reti serve a creare Baselines, ottimizzare il Wi-Fi (RRM) e accelerare la Root-cause analysis. 35:54
La Data Serialization è il processo di conversione dei dati in un formato standardizzato per consentirne l’archiviazione o la trasmissione tra applicazioni diverse (es. Python e Java) e tra controller SDN e dispositivi di rete. È il linguaggio universale delle API e dell’automazione.
🏗️ Fondamenti della Serializzazione
La serializzazione permette di rappresentare variabili e strutture dati complesse sotto forma di testo leggibile 01:34. Senza uno standard, due applicazioni scritte in linguaggi diversi non potrebbero interpretare correttamente i dati scambiati 02:53.
Variabili come Container
In questo contesto, le variabili sono container che memorizzano valori (es. interface_name: GigabitEthernet1/1) 02:37.
🌐 JSON (JavaScript Object Notation)
È il formato più rilevante per l’esame CCNA (Topic 6.7) ed è ampiamente utilizzato nelle REST API04:10.
Le REST APIs rappresentano lo standard de facto per la programmabilità delle reti moderne. In un’architettura SDN (Software-Defined Networking), esse costituiscono la Northbound Interface (NBI), permettendo ad applicazioni esterne di comunicare con il Controller tramite il protocollo HTTP per automatizzare la gestione dei dispositivi.
🏗️ Architettura e SDN
Le API (Application Programming Interface) agiscono come un’interfaccia software che permette a due applicazioni di scambiare dati 02:01.
Northbound Interface (NBI): Tipicamente utilizza REST APIs per connettere il Controller SDN ad applicazioni di gestione o script 02:32.
Southbound Interface (SBI): Utilizza protocolli come NETCONF, RESTCONF o SNMP per configurare i dispositivi fisici 02:50.
⚡ Operazioni CRUD e Verbi HTTP
La logica di gestione delle risorse in REST si basa sul modello CRUD, che mappa direttamente sui verbi del protocollo HTTP03:08.
Operazione CRUD
Descrizione
Verbo HTTP
Create
Crea una nuova risorsa/variabile
POST
Read
Recupera informazioni su una risorsa
GET
Update
Modifica una risorsa esistente
PUT / PATCH
Delete
Rimuove una risorsa
DELETE
Differenza tra PUT e PATCH
Sebbene entrambi effettuino un Update, PUT solitamente sostituisce l’intera risorsa, mentre PATCH modifica solo i campi specificati 05:08.
🛠️ Anatomia di una Richiesta REST
Ogni chiamata API tramite HTTP deve contenere elementi specifici per essere interpretata correttamente dal server 05:35:
URI (Uniform Resource Identifier): Indica la risorsa specifica.
4xx (Client Error): Errore nella richiesta (es. 403 Forbidden, 404 Not Found) 09:41.
5xx (Server Error): Il server ha fallito l’elaborazione (es. 500 Internal Server Error) 10:41.
📑 Vincoli dell’Architettura RESTful
Per essere definita RESTful, un’API deve rispettare sei vincoli fondamentali 13:28:
Client-Server: Separazione netta tra l’interfaccia utente e la gestione dei dati.
Stateless (Senza Stato): Ogni richiesta deve contenere tutte le informazioni necessarie; il server non memorizza il contesto delle sessioni passate 14:45.
Cacheable: Le risposte devono dichiarare se possono essere memorizzate per migliorare le performance 16:15.
Layered System: Il client non deve sapere se è connesso direttamente al server finale o a un intermediario.
Uniform Interface: Utilizzo di identificatori di risorse e messaggi auto-descrittivi.
Code on Demand (Opzionale): Invio di codice eseguibile dal server al client.
Stateless != TCP
Anche se REST usa spesso HTTP su TCP (che è stateful), l’applicazione REST stessa è stateless. Il server non tiene traccia di “dove sei rimasto” tra una chiamata e l’altra 15:45.
💻 Demo Pratica: Cisco DevNet & Postman
Nel video viene mostrato come utilizzare Postman per interrogare un controller Cisco DNA Center tramite sandbox gratuite 17:51.
Passaggio 1: Generazione dell’Auth Token tramite POST e credenziali di base 20:33.
Passaggio 2: Utilizzo del token nell’header X-Auth-Token per ottenere l’inventario dei dispositivi con una GET22:15.
Analisi JSON: Analisi dei dati ritornati (Hostname, Platform ID, Uptime) 23:17.
L’autenticazione nelle REST API è il processo di validazione dell’identità di un utente o sistema per garantire l’accesso legittimo alle risorse. Oltre alla sicurezza, è fondamentale per l’analytics e il billing (es. tracciamento dei token in ChatGPT). 01:42.
🏗️ Fondamenti dell’Autenticazione API
Senza autenticazione, chiunque potrebbe inviare API requests, accedendo a dati sensibili o modificando l’applicazione. 02:16.
Tracking e Billing
Molte API utilizzano l’autenticazione per scopi commerciali, addebitando costi in base all’utilizzo (es. modelli OpenAI basati su token). 03:08.
🔐 Metodi di Autenticazione (Authentication Schemes)
1. Basic Authentication
È il metodo più semplice. Invia credenziali direttamente nell’HTTP Header. 05:41.
Formato: username:password.
Codifica: Le credenziali sono codificate in Base64. 07:33.
Rischio Sicurezza
La codifica Base64 NON è cifratura. È facilmente decodificabile. È imperativo utilizzare HTTPS (TLS) per proteggere il traffico. 07:53.
2. Bearer Authentication
Utilizza un Token (chiamato Bearer Token) invece delle credenziali classiche. 10:04.
Processo: Il client ottiene il token da un Authorization Server. 10:11.
Scadenza: I token solitamente scadono dopo un tempo prefissato per limitare i danni in caso di furto. 11:46.
3. API Key Authentication
Utilizza una chiave statica univoca assegnata al client. 13:13.
Posizionamento: Può essere inviata nell’header, nell’URL o nei cookie.
Limitazioni: Le chiavi inserite negli URL sono meno sicure perché loggate da web server e browser. 13:48.
4. OAuth 2.0
Un framework avanzato per l’Access Delegation. Permette ad app terze di accedere a risorse limitate per conto dell’utente senza condividerne la password. 16:11.
Client App: L’applicazione che richiede l’accesso (es. un’app di calendario).
Auth Server: Il server che emette il token (es. Google Auth).
Resource Server: Il server che ospita i dati (es. Google Calendar).
📊 Confronto Metodi di Autenticazione
Metodo
Meccanismo
Sicurezza
Uso Comune
Basic
Username/Password in Base64
Bassa (richiede TLS)
Ambienti legacy/semplici
Bearer
Token generato da server
Alta
Web App moderne
API Key
Stringa univoca statica
Media
Cloud Services / Tracking
OAuth 2.0
Framework di delega (Token)
Massima
Integrazioni terze parti
⚡ Concetti Avanzati OAuth 2.0
Token Refresh
Per evitare che l’utente debba rieseguire il login ogni volta che un Access Token scade, OAuth 2.0 utilizza i Refresh Tokens per ottenere nuove chiavi automaticamente. 20:13.
Flusso Operativo OAuth 2.0
Il Client richiede autorizzazione.
Il Resource Owner concede il permesso.
Il Client scambia il permesso con un Access Token.
Il Client usa il Token per richiedere la risorsa. 18:32.
Nota generata per lo studio della certificazione CCNA basata sul materiale di Jeremy’s IT Lab.
Day 62 Software-Defined Networking (SD-Access & DNA Center)
Core Logic
Il Software-Defined Networking (SDN) evolve la gestione di rete separando il Control Plane dal Data Plane. Cisco implementa questa visione nel Campus LAN tramite SD-Access, utilizzando il controller DNA Center per trasformare i requisiti di business (Intent) in configurazioni di rete automatizzate attraverso un’architettura a Fabric.
🏗️ Architettura e Layer SDN
L’approccio SDN centralizza l’intelligenza della rete in un software chiamato Controller01:31.
L’architettura si divide in tre layer fondamentali 03:08:
Application Layer: Script e applicazioni che definiscono i comportamenti desiderati.
Control Layer: Il Controller SDN (es. DNA Center) che elabora le istruzioni.
Infrastructure Layer: I dispositivi fisici che inoltrano il traffico (Data Plane) *
🔗 Interfacce API
Northbound API (NBI): Permette la comunicazione tra applicazioni e controller 02:39.
Southbound API (SBI): Permette al controller di programmare i dispositivi fisici (es. NETCONF, RESTCONF) 02:34.
💎 Cisco SD-Access (SDA)
SD-Access è la soluzione Cisco per automatizzare le LAN aziendali 04:19. Si basa sul concetto di Fabric05:21.
🪜 Underlay vs Overlay
Concetto
Descrizione
Protocolli/Note
Underlay
Rete fisica di switch e router che garantisce connettività IP 06:02.
Spesso usa IS-IS. Design L3 Routed Access (no STP) 09:12.
Overlay
Rete virtuale creata sopra l’Underlay tramite tunnel 06:30.
Edge Node: Collega gli host finali (simile all’Access Layer tradizionale).
Border Node: Collega la Fabric a reti esterne (es. Internet o WAN).
Control Node: Gestisce il database di mapping tra endpoint e la loro posizione.
🌐 Protocolli Chiave in SD-Access
Il Control Plane e il Data Plane di SDA
In SD-Access, i protocolli tradizionali sono sostituiti o potenziati per supportare la mobilità e l’automazione.
LISP (Locator/ID Separation Protocol): Gestisce il Control Plane. Mappa gli EID (Endpoint Identifiers) ai RLOC (Routing Locators) 08:12.
VXLAN (Virtual Extensible LAN): Gestisce il Data Plane. Incapsula i frame Layer 2 in pacchetti Layer 3 per creare i tunnel dell’Overlay 11:26.
Cisco TrustSec (CTS): Applica le policy di sicurezza basate su gruppi (SGT) invece che su indirizzi IP 11:13.
🎮 Cisco DNA Center (DNAC)
Il DNA Center è il “cervello” dell’architettura SD-Access 10:57.
🚀 Intent-Based Networking (IBN)
DNAC permette l’Intent-Based Networking: l’amministratore definisce cosa la rete deve fare (Intent) e il controller gestisce il come (configurazione tecnica) 13:38.
Deployment Tipi
Greenfield: Nuovo network costruito da zero ottimizzato per SDA 15:00.
Brownfield: Aggiunta di SDA su un’infrastruttura esistente 14:26.
Cisco DNAC include una sezione di Assurance18:03 che fornisce un punteggio di “salute” per ogni dispositivo e client, permettendo di identificare rapidamente colli di bottiglia o problemi di compliance software 17:30.
Nota generata per il ripasso CCNA - Basata su Jeremy’s IT Lab Day 62.
I tool di Configuration Management automatizzano il provisioning, il monitoraggio e la conformità delle configurazioni di rete su larga scala, eliminando i rischi legati alla gestione manuale “hop-by-hop” e prevenendo il fenomeno del configuration drift.
📉 Il Problema: Configuration Drift
Il Configuration Drift01:46 si verifica quando le modifiche manuali eseguite nel tempo (per troubleshooting o test) causano una deviazione del dispositivo dallo standard aziendale.
Senza automazione, tenere traccia di queste variazioni è quasi impossibile in reti con centinaia di nodi 02:57.
🛠️ Configuration Provisioning: Modello a Template
Per scalare la gestione, i tool di automazione utilizzano due componenti essenziali 05:08:
Templates: File di configurazione standard con placeholder.
Variables: File separati contenenti i dati specifici (es. IP, hostname) che vengono iniettati nel template per generare la configurazione finale 05:23.
🤖 Tool di Automazione a Confronto
🅰️ Ansible
È attualmente il tool più popolare per i Network Engineers grazie alla sua semplicità 08:04.
Architettura: Agentless08:18 (non richiede software installato sui nodi gestiti).
Protocollo: Utilizza SSH per connettersi ai dispositivi 08:27.
Modello: Push08:44 (il Control Node spinge le modifiche verso i client).
Resources: Gli “ingredienti” della configurazione.
Recipes: Logica delle azioni da compiere.
Cookbooks: Gruppi di recipe correlate.
Run-list: L’ordine sequenziale in cui eseguire le recipe.
📊 Tabella Comparativa Finale
Memorizzare questa tabella per l'esame CCNA 15:08.
Caratteristica
Ansible
Puppet
Chef
Linguaggio
Python
Ruby
Ruby
Modello
Push
Pull
Pull
Setup
Agentless
Agent-based
Agent-based
Protocollo
SSH
HTTPS (8140)
HTTPS (10002)
File Principali
Playbook (YAML)
Manifest
Recipe / Cookbook
⚠️ Avvertenze per l’Esame
Supporto Cisco
Non tutti i dispositivi Cisco supportano gli agent di Puppet o Chef. Questo è uno dei motivi principali per cui Ansible (essendo agentless via SSH) è lo standard de facto nel networking 11:08.
Day 63 (part 2) Terraform Basics & Infrastructure as Code (IaC)
Core Logic
Terraform è uno strumento di Infrastructure as Code (IaC) open-source, agentless e declarative, focalizzato principalmente sul provisioning di risorse (cloud e on-prem) piuttosto che sulla sola gestione della configurazione. A differenza di Ansible, promuove un’infrastruttura immutabile.
🌐 Infrastructure as Code (IaC)
L’IaC è la pratica di gestire e sottoporre a provisioning l’infrastruttura (server, rete, risorse cloud) tramite file di configurazione leggibili dalla macchina (code) invece di processi manuali via CLI o GUI 02:27.
Tool IaC per il CCNA
Cisco include nel programma d’esame i seguenti tool: Ansible, Terraform, Puppet e Chef00:32.
⚡ Differenze Chiave: Provisioning vs Management
Sebbene esistano sovrapposizioni, i tool IaC si dividono in due categorie principali basate sul loro obiettivo primario:
Creazione di VM, switch virtuali, VPC, storage 05:09.
Workflow
Spesso usato dopo il provisioning.
Spesso usato come primo step dell’automazione.
🏗️ Architettura e Approccio
🔄 Mutable vs Immutable Infrastructure
Mutable (Ansible): Le modifiche vengono applicate direttamente sulle risorse esistenti (update in place). Può portare al fenomeno del Configuration Drift05:46.
Immutable (Terraform): Le risorse non vengono modificate. Per ogni cambiamento, Terraform distrugge la vecchia risorsa e ne crea una nuova con la configurazione aggiornata, eliminando il rischio di drift 06:28.
📑 Procedural vs Declarative
Procedural (Imperative): L’ingegnere deve definire come arrivare al risultato tramite step espliciti (es. “esegui questo comando, poi quest’altro”) 07:30.
Declarative: L’ingegnere definisce lo stato finale desiderato (es. “voglio 3 router con questa IP”). Il tool calcola autonomamente i passaggi necessari 08:05.