OpenVPN - Comprendi la tabella di routing + Come instradare solo il traffico verso un IP specifico tramite VPN


12

Mi sto collegando a un servizio VPN usando OpenVPN e tutto funziona bene. Una volta che mi collego queste sono le regole che vengono automaticamente impostate:

root@linux:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:AA:1B:01:AC:FB  
          inet addr:192.168.1.201  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:46867 errors:0 dropped:0 overruns:0 frame:0
          TX packets:29742 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:37977382 (36.2 MiB)  TX bytes:5098121 (4.8 MiB)
          Interrupt:16 

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.7.7.126  P-t-P:10.7.7.125  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:23284 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5817 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:31366374 (29.9 MiB)  TX bytes:308591 (301.3 KiB)

root@linux:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.7.7.125      128.0.0.0       UG    0      0        0 tun0
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
5.120.121.114   192.168.1.1     255.255.255.255 UGH   0      0        0 eth0
10.7.7.1        10.7.7.125      255.255.255.255 UGH   0      0        0 tun0
10.7.7.125      *               255.255.255.255 UH    0      0        0 tun0
128.0.0.0       10.7.7.125      128.0.0.0       UG    0      0        0 tun0
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0

Ecco cosa ho capito:

  • il mio indirizzo IP locale è 192.168.1.201
  • il gateway locale è 191.168.1.1
  • 5.120.121.114 è l'ip pubblico VPN
  • tun0 è il tunnel VPN, la mia macchina ha l'indirizzo 10.7.7.126
  • 10.7.7.125 è l'indirizzo ptp che capisco sia l'altra "fine" della VPN

Per quanto riguarda la tabella di routing, capisco che:

  • per impostazione predefinita tutto il traffico viene inviato tramite 10.7.7.125 sull'interfaccia tun0 (ma perché quella maschera?)
  • 10.7.7.1 è raggiungibile tramite tun0
  • l'ip pubblico di vpn è raggiungibile via eth0

Non capisco il secondo gateway predefinito, questo è il valore predefinito quando il VPN non è attivo, è semplicemente bypassato?

Che dire del 10.7.7.1? sembra che sia il gateway della VPN ...

Perché la destinazione 128.0.0.0?

OpenVPN crea automaticamente tutte queste regole. Ma in base a cosa vengono creati quelli?

Non riesco a controllare il lato server della VPN ma solo la configurazione del client.

E se volessi:

  • forzare tutto il traffico a 216.58.213.174 per passare tramite VPN tun0 e tutto il resto passa attraverso eth0?
  • posso averlo stabilito automaticamente all'avvio della VPN?

Grazie per il tuo suggerimento e supporto nella comprensione di questo.

KR, dk

MODIFICARE:

root@linux:~# ip route list
0.0.0.0/1 via 10.7.7.125 dev tun0 
default via 192.168.1.1 dev eth0 
5.152.210.249 via 192.168.1.1 dev eth0 
10.7.7.1 via 10.7.7.125 dev tun0 
10.7.7.125 dev tun0  src 10.7.7.126 
128.0.0.0/1 via 10.7.7.125 dev tun0 
192.168.1.0/24 dev eth0  src 192.168.1.201 

1
Solo i miei 2 centesimi: utilizzare ip route listper ottenere una visione migliore dei percorsi. Inoltre, perché ifconfig e route sono sulla strada della deprecazione di LInux ...

Risposte:


15

Non capisco il secondo gateway predefinito, questo è il valore predefinito quando il VPN non è attivo, è semplicemente bypassato?

Questo è uno degli hack di OpenVPN per instradare il traffico attraverso il tunnel mantenendo il gateway predefinito. Le route 0.0.0.0/1 e 128.0.0.0/1 hanno la precedenza sulla route 0.0.0.0/0 poiché sono più specifiche pur mantenendo tutti gli indirizzi. Cerca "def1" nella documentazione di OpenVPN per maggiori dettagli

Che dire del 10.7.7.1? sembra che sia il gateway della VPN ...

Probabilmente sì

OpenVPN crea automaticamente tutte queste regole. Ma in base a cosa vengono creati quelli?

Probabilmente vengono inviati dal server. Posso fornire ulteriori informazioni se puoi fornire l'output dal tuo client mentre sta iniziando insieme al tuo file di configurazione

Non riesco a controllare il lato server della VPN ma solo la configurazione del client.

Sì, ma il client è altamente configurabile in modo tale da poter sovrascrivere praticamente tutto ciò che il server vuole che faccia il client. Tuttavia, dovrai connetterti ai requisiti di base dei tuoi provider. Dovresti anche controllare i "Termini d'uso" dei tuoi fornitori per assicurarti di non finire per incazzarli.

E se volessi:

forzare tutto il traffico a 216.58.213.174 per passare tramite VPN tun0 e tutto il resto passa attraverso eth0?

Sì, includi "route 216.58.213.174 255.255.255.255 10.7.7.125" nella tua configurazione. Ciò dovrebbe impostare il percorso desiderato. Dovresti essere in grado di mantenere gli altri percorsi in atto rimuovendo l'opzione "reindirizzamento-gateway" dalla tua configurazione

posso averlo stabilito automaticamente all'avvio della VPN?

si, vedi sopra

Tutte le opzioni che ho descritto e altre sono disponibili nella documentazione online di OpenVPN. https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage


Molte, molte grazie !!! Ho passato giorni a frugare nella minutia della rete cercando di capire il piccolo trucco carino con 0.0.0.0/1 e 128.0.0.0/1. Alla fine ho dovuto semplicemente aggiungere un percorso completamente ridondante, tranne quando la VPN è abilitata.
rlduffy,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.