TR-069
TR-069 (abbreviazione di Technical Report 069) indica un insieme di specifiche tecniche intitolato Customer Premises Equipment (CPE) WAN Management Protocol (CWMP) redatto a cura del DSL Forum (noto attualmente come Broadband Forum) e definisce il protocollo a livello di applicazione per la gestione remota di dispositivi per l'utente finale.
Cenni storici
A seguito del repentino sviluppo del mercato a banda larga, il numero di dispositivi che permettono l'accesso ad internet è cresciuto notevolmente ed è ad oggi costituito da un gran numero di dispositivi eterogenei, come modem, router, gateway, set-top box e telefoni VoIP. Allo stesso tempo, contemporaneamente allo sviluppo delle molteplici funzionalità di tali dispositivi, la configurazione di questi apparati di rete è diventata sempre più complessa, tanto da non essere più praticabile dall'utente finale. Per questa ragione fu inventato il protocollo TR-069.
Caratteristiche
Il TR-069 è un protocollo bidirezionale basato su SOAP/HTTP che fornisce un metodo di comunicazione fra i cosiddetti customer-premises equipment (CPE) e gli Auto Configuration Servers (ACS). Include sistemi di auto configurazione protetti e strumenti per controllo dei CPE compatibili con funzioni raccolte in un framework integrato.
Utilizzando il TR-069, i terminali vengono messi in contatto con gli ACS che forniscono una configurazione per il loro corretto funzionamento nella rete in modo automatizzato. Opzionalmente possono essere fornite altre funzioni e servizi specifici. Attualmente il TR-069 è lo standard di fatto per la configurazione remota di dispositivi nel campo del mercato DSL a banda larga.
Le informazioni tecniche relative a questo protocollo sono redatte e manutenute dal Broadband Forum. Altre attuali e importanti realtà della rete come Home Gateway Initiative (HGI) e il Digital Video Broadcasting (DVB) hanno assunto il protocollo CWMP per il controllo e la gestione di dispositivi domestici come gateway HGI e terminali di tipo DVB IPTV e set-top box in genere.
Funzioni supportate
- Autoconfigurazione e attivazione dinamica di servizi
- configurazione iniziale del CPE
- configurazione remota del CPE
- Gestione del firmware
- gestione della versione
- gestione degli aggiornamenti
- Controllo dello stato e delle performance
- analisi dei file di log e messaggi dinamici
- servizi di diagnostica
- connettività, controllo del servizio
- monitoraggio periodico del servizio e delle performance
Nel prossimo futuro il protocollo TR-069 potrà controllare opzioni addizionali rispetto allo standard per l'attivazione di:
- interrogazioni sulle funzioni dell'apparato
- interrogazione di informazioni, diagnostica, stato, e capacità
- allarmi automatici controllati da processi.
Comunicazioni
Transporto
Il CWMP è un protocollo basato su test. I comandi inviati tra il CPE e ACS sono trasportati su HTTP (o più frequentemente su HTTPS). A questo livello (HTTP) il CPE agisce come client e ACS com server HTTP. Questo essenzialmente significa che il controllo sul flusso della sessione di approvvigionamento (provisioning session) è totalmente a carico del CPE.
Parametri di configurazione
Affichè il CPE possa connettersi al server, esso necessita che alcuni parametri siano configurati in precedenza. Questi parametri includono la URL del server a cui l'apparato vuole collegarsi e l'intervallo di tempo tra il quale l'apparato inizierà la sessione di approvviogionamento (PeriodicInformInterval). Inoltre, se l'autenticazione è necessaria per ragioni di sicurezza, informazioni come utente e password devono essere fornite.
Sessione di approvvigionamento (Provisioning session)
Tutte le comunicazioni e le operazioni vengono eseguite nell'ambito della sessione di fornitura. La sessione è sempre avviata dal dispositivo (CPE) e inizia con la trasmissione di un messaggio Inform (informare) .La sua ricezione e disponibilità del server per la sessione è indicata da un messaggio InformResponse (risposta al comando Inform). Questo conclude la fase di inizializzazione della sessione. L'ordine delle due fasi successive dipende dal valore del flag HoldRequests (Sospendere Richieste). Se il valore è falso (false) la fase di inizializzazione è seguita dalla trasmissione delle richieste del dispositivo, altrimenti vengono trasmessi prima gli ordini ACS. La seguente descrizione presuppone che il valore sia falso.
Nella seconda fase, gli ordini vengono trasmessi dal dispositivo all'ACS. Anche se il protocollo definisce più metodi che possono essere invocati dal dispositivo sull'ACS, ne viene comunemente trovato solo uno - TransferComplete (trasferimento completato) - che viene utilizzato per informare l'ACS del completamento di un trasferimento di file avviato da una richiesta di Download o Upload emessa in precedenza. Questa fase è finalizzata alla trasmissione di una richiesta HTTP-request (richiesta HTTP) vuota all'ACS.
Nella terza fase i ruoli cambiano a livello CWMP. La risposta HTTP (HTTP-response) per la richiesta HTTP vuota del dispositivo conterrà una richiesta CWMP (CWMP-request) dall'ACS. Questo sarà successivamente seguito da una richiesta HTTP contenente una risposta CWMP (CWMP-response) per la precedente richiesta CWMP. Più ordini possono essere trasmessi uno per uno. Questa fase (e l'intera sessione di provisioning) viene terminata da una risposta HTTP vuota dall'ACS che indica che non sono più in sospeso ordini.
Attivatori di sessione
Esistono determinati eventi che attiveranno la sessione di provisioning. Questi includono:
- Bootstrap: quando il dispositivo contatta il server per la prima volta, l'URL del server è cambiato o le impostazioni del dispositivo sono state ripristinate ai valori predefiniti;
- Periodico: il dispositivo è programmato per eseguire una sessione periodica, secondo le impostazioni PeriodicInformInterval;
- Richiesta di connessione: il dispositivo risponde alla richiesta di connessione del server;
- Modifica valore – il valore per un parametro che viene monitorato è cambiato;
- Boot: dopo che il dispositivo è stato ripristinato o ha perso l'alimentazione ed è stato ricollegato;
- Pianificato: quando il server ha precedentemente indicato al dispositivo di inizializzare una sessione aggiuntiva con il comando ScheduleInform;
- Trasferimento completato – dopo che il dispositivo ha terminato il download o il caricamento dei file richiesti dal server;
- Diagnostica completata: una volta che il dispositivo ha terminato una diagnostica.
Sicurezza e autenticazione
Poiché i dati vitali (come nomi utente e password) possono essere trasmessi al CPE tramite CWMP, è essenziale fornire un canale di trasporto sicuro e autenticare sempre il CPE rispetto all'ACS. Il trasporto sicuro e l'autenticazione dell'identità ACS possono essere facilmente forniti mediante l'utilizzo di HTTPS e la verifica del certificato ACS. L'autenticazione del CPE è più problematica. L'identità del dispositivo viene verificata in base a un segreto condiviso (password) a livello HTTP. Le password possono essere negoziate tra le parti (CPE-ACS) ad ogni sessione di provisioning. Quando il dispositivo contatta l'ACS per la prima volta (o dopo un ripristino di fabbrica) vengono utilizzate le password predefinite. Nelle reti di grandi dimensioni è responsabilità dell'approvvigionamento garantire che ogni dispositivo utilizzi credenziali univoche, il loro elenco viene consegnato con i dispositivi stessi e protetto.
Richiesta di connessione
L'inizializzazione e il controllo del flusso della sessione di provisioning è di esclusiva responsabilità del dispositivo, ma è possibile che l'ACS richieda l'avvio di una sessione dal dispositivo. Anche il meccanismo di richiesta di connessione è basato su HTTP. In questo caso il dispositivo (CPE) assume il ruolo di server HTTP. L'ACS richiede una connessione al dispositivo visitando un URL negoziato ed eseguendo l'autenticazione HTTP. Viene inoltre negoziato in anticipo un segreto condiviso con il dispositivo (ad es. sessione di provisioning precedente) per impedire l'utilizzo di CPE per attacchi DDoS sul server di provisioning (ACS). Dopo l'invio della conferma da parte del dispositivo, la sessione di provisioning deve essere avviata il prima possibile e non oltre 30 secondi dopo la trasmissione della conferma.
Richiesta di connessione su NAT
Il protocollo CWMP definisce anche un meccanismo per raggiungere i dispositivi che sono collegati dietro NAT (es. IP-Phones, Set-top box). Questo meccanismo, basato su STUN e UDP NAT traversal, è definito nel documento TR-069 Annex G (ex TR-111).
L'emendamento 5 del protocollo introduce un metodo alternativo di esecuzione della richiesta di connessione tramite NAT basato su XMPP (vedere l'allegato K dell'emendamento 5 TR-069 per i dettagli).
Voci correlate
Altri progetti
- Wikimedia Commons contiene immagini o altri file su TR-069
Collegamenti esterni
- TR-069 CPE WAN Management Protocol - Amendment 5 (PDF), su broadband-forum.org.
- [1] CWMP XML Schemas and Data Model Definitions.
- [2] Dettagliato tutorial su CWMP e documentazione.
- EasyCwmp - TR069 cwmp client sviluppato con C/SHELL, su easycwmp.org.