Всем привет. Вдруг кто знает, как реализовать такую вот задачку.
1. Есть сервер Б с настроенным VPN-сервером (PPP). Там ничего трогать не надо.
2. Есть сервер А, у которого два IP адреса, скажем IP1 и IP2 (оба
привязаны в interfaces, оба работают)
Теперь я хочу поднять на сервере А VPN клиент и подсоединиться
к серверу Б, но вот таким образом:
- если я с сервера А хожу в интернет, используя IP1, хочу чтобы этот VPN никак себя не проявлял.
- если я с сервера А буду ходить в инет используя IP2 (например опциями bind-ip в lynx), то хочу ходить через этот поднятый VPN и соответственно через сервер Б.
Вот такая хитрая задачка.
ОС на обоих серверах - Debian
Подскажите если знаете. Спасибо :)
PS Кто будет объяснять вдруг - если можно "разжевывая", я и на сервере Б едва-едва vpn поднял, не силен в администрировании пока...
Хитрая задача с VPN-ами
Ну тогда 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
М... смотри как я хочу чтобы было на сервере А.
Набираю
wget --bind-address IP1 http://google.com // лезет к гуглю с IP1
wget --bind-address IP2 http://google.com // лезет к гуглю с СЕРВЕРА Б (НЕ с IP2, а через VPN)
А vpn клиент бы вообще лучше всего один раз поднять и сделать авто-реконнект.
Хошь инет через eth1
route del default
route add default eth1
Если через vpn
route del default
route add default ppp0
Ну ок, спасибо за совет.
Если не получится в точности так как я хочу, буду делать как ты показал.
Тут сам смысл задачи как раз в том, что часть ПО работает с одного IP часть со второго (одновременно), и надо чтобы та часть которая со второго ходила через VPN.
Ну да ладно, я видно даже объяснить не могу чего хочу.
Спасибо за помощь....
ну так это напрямую зависит от самого ПО... если у него возможность указания какой интерфейс использовать, то пожалуйста ... если же у ПО такой возможности нет, то только default route....
да конечно есть :) иначе какбэ задача вообще решения не имеет
Вот собственно на примере с wget и вопрос: как, какие цепочки править чтобы получился такой эффект как описано? как "повесить" vpn на ОДИН из интерфейсов?
Ведь ПО не знает IP ppp интерфейса (там вообще динамически может быть при каждом переподключении), оно только IP2 знает!
Ведь ПО не знает IP ppp интерфейса (там вообще динамически может быть при каждом переподключении), оно только IP2 знает!так вы же сами указываете ему адрес ...
Тут сам смысл задачи как раз в том, что часть ПО работает с одного IP часть со второго (одновременно), и надо чтобы та часть которая со второго ходила через VPN.
Роутинг?
не, смотрите что происходит :)
Счас на сервере есть фактически 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?
вот :)
[quote=Arkebuza]
Тут сам смысл задачи как раз в том, что часть ПО работает с одного IP часть со второго (одновременно), и надо чтобы та часть которая со второго ходила через VPN.
Роутинг?[/quote]
Нет, просто надо часть операций проводить с определенного IP, а там уж больно неохота хост грузить, только VPN-сервер поднят и все.
не, смотрите что происходит :)
Счас на сервере есть фактически 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 ? или я чего то не до понимаю??
Дык он каждый раз разный при реконнекте :)
А в настройках софта хотелось бы раз прописать IP2 (который постоянный), настроить авто-реконнект VPN и забыть.
Да, кстати, если при поднятии PPP туннеля можно как-то точно указать IP3 (чтобы потом действительно писать нечто вроде wget --bind-address IP3 google.com ) - это тоже отличное решение вопроса :)
Вопрос точнее можно маркировкой можно маршрутизацией. Выходов море. А так всё как то мутно.