Я подключаюсь к 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
Я не понимаю, что такое второй шлюз по умолчанию, он используется по умолчанию, когда 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?
Да, включите "route 216.58.213.174 255.255.255.255 10.7.7.125" в вашу конфигурацию. Это должно настроить ваш желаемый маршрут. Вы должны иметь возможность сохранить ваши другие маршруты на месте, удалив опцию "redirect-gateway" из вашей конфигурации
можно ли сделать так, чтобы он устанавливался автоматически при запуске VPN?
да, см. выше
Все описанные мной варианты и даже больше можно найти в онлайн-документации OpenVPN. https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage