Protocollo GRE nei router industriali
Il protocollo GRE (Generic Routing Encapsulation) è un protocollo di comunicazione utilizzato per stabilire una connessione diretta punto a punto tra nodi di rete. GRE adotta la tecnologia Tunnel, che è il protocollo di tunneling Layer 3 di VPN (Virtual Private Network), e incapsula i messaggi di dati di determinati protocolli di livello di rete (come IP e IPX) in modo che questi messaggi di dati incapsulati possano essere trasmessi in un altro protocollo di livello di rete (come IP), risolvendo così il problema della rete eterogenea. GRE è definito da RFC 2784.
Il protocollo GRE presenta i seguenti vantaggi.
Su un singolo backbone di protocollo vengono utilizzati più protocolli.
La costruzione della rete può essere realizzata con un numero limitato di salti
Networking di subnet non contigue
Requisiti di risorse inferiori rispetto alle alternative (ad esempio, VPN IPsec)
Principio di funzionamento
Il sistema instrada i dati verso gli endpoint GRE tramite percorsi stabiliti nella tabella di routing. Quando un endpoint GRE riceve un pacchetto, questo viene decapsulato e reindirizzato al suo indirizzo di destinazione. I tunnel GRE sono stateless e gli endpoint del tunnel non contengono informazioni sullo stato o sulla disponibilità degli endpoint del tunnel remoto. Pertanto, uno switch che funziona come router sorgente del tunnel non può arrestare un'interfaccia del tunnel GRE se l'endpoint remoto non è raggiungibile.
Flusso di trasmissione dei messaggi GRE
Se un messaggio dall'Host A viene trasmesso dal RouterA al RouterB, i dati GRE vengono incapsulati sul RouterA e decapsulati sul RouterB. Il percorso che il messaggio di dati incapsulati percorre attraverso la rete è il tunnel GRE.
1. Messaggio di incapsulamento
1) Quando il Router A riceve un pacchetto dall'Host A 192.168.10.10 con IP di destinazione 192.172.1.10 (Host B), incapsula il pacchetto originale come pacchetto payload nel protocollo GRE e aggiunge un'intestazione GRE con IP di origine 1.1.1.2 e IP di destinazione 1.1.1.3 all'estremità opposta del tunnel.
2) Completare l'incapsulamento del pacchetto GRE
3) Il router A continua ad aggiungere l'IP sorgente del tunnel GRE 113.113.11.11 e l'IP di destinazione 113.113.10.10 all'esterno del pacchetto e lo invia a Internet
2. Deincapsulamento del messaggio
1) Dopo che il pacchetto è stato inviato a Internet, tutti i router inoltreranno il pacchetto solo in base all'indirizzo IP pubblico esterno finché il pacchetto non verrà inoltrato all'IP di destinazione reale 113.113.10.10 (Router B)
2) Il router B innanzitutto districherà l'intestazione IP pubblico del pacchetto e poi si renderà conto che l'IP di destinazione nell'intestazione GRE è 1.1.1.3, che è esattamente se stesso.
3) Il router B continuerà a scartare il pacchetto GRE e scoprirà che l'IP di destinazione è 192.172.1.10, inviando infine il pacchetto a 192.172.1.10 (host B)