1

В настоящее время я действительно сбит с толку ... и нет, это не нормальное состояние для меня ;-) Моя проблема: я бы установил, работаю с месяца, который позволяет мне подключаться к сетям, чтобы я мог подключиться к каждой машине из другой сети , Теперь, в конце прошлой недели, было необходимо заменить текущее клиентское оборудование (устройство, называемое pogoplug, но измененное установкой Debian) на более новое (zyxel NAS 540). До сих пор NAS в настоящее время владеет своей собственной прошивкой, и моддинг с помощью Debian или другого дистрибутива в настоящее время невозможен, потому что ядро скомпилировано с размером страницы 64 КБ, что нарушает совместимость, которая имеется во многих доступных двоичных файлах для ARM-архива. Но некоторые пользователи сообщества сделали openvpn доступным с необходимыми настройками компиляции.

Настройка сети

Сеть А

В сети A я использую LXC (vmm-h01). Я создал контейнер (app-h01), внутри которого работает сервер openVPN (IP: 192.168.200.204). Настройка между хостом и контейнерами соединена с сетевыми интерфейсами, IP-адреса контейнеров находятся в одной сети, как и другие. Это необходимо, потому что внутри одного контейнера есть сервис широковещательного / многоадресного контента, поэтому он должен находиться в одной сети. Сеть A является сетью 192.168.200.0/24.

На маршрутизаторе (192.168.200.254) установлены следующие правила: Сетевая маска подсети
192.168.201.0 255.255.255.0 192.168.200.204 192.168.254.0 255.255.255.0 192.168.200.204

Сеть Б

В сети B клиент openVPN (IP: 192.168.201.200) работает непосредственно на NAS без каких-либо контейнеров или виртуализации. Сеть A является сетью 192.168.201.0/24.

На роутере (192.168.201.254) установлены следующие правила:

Network     Subnetmask  Gateway         
192.168.200.0   255.255.255.0   192.168.201.200 
192.168.254.0   255.255.255.0   192.168.201.200

Проблема, смути меня

Я устанавливаю openvpn на NAS, копирую в него старую настройку и запускаю openvpn. Соединение было установлено и все выглядит нормально. Пингую из сети A хост по сети B, работает! Пингует из сети B хост по сети A, работает! Затем я хочу ssh на хост в сети B, на котором работает клиент openVPN ... сбой! Я могу пинговать хост, но я не могу ssh к нему. Таким образом, я ssh к хосту внутри сети в сети B и ssh оттуда к хосту с клиентом openVPN, и это работает ... и поведение то же самое (= обратное), когда я пробую его из сети B в A ...

Анализ проблемы

Чтобы проанализировать, что не так, я отслеживаю путь от хоста внутри сети A:... к хосту внутри сети B

leonard:~ # tracepath 192.168.201.254
 1?: [LOCALHOST]                                         pmtu 8996
 1:  vmm-h01.fritz.box                                     0.776ms pmtu 1500
 1:  app-v01.fritz.box                                     0.577ms
 2:  192.168.254.2                                        22.156ms
 3:  192.168.201.254                                      26.285ms reached
     Resume: pmtu 1500 hops 3 back 62

... на хост с openVPN-клиентом в сети B

leonard:~ # tracepath 192.168.201.200
 1?: [LOCALHOST]                                         pmtu 8996
 1:  vmm-h01.fritz.box                                     0.753ms pmtu 1500
 1:  app-v01.fritz.box                                     0.594ms
 2:  192.168.201.200                                      20.341ms reached
     Resume: pmtu 1500 hops 2 back 63

Теперь, путь в порядке до хоста app-v01.fritz.box. Вот разница: на первом пути трассировки пакеты "переходят" через 192.168.254.2, на втором - напрямую переходят на 192.168.201.200. У меня нет никакой идеи, что не так. Я бы понял, ничего не сработало бы, я бы понял, если бы я мог обращаться только к сервисам непосредственно в экземплярах openVPN (из-за неправильной или отсутствующей маршрутизации), но я не понимаю, почему все работы исключали доступ к сервисам в экземплярах openVPN.

Я также пробую это с openVPN непосредственно на vmm-h01, исключая странное поведение маршрутизации /briding из-за настройки LXC, но результат тот же ...

В настоящее время нет активных iptables или чего-то в этом роде, hosts.deny пусты ...

Версия OpenVPN-сервера

OpenVPN 2.3.4 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Dec  1 2014
library versions: OpenSSL 1.0.1k 8 Jan 2015, LZO 2.08
Originally developed by James Yonan
Copyright (C) 2002-2010 OpenVPN Technologies, Inc. <sales@openvpn.net>
Compile time defines: enable_crypto=yes enable_debug=yes enable_def_auth=yes enable_dependency_tracking=no enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown enable_fast_install=yes enable_fragment=yes enable_http_proxy=yes enable_iproute2=yes enable_libtool_lock=yes enable_lzo=yes enable_lzo_stub=no enable_maintainer_mode=no enable_management=yes enable_multi=yes enable_multihome=yes enable_pam_dlopen=no enable_password_save=yes enable_pedantic=no enable_pf=yes enable_pkcs11=yes enable_plugin_auth_pam=yes enable_plugin_down_root=yes enable_plugins=yes enable_port_share=yes enable_selinux=no enable_server=yes enable_shared=yes enable_shared_with_static_runtimes=no enable_small=no enable_socks=yes enable_ssl=yes enable_static=yes enable_strict=no enable_strict_options=no enable_systemd=yes enable_win32_dll=yes enable_x509_alt_username=yes with_crypto_library=openssl with_gnu_ld=yes with_ifconfig_path=/sbin/ifconfig with_iproute_path=/sbin/ip with_mem_check=no with_plugindir='${prefix}/lib/openvpn' with_route_path=/sbin/route with_sysroot=no
git revision: refs/heads/jessie/b35ad09bfc4a26e7

