Configurazione dei tunnel IPIP, GRE e EoIP
I router Keenetic hanno la capacità di creare tunnel IPIP (IP over IP), GRE (Generic Routing Encapsulation), EoIP (Ethernet over IP) sia in forma pura che in combinazione con il tunnel IPSec, consentendo di utilizzare gli standard di sicurezza IPSec VPN per proteggere questi tunnel.
Il supporto dei tunnel IPIP, GRE, EoIP nei router Keenetic consente di stabilire una connessione VPN con gateway hardware, router Linux, computer e server con sistema operativo UNIX/Linux, nonché con altre apparecchiature di rete e di telecomunicazione che supportano questi tunnel.
È necessario installare i componenti aggiuntivi corrispondenti del sistema KeeneticOS per lavorare con i tunnel:
Tunneling EoIP (consente di creare tunnel Ethernet over IP);
Tunneling GRE (consente di creare tunnel GRE);
Tunneling IP-IP (consente di creare tunnel IP-over-IP).
È possibile farlo nella pagina 'Impostazioni di sistema' nella sezione 'Aggiornamenti e opzioni dei componenti' facendo clic su 'Opzioni dei componenti'.

Breve descrizione
I tunnel IPIP e GRE sono tunnel a livello di rete (L3 del modello OSI), dove sono disponibili gli indirizzi IP di entrambe le parti. Essi sono presentati nel sistema come interfacce GreX e IPIPX, e l'instradamento (inclusa la rotta predefinita) può essere configurato attraverso di esse proprio come attraverso qualsiasi altra interfaccia. Inoltre, a queste interfacce può essere configurato un livello di sicurezza per l'accesso - privato, protetto o pubblico (le informazioni sui livelli di accesso sono disponibili nell'articolo 'Configurazione delle regole del firewall con l'interfaccia della riga di comando)'.
Il tunnel IPIP (IP over IP) è uno dei tunnel più facili da configurare (incapsula solo il traffico unicast IPv4). È possibile configurarlo su un sistema UNIX/Linux e su diversi router (ad esempio Cisco).
Il tunnel GRE (Generic Routing Encapsulation) è uno dei tipi di VPN più popolari. I tunnel GRE sono compatibili con gateway di sicurezza hardware, router Mikrotik, router Linux e altre apparecchiature simili (ad esempio Cisco, Juniper, ecc.).
Il tunnel EoIP (Ethernet over IP) è un tunnel di livello Datalink (L2 del modello OSI) sopra il livello di rete (L3). I dati vengono trasmessi attraverso questo tunnel a livello di frame Ethernet. EoIP fornisce un ambiente di rete trasparente che emula una connessione Ethernet diretta tra le reti. Tutti gli indirizzi MAC sono visibili, ed è possibile collegare due LAN L2 su Internet utilizzando questo tipo di tunnel. EoIP utilizza GRE come trasporto. Il tunnel EoIP può funzionare con IPIP, PPTP e qualsiasi altra connessione in grado di trasmettere pacchetti IP. Qualsiasi traffico diverso dall'IP può essere inviato attraverso di esso, inclusi ARP, DHCP, PPPoE, IPv6, ecc. La scansione della sottorete tramite ARP funzionerà nel tunnel per impostazione predefinita quando il livello di sicurezza cambia in privato/protetto. Nel sistema è presentato come un'interfaccia EoIPX.
EoIP è sviluppato da MikroTik, quindi c'è compatibilità con essi e con i router Linux che sanno come lavorare con EoIP.
Importante
I tunnel IPIP, GRE, EoIP sono di tipo punto-punto. Entrambi i partecipanti al tunnel devono avere indirizzi IP esterni (o trovarsi sulla stessa rete) e non ci deve essere alcuna traduzione degli indirizzi NAT tra di loro. Questi sono i prerequisiti per stabilire un tunnel.
In termini semplici, non ci sono meccanismi di sicurezza per questi tunnel (nessun meccanismo di crittografia o autenticazione).
I tunnel IPIP, GRE e EoIP operano senza salvare lo stato della connessione, cioè è impossibile capire se il tunnel è funzionante. Possiamo solo configurare entrambi i lati e poi controllare il trasferimento dei dati.
È possibile utilizzare la funzione Controllo Ping sulle interfacce dei tunnel IPIP, GRE e EoIP per verificarne la disponibilità.
I tunnel IPIP, GRE e EoIP funzionano direttamente sul protocollo IPv4. IPIP utilizza il numero di protocollo IP 4, GRE ed EoIP utilizzano il numero di protocollo IP 47.
Esempi
Importante
Al momento, la configurazione dei tunnel IPIP, GRE e EoIP è implementata attraverso l'interfaccia a riga di comando (CLI) del router. La sintassi completa dei comandi elencati in questo articolo si trova nella Guida di riferimento ai comandi in Download center.
Gli esempi seguenti mostrano indirizzi IP privati, che possono essere utilizzati solo all'interno della rete locale. Devono esserci indirizzi IP pubblici a entrambe le estremità dei tunnel per creare tunnel su Internet.
Per GRE il nome dell'interfaccia sarà Gre0, per IPIP il nome dell'interfaccia sarà IPIP0.
Configurazione di un tunnel GRE/IPIP tra due router Keenetic
Esempio 1. Un lato della configurazione del tunnel:
(config)>
interface IPIP0(config-if)>tunnel destination router1.example.com(config-if)>ip address 192.168.100.1 255.255.255.0(config-if)>security-level private(config-if)>up(config-if)>exit(config)>system configuration saveAll'altra estremità del tunnel, vengono impostate le impostazioni a 'specchio':
(config)>
interface IPIP0(config-if)>tunnel destination 8.6.5.4(config-if)>ip address 192.168.100.2 255.255.255.0(config-if)>security-level private(config-if)>up(config-if)>exit(config)>system configuration saveÈ quindi possibile provare a eseguire il ping dell'indirizzo del lato remoto del tunnel da qualsiasi lato per verificare se il tunnel funziona correttamente.
Va notato che come destinazione è possibile specificare sia il nome del dominio (Modalità cloud in KeenDNS non funzionerà!) sia l'indirizzo IP della parte remota (interfaccia WAN del dispositivo).
Esempio 2. Un lato della configurazione del tunnel:
(config)>
interface IPIP0(config-if)>tunnel destination router1.example.com(config-if)>ip address 192.168.100.1 255.255.255.0(config-if)>up(config-if)>exit(config)>no isolate-private(config)>ip route 10.10.2.0 255.255.255.0 IPIP0/*static route to a remote private subnet 10.10.2.0/24 through the tunnel*/ (config)>system configuration saveDall'altro lato del tunnel:
(config)>
interface IPIP0(config-if)>tunnel destination 8.6.5.4(config-if)>ip address 192.168.100.2 255.255.255.0(config-if)>up(config-if)>exit(config)>no isolate-private(config)>ip route 10.10.1.0 255.255.255.0 IPIP0/*static route to a remote private subnet 10.10.1.0/24 through the tunnel*/ (config)>system configuration save
Configurazione di un tunnel EoIP tra due router Keenetic
Per EoIP, il nome dell'interfaccia sarà EoIP0.
Nel caso del tunnel EoIP, le impostazioni saranno assolutamente le stesse, ad eccezione di due cose:
è possibile impostare l'indirizzo MAC dell'interfaccia;
L'ID del tunnel EoIP, l'identificatore del tunnel (numero compreso tra
1e65535) deve essere impostato e deve corrispondere a entrambe le estremità del tunnel.
Un'estremità della configurazione del tunnel:
(config)>interface EoIP0(config-if)>tunnel destination router1.example.com(config-if)>tunnel eoip id 1500(config-if)>ip address 192.168.100.1 255.255.255.0(config-if)>security-level private(config-if)>up(config-if)>exit(config)>system configuration save
L'impostazione a 'specchio' si trova all'altra estremità del tunnel:
(config)>interface EoIP0(config-if)>tunnel destination 8.6.5.4(config-if)>tunnel eoip id 1500(config-if)>ip address 192.168.100.2 255.255.255.0(config-if)>security-level private(config-if)>up(config-if)>exit(config)>system configuration save
È quindi possibile provare a eseguire il ping dell'indirizzo del lato remoto del tunnel da qualsiasi lato per verificare se il tunnel funziona correttamente.
L'interfaccia EoIPx può essere inclusa nel Bridge per unire le reti locali. Per fare ciò, configurare l'interfaccia EoIP senza un indirizzo IP su entrambi i lati e quindi aggiungerla al Bridge Home:
(config)>interface Home(config-if)>include EoIP0(config-if)>exit(config)>system configuration save
Importante
Per le interfacce tunnel IPIP, GRE e EoIP, il valore MTU viene calcolato automaticamente in base all'interfaccia attraverso la quale passerà il traffico, ma può essere impostato manualmente tramite il comando interface ip mtu.
Quando si collegano le reti locali utilizzando il tunnel EoIP, si consiglia di utilizzare indirizzi IP statici specificati manualmente sugli host. Se i client sono configurati per ottenere automaticamente gli indirizzi IP da un server DHCP, possono sorgere problemi con l'allocazione degli indirizzi IP dopo la creazione del tunnel perché le richieste DHCP andranno nel tunnel, cioè nella rete remota.
Uso di tunnel IPIP, GRE e EoIP con IPSec
Se è installato un componente di sistema speciale IPSec VPN, è possibile proteggere questi tunnel utilizzando gli standard di sicurezza IPSec, sia in modalità automatica che completamente manuale. Non descriveremo la modalità manuale perché gli utenti esperti possono impostare un tunnel IPSec con la modalità corretta e quindi stabilire il tunnel su IPSec. In caso di configurazione automatica, vengono risolti contemporaneamente diversi problemi della modalità manuale:
Il valore MTU è impostato correttamente;
la connessione diventa orientata alla connessione e si deve scegliere quale estremità del tunnel è il client e quale il server;
risolve automaticamente il problema del NAT pass-through perché utilizza l'IPSec NAT Traversal (NAT-T), che trasforma tutto il traffico del tunnel in un flusso UDP sulla porta
500/4500;vengono utilizzate la crittografia e i controlli di integrità dei dati.
Il componente IPSec VPN aggiunge le seguenti impostazioni ai tunnel:
interface ipsec preshared-key <key>— PSK per la crittografia;interface ipsec encryption-level <level>— livello di crittografia. Per impostazione predefinita, è impostato per coprire il maggior numero possibile di dispositivi ed è con accelerazione hardware. Non è necessario modificarlo.
Poiché IPSec separa un client da un server, per configurare il client (l'iniziatore, il lato che tenterà di stabilire la connessione), è necessario utilizzare il comando interface tunnel destination, e per abilitare la modalità server (la parte che risponderà ai tentativi di connessione), è necessario utilizzare il comando interface tunnel source.
Esempio di configurazione del tunnel EoIP con IPsec (nel nostro esempio, il lato con l'indirizzo WAN 8.6.5.4 è il server):
Server:
(config)>interface EoIP0(config-if)>tunnel source ISP(config-if)>tunnel eoip id 1500(config-if)>ipsec preshared-key mytestingkey(config-if)>ip address 192.168.100.1 255.255.255.0(config-if)>ipsec ikev2(config-if)>security-level private(config-if)>up(config-if)>exit(config)>system configuration save
Client:
(config)>interface EoIP0(config-if)>tunnel destination 8.6.5.4(config-if)>tunnel eoip id 1500(config-if)>ipsec preshared-key mytestingkey(config-if)>ip address 192.168.100.2 255.255.255.0(config-if)>ipsec ikev2(config-if)>security-level private(config-if)>up(config-if)>exit(config)>system configuration save
Importante
La chiave PSK IPSec pre-condivisa deve corrispondere a entrambe le estremità del tunnel.
Nel comando interface tunnel source, è possibile specificare sia l'interfaccia di origine che l'indirizzo IP in cui il server attenderà la connessione. Tuttavia, si dà la preferenza all'interfaccia, perché in questo caso tutta la riconfigurazione al cambio di indirizzo e altri eventi avverrà automaticamente.
Avviso
I tunnel basati su EoIP/IPSec e GRE/IPSec non sono compatibili con le connessioni PPTP a causa dell'utilizzo dello stesso protocollo GRE. In questo caso, è disponibile una sola opzione: IPIP/IPsec.
Importante
Prestare attenzione all'opzione isolate-private.
Non è consentito stabilire una connessione tra interfacce private per impostazione predefinita, ma l'accesso può essere concesso se necessario. Se è necessario consentire le connessioni tra interfacce private (cioè non isolare l'accesso), eseguire il comando no isolate-private.
Utilizzare il comando system configuration save per salvare le impostazioni del router.