The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"OpenVPN + NAT во внутреннюю сеть"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Маршрутизация, NAT / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"OpenVPN + NAT во внутреннюю сеть"  +/
Сообщение от madxim (ok) on 03-Июл-12, 18:48 
Доброго времени суток.
Имеется шлюз (FreeBSD8.2,pf)
Внутренний интерфейс fxp0 смотрит в сеть 192.168.0.0/24
Посредством OpenVPN проброшены две сетки из филиалов (Routed IP tunnel)
интерфейсы tun0, tun1
192.168.10.0/24
192.168.11.0/24
Через IPSec сделан туннель на внутреннюю сеть партнёра.(режим туннеля)
10.30.0.0/16 <>192.168.0.0/24
Для сети 192.168.0.0/24 всё работает, для филиалов нет
Проблема в том что больше одного класса "С" с той стороны не дают.
Задача такая, пропускать через NAT обращения из филиалов к сети партнёра,
как это сделать на этом же шлюзе ума не приложу.
Единственное что приходит в голову это терминировать тоннели ОпенВПНа
на машине внутри сетки и там же НАТить.
Возможно ли решение без этого изврата.
Заранее спасибо.
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "OpenVPN + NAT во внутреннюю сеть"  +/
Сообщение от dima (??) on 04-Июл-12, 03:21 
натить 192.168.10.0/24 в например 192.168.0.10 при запросе на 10-ю сеть  на интерфейсе tun0.

маршруты в филиалах не забыть прописать.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "OpenVPN + NAT во внутреннюю сеть"  +/
Сообщение от madxim (ok) on 04-Июл-12, 13:42 
> натить 192.168.10.0/24 в например 192.168.0.10 при запросе на 10-ю сеть  на
> интерфейсе tun0.
> маршруты в филиалах не забыть прописать.

Это не работает.

pf.conf
.....
######### NAT RULES ########
nat pass log on tun0 inet from $lan2 to $lant2 -> 192.168.0.2
nat pass log on tun1 inet from $lan3 to $lant2 -> 192.168.0.2
.....

($lan2,$lan3 - серые сетки филиалов за OpenVPN, $lant2 - серая сетка партнёра за IPSec)

Маршрут для филиалов

openvpn.conf
.....
push "route 10.30.0.0 255.255.0.0"
.....

смотрю лог pf, правило NAT не срабатывает.
traceroute с клиентской машины в филиале, пакет ломится на defaultrouter шлюза и уходит в мир искать счастья.

На всякий случай ipsec.conf

flush;
spdflush;
spdadd 192.168.0.0/24 10.30.0.0/16 any -P out ipsec
  esp/tunnel/xxx.xxx.xxx.xxx-yyy.yyy.yyy.yyy/require;
spdadd 10.30.0.0/16 192.168.0.0/24 any -P in ipsec
  esp/tunnel/yyy.yyy.yyy.yyy-xxx.xxx.xxx.xxx/require;

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "OpenVPN + NAT во внутреннюю сеть"  +/
Сообщение от reader (ok) on 04-Июл-12, 14:02 
>> натить 192.168.10.0/24 в например 192.168.0.10 при запросе на 10-ю сеть  на
>> интерфейсе tun0.
>> маршруты в филиалах не забыть прописать.
> Это не работает.
> pf.conf
> .....
> ######### NAT RULES ########
> nat pass log on tun0 inet from $lan2 to $lant2 -> 192.168.0.2
> nat pass log on tun1 inet from $lan3 to $lant2 -> 192.168.0.2

nat для входящих пакетов, интересно сработает ли

>[оверквотинг удален]
> ($lan2,$lan3 - серые сетки филиалов за OpenVPN, $lant2 - серая сетка партнёра
> за IPSec)
> Маршрут для филиалов
> openvpn.conf
> .....
> push "route 10.30.0.0 255.255.0.0"
> .....
> смотрю лог pf, правило NAT не срабатывает.
> traceroute с клиентской машины в филиале, пакет ломится на defaultrouter шлюза и
> уходит в мир искать счастья.

