OpenVPN - zrozumienie tabeli routingu + Jak kierować tylko ruch do określonego adresu IP za pośrednictwem sieci VPN

12

Łączę się z usługą VPN za pomocą OpenVPN i wszystko działa dobrze. Po podłączeniu są to reguły ustawiane automatycznie:

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

Oto co rozumiem:

  • mój lokalny adres IP to 192.168.1.201
  • brama lokalna to 191.168.1.1
  • 5.120.121.114 jest publicznym adresem IP VPN
  • tun0 to tunel VPN, moja maszyna ma adres 10.7.7.126
  • 10.7.7.125 to adres ptp. Rozumiem, że to drugi „koniec” VPN

Jeśli chodzi o tabelę routingu, rozumiem, że:

  • domyślnie cały ruch jest wysyłany przez 10.7.7.125 na interfejsie tun0 (ale dlaczego ta maska?)
  • 10.7.7.1 jest osiągalny przez tun0
  • publiczne IP VPN jest osiągalne przez eth0

Nie rozumiem drugiej domyślnej bramy, jest to domyślna, gdy VPN nie jest aktywny, czy jest po prostu ominięty?

Co z 10.7.7.1? wygląda na to, że jest bramą VPN ...

Dlaczego miejsce docelowe 128.0.0.0?

OpenVPN automatycznie tworzy wszystkie te reguły. Ale w oparciu o to, co są tworzone?

Nie mogę kontrolować strony VPN serwera, ale tylko konfigurację klienta.

A co jeśli chciałbym:

  • zmusić cały ruch do 216.58.213.174, aby przejść przez VPN tun0 i czy cała reszta przechodzi przez eth0?
  • czy mogę ustawić go automatycznie przy uruchomieniu VPN?

Dziękujemy za sugestię i wsparcie w zrozumieniu tego.

KR, dk

EDYTOWAĆ:

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 
d82k
źródło
1
Tylko moje 2 centy: Użyj, ip route listaby uzyskać lepszy widok swoich tras. Ponadto, ponieważ ifconfig i route są na drodze do wycofania się z LInux ...

Odpowiedzi:

15

Nie rozumiem drugiej domyślnej bramy, jest to domyślna, gdy VPN nie jest aktywny, czy jest po prostu ominięty?

Jest to jeden z włamań OpenVPN do kierowania ruchem przez tunel przy zachowaniu domyślnej bramy. Trasy 0.0.0.0/1 i 128.0.0.0/1 mają pierwszeństwo przed trasą 0.0.0.0/0, ponieważ są bardziej szczegółowe, a mimo to pasują do wszystkich adresów. Wyszukaj „def1” w dokumentacji OpenVPN, aby uzyskać więcej szczegółów

Co z 10.7.7.1? wygląda na to, że jest bramą VPN ...

Prawdopodobnie tak

OpenVPN automatycznie tworzy wszystkie te reguły. Ale w oparciu o to, co są tworzone?

Prawdopodobnie są wypychane z serwera. Mogę podać więcej informacji, jeśli możesz podać dane wyjściowe klienta podczas jego uruchamiania wraz z plikiem konfiguracyjnym

Nie mogę kontrolować strony VPN serwera, ale tylko konfigurację klienta.

Tak, ale klient jest wysoce konfigurowalny, dzięki czemu można zastąpić praktycznie wszystko, co serwer chce zrobić od klienta. Aby połączyć się, musisz jednak spełnić podstawowe wymagania dostawców. Powinieneś także sprawdzić „Warunki użytkowania” swoich dostawców, aby upewnić się, że ich nie wkurzysz.

A co jeśli chciałbym:

zmusić cały ruch do 216.58.213.174, aby przejść przez VPN tun0 i czy cała reszta przechodzi przez eth0?

Tak, dołącz do swojej trasy „route 216.58.213.174 255.255.255.255 10.7.7.125”. To powinno ustawić żądaną trasę. Powinieneś być w stanie utrzymać pozostałe trasy na miejscu, usuwając opcję „przekierowanie-brama” z konfiguracji

czy mogę ustawić go automatycznie przy uruchomieniu VPN?

tak, patrz wyżej

Wszystkie opisane przeze mnie opcje i więcej można znaleźć w dokumentacji online OpenVPN. https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage

pali 2345
źródło
Bardzo, bardzo dziękuję !!! Spędziłem dni, szukając drobiazgów w sieci, próbując zrozumieć uroczą sztuczkę z 0.0.0.0/1 i 128.0.0.0/1. W końcu musiałem jedynie dodać trasę, która jest całkowicie zbędna, chyba że VPN jest włączony.
rlduffy