LinuxForum.Fans
Тема

Хитрая задача с VPN-ами

Автор: Arkebuza 14 сообщений 3081 просмотров
#103535

Всем привет. Вдруг кто знает, как реализовать такую вот задачку.


1. Есть сервер Б с настроенным VPN-сервером (PPP). Там ничего трогать не надо.
2. Есть сервер А, у которого два IP адреса, скажем IP1 и IP2 (оба
привязаны в interfaces, оба работают)

Теперь я хочу поднять на сервере А VPN клиент и подсоединиться
к серверу Б, но вот таким образом:
- если я с сервера А хожу в интернет, используя IP1, хочу чтобы этот VPN никак себя не проявлял.
- если я с сервера А буду ходить в инет используя IP2 (например опциями bind-ip в lynx), то хочу ходить через этот поднятый VPN и соответственно через сервер Б.

Вот такая хитрая задачка.
ОС на обоих серверах - Debian
Подскажите если знаете. Спасибо :)

PS Кто будет объяснять вдруг - если можно "разжевывая", я и на сервере Б едва-едва vpn поднял, не силен в администрировании пока...

#103544

Ну тогда vpn будет тоже подключаться через eth 2? при поднятии впн default становиться ppp0 и весь инет будет бежать через vpn не трогая eth 1.
Более детально обрисуй. Если надо чтоб работало оба интерфейса на сервере A тогда будим думать по другому.

Как вариант на сервере А.
eth0
eth1
ppp0 -> eth1 (ppp0 default gateway).
Если бушь делать ручками это будет выглядеть так.
route add --host vpn(ip) gateway шлюз

Хошь инет через eth1
route del default
route add default eth1
Если через vpn
route del default
route add default ppp0

А если так
pon vpn тогда
этого не надо
route del default
route add default ppp0

#103548

М... смотри как я хочу чтобы было на сервере А.

Набираю
wget --bind-address IP1 http://google.com // лезет к гуглю с IP1
wget --bind-address IP2 http://google.com // лезет к гуглю с СЕРВЕРА Б (НЕ с IP2, а через VPN)

А vpn клиент бы вообще лучше всего один раз поднять и сделать авто-реконнект.

#103550

Хошь инет через eth1
route del default
route add default eth1
Если через vpn
route del default
route add default ppp0

#103553

Ну ок, спасибо за совет.
Если не получится в точности так как я хочу, буду делать как ты показал.

Тут сам смысл задачи как раз в том, что часть ПО работает с одного IP часть со второго (одновременно), и надо чтобы та часть которая со второго ходила через VPN.

Ну да ладно, я видно даже объяснить не могу чего хочу.
Спасибо за помощь....

#103554

ну так это напрямую зависит от самого ПО... если у него возможность указания какой интерфейс использовать, то пожалуйста ... если же у ПО такой возможности нет, то только default route....

#103571

да конечно есть :) иначе какбэ задача вообще решения не имеет

Вот собственно на примере с wget и вопрос: как, какие цепочки править чтобы получился такой эффект как описано? как "повесить" vpn на ОДИН из интерфейсов?

Ведь ПО не знает IP ppp интерфейса (там вообще динамически может быть при каждом переподключении), оно только IP2 знает!

#103573

Ведь ПО не знает IP ppp интерфейса (там вообще динамически может быть при каждом переподключении), оно только IP2 знает!
так вы же сами указываете ему адрес ...
#103580
Arkebuza написал:

Тут сам смысл задачи как раз в том, что часть ПО работает с одного IP часть со второго (одновременно), и надо чтобы та часть которая со второго ходила через VPN.

Роутинг?

#103582

не, смотрите что происходит :)

Счас на сервере есть фактически 3 IP

IP1, IP2 - внешние IP, которые были и до поднятия VPN

IP3 - нечто, что раздал мне сервер VPN
Счас этот IP3 выглядит так (ifconfig -a):
ppp0 Link encap:Point-to-Point Protocol
inet addr:192.168.10.200 P-t-P:192.168.10.1 Mask:255.255.255.255

Так вот мне надо, чтобы если я напишу
wget --bind-address IP2 google.com
оно лезло в гугль, используя НЕ IP2, а соединение ppp0

собственно как завернуть ВСЕ пакеты с IP2 на ppp0?
вот :)

#103583
Kettler написал:
[quote=Arkebuza]
Тут сам смысл задачи как раз в том, что часть ПО работает с одного IP часть со второго (одновременно), и надо чтобы та часть которая со второго ходила через VPN.

Роутинг?[/quote]

Нет, просто надо часть операций проводить с определенного IP, а там уж больно неохота хост грузить, только VPN-сервер поднят и все.

#103586
Arkebuza написал:
не, смотрите что происходит :)

Счас на сервере есть фактически 3 IP

IP1, IP2 - внешние IP, которые были и до поднятия VPN

IP3 - нечто, что раздал мне сервер VPN
Счас этот IP3 выглядит так (ifconfig -a):
ppp0 Link encap:Point-to-Point Protocol
inet addr:192.168.10.200 P-t-P:192.168.10.1 Mask:255.255.255.255

Так вот мне надо, чтобы если я напишу
wget --bind-address IP2 google.com
оно лезло в гугль, используя НЕ IP2, а соединение ppp0

собственно как завернуть ВСЕ пакеты с IP2 на ppp0?
вот :)

так а все же ... что мешает написать wget --bind-address IP3 google.com ? или я чего то не до понимаю??

#103587

Дык он каждый раз разный при реконнекте :)
А в настройках софта хотелось бы раз прописать IP2 (который постоянный), настроить авто-реконнект VPN и забыть.


Да, кстати, если при поднятии PPP туннеля можно как-то точно указать IP3 (чтобы потом действительно писать нечто вроде wget --bind-address IP3 google.com ) - это тоже отличное решение вопроса :)

#103783

Вопрос точнее можно маркировкой можно маршрутизацией. Выходов море. А так всё как то мутно.

Войдите или зарегистрируйтесь, чтобы ответить.