traceroute  для кого то из 10.30.0.0/16? если да смотрите таблицы маршрутизации.
> На всякий случай ipsec.conf
> flush;
> spdflush;
> spdadd 192.168.0.0/24 10.30.0.0/16 any -P out ipsec
>   esp/tunnel/xxx.xxx.xxx.xxx-yyy.yyy.yyy.yyy/require;
> spdadd 10.30.0.0/16 192.168.0.0/24 any -P in ipsec
>   esp/tunnel/yyy.yyy.yyy.yyy-xxx.xxx.xxx.xxx/require;

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "OpenVPN + NAT во внутреннюю сеть"  +/
Сообщение от madxim (ok) on 04-Июл-12, 14:28 
Вот здесь если можно подробнее :)
Сразу оговорюсь я не большой спец в этих вопросах :( Учусь понемногу

> nat для входящих пакетов, интересно сработает ли

Я сразу подозревал что NAT на входящих не сработает, но попытка не пытка.

> traceroute  для кого то из 10.30.0.0/16? если да смотрите таблицы маршрутизации.

По поводу маршрутизации есть несколько вопросов.
Во первых маршрута на 10.30.0.0/16 на шлюзе нет,IPSec работает напрямую, а не поверх gif<>gif тоннеля, здесь я не могу ничего изменить ибо правила игры задаются с "той" стороны.
И я просто не могу сообразить к какому GW цеплять этот маршрут.
Отсюда второй вопрос каким образом IPSec цепляет пакеты? На каком этапе?
Для сетки офиса (той что прописана в полиси IPSec)всё работает нормально.
Пакеты приходят на внутренний интерфейс 192.168.0.1 который является дефолт гейтвей для локалки и дальше улетают в сеть партнёра. Проходят пинги, доступны хосты на той стороне.
Правда traceroute выдаёт 2 хопа на адрес 192.168.0.1 ... это нормально?

C:\Users\max>tracert 10.30.0.68
Tracing route to 10.30.0.68 over a maximum of 30 hops
  1     1 ms     1 ms    <1 ms  192.168.0.1
  2     2 ms     2 ms     2 ms  192.168.0.1
  3     2 ms     2 ms     2 ms  10.30.0.68
Trace complete.

Вообщем я уже вконец запутался как разрулить эту ситуацию.
Выходит чтобы всё заработало пакеты с филиалов должны приходить на внутренний интерфейс уже заNATиными, а как это сделать идей никаких, кроме той что я уже описал вначале.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "OpenVPN + NAT во внутреннюю сеть"  +/
Сообщение от reader (ok) on 04-Июл-12, 14:54 
> Вот здесь если можно подробнее :)
> Сразу оговорюсь я не большой спец в этих вопросах :( Учусь понемногу
>> nat для входящих пакетов, интересно сработает ли
> Я сразу подозревал что NAT на входящих не сработает, но попытка не
> пытка.

а я вот и незнаю отработает ли, надеялся вы расскажите.
и тут пока не видно не сработает или пакеты из филиала не прошли

>> traceroute  для кого то из 10.30.0.0/16? если да смотрите таблицы маршрутизации.
>  По поводу маршрутизации есть несколько вопросов.
> Во первых маршрута на 10.30.0.0/16 на шлюзе нет,IPSec работает напрямую, а не
> поверх gif<>gif тоннеля, здесь я не могу ничего изменить ибо правила
> игры задаются с "той" стороны.

я имел ввиду маршрут на шлюзе в филиале

>[оверквотинг удален]
>  1 ms    <1 ms  192.168.0.1
>   2     2 ms    
>  2 ms     2 ms  192.168.0.1
>   3     2 ms    
>  2 ms     2 ms  10.30.0.68
> Trace complete.
> Вообщем я уже вконец запутался как разрулить эту ситуацию.
> Выходит чтобы всё заработало пакеты с филиалов должны приходить на внутренний интерфейс
> уже заNATиными, а как это сделать идей никаких, кроме той что
> я уже описал вначале.

для начала определитесь приходят ли пакеты из филиала адресованные в 10.30.0.0/16 через tun

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "OpenVPN + NAT во внутреннюю сеть"  +/
Сообщение от madxim (ok) on 04-Июл-12, 15:09 
>[оверквотинг удален]
>>  2 ms     2 ms  192.168.0.1
>>   3     2 ms
>>  2 ms     2 ms  10.30.0.68
>> Trace complete.
>> Вообщем я уже вконец запутался как разрулить эту ситуацию.
>> Выходит чтобы всё заработало пакеты с филиалов должны приходить на внутренний интерфейс
>> уже заNATиными, а как это сделать идей никаких, кроме той что
>> я уже описал вначале.
> для начала определитесь приходят ли пакеты из филиала адресованные в 10.30.0.0/16 через
> tun

Ну с натом определились, не работает :)

