Страница 1 из 1

Прошу помощи с OpenVPN

Добавлено: 2012-08-24 17:36:32
Slik
Доброго времени суток.
Возникла сложность с OpenVPN

Дано:
Первый сервер, к нему подключаются клиенты по OpenVPN, подключение проходит нормально, все работает. Далее необходимо чтобы клиенты уходили с tun0 в tun1, для этого я поднял ipnat

Код: Выделить всё

ipnat -l
List of active MAP/Redirect filters:
map tun1 20.20.200.0/24 -> 10.10.200.2/32 proxy port ftp ftp/tcp
map tun1 20.20.200.0/24 -> 10.10.200.2/32

Код: Выделить всё

tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
        options=80000<LINKSTATE>
        inet 20.20.200.1 --> 20.20.200.2 netmask 0xffffffff
        Opened by PID 946
tun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
        options=80000<LINKSTATE>
        inet 10.10.200.2 --> 10.10.200.1 netmask 0xffffffff
        Opened by PID 939
Так же на первом сервере добавил руками маршрут

Код: Выделить всё

route add -net 10.10.100.0/24 -interface tun1

Второй сервер имеет следующие настройки

Код: Выделить всё

tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
        options=80000<LINKSTATE>
        inet6 fe80::216:3cff:fe9c:9bc7%tun0 prefixlen 64 scopeid 0x4
        inet 10.10.200.1 --> 10.10.200.2 netmask 0xffffffff
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
        Opened by PID 4926

Код: Выделить всё

ipnat -l
List of active MAP/Redirect filters:
map xn0 10.10.200.0/24 -> INET proxy port ftp ftp/tcp
map xn0 10.10.200.0/24 -> INET
С клиентской машины делаю пинг на шлюз второго сервера, он не проходит :(
В общем дальше первого шлюза траффик не идет. Помогите разобраться где косяк О_о

Re: Прошу помощи с OpenVPN

Добавлено: 2012-08-25 1:48:09
mak_v_
моя твоя непонимать.... клиенты уходили....нат зачем-то.....
1) топология, адресация, физика
2) что работает, что нет

Re: Прошу помощи с OpenVPN

Добавлено: 2012-08-25 1:56:13
Slik
Ок, попробую разложить по полочкам.

Клиент подключается на первый сервер, его сетка

Код: Выделить всё

tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
        options=80000<LINKSTATE>
        inet 20.20.200.1 --> 20.20.200.2 netmask 0xffffffff
Это серверая часть, так же на этом сервере поднять Опенвпн клиент со следующей сетью

Код: Выделить всё

tun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
        options=80000<LINKSTATE>
        inet 10.10.200.2 --> 10.10.200.1 netmask 0xffffffff
        Opened by PID 25420
Далее идет второй сервер с серверной частью и имеет следующий конфиг на интерфейсе.

Код: Выделить всё

tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
        options=80000<LINKSTATE>
        inet6 fe80::216:3cff:fe9c:9bc7%tun0 prefixlen 64 scopeid 0x4
        inet 10.10.200.1 --> 10.10.200.2 netmask 0xffffffff
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
        Opened by PID 30203
Необходимо чтобы клиенты подключались на первый сервер и выходили в интернет через второй.
В данный момент траффик дальше первого гейта впн не проходит.
Как то так.

Re: Прошу помощи с OpenVPN

Добавлено: 2012-08-25 9:35:59
mak_v_
Это вопрос маршрутизации.

Re: Прошу помощи с OpenVPN

