The OpenNET Project / Index page

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

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

"клиент-сервер OpenVPN + маршрут между подсетями"  +/
Сообщение от Spookie (ok) on 28-Ноя-09, 23:16 
Конфигурация следующая. Есть сеть 192.168.0.0/24 в ней сервер 192.168.0.4 (OpenSUSE 11) с сервером опенвпн, который раздает адреса из сети 192.168.199.0/24

dev tun
port 5101
proto tcp
ca /etc/openvpn/ca.pem
cert /etc/openvpn/holding-serv.cert
key /etc/openvpn/holding-serv.key
tls-auth /etc/openvpn/ta.key
dh /etc/openvpn/dh1024.pem
tls-server
server 192.168.199.0 255.255.255.0
cipher DES-EDE3-CBC
push "route 192.168.0.0 255.255.255.0"
push "dhcp-option DNS 192.168.0.2"
push "dhcp-option WINS 192.168.0.2"
persist-key
persist-tun
fast-io
comp-lzo

Есть удаленная сеть 192.168.64.0/24, в ней гейтвей по умолчанию 192.168.64.1 (Windows XP) на нем клиент openVPN, подключенный к вышеупомянутому серверу, и получивший адрес 192.168.199.10

client
dev    tun
port    5101
proto    tcp
remote    xxx.xxx.xxx.xxx
ca    ca.pem
cert    xxxxxx.crt
key    xxxxxx.key
dh    dh1024.pem
tls-client
tls-auth    ta.key
cipher DES-EDE3-CBC
resolv-retry infinite
persist-key
persist-tun
ping 10
comp-lzo

Проблема следующая, хотелось бы иметь двустороннюю связь между 0й и 64й сетью... естественно я вижу с клиента опенвпна все что за сервером, но с сервера я вижу только 199ю сеть, и не получается пробросить маршрут до 64й.
Вот route -n на сервере:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.199.2   0.0.0.0         255.255.255.255 UH    0      0        0 tun1
192.168.199.0   192.168.199.2   255.255.255.0   UG    0      0        0 tun1
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth1
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth1

пытаюсь добавить маршрут:


route add -net 192.168.64.0/24 gw 192.168.199.10
SIOCADDRT: No such process

ip route add 192.168.64.0/24 via 192.168.199.10
RTNETLINK answers: No such process

Ошибка настолько общая что я понятия не имею как ее исправить - понимаю, что в таблице маршрутов должно быть что-то вроде
192.168.199.0   0.0.0.0   255.255.255.0   UG    0      0        0 tun1

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

Ответить | Правка | Cообщить модератору

Оглавление

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


1. "клиент-сервер OpenVPN + маршрут между подсетями"  +/
Сообщение от dyug email on 29-Ноя-09, 11:14 
Насколько я в курсе - опенвпн под виндовс не умеет роутить сети.
Во всяком случае - мне так рассказывали люди, с этим сталкивавшиеся.


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

2. "клиент-сервер OpenVPN + маршрут между подсетями"  +/
Сообщение от Hammer (??) on 29-Ноя-09, 11:57 

>[оверквотинг удален]
>
>Ошибка настолько общая что я понятия не имею как ее исправить -
>понимаю, что в таблице маршрутов должно быть что-то вроде
>192.168.199.0   0.0.0.0   255.255.255.0   UG  
> 0      0    
>    0 tun1
>
>а как поступить в моей ситуации не знаю.
>организовать тоннель между двумя статическими адресами не могу, адрес клиента не статический.
>

EXAMPLES
       route add -net 127.0.0.0
              adds the normal loopback entry, using netmask 255.0.0.0 (class A
              net, determined from the  destination  address)  and  associated
              with  the "lo" device (assuming this device was prviously set up
              correctly with ifconfig(8)).


       route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0
              adds a route to the network 192.56.76.x via "eth0". The Class  C
              netmask modifier is not really necessary here because 192.* is a
              Class C IP address. The word "dev" can be omitted here.

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

3. "клиент-сервер OpenVPN + маршрут между подсетями"  +/
Сообщение от Spookie (ok) on 29-Ноя-09, 18:01 
>[оверквотинг удален]
>            
>  adds the normal loopback entry, using netmask 255.0.0.0 (classA
>  net, determined from the  destination  address) and  associated
>  with  the "lo" device (assuming this device was prviously set up
>  correctly with ifconfig(8)).
>
>       route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0
>  adds a route to the network 192.56.76.x via "eth0". The Class  C
>  netmask modifier is not really necessary here because 192.* is a
>  Class C IP address. The word "dev" can be omitted here.

не совсем ясно от какого мануала выдержка, но в моем случае это не помогает. Т.е. маршрут добавляется, но не работает (вероятно он просто неправильный, поскольку гейтвеем должен быть не локальный интерфейс а удаленный клиент 192.168.199.10).



hld-it-suse:/etc/openvpn # route add -net 192.168.64.0/24 dev tun1

hld-it-suse:/etc/openvpn # route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.199.2   0.0.0.0         255.255.255.255 UH    0      0        0 tun1
192.168.64.0    0.0.0.0         255.255.255.0   U     0      0        0 tun1
192.168.199.0   192.168.199.2   255.255.255.0   UG    0      0        0 tun1
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth1
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth1

hld-it-suse:/etc/openvpn # ping 192.168.64.1
PING 192.168.64.1 (192.168.64.1) 56(84) bytes of data.
^C
--- 192.168.64.1 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2013ms

hld-it-suse:/etc/openvpn # traceroute 192.168.64.1
traceroute to 192.168.64.1 (192.168.64.1), 30 hops max, 40 byte packets
1  * * *
2  * * *
3  * * *
4  * * *
5  * * *
6  * * *
^C
hld-it-suse:/etc/openvpn #