Забыл указать что все филиалы ходят в интернет через основной шлюз, тонелями их локалки пробрасываются в локалку офиса, а уже здесь всё окончательно разруливается куда и кому можно ходить. Вся эта связка давно уже работает и не доставляет гемороев :)
Не доставляла до недавнего времени.

маршрут на шлюзе в филиале для локалки партнёра задаётся строкой в конфиге openvpn
push "route 10.30.0.0 255.255.0.0"
В таблице маршрутизации там он присутствует и пакеты предназначенные для сетки 10.30.0.0/16 в тоннель уходят, tcpdump их показывает на интерфейсе tun основного шлюза.
Задача состоит обработать их так чтоб они подходили под полиси IPSec.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "OpenVPN + NAT во внутреннюю сеть"  +/
Сообщение от madxim (ok) on 04-Июл-12, 15:19 
>>traceroute с клиентской машины в филиале, пакет ломится на defaultrouter шлюза и уходит в мир искать счастья

В этой строке имелось ввиду что пакет доходит до центрального шлюза и уже оттуда уходит на defaultrouter

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "OpenVPN + NAT во внутреннюю сеть"  +/
Сообщение от reader (ok) on 04-Июл-12, 16:14 
>[оверквотинг удален]
> их локалки пробрасываются в локалку офиса, а уже здесь всё окончательно
> разруливается куда и кому можно ходить. Вся эта связка давно уже
> работает и не доставляет гемороев :)
> Не доставляла до недавнего времени.
> маршрут на шлюзе в филиале для локалки партнёра задаётся строкой в конфиге
> openvpn
> push "route 10.30.0.0 255.255.0.0"
> В таблице маршрутизации там он присутствует и пакеты предназначенные для сетки 10.30.0.0/16
> в тоннель уходят, tcpdump их показывает на интерфейсе tun основного шлюза.
> Задача состоит обработать их так чтоб они подходили под полиси IPSec.

так как политики расписываются с обоих сторон IPSec и если партнер не хочет менять ничего у себя, то придется городить виртуалки/контейнеры или разбираться с netgraph, что бы все таки сделать nat

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

9. "OpenVPN + NAT во внутреннюю сеть"  +/
Сообщение от reader (ok) on 04-Июл-12, 16:20 
>[оверквотинг удален]
>> Не доставляла до недавнего времени.
>> маршрут на шлюзе в филиале для локалки партнёра задаётся строкой в конфиге
>> openvpn
>> push "route 10.30.0.0 255.255.0.0"
>> В таблице маршрутизации там он присутствует и пакеты предназначенные для сетки 10.30.0.0/16
>> в тоннель уходят, tcpdump их показывает на интерфейсе tun основного шлюза.
>> Задача состоит обработать их так чтоб они подходили под полиси IPSec.
> так как политики расписываются с обоих сторон IPSec и если партнер не
> хочет менять ничего у себя, то придется городить виртуалки/контейнеры или разбираться
> с netgraph, что бы все таки сделать nat