server.conf

daemon
port 8070
dev tun
proto tcp-server
ifconfig 192.168.254.1 192.168.254.2
secret /etc/openvpn/static.key
script-security 2
up /etc/openvpn/server.up
down /etc/openvpn/server.down
status /var/log/openvpn-status.log
log-append /var/log/openvpn.log
comp-lzo
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
user nobody
group nogroup
verb 3

server.up

#!/bin/bash
sysctl -w net/ipv4/conf/eth0/proxy_arp=1
sysctl -w net/ipv4/ip_forward=1
route add -net 192.168.254.0/24 dev tun0
route add -net 192.168.201.0/24 dev tun0
exit 0

server.down

#!/bin/bash
route del -net 192.168.201.0/24 dev tun0
route del -net 192.168.254.0/24 dev tun0
exit 0

Таблица маршрутизации OpenVPN Server

Kernel-IP-Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
default         192.168.200.254 0.0.0.0         UG    0      0        0 eth0
192.168.200.0   *               255.255.255.0   U     0      0        0 eth0
192.168.201.0   *               255.255.255.0   U     0      0        0 tun0
192.168.254.0   *               255.255.255.0   U     0      0        0 tun0
192.168.254.2   *               255.255.255.255 UH    0      0        0 tun0

Версия клиента OpenVPN

OpenVPN 2.3.6 armv7l-unknown-linux-gnueabi [SSL (OpenSSL)] [LZO] [EPOLL] [MH] [IPv6] built on Apr  1 2015
library versions: OpenSSL 1.0.1j 15 Oct 2014, LZO 2.09
Originally developed by James Yonan
Copyright (C) 2002-2010 OpenVPN Technologies, Inc. <sales@openvpn.net>
Compile time defines: enable_crypto='yes' enable_crypto_ofb_cfb='yes' enable_debug='yes' enable_def_auth='yes' enable_dlopen='unknown' enable_dlopen_self='unknown' enable_dlopen_self_static='unknown' enable_fast_install='yes' enable_fragment='yes' enable_http_proxy='yes' enable_iproute2='no' enable_libtool_lock='yes' enable_lzo='yes' enable_lzo_stub='no' enable_management='yes' enable_multi='yes' enable_multihome='yes' enable_pam_dlopen='no' enable_password_save='no' enable_pedantic='no' enable_pf='yes' enable_pkcs11='no' enable_plugin_auth_pam='yes' enable_plugin_down_root='yes' enable_plugins='yes' enable_port_share='yes' enable_selinux='no' enable_server='yes' enable_shared='yes' enable_shared_with_static_runtimes='no' enable_small='no' enable_socks='yes' enable_ssl='yes' enable_static='yes' enable_strict='no' enable_strict_options='no' enable_systemd='no' enable_win32_dll='yes' enable_x509_alt_username='no' with_crypto_library='openssl' with_gnu_ld='yes' with_mem_check='no' with_plugindir='$(libdir)/openvpn/plugins' with_sysroot='no'

client.conf

remote <...>
dev tun
proto tcp-client
ifconfig 192.168.254.2 192.168.254.1
secret /etc/openvpn/static.key
script-security 2
up /etc/openvpn/client.up
down /etc/openvpn/client.down
status /var/log/openvpn-status.log
log-append /var/log/openvpn.log
comp-lzo                                                                                                                                                                                        
keepalive 10 60                                                                                                                                                                                 
ping-timer-rem                                                                                                                                                                                  
persist-tun                                                                                                                                                                                     
persist-key                                                                                                                                                                                     
user nobody                                                                                                                                                                                     
group nogroup                                                                                                                                                                                   
verb 2

client.up

#!/opt/bin/bash
openvpn --mktun --dev tun0
echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp
echo 1 > /proc/sys/net/ipv4/ip_forward
route add -net 192.168.254.0/24 dev tun0
route add -net 192.168.200.0/24 dev tun0
exit 0

client.down

#!/opt/bin/bash
route del -net 192.168.200.0/24 dev tun0
route del -net 192.168.254.0/24 dev tun0
exit 0

Таблица маршрутизации OpenVPN Client

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         fritz.box       0.0.0.0         UG    5      0        0 egiga0
192.168.200.0   192.168.254.2   255.255.255.0   UG    0      0        0 tun0
192.168.201.0   *               255.255.255.0   U     0      0        0 egiga0
192.168.254.0   *               255.255.255.0   U     0      0        0 tun0
192.168.254.1   *               255.255.255.255 UH    0      0        0 tun0

0