OpenVPN - зрозуміти таблицю маршрутизації + Як маршрутизувати лише трафік до певного ip через VPN


12

Я підключаюся до послуги VPN за допомогою OpenVPN і все працює добре. Після підключення ці правила встановлюються автоматично:

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

Ось що я розумію:

  • моя локальна IP-адреса - 192.168.1.201
  • локальний шлюз - 191.168.1.1
  • 5.120.121.114 є публічним ip VPN
  • tun0 - тунель VPN, моя машина має 10.7.7.126 як адресу
  • 10.7.7.125 - це адреса ptp, на яку я розумію, це інший "кінець" VPN

Щодо таблиці маршрутизації, я розумію, що:

  • за замовчуванням весь трафік надсилається через 10.7.7.125 на інтерфейс tun0 (але навіщо ця маска?)
  • 10.7.7.1 доступний через tun0
  • публічний ip vpn доступний через eth0

Я не розумію другий шлюз за замовчуванням, це за замовчуванням, коли vpn не активний, його просто обійти?

Що з 10.7.7.1? схоже, це шлюз vpn ...

Чому призначення 128.0.0.0?

OpenVPN автоматично створює всі ці правила. Але виходячи з того, що створені?

Я не можу керувати стороною сервера VPN, а лише конфігурацією клієнта.

А що робити, якщо я хотів би:

  • змусити весь трафік до 216.58.213.174 пройти через VPN tun0, а все інше пройти через eth0?
  • чи можу я встановити це автоматично під час запуску VPN?

Дякую за пропозицію та підтримку в розумінні цього.

КР, дк

Редагувати:

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
Лише мої 2 центи: Використовуйте ip route listдля кращого перегляду маршрутів. Крім того, оскільки ifconfig і маршрут на шляху до знецінення на LInux ...

Відповіді:


15

Я не розумію другий шлюз за замовчуванням, це за замовчуванням, коли vpn не активний, його просто обійти?

Це один з хакерів OpenVPN для маршрутизації трафіку через ваш тунель, зберігаючи шлюз за замовчуванням. Маршрути 0.0.0.0/1 та 128.0.0.0/1 мають перевагу над маршрутом 0.0.0.0/0, оскільки вони є більш конкретними, але все ще відповідають усім адресам. Шукайте "def1" в документації на OpenVPN для отримання більш детальної інформації

Що з 10.7.7.1? схоже, це шлюз vpn ...

Напевно, так

OpenVPN автоматично створює всі ці правила. Але виходячи з того, що створені?

Вони, ймовірно, висунуті з сервера. Я можу надати додаткову інформацію, якщо ви можете надати висновок від свого клієнта, поки він починається разом із вашим файлом конфігурації

Я не можу керувати стороною сервера VPN, а лише конфігурацією клієнта.

Так, але клієнт налаштований настільки, що ви можете перекрити майже все, що хоче сервер. Тим не менш, вам потрібно буде відповідати основним вимогам своїх провайдерів, щоб підключитися. Ви також повинні перевірити у своїх постачальників "Загальні положення та умови", щоб переконатися, що ви не зрештою їх скасуєте.

А що робити, якщо я хотів би:

змусити весь трафік до 216.58.213.174 пройти через VPN tun0, а все інше пройти через eth0?

Так, включіть у свій конфігурацію "маршрут 216.58.213.174 255.255.255.255 10.7.7.125". Це повинно встановити бажаний маршрут. Ви повинні мати можливість зберегти інші маршрути на місці, видаливши з конфігурації параметр "перенаправлення-шлюз"

чи можу я встановити це автоматично під час запуску VPN?

так, див. вище

Усі описані вами варіанти та багато іншого можна знайти в онлайн-документації OpenVPN. https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage


Багато, багато дякую !!! Я провів дні, копаючись по мережевих деталях, намагаючись зрозуміти милий маленький трюк за допомогою 0.0.0.0/1 та 128.0.0.0/1. Врешті-решт я просто повинен був додати маршрут, який є абсолютно зайвим, за винятком випадків, коли VPN увімкнено.
rlduffy
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.