LINUX.ORG.RU
ФорумAdmin

Помогите с настройкой маршрута в дабл VPN


0

1

Здравствуйте коллеги! Столкнулся с проблемой маршрутизации трафика с интерфейса ppp0 на интерфейс ppp1. Задача вроде бы не сложная, но мучаюсь с ней уже неделю, голова уже просто кипит. Суть проблемы с маршрутизацией в роутере посередине, на котором запущен и сервер и клиент. ifconfig такой:

ppp0      Link encap:Point-to-Point Protocol  
          inet addr:111.111.111.111  P-t-P:192.168.2.10  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1450  Metric:1
          RX packets:15 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:578 (578.0 B)  TX bytes:511 (511.0 B)
ppp1      Link encap:Point-to-Point Protocol  
          inet addr:192.168.2.1  P-t-P:222.222.222.222  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1450  Metric:1
          RX packets:7 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2571 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:100 (100.0 B)  TX bytes:1040328 (1015.9 KiB)

Когда я подключаюсь к нему, то поднимаестся интерфейс ppp0 и я получаю естественно внешний IP 111.111.111.111. Мне же нужно на выходе получить IP 222.222.222.222, т.е. пройти еще через ppp1. Основная идея была использовать iptable:

iptables -P FORWARD ACCEPT
iptables -t nat -A PREROUTING -i ppp0 -p gre -d 111.111.111.111 -j DNAT --to-destination 222.222.222.222
iptables -t nat -A PREROUTING -i ppp0 -p tcp --sport 1024:65535 -d 111.111.111.111 --dport 1723 -j DNAT --to-destination 222.222.222.222

Пытался протолкнуть через локальные адреса посредством route:

ip route add 192.168.2.10 via 192.168.2.1 ppp1

В итоге все одно, мой IP 111.111.111.111 Если кто знает в чем проблема, пожалуйста помогите.

для форвардинга белых адресов через серые сети NAT ненужен.

Важно, чтобы маршруты были у всех правильные и после подъема vpn-интерфейса маршрут до vpn-сервера не попадал в этот созданный vpn-интерфейс.

Я не совсем понял конфигурацию. У тебя один vpn ходит через другой vpn или это последовательность vpn ?

адрес vpn-серверов нужно как-то обозначить.

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

Кратко схема:

компьютер---роутер(IP 55.55.55.55)--->>VPN1(IP 111.111.111.111)--->>VPN2(IP 222.222.222.222)--->>интернет

На VPN1 запущен сервер к которому подключается компьютер (ppp0) и клиент подключенный к VPN2 (ppp1). По сути своей это мост. Один интересный момент. У роутера VPN1 локальная сеть имеет диапазон 192.168.2.100-200 и когда я их(роутер с VPN1) подключаю как клиент к VPN2 поднимается ppp1 и они все четко получают VPN2 и отлично его используют. Я же не могу в сервере VPN1 назначить такой диапазон, поэтому приходится для него прописывать 192.168.2.10-20 ибо перекрывается диапазон локалки и интерфейса ppp0. Поэтому именно для меня и нужно прописать маршрут ppp0--->>ppp1. Если бы я получал серый IP из диапазона 192.168.2.100-200 мне бы прописывать дополнительно маршрут не было бы необходимости, так как я сразу бы попадал на шлюз 192.168.2.1 роутера VPN1.

selfi95
() автор топика
Ответ на: комментарий от dhameoelin

Касательно FORWARD логичнее всего было бы добавить на мой взгляд:

iptables -I FORWARD -i ppp0 -o ppp1 -j ACCEPT
iptables -I FORWARD -i ppp1 -o ppp1 -j ACCEPT

Но все равно мой IP VPN1.

Что еще попробовать ума не приложу.

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

если клиенту vpn/ppp выдается адрес из локальной сети подключенной к vpn-серверу, то на сервере должно быть включено proxy-arp.

vel ★★★★★
()
Ответ на: комментарий от selfi95

VPN сервер в данном случае не мост, а маршрутизатор.

Известно ли vpn2, что ip 111.111.111.111 нужно маршрутизировать через подключенного клиента ?

разрешен ли форвардинг (net.ipv4.ip_forward=1) на vpn1-сервере

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

Хм....извиняюсь, но не совсем понятна мысль, т.к в общем имеется два клиента и два сервера. Клиент который запущен на VPN1 в любом случае получает серый IP из диапазона который назначен уже на сервере VPN2. Таже история на стороне компьютер--->>VPN1. Локалку для eth0 раздает DHCP из установленного диапазона, а локалка pptp сервера своя, со своим диапазоном. Или вы имеете ввиду, что если я включу proxyarp, то смогу назначить локалку сервера из диапазона локалки DHCP ???

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

Вроде того. По крайней мере 5 лет назад это работало.

dhameoelin ★★★★★
()
Ответ на: комментарий от selfi95

Известно ли vpn2, что ip 111.111.111.111 нужно маршрутизировать через подключенного клиента ?

белый ip 111.111.111.111 выдает vpn-сервер компу через vpn1 ?

а vpn-сервер который поддерживает vpn2 знает о том, что ip 111.111.111.111 должен маршрутизироваться через vpn2 ( есть такой маршрут? )

vel ★★★★★
()
Ответ на: комментарий от vel
белый ip 111.111.111.111 выдает vpn-сервер компу через vpn1 ?

Да, выдает. Я пишу об этом почти через каждое сообщение. И это есть проблема. Мне нужен 222.222.222.222

а vpn-сервер который поддерживает vpn2 знает о том, что ip 111.111.111.111 должен маршрутизироваться через vpn2 ( есть такой маршрут? )
Проблему нужно решать на VPN1. Именно на нем должна быть осуществлена маршрутизация. Клиенты из локалки роутера с VPN1 получают и так IP 222.222.222.222 VPN2. От того, что VPN2 будет знать что ip 111.111.111.111 должен маршрутизироваться через vpn2, интерфейсу ppp0 VPN1 который связан с компом не будет ни холодно ни жарко. У VPN1 и VPN2 общим является только ppp1, в частности на VPN2:
ppp1      Link encap:Point-to-Point Protocol  
          inet addr:222.222.222.222  P-t-P:192.168.1.10  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1450  Metric:1
          RX packets:3 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1572 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
IP 111.111.111.111 не светится ни на одном из интерфейсов VPN2. Даже если бы и была необходимость, то некак прикручивать подобное правило. Здесь тунели точка-точка.

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

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

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

Так проблемы нет как таковой, если ты понимаешь как осуществляется маршрутизация. число vpn-ов тут непричем.

Если твой vpn1-сервер (который клиент vpn2) раздает адреса клиентам через vpn1 которые не маршрутизируются через него, то он их должен NAT-ить через SNAT или MASQUERADE в случае динамического адреса на vpn2.

Вопрос простой - какие маршруты (кроме прямого) устанавливаются на vpn2-сервере через vpn2-link ?

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