PPTP proxy для шлюзов с CARP

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Lazy caT
мл. сержант
Сообщения: 89
Зарегистрирован: 2008-09-11 9:59:17
Откуда: Местные мы...
Контактная информация:

PPTP proxy для шлюзов с CARP

Непрочитанное сообщение Lazy caT » 2015-03-23 21:37:02

Здравствуйте, уважаемые. :)

Нужна какая-нибудь свежая идея на тему, организовать проксирование PPTP в сторону VPN-сервера с обоих шлюзов

Что имею.
Есть два шлюза (8.4-RELEASE-p19) объединенных CARP'ом на внутренних интерфейсах, внутри сети есть VPN-сервер (mpd5 с внутренней авторизацией), с генерацией пароля в файл через web-интерфейс (сделано для того, чтобы арендованные IP-адреса пользователей не пересекались на разных серверах).
Вот такая вот схема.

Код: Выделить всё

 GW1 (MASTER)
+---+
|   | 192.168.0.2
0   0\               VPN (VPN-web)
|   | \             +-----------------+
+---+  \            |                 |
 <CARP 192.168.0.1>-0 <-192.168.0.10  0->
+---+  /            |                 |
|   | /             +-----------------+
0   0/ 192.168.0.3
|   |
+---+
 GW2 (BACKUP)
В данный момент проксирование работает через frickin (не из портов, версия из портов встает колом сразу, как и frickin-2.0 BETA2) но, уж очень он, этот frickin, ненадежный, постоянно падает и приходится его перезапускать вручную. И не факт что он правильно слетит (можно было бы написать скрипт его перезапускающий), он может в памяти висеть и в подвешенном состоянии, т.е. прога запущена а подключения не принимает.
(PPTP и GRE идут не через CARP а непосредственно с внутреннего интерфейса шлюза через который идет подключение.)

Пробовал натить GRE и форвардить PPTP. Работает, только вот с одним шлюзом, который в связке является мастером,
при попытке подключения через второй шлюз, PPTP и GRE в обратную сторону идут через мастер, в итоге у клиента ошибка 800.
(если подключение идет через GW2->CARP->VPN то обратно идет VPN->CARP->GW1)

Может есть какая-нибудь альтернатива? Очень нужно прокинуть PPTP с ОБОИХ шлюзов внутрь.
Может какие мысли есть на счет, организовать проксирование стандартными, или не совсем стандартными, средствами FreeBSD, не используя frickin?

Отправлено спустя 1 час 10 минут 35 секунд:
Забыл добавить.
Ещё одна причина по которой хочу отказаться от использования frickin.

При работе frickin возникают проблемы, в виде ошибки 807 (Возможной причиной может быть неполадка в передаче посредством виртуальной сети из-за некачественного интернета или превышение максимально возможной нагрузки виртуального сервера сети.), в Win7. Как я в последствии понял, проблема с frickin, в "железных" роутерах это называется "PPTP passthrough". Причем проблема не со всеми Win7, а только с теми которые подключаются из сетей с "железными" роутерами, с включенным "PPTP passthrough", отдельных моделей, типа ASUS, и то, блин, не всегда а через раз... Иногда работает иногда нет. :(
При подключении же этих клиентов на VPN-сервер, который напрямую "смотрит" в инет, проблем с подключением не возникает.

Моя виртуалка с Win7 через TP-Link WR741ND с "PPTP passthrough" подключается через frickin всегда без проблем.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35152
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

PPTP proxy для шлюзов с CARP

Непрочитанное сообщение Alex Keda » 2015-11-26 15:27:23

Вообще нифига не понял :(

И, походу, не я один...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Lazy caT
мл. сержант
Сообщения: 89
Зарегистрирован: 2008-09-11 9:59:17
Откуда: Местные мы...
Контактная информация:

PPTP proxy для шлюзов с CARP

Непрочитанное сообщение Lazy caT » 2015-11-26 19:42:52

Так просто же всё. :)

Хочу настроить проксирование PPTP через шлюзы на PPTP сервер который находится внутри сети за шлюзами.
Но, настроить его не через сторонние "приблуды", типа frickin, а средствами FreeBSD.

Сейчас всё выглядит вот так:
Drawing2.png
т.е.:
В данный момент проксирование работает через frickin (не из портов, версия из портов встает колом сразу, как и frickin-2.0 BETA2) но, уж очень он, этот frickin, ненадежный, постоянно падает и приходится его перезапускать вручную. И не факт что он правильно слетит (можно было бы написать скрипт его перезапускающий), он может в памяти висеть и в подвешенном состоянии, т.е. прога запущена а подключения не принимает.
(PPTP и GRE идут не через CARP а непосредственно с внутреннего интерфейса шлюза через который идет подключение.)
Всё красиво, всё работает но, frickin периодически "отваливается" и раньше приходилось его перезапускать вручную - очень неудобно...
Сейчас, есть скрипт который мониторит состояние frickin'а и, в случае чего, его перезапускает.

А когда я пытался настроить PPTP форвардинг получалось вот это:
Drawing1.png
т.е.
Пробовал натить GRE и форвардить PPTP. Работает, только вот с одним шлюзом, который в связке является мастером,
при попытке подключения через второй шлюз, PPTP и GRE в обратную сторону идут через мастер, в итоге у клиента ошибка 800.
(если подключение идет через GW2->CARP->VPN то обратно идет VPN->CARP->GW1)
Зачем: чтобы был единый сервер с единой, локальной, базой данных паролей юзеров, и единым адресным пространством на PPTP сервере для подключений через оба шлюза (подключенных к разным провайдерам)...
Чтобы не писать разные pool'ы на каждом из шлюзов и разводить пользователей по каждому PPTP серверу.

Аватара пользователя
Amadeus
ст. сержант
Сообщения: 331
Зарегистрирован: 2008-10-05 12:42:44
Откуда: Kiev

PPTP proxy для шлюзов с CARP

Непрочитанное сообщение Amadeus » 2015-12-04 1:12:56

Однако....)
Так просто же всё.
Тогда это же можно было решить сразу, не спрашивая совета в формулировке

1) Как сделать?
2) Объясните подробнее
3) Зачем? Тут же просто все!

Я обычно, после слово "просто" прошу показать мне, несмышлёному дураку как это делать.)

А теперь по делу.
В общем случае
Но, настроить его не через сторонние "приблуды", типа frickin, а средствами FreeBSD
Кто видел, что FreeBSD - это прокси сервис из коробки?) Руки поднять. Т.е если будет задача проксирования, например, tcp - мы тоже не будем долго и упорно кушать кактус, вместо того, что бы поставить, haproxy/nginx/relayd
В данной формулировке, то что у вас реализовано (с поисками более стабильной версии/среды для ее запуска) - наиболее +- оптимальное решение. Если все таки хотите упорно избавиться от этого типа прокси - посмотрите в сторону relayd и раздницы его работы на FreeBSD + pf и OpenBSD + pf.

Есть понимание, того, что если кто то такое не реализовывал уже в точности, то ВСЕ что вы написали, надо воспроизводить у себя, дабы дать вам нормальный совет?:)

Касательно вот этого
Пробовал натить GRE и форвардить PPTP. Работает, только вот с одним шлюзом, который в связке является мастером,
при попытке подключения через второй шлюз, PPTP и GRE в обратную сторону идут через мастер, в итоге у клиента ошибка 800.
(если подключение идет через GW2->CARP->VPN то обратно идет VPN->CARP->GW1)
Это логично, так как у вас, судя по схеме, carp используется только для резервирования defaultrouter, грубо говоря. Вы что ожидайте на выходе увидеть, в ответе от сервера, если у него стоит сервер Х там, ?)

Резюмируя
1) Собирайте тестовый стенд и вперед). pf + binat + relayd, например. Ну и фибы. Т.е делать кастомную маршрутизацию по условиям.
Нет ничего невозможного