Diametro (protocollo) - Diameter (protocol)

Diametro è un protocollo di autenticazione, autorizzazione e contabilità per reti di computer. Si è evoluto dal precedente protocollo RADIUS . Appartiene ai protocolli a livello di applicazione nella suite di protocolli Internet .

Le applicazioni di diametro estendono il protocollo di base aggiungendo nuovi comandi e / o attributi, come quelli da utilizzare con l' Extensible Authentication Protocol (EAP).

Confronto con RADIUS

Il nome è un gioco di parole, derivato dal protocollo RADIUS , che è il predecessore (un diametro è il doppio del raggio). Il diametro non è direttamente compatibile con le versioni precedenti ma fornisce un percorso di aggiornamento per RADIUS. Le principali caratteristiche fornite da Diameter ma prive di RADIUS sono:

  • Supporto per SCTP
  • Capacità di negoziazione
  • Riconoscimenti a livello di applicazione ; Diametro definisce i metodi di failover e le macchine a stati ( RFC 3539 )
  • Estensibilità; nuovi comandi possono essere definiti
  • Allineato sui limiti a 32 bit

Inoltre: come RADIUS, è progettato per funzionare sia in situazioni AAA locali che in roaming. Utilizza TCP o SCTP a differenza di RADIUS che utilizza UDP. A differenza di RADIUS, non include crittografia, ma può essere protetto dalla sicurezza del livello di trasporto (IPSEC o TLS). La dimensione di base dell'identificatore AV è 32 bit a differenza di RADIUS che utilizza 8 bit come dimensione dell'identificatore AV di base. Come RADIUS, supporta modalità stateless e stateful. Come RADIUS, supporta il riconoscimento del livello dell'applicazione e definisce il failover. Il diametro viene utilizzato per molte interfacce diverse definite dagli standard 3GPP, con ciascuna interfaccia che definisce tipicamente nuovi comandi e attributi.

Applicazioni

Un'applicazione Diametro non è un'applicazione software ma è un protocollo basato sul protocollo di base Diametro definito in RFC 6733 e RFC 7075 (Obsoletes: RFC 3588 ). Ogni applicazione è definita da un identificativo dell'applicazione e può aggiungere nuovi codici di comando e / o nuovi AVP obbligatori ( coppia attributo-valore ). L'aggiunta di un nuovo AVP opzionale non richiede una nuova applicazione.

Esempi di applicazioni del diametro:

Sia l' HSS che l' SLF comunicano utilizzando il protocollo Diameter.

(Architettura di avvio generico): funzione server di avvio automatico

Storia

Il protocollo Diameter è stato inizialmente sviluppato da Pat R. Calhoun, Glen Zorn e Ping Pan nel 1998 per fornire un framework per l'autenticazione, l'autorizzazione e la contabilità ( AAA ) in grado di superare i limiti di RADIUS. RADIUS aveva problemi con affidabilità, scalabilità, sicurezza e flessibilità. RADIUS non è in grado di gestire efficacemente l'accesso remoto, la mobilità IP e il controllo delle politiche. Il protocollo Diameter definisce un protocollo di policy utilizzato dai client per eseguire policy, AAA e controllo delle risorse. Ciò consente a un singolo server di gestire i criteri per molti servizi.

Come RADIUS, Diameter fornisce la funzionalità AAA, ma utilizza TCP e SCTP invece di UDP , delegando quindi il rilevamento e la gestione dei problemi di comunicazione a tali protocolli. Il protocollo Diameter è ulteriormente potenziato dallo sviluppo del 3 ° Generation Partnership Project (3GPP) IP Multimedia Subsystem (IMS). Le interfacce S6a, S6b, Gx, Gy, Sy, Rx, Cx, Dh, Dx, Rf, Ro, Sh e Zh sono supportate dalle applicazioni Diameter. Attraverso l'uso di estensioni, il protocollo è stato progettato per essere estensibile per supportare proxy, broker, forte sicurezza, IP mobile, server di accesso alla rete (NASREQ), contabilità e gestione delle risorse.

Descrizione del protocollo

