Consulenze presso Eunet srl, via dell'Artigianato 15, 09122 Cagliari 070 753609 Lun - Ven 08:30-13:00 / 14.30-17.00

PPP - Point to Point Protocol

Il PPP, Point-to-Point Protocol, è uno dei più comuni standard di incapsulamento a livello 2, utilizzato per collegamenti WAN.  Trattandosi di uno standard aperto, consente la comunicazione tra apparecchiature di produttori diversi.

L'incapsulamento dei dati avviene prima che questi siano inoltrati sulla rete WAN. Prima della conversione dei dati in bit da trasmettere sui mezzi trasmissivi, l'incapsulamento di livello 2 aggiunge le informazioni di indirizzamento e controllo. Le informazioni sono aggiunte sull'intestazione (header) delle trame dati. E' importante evidenziare che l'incapsulamento del livello 2 Data Link è distinto dall'incapsulamento del livello rete. Nella trasmissione su una rete WAN, l'incapsulamento Data Link può cambiare continuamente, mentre l'incapsulamento del livello di rete rimane invariato. Affinché ci sia comunicazione su un collegamento punto-punto, l'incapsulamento deve risultare dello stesso tipo alle due estremità del collegamento.

 

Architettura del PPP

Per incapsulare e trasportare trame multi-protocollo su un collegamento punto-punto, il PPP utilizza un’architettura a strati, con 2 sotto-protocolli: Link Control Protocol (LCP) e Network Control Protocol (NCP).

LCP, Link Control Protocol, è responsabile di instaurare, mantenere e chiudere il collegamento punto-punto; negozia e configura opzioni di controllo sul link WAN quali:

  • Autenticazione: richiede alla parte chiamata di fornire specifiche informazioni per garantire che il chiamante abbia il permesso di stabilire la connessione. Le due forme di autenticazione previste sono Password Authentication Protocol (PAP) e Challenge Handshake Authentication Protocol (CHAP).
  • PPP callback: permette ad un router di agire come client o server callback. La funzione obbliga al client di attivare il collegamento, indicando la richiesta Callback, e di chiuderlo, rimanendo poi in attesa di una chiamata da parte del server. Consente di evitare attacchi di client malintenzionati.
  • Compressione: incrementa l’effettiva portata del collegamento riducendo la dimensione dei dati nelle trame. Abilitare la compressione comporta in ogni caso maggior overhead e tempi di elaborazione più lunghi sui router: deve essere utilizzata solo se esistono reali problemi di performance. Inoltre non andrebbe utilizzata se la maggior parte del traffico è costituita da dati già compressi. Le tecniche di compressione impiegate sono Predictor e Stacker: Predictor  impegna maggiormente la memoria e meno la CPU e si usa se il collo di bottiglia è dovuto ad un eccessivo carico sul router; Stacker impegna maggiormente la CPU e meno la memoria e si usa se il collo di bottiglia è dovuto a problemi di linea o di larghezza di banda.
  • Rilevazione di errori:  rileva errori comuni dati da configurazioni errate e determina quando un link funziona correttamente o meno.
  • Multilink: permette di accorpare più collegamenti PPP su un unico collegamento logico, per aumentare la banda disponibile. Effettua inoltre un bilanciamento del carico tra le interfacce PPP.

NCP, Network Control Protocol, fornisce l'interazione con diversi protocolli di livello 3, in modo che questi possano operare sullo stesso link. Include campi con i codici che indicano il protocollo di livello rete utilizzato. Non appena un link viene aperto da LCP, il controllo viene passato ai vari protocolli NCP (IPCP e IPXCP) per negoziare i parametri di livello 3 e aprire i relativi canali dati. IP utilizza il protocollo IP Control Protocol (IPCP) mentre IPX utilizza il protocollo IPX Control Protocol (IPXCP). Ogni protocollo di livello rete che attraversa un collegamento PPP richiede una sessione NCP separata.

 

Fasi del PPP

Una sessione PPP, dall'inizio sino alla sua chiusura, segue 3 passaggi principali:

  • Creazione e instaurazione del link (Link Establishment). PPP invia trame LCP per configurare e verificare il collegamento dati. Le trame LCP contengono campi di configurazione con diversi valori quali unità massima di trasmissione (MTU), compressione e autenticazione del link. Se qualche valore non viene indicato, si assume quello di default. Opzionalmente possono essere eseguiti test per determinare l’autenticazione e la qualità del link. Questa fase si completa con il ricevimento di una trama ACK (acknowledgement) come accettazione della configurazione proposta.
  • Autenticazione (opzionale). La fase di autenticazione fornisce protezione con password per il collegamento tra i router. Avviene dopo che i due router hanno accettato i parametri di configurazione.
  • Fase di negoziazione NCP (NCP Negotiation). PPP invia pacchetti NCP per scegliere e configurare uno o più protocolli di livello rete, quali IP o IPX. Se LCP chiude il collegamento, informa i protocolli di livello rete in modo che possano prendere i provvedimenti opportuni.

Una volta stabilito, il collegamento PPP rimane attivo fino a quando LCP o NCP non lo chiudono, ad esempio per un calo della qualità del link, o per caduta di portante, scadenza di time-out, etc..

 

L’autenticazione PPP nel dettaglio

Come già indicato, su un link PPP sono possibili 2 tipi di autenticazione: Password Authentication Protocol (PAP) e Challenge Handshake Authentication Protocol (CHAP).

PAP fornisce un metodo di autenticazione semplice: utilizza un handshake a due vie per inviare in chiaro username e password. Il dispositivo remoto verifica che nome utente e password inviati corrispondano ai dati memorizzati nel suo database. Se c’è corrispondenza, l'autenticazione è riuscita.

CHAP è invece più sicuro di PAP, perché non invia la password in chiaro sul collegamento. Utilizzando un handshake a 3 fasi:

  • Fase 1: dopo aver stabilito una connessione, il client invia il proprio identificativo utente ed il server risponde con una domanda di "sfida" (challenge), costituita da un numero semicasuale.
  • Fase 2: Il client invia come risposta una stringa calcolata tramite una funzione hash one-way: in pratica esegue l'hash (in genere MD5) del challenge, assieme alla password condivisa, reinviando al server la stringa ottenuta.
  • Fase 3: Il server genera a sua volta un hash tramite la stessa funzione one-way. E’ in possesso infatti di  tutti gli elementi per il calcolo, compresa la password condivisa. Se la stringa ottenuta coincide con quella ricevuta, autentica il client, altrimenti termina la connessione.

Il server verifica periodicamente l'identità del client tramite lo stesso processo di handshake, riproponendo un challenge al client e completando le tre fasi. La chiave non circola mai sulla rete, è nota solo ai sistemi che mantengono il collegamento.

 

Formato della trama PPP

Flag

Address

Control

Protocol

Data

FCS

1 byte
1 byte
1 byte
2 bytes
variabile
2 o 4 bytes
indica l'inizio o la fine del frame
indirizzo broadcast.
byte di controllo
protocollo trasportato nel campo Data
campo di dati
somma di correzione
(1 Vote)