Конфигурация следующая. Есть сеть 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 processip 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а как поступить в моей ситуации не знаю.
организовать тоннель между двумя статическими адресами не могу, адрес клиента не статический.
Насколько я в курсе - опенвпн под виндовс не умеет роутить сети.
Во всяком случае - мне так рассказывали люди, с этим сталкивавшиеся.
>[оверквотинг удален]
>
>Ошибка настолько общая что я понятия не имею как ее исправить -
>понимаю, что в таблице маршрутов должно быть что-то вроде
>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.
>[оверквотинг удален]
>
> 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 tun1hld-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 eth1hld-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 2013mshld-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й подсети, не удается лишь создать маршрут на сервере.
По прежнему ожидаю вашей помощи
>Конфигурация следующая. Есть сеть 192.168.0.0/24 в ней сервер 192.168.0.4 (OpenSUSE 11) с
>сервером опенвпн, который раздает адреса из сети 192.168.199.0/24
>а как поступить в моей ситуации не знаю.
>организовать тоннель между двумя статическими адресами не могу, адрес клиента не статический.
>Повнитательнее прочитать man openvpn
Особенное внимание уделить опции topology
>>Конфигурация следующая. Есть сеть 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 eth1hld-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 eth1hld-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 на теме?
Про iroute в мануале всё расписано. iroute действительно строит внутрению таблицу маршрутизации в openvpn и сервер openvpn знает какому клиенту соответствует какой маршрут. Но чтоб openvpn мог маршрутизировать между клиентами ОС предварительно должна направить этот пакет openvpn. Решить всё можно и средствами ОС, но тогда в качестве маршрутизатора надо назначать удалённый хост(и его нужно перевести в режим маршрутизатора) за которым находится сеть, а так в качестве маршрутизатора назначается сервер openvpn и он уже сам разбирается с клиентами.
>[оверквотинг удален]
>>>организовать тоннель между двумя статическими адресами не могу, адрес клиента не статический.
>>>
>>
>>Повнитательнее прочитать man openvpn
>>Особенное внимание уделить опции topology
> Спасибо. Заработало. Объясняю как: в поисках опции topology я нашел опцию iroute,
> которая позволяет как раз пробрасывать маршруты до сеток за клиентами. добавил
> в сервер директиву client-config-dir и в указанной директории создал файлик со
> строчкой
> iroute 192.168.64.0 255.255.255.0Спасибо, тебе человечище!! :)
Ты спас меня от лишнего практологического решения ))