Il protocollo di base del diametro è definito da RFC 6733 (Obsoletes: RFC 3588 e RFC 5719 ) e definisce i requisiti minimi per un protocollo AAA . Le applicazioni di diametro possono estendere il protocollo di base aggiungendo nuovi comandi, attributi o entrambi. La sicurezza del diametro è fornita da IPsec o TLS . La IANA ha assegnato il numero di porta TCP e SCTP 3868 a Diameter, come indicato nella sezione 11.4 dell'RFC 6733 .

Formato del pacchetto

Il pacchetto è costituito da un'intestazione Diametro e da un numero variabile di Coppie Valore-Attributo, o AVP, per incapsulare le informazioni relative al messaggio Diametro.

Intestazione del diametro
Bit offset  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0 versione lunghezza del messaggio
32 R P E T         codice di comando
64 ID applicazione
96 ID hop-by-hop
128 ID end-to-end
160
...
AVP
...

Versione

Questo campo indica la versione del Diameter Base Protocol. A partire dal 2014, l'unico valore supportato è 1.

Lunghezza messaggio

Il campo Lunghezza messaggio indica la lunghezza del messaggio Diametro in byte, inclusi i campi di intestazione e gli AVP riempiti.

Flag di comando

Il bit " R " (richiesta) - Se impostato, il messaggio è una richiesta. Se deselezionato, il messaggio è una risposta.

Il bit " P " (Proxiable) - Se impostato, il messaggio PU essere inviato tramite proxy, inoltrato o reindirizzato. Se deselezionato, il messaggio DEVE essere elaborato localmente.

Il bit " E " (Errore) - Se impostato, il messaggio contiene un errore di protocollo e il messaggio non sarà conforme al CCF descritto per questo comando. I messaggi con il bit "E" impostato sono comunemente indicati come messaggi di errore. Questo bit NON DEVE essere impostato nei messaggi di richiesta.

Il bit " T " (messaggio potenzialmente ritrasmesso): questo flag viene impostato dopo una procedura di failover del collegamento, per facilitare la rimozione delle richieste duplicate. Viene impostato quando si rinviano richieste non ancora riconosciute come indicazione di un possibile duplicato a causa di un errore di collegamento.

Comandi

A ciascuna coppia richiesta / risposta di comando viene assegnato un codice di comando. Indipendentemente dal fatto che si tratti della richiesta o della risposta, viene identificato tramite il bit "R" nel campo Flag di comando dell'intestazione.

I valori 0-255 sono riservati per la compatibilità con le versioni precedenti di RADIUS. I valori 256-16777213 sono per i comandi standard permanenti assegnati da IANA . I valori 16777214 e 16777215 (hex 0xFFFFFE e 0xFFFFFF) sono riservati a scopi sperimentali e di test.

Un codice comando viene utilizzato per determinare l'azione da intraprendere per un particolare messaggio. Alcuni comandi Diametro comuni definiti nel protocollo (base e applicazioni) sono:

