L2TPv2, L2TPv3, GRE e VPWS: scegli in base al carico utile
Confrontate L2TPv2, L2TPv3, GRE e MPLS VPWS in base al carico utile che trasportano, al sovraccarico che aggiungono e a chi gestisce davvero il trasporto.
La maggior parte dei dibattiti L2TP contro GRE crolla per lo stesso motivo: i nomi si collocano a livelli diversi del problema. Due descrivono un incapsulamento che configurate sui vostri router. Uno descrive un servizio che qualcun altro vi vende. Partite dal carico utile che gli estremi devono trasportare e il confronto diventa un breve elenco di conseguenze invece di una battaglia sulle funzionalità.
Prima il carico utile, poi il protocollo
In pratica il carico utile è una di quattro cose: una sessione PPP, un frame Ethernet grezzo, un pacchetto IP o un frame MPLS consegnato a un fornitore. Ciascuno impone requisiti diversi su indirizzamento, gestione della diffusione e rilevamento dei guasti. Se questo elenco è sbagliato, nessuna messa a punto dell’incapsulamento salverà il progetto.
| Payload | Natural fit | What it needs |
|---|---|---|
| PPP session | L2TPv2 | UDP reachability, PPP negotiation on both ends |
| Ethernet frame | L2TPv3 or VPWS | Pseudowire signalling, matched MTU on both sides |
| IP packet | GRE, with IPsec alongside | Routed underlay, protocol type supported by both devices |
| MPLS frame | VPWS | Provider attachment circuits and demarcation points |
Tutto ciò che sta fuori da queste righe si aggiunge dopo, come cifratura, compressione o traffic shaping. Scegliete prima la riga.
L2TPv2 e L2TPv3 condividono un nome e poco altro
L2TPv2 esiste per trasportare sessioni PPP su una rete IP, per questo si legge come un protocollo di accesso remoto più che come un trasporto di frame generico. L2TPv3 generalizza quell’idea: una connessione di controllo negozia le sessioni e ogni sessione trasporta una connessione definita di livello 2 tra due estremi IP. Stesso nome di famiglia, protocollo di controllo diverso, modello di sessione diverso. Un requisito che cita solo L2TP è incompleto, e un modello copiato dalla versione sbagliata non negozierà nemmeno.
Se vi serve PPP, L2TPv2 è l’unico membro realistico della famiglia; se vi servono frame Ethernet attraverso un core instradato, siete nel territorio di L2TPv3.
I dettagli del trasporto differiscono in modi che emergono durante una revisione del firewall. L2TPv3 può viaggiare direttamente sul protocollo IP 115 o dentro UDP, di solito sulla porta 1701, mentre L2TPv2 resta su UDP 1701 con PPP all’interno. Una regola scritta per una versione può sembrare del tutto corretta e comunque scartare l’altra.
GRE è un’intestazione, non un servizio
GRE avvolge un carico utile in un’intestazione di quattro byte con un campo chiave e sequenza opzionale, poi consegna il risultato a IP per la distribuzione. Non afferma nulla sul significato del carico utile, quindi le implementazioni possono incapsulare IPv4, IPv6 o Ethernet se questi tipi di protocollo sono supportati. Generico non è sinonimo di universale: verificate il tipo di protocollo e il comportamento di frammentazione sul dispositivo reale.
Il campo chiave è ciò che rende utile GRE quando più tunnel condividono una coppia di indirizzi di estremità, perché il ricevitore demultiplessa su quel valore. GRE su IPv4 costa circa 24 byte prima di qualsiasi opzione aggiuntiva, e questo inizia a contare su collegamenti già dimensionati per frame da 1500 byte. Da solo GRE non offre riservatezza, quindi lo schema abituale lo abbina a IPsec e lascia che IPsec possieda il confine crittografico. L’abbinamento funziona, ma allora il budget MTU deve coprire entrambe le intestazioni.
GRE trasporta anche multicast e broadcast attraverso il tunnel quando il carico utile è Ethernet, cosa che un semplice tunnel IP unicast non può fare. È questa proprietà, non l’acronimo, il motivo per cui di solito un progetto lo sceglie.
VPWS si compra, non si configura
Un servizio di linea privata virtuale fornisce un circuito punto a punto di livello 2 sulla rete di un fornitore. Il vostro circuito di attestazione termina su un dispositivo di bordo del fornitore, e il pseudowire attraverso il core appartiene al fornitore. Le domande che contano sono operative: dove si trova la demarcazione, chi possiede il primo e l’ultimo miglio e cosa fa il fornitore con i frame sovradimensionati.
Qui il confronto si inverte. L2TPv3 e GRE sono cose che gestite da un capo all’altro, quindi li sottoponete a debug con le vostre credenziali e le vostre catture. VPWS è un contratto con una consegna, quindi un guasto inizia con un ticket invece che con una cattura di pacchetti. Nessun modello vince del tutto; falliscono in punti diversi, e la scelta dipende da se volete possedere l’ultimo miglio.
Lo stack di etichette dello pseudowire resta dentro la rete del fornitore, quindi non cambia la vostra aritmetica MTU come fa un’intestazione di tunnel visibile.
Scegliete una riga e scrivetela
Registrate la decisione come un’unica frase in tre parti: carico utile, incapsulamento e proprietario del trasporto. Poi allegate i numeri che la rendono verificabile.
Per ogni candidato, annotate il sovraccarico sul filo, il frame più grande accettato dal percorso e il primo salto che segnalerebbe un problema di MTU. Confermate che entrambi gli estremi supportino il tipo di protocollo o di sessione scelto, non solo il termine di marketing sulla scheda tecnica. Decidete come sarebbe il multiplexing se il prossimo anno comparisse un secondo circuito, perché le chiavi GRE e gli ID di sessione L2TPv3 non sono soluzioni intercambiabili a quel problema. Poi inviate un frame sovradimensionato e uno normale; quella coppia intercetta la maggior parte dei progetti che sembravano buoni sulla carta.
Confrontare i tunnel per nome continua a produrre discussioni che nessuno riesce a chiudere. Confrontarli per carico utile, sovraccarico e proprietà produce una decisione in un pomeriggio, più le prove necessarie per difenderla in seguito.