Невозможно подключиться к сетям за сервером Wireguard VPN. Конфигурация Split-Tunneligt на клиенте
У меня есть сервер Wireguard в моей корпоративной сети.
Я могу успешно подключиться к нему из Интернета (используя публикацию порта).
Сервер Wireguard имеет два интерфейса:
1: eth0: 192.168.30.100/24
2: wg0: 192.168.99.1/24
Вотip route
выход:
default via 192.168.30.1 dev eth0 proto static
192.168.30.0/24 dev eth0 proto kernel scope link src 192.168.30.100
192.168.99.0/24 dev wg0 proto kernel scope link src 192.168.99.1
Вот сервер Wireguardnetplan
:
network:
version: 2
renderer: networkd
ethernets:
eth0:
addresses:
- 192.168.30.100/24
gateway4: 192.168.30.1
Клиент Wireguard (Windows) имеет настройку раздельного туннелирования, предназначенную для доступа к корпоративным сетям через сервер Wireguard, а все остальное — через обычный шлюз. Вот настройка клиента Wireguard:
[Interface]
PrivateKey = ***
Address = 192.168.99.201/32
PostUp = powershell -command "$wgInterface = Get-NetAdapter -Name WG-server;
route add 0.0.0.0 mask 0.0.0.0 0.0.0.0 if $wgInterface.ifIndex metric 9999;
Set-NetIPInterface -InterfaceIndex $wgInterface.ifIndex -InterfaceMetric 9999;
route add 192.168.99.0/24 0.0.0.0 if $wgInterface.ifIndex;
route add 192.168.30.0/24 192.168.99.1 if $wgInterface.ifIndex;"
PreDown = powershell -command "$wgInterface = Get-NetAdapter -Name WG-server;
route delete 0.0.0.0 mask 0.0.0.0 0.0.0.0 if $wgInterface.ifIndex metric 9999;
Set-NetIPInterface -InterfaceIndex $wgInterface.ifIndex -InterfaceMetric 9999;
route delete 192.168.99.0/24 0.0.0.0 if $wgInterface.ifIndex;
route delete 192.168.30.0/24 192.168.99.1 if $wgInterface.ifIndex;"
Table = off
[Peer]
PublicKey = ***
AllowedIPs = 0.0.0.0/0
Endpoint = 37.228.89.163:4226
Итак, после этого у меня на клиенте Wireguard (Windows) получилась вот такая таблица маршрутизации:
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.124 55
0.0.0.0 0.0.0.0 On-link 192.168.99.201 19998
127.0.0.0 255.0.0.0 On-link 127.0.0.1 331
127.0.0.1 255.255.255.255 On-link 127.0.0.1 331
127.255.255.255 255.255.255.255 On-link 127.0.0.1 331
192.168.0.0 255.255.255.0 On-link 192.168.0.124 311
192.168.0.124 255.255.255.255 On-link 192.168.0.124 311
192.168.0.255 255.255.255.255 On-link 192.168.0.124 311
192.168.30.0 255.255.255.0 192.168.99.1 192.168.99.201 10000
192.168.99.0 255.255.255.0 On-link 192.168.99.201 10000
192.168.99.201 255.255.255.255 On-link 192.168.99.201 10255
192.168.99.255 255.255.255.255 On-link 192.168.99.201 10255
224.0.0.0 240.0.0.0 On-link 127.0.0.1 331
224.0.0.0 240.0.0.0 On-link 192.168.0.124 311
224.0.0.0 240.0.0.0 On-link 192.168.99.201 10255
255.255.255.255 255.255.255.255 On-link 127.0.0.1 331
255.255.255.255 255.255.255.255 On-link 192.168.0.124 311
255.255.255.255 255.255.255.255 On-link 192.168.99.201 10255
Кстати, вот конфиг интерфейсов на клиенте:
PS C:\Windows\system32> netsh interface ip show address
Configuration for interface "Wi-Fi"
DHCP enabled: Yes
IP Address: 192.168.0.124
Subnet Prefix: 192.168.0.0/24 (mask 255.255.255.0)
Default Gateway: 192.168.0.1
Gateway Metric: 0
InterfaceMetric: 55
Configuration for interface "WG-server"
DHCP enabled: No
IP Address: 192.168.99.201
Subnet Prefix: 192.168.99.201/32 (mask 255.255.255.255)
Default Gateway: 0.0.0.0
Gateway Metric: 9999
InterfaceMetric: 9999
Итак... с сервера Wireguard я могуping
:
192.168.30.1 - internal corporate gateway
192.168.30.99 - some internal corporate host
192.168.99.201 - wireguard client
С корпоративного шлюза (ip =) я могу выполнить пинг (со статическим маршрутом до192.168.99.0/24
):
192.168.30.100 - wireguard eth0 interface (amazing, right? =))
192.168.99.1 - wireguard wg0 interface
Но я НЕ МОГУ пинговать192.168.99.201
- Клиент Wireguard.
Кроме того, я могу пинговать из клиента Wireguarg:
192.168.99.1 - wg server
192.168.30.100 - wg eth0 interface
Но я НЕ МОГУ пинговать192.168.30.1
или любые другие хосты в корпоративной сети.
Кажется, сервер Wireguard неправильно маршрутизирует трафик, или я где-то допустил ошибку.
Вот тебе картинка)net setup
Есть идеи?
1 ответ
Я вообще ничего не знаю о Wireguard, но обычные настройки VPN позволяют раздельное туннелирование с использованием Add-VPNConnectionRoute. Не могли бы вы проверить это? Заранее спасибо. "="