1. Shevon 18.09.16 11:58 Сейчас в теме

Маршрутизация

Всем доброго дня!

Имеем терминальный сервер на Windows Server 2003 R2 SP2.
Имеем на нем установленный OpenVPN клиент.
Имеем несколько роутеров Asus WL-500G Premium V2, находящихся удаленно, на которых подняты OpenVPN сервера. Соответственно при подключении клиента они выступают шлюзами. Каждое подключение использует отдельный виртуальный адаптер (TAP-Windows Adapter V9).
Эта часть настроена и работает. Претензий нет.

Суть проблемы такова: нужно это дело так настроить так, чтобы при нескольких одновременно активных OpenVPN-подключениях (несколько терминальных пользователей создали свои подключения) каждый пользователь использовал свой шлюз, т.е. все время шел через свой сетевой интерфейс (виртуальный адаптер), ибо винда использует только один шлюз.

У кого какие мысли по этому поводу

Заранее спасибо!
Ответы
Сортировка: Древо
4. Fox-trot 74 19.09.16 22:42 Сейчас в теме
(1) Shevon, а какова конечная цель данного мероприятия?
6. stvorl 889 19.09.16 23:40 Сейчас в теме
(1) Shevon,

Очень сложно понять что происходит вообще.
Настроено крайне странно, работать оно так будет с постоянными инцидентами.

Подозреваю, что у вас все openvpn-..кгхм.. -серверы настроены идентично, и вашему win2003 выдают адрес в одном том же логическом сегменте сети, и win2003 путается, когда ему приходит пакет от клиента RDP, на тему "куда же его возвращать".
Может я не прав. Тут только смотреть и щупать.

Если отвечать на вопрос "какие мысли", то мысль - вырезать все это на корню, и переделать. Приставить к серверу роутер №0 (или он уже есть), поднять на нем сервер openvpn (в мультиклиентском режиме - mode server, а не mode p2p). Если роутера нет, то openvpn server поставить на самом win2003.

Затем:
а) клиентские роутеры перенастроить в режим openvpn-клиентов,
сеть каждого роутера развести по IP-сегментам (например, у сети роутера №0 - 10.55.0.x, у сети роутера клиента №1 - 10.55.1.x, и т.д.)
Прописать в конфиге сервера openvpn PUSH-ROUTE "10.55.0.0/24", и все роутеры получат маршрут до сети с сервером.
Но я не знаю, какие режимы openvpn поддерживают ваши Asus WL-500G, что они умеют и т.п. Если там openwrt, то умеют точно.

б) вообще поставить по openvpn-клиенту на компьютер каждого клиента, и зацепить их на openvpn-сервер.
Им придет маршрут, они в реальный интернет будут ходить через свой роутер, а в RDP - через openvpn-линк.
2. Bedazzled 19.09.16 13:37 Сейчас в теме
если не ошибаюсь то вам нужно маркировать трафик.

ставте openvpn server туда где стоит Windows Server 2003 R2 SP2. , а роутеры используйте как клиенты.
Очень странная реализация у вас, почему так? там где win2003 нету статики?
3. Shevon 19.09.16 21:17 Сейчас в теме
если не ошибаюсь то вам нужно маркировать трафик.


Спасибо! Но я не понимаю, что значит "маркировать".

Иными словами, с помощью сервиса определения ip-адреса мне нужно получить wan-ip роутера, при этом своего для каждого пользователя.
5. Shevon 19.09.16 23:34 Сейчас в теме
Fox-trot, написал в привате.
7. Shevon 20.09.16 07:01 Сейчас в теме
и вашему win2003 выдают адрес в одном том же логическом сегменте сети


Обижаете... В разных конечно....

Прописать в конфиге сервера openvpn PUSH-ROUTE "10.55.0.0/24"


Прописано подобное в конфигах роутера.

stvorl, Спасибо за совет!
Но, мне не важно по какому пути пойдет клиентский комп в интернет. Мне важно по какому пути пойдет в данный момент cервер с Win 2003.
8. stvorl 889 20.09.16 13:00 Сейчас в теме
(7) Shevon,

По идее, у вас даже с такой витиеватой топологией все должно работать, если подсети разведены.

Но, собственно, вы не изложили проблему. В смысле - нигде не сказали что конкретно не работает.
Может быть все и так хорошо, или все-таки можете привести конкретный пример с компьютерами, пингами, адресами и т.п?
9. Shevon 20.09.16 14:09 Сейчас в теме
stvorl,

Имеем следующее:
Состояние подключений при двух подключениях VPN:
Состояние сетевых подкючений

Таблица маршрутов при этом выглядит следующими образом:
Таблица маршрутов

Допустим, подключение "Poltava" создал "Пользователь 1", подключение "sphera" - "Пользователь 2". Эти оба пользователя одновременно работают в своих терминальных сессиях.

Если протрассировать, например гугловкий DNS-сервер (в данном случае неважно что).
Получится следующая картина (при двух подключенных в RDP пользователях):
Трассировка


Так вот хотелось, чтобы для пользователя "Пользователь 1", который при входе подымает подключение "sphera"
вместо


было

так


не зависимо от того, поднято ли в данный момент подключение "Poltava" пользователем "Пользователь 2".
10. stvorl 889 20.09.16 17:02 Сейчас в теме
(9) Shevon,

Вот.
Наконец то понятно что это. Зачем нужно, кажется понятно тоже.

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

Боюсь, под win2003 вы это так не решите.

Поставьте гипервизор (например linux+xen, или hyper-v), разведите пользователей по виртуалкам с виндовс 7 или 8, поставьте им туда тот софт. Каждая виртуалка будет устанавливать свое openvpn-соединение и иметь только один основной шлюз. Лицензий правда потребуется много.

Если есть возможность в вашем софте прописать под каждым юзером прокси-серверы, то можете оставить свой вариант с единым win2003. Но тогда придется настроить отдельный комп на linux, там поставить хитрый прокси-сервер (ну или группу виртуальных прокси под гипервизором), который будет принимать соединения на разные порты, и с каждого порта заворачивать через свой openvpn-шлюз. Под linux это решабельно.
Серверу win2003 доступ в инет придется запретить, чтобы не было прямого "просачивания" в обход прокси.
Прокси - HTTP(s), SOCKS, если позволяет софт, или можно попытаться каждый экземпляр вашего софта "соксифицировать" специальным соксификатором. Сорри за каламбур, погуглите термин.
11. Shevon 21.09.16 16:32 Сейчас в теме
stvorl,

Спасибо! Но пусть, наверное, в этой чудо-программе с рабочих станций работают. Такого умного прокси что-то я не нахожу, а подымать с десяток виртуальных машин что-то не хочется, да и железо не позволяет.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии



Ведущий программист 1С
Москва
зарплата от 150 000 руб. до 180 000 руб.
Полный день

Руководитель проектов 1С
Москва
Полный день

Консультант-аналитик 1С: ЗУП
Санкт-Петербург
Полный день