интересно ipfw справится ли

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "OpenVPN + NAT во внутреннюю сеть"  +/
Сообщение от madxim (ok) on 04-Июл-12, 16:32 
Партнёр ничего менять не будет, я уже начал присматриваться к netgraph, были и мысли на счёт виртуалок но не соображу с какой стороны подступиться и просветление не наступает :)
Если на пальцах, то чего необходимо достичь? Так сказать пинок в нужную сторону :)
Буду тогда пробовать.

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "OpenVPN + NAT во внутреннюю сеть"  +/
Сообщение от reader (ok) on 04-Июл-12, 16:53 
> Партнёр ничего менять не будет, я уже начал присматриваться к netgraph, были
> и мысли на счёт виртуалок но не соображу с какой стороны
> подступиться и просветление не наступает :)
> Если на пальцах, то чего необходимо достичь? Так сказать пинок в нужную
> сторону :)
> Буду тогда пробовать.

что бы пакет или пришел в какой то момент с адресом источника 192.168.0.0/24 (не используемого у вас), при этом сколько раз он будет ходит через этот шлюз дело десятое, главное что бы потом ответ обратно шел правильно, или изменить адрес источника как только пакет приходит на шлюз.

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "OpenVPN + NAT во внутреннюю сеть"  +/
Сообщение от madxim (ok) on 04-Июл-12, 17:43 
Спасибо за помощь, тема закрыта.
Списался с партнёрами, оказалось всё куда проще, доступ нужен только по http.
Перенастроил сквида "tcp_outgoing_adress 192.168.0.1" и проблема решилась.
Но задачка интересная, буду дальше ковырять, вдруг что то поменяется :)
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

13. "OpenVPN + NAT во внутреннюю сеть"  +/
Сообщение от dima (??) on 04-Июл-12, 21:39 
map tune0 192.168.10.0/24  -> 192.168.0.10/32
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

14. "OpenVPN + NAT во внутреннюю сеть"  +/
Сообщение от madxim (ok) on 05-Июл-12, 13:53 
> map tune0 192.168.10.0/24  -> 192.168.0.10/32

И IPnat  я тоже пробовал, не работает нат на входящих пакетах.

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

15. "OpenVPN + NAT во внутреннюю сеть"  +/
Сообщение от dima (??) on 06-Июл-12, 03:50 
а так поднять  ?


gifconfig_gif0="мой_внешний партнер_внешний"
ifconfig_gif0="inet 192.168.0.1 10.30.0.1 netmask 0xffffff00"

static_routes="net_10"
route_net_10="10.30.0.0/16 -interface gif0"

фряхе по-барабану что на той стороне нету gifa


map gif0 192.168.10.0/24 -> 192.168.0.1/32 portmap tcp/udp auto
map gif0 192.168.11.0/24 -> 192.168.0.1/32 portmap tcp/udp auto

она пакеты по идее натит, сует в тунель, а дальше их ipsec жмет

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

16. "OpenVPN + NAT во внутреннюю сеть"  +/
Сообщение от madxim (ok) on 06-Июл-12, 13:02 
> а так поднять  ?
> gifconfig_gif0="мой_внешний партнер_внешний"
> ifconfig_gif0="inet 192.168.0.1 10.30.0.1 netmask 0xffffff00"
> static_routes="net_10"
> route_net_10="10.30.0.0/16 -interface gif0"
> фряхе по-барабану что на той стороне нету gifa
> map gif0 192.168.10.0/24 -> 192.168.0.1/32 portmap tcp/udp auto
> map gif0 192.168.11.0/24 -> 192.168.0.1/32 portmap tcp/udp auto
> она пакеты по идее натит, сует в тунель, а дальше их ipsec
> жмет

Спасибо за идею.
Я как то зациклился что с той стороне Джуник, и IPSec без gif-ов поднят.
Обязательно попробую.

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру