
У меня настроен OpenVPN на сервере шлюза Debian. Локальная сеть маршрутизатора шлюза сервера OpenVPN — 172.16.20.0/24. IP-адрес шлюза — 172.16.20.254. Ниже в файле openvpn.conf:
port 1194 proto udp dev tun ca ca.crt cert ccrr.crt key ccrr.key dh dh1024.pem server 172.16.21.0 255.255.255.0 ifconfig-pool-persist ipp.txt keepalive 10 120 comp-lzo user nobody group users persist-key persist-tun status openvpn-status.log verb 4 client-to-client route 192.168.55.0 255.255.255.0 push "route 172.16.20.0 255.255.255.0" push "route 172.16.200.0 255.255.255.0"
Клиентская локальная сеть 192.168.55.0/24, а IP шлюза 192.168.55.254. LAN vpn 172.16.21.0/24. После успешного подключения vpn vpn-сервер имеет следующие IP 172.16.21.1 и клиент 172.16.21.22. Клиент пингует сервер и всю подключенную к нему локальную сеть, включая маршрутизатор ADSL с IP 172.16.200.254. OpenVPN-сервер успешно пингует IP 172.16.21.22, но не может пинговать IP-адрес клиентской локальной сети, т. е. 192.168.55.3 или шлюз ADSL клиента локальной сети, т. е. 192.168.55.254.
Вот маршруты на стороне сервера:
root@ccrr:/# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 172.16.200.254 0.0.0.0 UG 0 0 0 eth0 172.16.20.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 172.16.21.0 172.16.21.2 255.255.255.0 UG 0 0 0 tun0 172.16.21.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0 172.16.200.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2 192.168.55.0 172.16.21.2 255.255.255.0 UG 0 0 0 tun0
Я подключил конфигурацию брандмауэра со следующими правилами:
iptables -A INPUT -i tun+ -j ACCEPT iptables -A OUTPUT -o tun+ -j ACCEPT
Я следовал приведенным ниже инструкциям, чтобы указать серверу, по какому маршруту ему следовать, чтобы найти клиента локальной сети. Включение нескольких машин на стороне клиента при использовании маршрутизируемого VPN (dev tun).
У меня та же проблема, когда я пытаюсь установить в качестве клиента другой шлюзовой маршрутизатор OpenVPN Debian. Все работает: клиент подключается к серверу и может пинговать как шлюзовой сервер, так и оба подключенных устройства OpenVPN к своей локальной сети, но не наоборот. То есть, если попытаться пинговать сервер шлюза VPN или устройства, подключенные к его локальной сети, клиент не получает никаких ответов.
Я попытался посмотреть, что происходит с пакетами ICMP с помощью tcpdump при отправке команды ping с сервера на клиент, и вот результат:
18:12:01.335462 ip: 172.16.21.1 > 192.168.55.3: ICMP echo request, id 5855, seq 1, length 64 18:12:02.334983 ip: 172.16.21.1 > 192.168.55.3: ICMP echo request, id 5855, seq 2, length 64
Пожалуйста, помогите мне понять, почему это происходит и как я могу решить эту проблему. Извините за мой плохой английский. Grazie.