также и не работает конфигурация, в которой мы удаляем маршруты созданные сервером OpenVPN и заменяем их следующими

hld-it-suse:/etc/openvpn # route del -net 192.168.199.0/24 gw 192.168.199.2
hld-it-suse:/etc/openvpn # route del -host 192.168.199.2
hld-it-suse:/etc/openvpn # route add -net 192.168.199.0/24 dev tun1
hld-it-suse:/etc/openvpn # route add -net 192.168.64.0/24 gw 192.168.199.10
hld-it-suse:/etc/openvpn # route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.64.0    192.168.199.10  255.255.255.0   UG    0      0        0 tun1
192.168.199.0   0.0.0.0         255.255.255.0   U     0      0        0 tun1
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth1
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth1
hld-it-suse:/etc/openvpn # traceroute 192.168.64.1
traceroute to 192.168.64.1 (192.168.64.1), 30 hops max, 40 byte packets
1  * * *
2  * * *
3  * * *
4  * * *
5  * * *
6  * * *
^C

что же касается настроек клиента, то тут проблем нет, с клиента видно все сети за сервером, и с сервера виден клиент по адресу из 199й подсети, не удается лишь создать маршрут на сервере.

По прежнему ожидаю вашей помощи

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

4. "клиент-сервер OpenVPN + маршрут между подсетями"  +/
Сообщение от начинающий on 29-Ноя-09, 20:42 
>Конфигурация следующая. Есть сеть 192.168.0.0/24 в ней сервер 192.168.0.4 (OpenSUSE 11) с
>сервером опенвпн, который раздает адреса из сети 192.168.199.0/24
>а как поступить в моей ситуации не знаю.
>организовать тоннель между двумя статическими адресами не могу, адрес клиента не статический.
>

Повнитательнее прочитать man openvpn
Особенное внимание уделить опции topology

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

5. "клиент-сервер OpenVPN + маршрут между подсетями"  +/
Сообщение от spookie on 30-Ноя-09, 11:37 
>>Конфигурация следующая. Есть сеть 192.168.0.0/24 в ней сервер 192.168.0.4 (OpenSUSE 11) с
>>сервером опенвпн, который раздает адреса из сети 192.168.199.0/24
>>а как поступить в моей ситуации не знаю.
>>организовать тоннель между двумя статическими адресами не могу, адрес клиента не статический.
>>
>
>Повнитательнее прочитать man openvpn
>Особенное внимание уделить опции topology

Спасибо. Заработало. Объясняю как: в поисках опции topology я нашел опцию iroute, которая позволяет как раз пробрасывать маршруты до сеток за клиентами. добавил в сервер директиву client-config-dir и в указанной директории создал файлик со строчкой
iroute 192.168.64.0 255.255.255.0
сервер отработал чтото в логах написал что 64ю сеть отмаршрутизировал но в таблице маршрутов про нее ничего не появилось, посему я решил что опенвпн ведет какуюто свою таблицу и проуинул маршрут следующим образом


hld-it-suse:/etc/openvpn # route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.199.2   0.0.0.0         255.255.255.255 UH    0      0        0 tun1
192.168.199.0   192.168.199.2   255.255.255.0   UG    0      0        0 tun1
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth1
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth1

hld-it-suse:/etc/openvpn # route add -net 192.168.64.0/24 gw 192.168.199.2
hld-it-suse:/etc/openvpn # route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.199.2   0.0.0.0         255.255.255.255 UH    0      0        0 tun1
192.168.64.0    192.168.199.2   255.255.255.0   UG    0      0        0 tun1
192.168.199.0   192.168.199.2   255.255.255.0   UG    0      0        0 tun1
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth1
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth1

hld-it-suse:/etc/openvpn # traceroute 192.168.64.1
traceroute to 192.168.64.1 (192.168.64.1), 30 hops max, 40 byte packets
1  192.168.64.1 (192.168.64.1)  37.858 ms   65.919 ms   140.742 ms

И вуаля!
Я правда надеялся сделать такое средствами ОС а не openVPN но это в общем не принципиально. Здесь както можно поставить флажок solved на теме?

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

6. "клиент-сервер OpenVPN + маршрут между подсетями"  +/
Сообщение от ze6ra (ok) on 30-Ноя-09, 12:44 
Про iroute в мануале всё расписано. iroute действительно строит внутрению таблицу маршрутизации в openvpn и сервер openvpn знает какому клиенту соответствует какой маршрут. Но чтоб openvpn мог маршрутизировать между клиентами ОС предварительно должна направить этот пакет openvpn. Решить всё можно и средствами ОС, но тогда в качестве маршрутизатора надо назначать удалённый хост(и его нужно перевести в режим маршрутизатора) за которым находится сеть, а так в качестве маршрутизатора назначается сервер openvpn и он уже сам разбирается с клиентами.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "клиент-сервер OpenVPN + маршрут между подсетями"  +/
Сообщение от Олег Е. on 03-Окт-12, 13:59 
>[оверквотинг удален]
>>>организовать тоннель между двумя статическими адресами не могу, адрес клиента не статический.
>>>
>>
>>Повнитательнее прочитать man openvpn
>>Особенное внимание уделить опции topology
> Спасибо. Заработало. Объясняю как: в поисках опции topology я нашел опцию iroute,
> которая позволяет как раз пробрасывать маршруты до сеток за клиентами. добавил
> в сервер директиву client-config-dir и в указанной директории создал файлик со
> строчкой
> iroute 192.168.64.0 255.255.255.0

Спасибо, тебе человечище!! :)
Ты спас меня от лишнего практологического решения ))

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

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

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




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

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