Nome comando Abbr. Codice Applicazione
Richiesta AA AAR 265 Applicazione NAS di diametro - RFC 7155
Risposta AA AAA 265 Applicazione NAS di diametro - RFC 7155
Diametro-EAP-Richiesta DER 268 Applicazione EAP diametro - RFC 4072
Diametro-EAP-Risposta dea 268 Applicazione EAP diametro - RFC 4072
Abort-Session-Request ASR 274 Base del diametro
Abort-Session-Answer COME UN 274 Base del diametro
Richiesta di contabilità ACR 271 Base del diametro
Contabilità-Risposta ACA 271 Base del diametro
Credit-Control-Request CCR 272 Applicazione per il controllo del credito del diametro - RFC 8506 (Obsoletes RFC 4006 )
Credito-Controllo-Risposta CCA 272 Applicazione per il controllo del credito del diametro - RFC 8506 (Obsoletes RFC 4006 )
Capacità-Scambio-Richiesta CER 257 Base del diametro
Capacità-Scambio-Risposta CEA 257 Base del diametro
Device-Watchdog-Request DWR 280 Base del diametro
Dispositivo-Watchdog-Risposta DWA 280 Base del diametro
Disconnect-Peer-Request DPR 282 Base del diametro
Disconnect-Peer-Answer DPA 282 Base del diametro
Richiesta di nuova autenticazione RAR 258 Base del diametro
Nuova autenticazione-risposta RAA 258 Base del diametro
Richiesta di interruzione della sessione STR 275 Base del diametro
Sessione-Terminazione-Risposta STA 275 Base del diametro
Richiesta di autorizzazione utente UAR 283 Applicazione SIP diametro - RFC 4740
Risposta-autorizzazione utente UAA 283 Applicazione SIP diametro - RFC 4740
Server-Assignment-Request SAR 284 Applicazione SIP diametro - RFC 4740
Server-Assegnazione-Risposta SAA 284 Applicazione SIP diametro - RFC 4740
Location-Info-Request LIR 285 Applicazione SIP diametro - RFC 4740
Posizione-Info-Risposta LIA 285 Applicazione SIP diametro - RFC 4740
Richiesta di autenticazione multimediale MAR 286 Applicazione SIP diametro - RFC 4740
Multimedia-Auth-Answer MAA 286 Applicazione SIP diametro - RFC 4740
Richiesta di annullamento della registrazione RTR 287 Applicazione SIP diametro - RFC 4740
Registrazione-Terminazione-Risposta RTA 287 Applicazione SIP diametro - RFC 4740
Push-Profile-Request PPR 288 Applicazione SIP diametro - RFC 4740
Risposta-profilo-push PPA 288 Applicazione SIP diametro - RFC 4740
Richiesta di autorizzazione utente UAR 300 Base del diametro (3GPP) RFC 3589
Risposta-autorizzazione utente UAA 300 Base del diametro (3GPP) RFC 3589
Server-Assignment-Request SAR 301 Base del diametro (3GPP) RFC 3589
Server-Assegnazione-Risposta SAA 301 Base del diametro (3GPP) RFC 3589
Location-Info-Request LIR 302 Base del diametro (3GPP) RFC 3589
Posizione-Info-Risposta LIA 302 Base del diametro (3GPP) RFC 3589
Richiesta di autenticazione multimediale MAR 303 Base del diametro (3GPP) RFC 3589
Multimedia-Auth-Answer MAA 303 Base del diametro (3GPP) RFC 3589
Richiesta di annullamento della registrazione RTR 304 Base del diametro (3GPP) RFC 3589
Registrazione-Terminazione-Risposta RTA 304 Base del diametro (3GPP) RFC 3589
Push-Profile-Request PPR 305 Base del diametro (3GPP) RFC 3589
Risposta-profilo-push PPA 305 Base del diametro (3GPP) RFC 3589
Richiesta dati utente UDR 306 Base del diametro (3GPP) RFC 3589
Risposta dati utente UDA 306 Base del diametro (3GPP) RFC 3589
Richiesta di aggiornamento del profilo PUR 307 Base del diametro (3GPP) RFC 3589
Profilo-Aggiornamento-Risposta PUA 307 Base del diametro (3GPP) RFC 3589
Iscriviti-Notifiche-Richiesta SNR 308 Base del diametro (3GPP) RFC 3589
Iscriviti-Notifiche-Risposta SNA 308 Base del diametro (3GPP) RFC 3589
Richiesta di notifica push PNR 309 Base del diametro (3GPP) RFC 3589
Push-Notification-Answer PNA 309 Base del diametro (3GPP) RFC 3589
Bootstrap-Richiesta di informazioni BIR 310 Base del diametro (3GPP) RFC 3589
Bootstrap-Info-Risposta BIA 310 Base del diametro (3GPP) RFC 3589
Message-Process-Request MPR 311 Base del diametro (3GPP) RFC 3589
Message-Process-Answer MPA 311 Base del diametro (3GPP) RFC 3589
Update-Location-Request ULR 316 3GPP TS 29.272 [ RFC 5516 ]
Aggiornamento-posizione-risposta ULA 316 3GPP TS 29.272 [ RFC 5516 ]
Annulla-richiesta-posizione CLR 317 3GPP TS 29.272 [ RFC 5516 ]
Annulla-Posizione-Risposta CLA 317 3GPP TS 29.272 [ RFC 5516 ]
Autenticazione-Richiesta di informazioni ARIA 318 3GPP TS 29.272 [ RFC 5516 ]
Autenticazione-Informazioni-Risposta AIA 318 3GPP TS 29.272 [ RFC 5516 ]
Inserisci-Sottoscrittore-Richiesta-Dati IDR 319 3GPP TS 29.272 [ RFC 5516 ]
Inserisci-Sottoscrittore-Dati-Risposta IDA 319 3GPP TS 29.272 [ RFC 5516 ]
Cancella-Sottoscrittore-Richiesta-dati DSR 320 3GPP TS 29.272 [ RFC 5516 ]
Elimina-Sottoscrittore-Dati-Risposta DSA 320 3GPP TS 29.272 [ RFC 5516 ]
Purge-UE-Request PER 321 3GPP TS 29.272 [ RFC 5516 ]
Purge-UE-Answer PISELLO 321 3GPP TS 29.272 [ RFC 5516 ]
Notifica-richiesta NR 323 3GPP TS 29.272 [ RFC 5516 ]
Notifica-risposta N / A 323 3GPP TS 29.272 [ RFC 5516 ]
Fornire-Location-Request PLR 8388620 3GPP-LCS-SLg (ID applicazione 16777255)
Fornisci risposta sulla posizione PLA 8388620 3GPP-LCS-SLg (ID applicazione 16777255)
Routing-Info-Request RIR 8388622 3GPP-LCS-SLh (ID applicazione 16777291)
Routing-Info-Risposta RIA 8388622 3GPP-LCS-SLh (ID applicazione 16777291)
AA-Mobile-Node-Request AMR 260 Diametro Mobile IPv4 - RFC 4004
AA-Mobile-Node-Answer AMA 260 Diametro Mobile IPv4 - RFC 4004
Richiesta-MIP-agente-casa HAR 262 Diametro Mobile IPv4 - RFC 4004
Home-Agente-MIP-Risposta HAA 262 Diametro Mobile IPv4 - RFC 4004
Richiesta di informazioni di configurazione CIR 8388718 S6t secondo 3GPP TS 29.336
Configurazione-Informazioni-Risposta CIA 8388718 S6t secondo 3GPP TS 29.336
Reporting-Information-Request RIR 8388719 S6t secondo 3GPP TS 29.336
Segnalazione-Informazioni-Risposta RIA 8388719 S6t secondo 3GPP TS 29.336
Richiesta di informazioni NIDD NIR 8388726 S6t secondo 3GPP TS 29.336
NIDD-Informazioni-Risposta NIA 8388726 S6t secondo 3GPP TS 29.336

