LINUX.ORG.RU
решено ФорумAdmin

OpenVPN - при подключении клиента пропадает пинг с предыдущим подключением

 


0

1

Добрый день. Есть сеть из нескольких филиалов и центрального офиса. В центральном офисе стоит ClearOS с сервером OpenVPN. В филиалах шлюзы WinXP с клиентами OpenVPN. Компьютеры в филиалах соединяются с сервером через эти шлюзы. Всё работает. Понадобилось в одном из филиалов подключить каждый компьютер Debian 6 непосредственно со своим OpenVPN клиентом. Получилось. Но теперь наблюдается такая картина - пингуется только последний подключившийся компьютер из подсети этого филиала. Пример:

С - сервер OpenVPN 192.168.1.254

К1 - первый клиент 192.168.25.3

К2 - второй клиент 192.168.25.4

Подключается К1 к серверу С. С любого компьютера из подсети 192.168.1.0 я могу пинговать компьютер К1. Далее подключается К2 к серверу С. И снова я могу пинговать К2. Но при этом теряется пинг к К1 Если снова переподключить К1, то он будет пинговаться, но потеряется пинг на К2. При этом со стороны клиентов всё прекрасно - связь стабильная и сервер С пингуется в любой момент.

Ниже приведены конфиги сервера и клиента.

Сервер:

port 1194
proto udp
dev tun
ca /etc/ssl/ca-cert.pem
cert /etc/ssl/sys-0-cert.pem
key /etc/ssl/private/sys-0-key.pem
dh /etc/ssl/dh1024.pem
server 10.8.0.0 255.255.255.0
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
ifconfig-pool-persist /var/lib/openvpn/ipp.txt
status /var/lib/openvpn/openvpn-status.log
verb 3
client-config-dir /etc/openvpn/ccd
duplicate-cn
client-to-client
route 192.168.2.0 255.255.255.0
route 192.168.7.0 255.255.255.0
route 192.168.116.0 255.255.255.0
route 192.168.19.0 255.255.255.0
route 192.168.20.0 255.255.255.0
route 192.168.22.0 255.255.255.0
route 192.168.23.0 255.255.255.0
route 192.168.24.0 255.255.255.0
route 192.168.25.0 255.255.255.0
route 192.168.201.0 255.255.255.0
route 192.168.202.0 255.255.255.0
route 192.168.203.0 255.255.255.0
route 192.168.204.0 255.255.255.0
route 192.168.205.0 255.255.255.0
plugin /usr/share/openvpn/plugin/lib/openvpn-auth-ldap.so /etc/openvpn/auth-ldap
push "dhcp-option DNS 192.168.1.254"
push "dhcp-option WINS 192.168.1.254"
push "dhcp-option DOMAIN clearos.lan"
push "route 192.168.1.0 255.255.255.0"
push "route 192.168.1.0 255.255.255.0"

CCD Клиента:

push "route 192.168.1.0 255.255.255.0"
iroute 192.168.25.0 255.255.255.0

Клиент:

client
remote ClearOS 1194
dev tun
proto udp
resolv-retry infinite
nobind
persist-key
persist-tun
ca /etc/openvpn/ca-cert.pem
cert /etc/openvpn/client-apteka15_CM151-cert.pem
key /etc/openvpn/client-apteka15_CM151-key.pem
ns-cert-type server
comp-lzo
verb 3
auth-user-pass /etc/openvpn/pass.txt

Я понимаю, что при подключении затирается маршрут предыдущего подключения, но как это исправить не могу понять.

P.S. За оформление темы прошу прощения - так и не нашел как можно спойлеры вставить для текста файлов


В филиалах шлюзы WinXP с клиентами OpenVPN. Компьютеры в филиалах соединяются с сервером через эти шлюзы.

Вы не пошутили? «шлюзы WinXP» ?

anc ★★★★★ ()

P.S. За оформление темы прошу прощения - так и не нашел как можно спойлеры вставить для текста файлов

При создании сообщения для кого написано?:
Внимание: прочитайте описание разметки LORCODEhttps://www.linux.org.ru/help/lorcode.md

Для вас волшебное слово [code

anc ★★★★★ ()

Почему все так упорно игнорируют документацию ? В конфиге сервера должна быть строка

push route remote_host 255.255.255.255 net_gateway
которая создает на клиенте маршрут до vpn-сервера, что практически исключает его перекрытие другими маршрутами.

vel ★★★★★ ()

iroute уберите.

Если я убираю iroute из всех конфигов клиента подсети 192.168.25.0, то они перестают пинговаться вообще. Если я оставляю iroute в одном файле клиента, то при подключении этого клиента начинают пинговаться все.

В этом случае также заметил то, что пинг до клиента без iroute идет только пока не загрузилась графическая среда. Т.е. пинг идет во время загрузки компьютера и во время его выключения. Если стоит iroute то пингуется компьютер в любое время

Вы не пошутили? «шлюзы WinXP» ?

Не пошутил. В каждом филиале стоит компьютер с WinXP, который является инет-шлюзом. Он же является и OpenVPN-клиентом для данного офиса.

Почему все так упорно игнорируют документацию ? В конфиге сервера должна быть строка

push route remote_host 255.255.255.255 net_gateway

которая создает на клиенте маршрут до vpn-сервера, что практически исключает его перекрытие другими маршрутами.

Можно в этом месте подробнее? Я попробовал добавить в конфиг сервера

push "route 192.168.25.3 255.255.255.255"
но никакого эффекта это не возымело

ACKEP ()
Ответ на: комментарий от ACKEP

push «route 192.168.25.3 255.255.255.255»

а результат ты посмотрел у клиента?

Основная проблема vpn - при подъеме его нужно сохранять маршрут до vpn-сервера. Самый простой способ - добавить маршрут до этого хоста, т.к. его не перебивают маршруты с более короткой маской.

net_gateway — The pre-existing IP default gateway, read from the routing table (not supported on all OSes).

remote_host — The --remote address if OpenVPN is being run in client mode, and is undefined in server mode.

Если под виндой не работает net_gateway - то беда. Но тогда нужно через ccd отдавать соответствующий маршрут.

vel ★★★★★ ()
Последнее исправление: vel (всего исправлений: 1)
Ответ на: комментарий от vel
push «route 192.168.25.3 255.255.255.255»

а результат ты посмотрел у клиента?

Конечно проверил. У меня постоянно открыты несколько консолей с пингом до всех клиентов подсети 192.168.25.0, поэтому я в реальном времени вижу когда и как изменения влияют. Со стороны клиентов пинг к подсети 192.168.1.0 идёт постоянный и стабильный независимо от изменений.

ACKEP ()

Всё! Проблема решена. Оказалось, что в CCD файлах каждого клиента нужно прописывать не общий для всей подсети маршрут

iroute 192.168.25.0 255.255.255.0
а конкретный маршрут для конкретного клиента
iroute 192.168.25.3 255.255.255.255

В таком случае при подключении маршруты не затираются. Естественно это работает только когда у каждого пользователя свой сертификат.

Всем спасибо!

ACKEP ()
Ответ на: комментарий от ACKEP

Естественно это работает только когда у каждого пользователя свой сертификат.

Пардон, не когда у каждого пользователя свой сертификат, а когда каждый клиент подключается под отдельным пользователем.

ACKEP ()
Ответ на: комментарий от ACKEP

Не пошутил. В каждом филиале стоит компьютер с WinXP, который является инет-шлюзом. Он же является и OpenVPN-клиентом для данного офиса.

И после этого «кто-то» будет говорить про проблемы ИТ.... Печально это.

anc ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.