introduzione
Che cos'è GRE? Quali sono alcuni vantaggi?
GRE è l'acronimo di Generic Routing Encapsulation , che consente a due server di comunicare privatamente. I tunnel GRE sono utili in quanto consentono il passaggio di tutti i tipi di traffico. È relativamente facile da installare ed è sicuro (immagina di avere un tubo diretto tra il server A e il server B).
In poche parole: la creazione di un tunnel GRE consente di inoltrare i pacchetti con un utilizzo minimo delle risorse.
NOTA: i tunnel GRE devono essere impostati su due endpoint.
Come funziona?
Quando crei un tunnel GRE sul tuo server, il tuo server fungerà da router virtuale. Tenere presente che entrambe le estremità avranno bisogno di un indirizzo IP pubblico poiché i pacchetti vengono inviati su più reti.
Prerequisiti e configurazione di entrambi gli endpoint
Cosa ti serve per impostare un tunnel GRE
Fortunatamente, tutto ciò di cui hai bisogno è:
- 2 server che eseguono CentOS 7
- Il
ip_gremodulo è stato caricato
nano o qualsiasi editor di testo
Se il modulo GRE non è già caricato in nessuno dei server, eseguire il comando seguente:
modprobe ip_gre
Per semplificare le cose da capire, il primo ed il secondo punto finale sarà identificato come A e B rispettivamente.
Gli indirizzi IP che utilizzeremo sono di seguito:
Endpoint A :
- IP locale / interno:
192.0.2.1
- IP pubblico:
203.0.113.1
Endpoint B :
- IP locale / interno:
192.0.2.2
- IP pubblico:
203.0.113.2
Tieni presente che dovrai modificare gli indirizzi IP di esempio (cambia 203.0.113.1e 203.0.113.2con gli indirizzi IP dei due server che utilizzerai).
Configurazione dell'endpoint A
Per iniziare, dobbiamo andare alla network-scriptscartella:
cd /etc/sysconfig/network-scripts
Ora usa il nanotuo editor di testo preferito per creare un file chiamato ifcfg-tun0:
nano ifcfg-tun0
Nel file appena creato, incollare quanto segue:
DEVICE=tun0
BOOTPROTO=none
ONBOOT=yes
DEVICETYPE=tunnel
TYPE=GRE
PEER_INNER_IPADDR=192.0.2.2
PEER_OUTER_IPADDR=203.0.113.2
MY_INNER_IPADDR=192.0.2.1
Salva ed esci (con nano, do CTRL+ X, seguito da ENTER).
Apri l'interfaccia:
ifup tun0
Dopo aver eseguito il comando sopra, è possibile iniziare a configurare il secondo endpoint.
Configurazione dell'endpoint B
Il processo di configurazione di questo endpoint è simile a quello del primo. Per iniziare, vai nella tua network-scriptscartella:
cd /etc/sysconfig/network-scripts
Ora crea un nuovo file chiamato ifcfg-tun0:
nano ifcfg-tun0
Incolla quanto segue:
DEVICE=tun0
BOOTPROTO=none
ONBOOT=yes
TYPE=GRE
PEER_INNER_IPADDR=192.0.2.1
PEER_OUTER_IPADDR=203.0.113.1
MY_INNER_IPADDR=192.0.2.2
Esci e salva.
Ora puoi visualizzare l'interfaccia:
ifup tun0
Test dei tunnel
Su Endpoint A , immettere la seguente:
ping 192.0.2.2
Vedrai un risultato simile:

Su Endpoint B :
ping 192.0.2.1
Vedrai un risultato simile:
![Come stabilire un tunnel GRE tra due server CentOS 7 Come stabilire un tunnel GRE tra due server CentOS 7]()
Se entrambe le estremità si riescono ping, è possibile passare alla sezione finale di questo articolo. In caso di timeout, potrebbe essere necessario disabilitare il firewall o inserire nella whitelist gli indirizzi appropriati.
Fare riferimento a questo articolo se non si capisce come creare queste regole.
Se si desidera verificare solo se i tunnel funzionano, è possibile (a proprio rischio) disabilitare il firewall su entrambi i server:
service firewalld stop
Alcuni sistemi CentOS 7 hanno IPTables, quindi eseguire le seguenti operazioni se il comando sopra non funziona:
service iptables stop
Conclusione
Hai creato con successo un tunnel GRE tra due server. Se si desidera rimuovere i tunnel in futuro, eseguire quanto segue su entrambi i server:
ifdown tun0
rm -rf /etc/sysconfig/network-scripts/ifcfg-tun0
service network restart