Добавлено: 2012-08-25 10:03:21
Slik
Это я понимаю, вот тут я и запутался (((
Что и куда завернуть чтобы траффик пошел так как мне необходимо ?

Re: Прошу помощи с OpenVPN

Добавлено: 2012-08-25 12:09:30
mak_v_
Ну раз понимаете ......то трафик от клиентов видимо лезет в дефаулт....а вам надо "навернуть"......и вы думаете что после ната на интерфейсе, куда этот самый трафик не попадает, он все же додумается и "повернет" вспять?

Re: Прошу помощи с OpenVPN

Добавлено: 2012-08-25 13:33:47
Slik
Вот таблица маршрутизации
Клиент

Код: Выделить всё

netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            20.20.200.5        UGS         0       81   tun0
IP Server/32      192.168.0.1        UGS         0      114    em0
10.10.200.0/24     20.20.200.5        UGS         0       15   tun0
20.20.200.1/32     20.20.200.5        UGS         0        0   tun0
20.20.200.5        link#6             UH          0        0   tun0
20.20.200.6        link#6             UHS         0        0    lo0
127.0.0.1          link#5             UH          0     1714    lo0
192.168.0.0/24     link#2             U           0     3363    em0
192.168.0.20       link#2             UHS         0       12    lo0
Первый сервер на который идет подключение по опенвпн

Код: Выделить всё

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            GW Server         UGS         0    10904    re0
Network/27      link#2             U           0        0    re0
IP Server         link#2             UHS         0        0    lo0
10.10.200.0/24     20.20.200.2        UGS         0        0   tun0
10.10.200.1        link#7             UH          0       92   tun1
10.10.200.2        link#7             UHS         0        0    lo0
20.20.200.0/30     20.20.200.2        UGS         0        0   tun0 =>
20.20.200.0/24     20.20.200.2        UGS         0       64   tun0
20.20.200.1        link#6             UHS         0        0    lo0
20.20.200.2        link#6             UH          0        0   tun0
127.0.0.1          link#5             UH          0     1991    lo0
Как видно, запросы на второй сервер есть, и трасса проходит, но как завернуть туда весь траффик пока не придумал, так как если на втором сервере я включаю опцию

Код: Выделить всё

push "redirect-gateway"
то на первом сервере меняется дефол шлюз, и связь с сервером теряется.

Re: Прошу помощи с OpenVPN

Добавлено: 2012-08-25 14:22:53
mak_v_
Добавить на первом сервере статический маршрут ко второму и использовать redirect-gateway

Re: Прошу помощи с OpenVPN

Добавлено: 2012-08-25 14:49:32
Slik
mak_v_ писал(а):Добавить на первом сервере статический маршрут ко второму и использовать redirect-gateway
Это делал, не помогает. Так же отваливается родной шлюз, так как опция redirect-gateway заменяет его, и клиенты не могут подключиться к первому серверу.
Если зайти на первый сервер по ип ктороый присвоил второй сервер и с него пустить трассу в мир, она идет, работает все через второй сервер, но как его сделать чтобы не отваливался основной шлюз.

Re: Прошу помощи с OpenVPN

Добавлено: 2012-08-25 15:04:05
mak_v_
"родной шлюз"
"отваливается основной шлюз"
"redirect-gateway заменяет его"
"чтобы клиенты подключались на первый сервер и выходили в интернет через второй"

Дефолт нужен для клиентов в 2, для самого сервера в 1, чтоб ещё и маршрутилось все .... Сделайте свой выбор!

Re: Прошу помощи с OpenVPN

Добавлено: 2012-08-25 15:43:58
Slik
Вот более наглядно накидал схему (плохой из меня художник)
ИзображениеИзображение

Теперь по подробней описание данной схемы.
Клиенты подключаются на первый сервер и получают ИП из сети 20.20.200.0/24, это tun0, на сервере поднят и сервер опенвпн, который принимает клиентов и опенвпн клиент с сетью 10.10.200.0.24.
После подключения клиент видит второй сервер

Код: Выделить всё

traceroute 10.10.200.1
traceroute to 10.10.200.1 (10.10.200.1), 64 hops max, 40 byte packets
 1  20.20.200.1 (20.20.200.1)  37.756 ms  36.584 ms  36.692 ms
 2  10.10.200.1 (10.10.200.1)  53.130 ms  53.302 ms  69.932 ms
Но если идти в инет, то он пойдет через сервер 1, а необходимо чтобы выходил через сервер 2.

Re: Прошу помощи с OpenVPN

Добавлено: 2012-08-25 21:57:19
mak_v_
исходя из схемы достаточно достаточно, не забыв стстические маршруты, весь трафик промаршрутизаровать через "тот конец опенвпн"

Re: Прошу помощи с OpenVPN

Добавлено: 2012-08-27 12:35:25
Slik
Решение было простым :)
Сделал через ipfw, fwd 10.10.200.1 ip from 20.20.200.0/24 to any

Re: Прошу помощи с OpenVPN

Добавлено: 2012-09-03 22:51:06
Slik
Опять возвращаемся к этой теме.
Впн как было задумано работает, но вот скорость, ужасная :( до 16кб поднимается, на серверах 100мбит, проверял гоняя файлы на прямую.
Если выходить в интернет только через один сервер скорость порядка 25-40 мбит, если через 2 сервера получаю 16 кб.
Куда рыть дальше ?

Re: Прошу помощи с OpenVPN

Добавлено: 2012-09-03 23:16:25
Slik
Только что прогнал тесты iperf

Это на сервере

Код: Выделить всё

iperf -s -p 1111
------------------------------------------------------------
Server listening on TCP port 1111
TCP window size: 64.0 KByte (default)
------------------------------------------------------------

[  4] local 10.10.200.2 port 1111 connected with 10.10.200.1 port 28951
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-180.0 sec   571 MBytes  26.6 Mbits/sec
Это со стороны клиента

Код: Выделить всё

iperf -c 10.10.200.2 --format k -m -p 1111 -t 180
------------------------------------------------------------
Client connecting to 10.10.200.2, TCP port 1111
TCP window size: 33.2 KByte (default)
------------------------------------------------------------
[  3] local 10.10.200.1 port 28951 connected with 10.10.200.2 port 1111
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-180.0 sec  584448 KBytes  26595 Kbits/sec
[  3] MSS size 1359 bytes (MTU 1399 bytes, unknown interface)
Сеть между шлюзами на FreeBSD по впн, как видно все тянет на ура.