ID applicazione

Application-ID viene utilizzato per identificare per quale applicazione Diameter il messaggio è applicabile. L'applicazione può essere un'applicazione di autenticazione, un'applicazione di contabilità o un'applicazione specifica del fornitore.

Gli agenti di Diameter conformi a una determinata estensione di Diameter pubblicizzano il suo supporto includendo un valore specifico di nell'attributo Auth-Application-Id del comando Capabilities-Exchange-Request (CER) e Capabilities-Exchange-Answer (CEA).

Il valore del campo ID applicazione nell'intestazione è lo stesso di qualsiasi AVP ID applicazione pertinente contenuto nel messaggio. Ad esempio, il valore dell'Application-ID e dell'attributo Auth-Application-Id nel comando Credit-Control-Request (CCR) e Credit-Control-Answer (CCA) per l'applicazione Diameter Credit-Control è 4.

ID applicazione Abbr. Nome e cognome Utilizzo
0 Base Messaggi comuni di diametro Stabilimento / smontaggio / manutenzione dell'associazione protocollo diametro
16777216 Cx / Dx 3GPP Cx / Dx Interfaccia da IMS I / S-CSCF a HSS
16777217 Sh 3GPP Sh Dal server delle applicazioni VoIP / IMS SIP all'interfaccia HSS
16777236 Rx 3GPP Rx Politica e controllo delle tariffe
16777238 Gx 3GPP Gx Politica e controllo delle tariffe
16777251 S6a / S6d 3GPP S6a / S6d Segnalazione roaming LTE
16777252 S13 3GPP 13 Interfaccia tra EIR e MME
16777255 SLg 3GPP LCS SLg Servizi di localizzazione
16777345 S6t 3GPP S6t Interfaccia tra SCEF e HSS

Identificatore hop-by-hop

L'identificatore hop-by-hop è un campo intero senza segno a 32 bit (in ordine di byte di rete) che viene utilizzato per abbinare le richieste con le relative risposte poiché lo stesso valore nella richiesta viene utilizzato nella risposta.

Il protocollo Diameter richiede che gli agenti di inoltro e proxy mantengano lo stato della transazione, che viene utilizzato per scopi di failover. Lo stato della transazione implica che dopo l'inoltro di una richiesta, il suo identificatore hop-by-hop viene salvato; il campo viene sostituito con un identificatore univoco a livello locale, che viene ripristinato al suo valore originale quando viene ricevuta la risposta corrispondente. Lo stato della richiesta viene rilasciato al ricevimento della risposta. Le risposte ricevute che non corrispondono a un identificatore hop-by-hop noto vengono ignorate dall'agente Diameter.

In caso di reindirizzamento degli agenti, l'identificatore hop-by-hop viene mantenuto nell'intestazione mentre l'agente Diameter risponde con un messaggio di risposta.

Identificatore end-to-end

L'identificatore end-to-end è un campo intero a 32 bit senza segno (in ordine di byte di rete) utilizzato per rilevare i messaggi duplicati insieme alla combinazione dell'AVP origine-host.

Quando si crea una richiesta, l'identificatore end-to-end è impostato su un valore univoco a livello locale. L'identificatore end-to-end non viene modificato da agenti di diametro di alcun tipo e lo stesso valore nella richiesta corrispondente viene utilizzato nella risposta.

Coppie valore-attributo (AVP)

Intestazione AVP
Bit offset  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0 Codice AVP
32 V M P           Lunghezza AVP
64 ID fornitore (opzionale)
96
...
dati
...

Per semplicità, il bit " V " del flag AVP significa specifico del fornitore ; Il bit " M " significa Obbligatorio ; Il bit " P " significa Protetto .

Il bit " V ", noto come bit specifico del fornitore, indica se il campo Vendor-ID opzionale è presente nell'intestazione dell'AVP. Quando impostato, il codice AVP appartiene allo spazio degli indirizzi del codice del fornitore specifico.

Il bit " M ", noto come bit obbligatorio, indica se è richiesto il supporto dell'AVP. Se un AVP con il bit " M " impostato viene ricevuto da un client, server, proxy o agente di traduzione di Diameter e l'AVP o il suo valore non viene riconosciuto, il messaggio deve essere rifiutato. Gli agenti di Diameter Relay e di reindirizzamento non devono rifiutare messaggi con AVP non riconosciuti.

Il bit " P " indica la necessità di crittografia per la sicurezza end-to-end.

Nome attributo Codice Tipo di dati
Acct-Interim-Interval 85 Unsigned32
Accounting-Realtime-Required 483 Enumerato
Acct-Multi-Session-Id 50 UTF8String
Numero di registrazione contabile 485 Unsigned32
Tipo di record di contabilità 480 Enumerato
Accounting-Session-Id 44 OctetString
Accounting-Sub-Session-Id 287 Unsigned64
Acct-Application-Id 259 Unsigned32
Auth-Application-Id 258 Unsigned32
Tipo di richiesta di autenticazione 274 Enumerato
Autorizzazione a vita 291 Unsigned32
Periodo di tolleranza per l'autenticazione 276 Unsigned32
Stato sessione di autenticazione 277 Enumerato
Re-Auth-Request-Type 285 Enumerato
Classe 25 OctetString
Host di destinazione 293 DiamIdent
Regno di destinazione 283 DiamIdent
Disconnetti-Causa 273 Enumerato
E2E-Sequence 300 Raggruppati
Messaggio di errore 281 UTF8String
Host segnalazione errori 294 DiamIdent
Event-Timestamp 55 Tempo
Risultato sperimentale 297 Raggruppati
Codice risultato sperimentale 298 Unsigned32
AVP fallito 279 Raggruppati
Revisione del firmware 267 Unsigned32
Indirizzo IP host 257 Indirizzo
Inband-Security-Id 299 Unsigned32
Timeout multi round 272 Unsigned32
Origin-Host 264 DiamIdent
Regno delle origini 296 DiamIdent
Origin-State-Id 278 Unsigned32
Nome del prodotto 269 UTF8String
Proxy-Host 280 DiamIdent
Proxy-Info 284 Raggruppati
Stato proxy 33 OctetString
Redirect-Host 292 DiamURI
Redirect-Host-Usage 261 Enumerato
Reindirizzamento-Max-Cache-Time 262 Unsigned32
Codice risultato 268 Unsigned32
Route-Record 282 DiamIdent
ID sessione 263 UTF8String
Timeout della sessione 27 Unsigned32
Session-Binding 270 Unsigned32
Sessione-Server-Failover 271 Enumerato
ID fornitore supportato 265 Unsigned32
Causa di risoluzione 295 Enumerato
Nome utente 1 UTF8String
ID del venditore 266 Unsigned32
ID applicazione specifico del fornitore 260 Raggruppati

Macchine a stati

L' RFC 3588 definisce una macchina a stati principali per mantenere le connessioni tra i peer e l'elaborazione dei messaggi. Questo fa parte della funzionalità di base del protocollo e tutti gli stack dovrebbero supportarlo e come tale è astratto dalle operazioni relative alla connettività.

Inoltre, le macchine a stati specifiche dell'applicazione possono essere introdotte successivamente o a un livello di astrazione più elevato. L' RFC 3588 definisce un'autorizzazione e una macchina a stati contabili.

Flussi di messaggi

Messaggio di diametro flow.png

La comunicazione tra due peer di diametro inizia con la creazione di una connessione di trasporto ( TCP o SCTP ). L'iniziatore invia quindi una Capabilities-Exchange-Request (CER) all'altro peer, che risponde con una Capabilities-Exchange-Answer (CEA). Per i peer conformi a RFC3588, è possibile negoziare facoltativamente TLS (Transport Layer Security). Per i peer conformi a RFC6733, la negoziazione TLS può opzionalmente avvenire prima del CER / CEA.

La connessione è quindi pronta per lo scambio di messaggi dell'applicazione.

Se non vengono scambiati messaggi per un po 'di tempo, entrambe le parti possono inviare una Device-Watchdog-Request (DWR) e l'altro peer deve rispondere con Device-Watchdog-Answer.

Entrambe le parti possono terminare la comunicazione inviando una Disconnect-Peer-Request (DPR) a cui l'altro peer deve rispondere con Disconnect-Peer-Answer. Dopo di che la connessione di trasporto può essere scollegata.

RFC

Il protocollo Diametro è attualmente definito nelle seguenti RFC IETF : Le RFC obsolete sono indicate con testo barrato .

# Titolo Data di pubblicazione Articolo correlato Obsoleto da Appunti
RFC 3588 Protocollo di base del diametro. Settembre 2003 RFC 6733
RFC 3589 Codici di comando del diametro per il progetto di partnership di terza generazione (3GPP), versione 5. Settembre 2003
RFC 4004 Applicazione IPv4 di Diameter Mobile. Agosto 2005
RFC 4005 Applicazione del server di accesso alla rete di diametro. Agosto 2005 RFC 7155
RFC 4006 Applicazione per il controllo del credito del diametro. Agosto 2005 Applicazione per il controllo del credito del diametro RFC 8506
RFC 4072 Applicazione EAP (Diameter Extensible Authentication Protocol). Agosto 2005
RFC 4740 Applicazione SIP (Diameter Session Initiation Protocol). M. Novembre 2006
RFC 5224 Applicazione per l'elaborazione della politica del diametro. Marzo 2008
RFC 5431 Diametro ITU-T Rw Applicazione dell'interfaccia per l'applicazione della politica. Marzo 2009
RFC 5447 Diameter Mobile IPv6: supporto per l'interazione tra il server di accesso alla rete e il server di diametro. Febbraio 2009
RFC 5516 Registrazione del codice di comando del diametro per l'Evolved Packet System (EPS) del progetto di partnership di terza generazione (3GPP). Aprile 2009 -
RFC 5624 Parametri di qualità del servizio per l'utilizzo con diametro. Agosto 2009
RFC 5719 Considerazioni IANA aggiornate per le allocazioni del codice di comando del diametro. Gennaio 2010 RFC 6733
RFC 6733 Protocollo di base del diametro. Ottobre 2012
RFC 6737 L'applicazione di aggiornamento delle capacità di diametro. Ottobre 2012
RFC 7155 Applicazione del server di accesso alla rete di diametro. Aprile 2014


RFC 8506 Applicazione per il controllo del credito del diametro. Marzo 2019

Guarda anche

Riferimenti

link esterno