Исходные данные
- Сервер A: Windows Server 2019, IP
192.168.0.130 - Локальная сеть:
192.168.0.0/24 - OpenVPN-подсеть:
192.168.100.0/24, сервер VPN имеет IP192.168.100.1 - Debian в Hyper-V: IP
192.168.0.134(DHCP, закреплён на роутере по MAC) - Виртуальный коммутатор: External на физическом адаптере Intel I210
Проблема
OpenVPN-клиент мог пинговать сервер, но не Debian. Пакет доходил до Debian, но обратный ответ уходил через роутер, который не знал маршрута в VPN-подсеть.
Решение
1. Windows Server — firewall
Разрешён ICMP и трафик из VPN-подсети:
powershell
New-NetFirewallRule -DisplayName "ICMP from VPN" -Protocol ICMPv4 -IcmpType 8 -RemoteAddress 192.168.100.0/24 -Action Allow
New-NetFirewallRule -DisplayName "VPN Forwarding" -Direction Inbound -Action Allow -RemoteAddress 192.168.100.0/24
Профиль OpenVPN-адаптера переведён в Private:
powershell
Set-NetConnectionProfile -InterfaceAlias "OpenVPN TAP-Windows6" -NetworkCategory Private
2. Debian — маршрут в VPN-подсеть
Создан systemd-юнит /etc/systemd/system/route-vpn.service:
[Unit]
Description=Add route to VPN subnet
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
ExecStartPre=/bin/bash -c 'until ping -c1 -W1 192.168.0.130; do sleep 2; done'
ExecStart=/usr/sbin/ip route replace 192.168.100.0/24 via 192.168.0.130
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
- Войдите или зарегистрируйтесь, чтобы оставлять комментарии