LINUX.ORG.RU
ФорумAdmin

Проблема с маршрутами (SIOCADDRT: No such process)


0

0

Столкнулся с следующей проблемой. Моя задача заключается в том, что бы vpn-сервер видел сеть за vpn-клиентом. Сервер Ubuntu 9.04, клиент на windows xp sp3 + там Kerio Winroute Firewall (настроен точно правильно). 192.168.100.0 - vpn сеть; 192.168.116.0 - сеть за сервером; 192.168.115.0 - сеть за клиентом; Сервер имеет статический внешний ip xx.yy.zz.203; Клиент подключается к инету через мегафон 3g (dhcp);

Подключаюсь клиентом к серверу, и клиентом пингую vpn-сеть (192.168.100.1) пингую сеть за сервером (192.168.116.1). С vpn-сервера пингую клиентский vpn-адрес (192.168.100.6), пингую адрес клиента но только уже по адресу той сети (192.168.115.1)в этом случае пинги не проходят. Добавляю на vpn-сервер маршрут который вроде как должен решить мою проблему:

sudo route add -net 192.168.115.0     netmask 255.255.255.0    gw 192.168.100.6 dev tun0
и получаю ошибку
SIOCADDRT: No such process
В чем ошибка не понимаю :(

Помогите, плз.

ifconfig

eth0      Link encap:Ethernet  HWaddr 00:50:ba:54:69:77
          inet addr:192.168.116.32  Bcast:192.168.116.255  Mask:255.255.255.0
          inet6 addr: fe80::250:baff:fe54:6977/64 Диапазон:Ссылка
          ВВЕРХ BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:10530237 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5160141 errors:0 dropped:0 overruns:0 carrier:0
          коллизии:0 txqueuelen:1000
          RX bytes:3768357733 (3.7 GB)  TX bytes:969070497 (969.0 MB)
          Прервано:17 Base address:0xc000

eth1      Link encap:Ethernet  HWaddr 00:50:ba:5c:76:3d
          inet addr:xx.yy.zz.203  Bcast:xx.yy.zz.207  Mask:255.255.255.240
          inet6 addr: fe80::250:baff:fe5c:763d/64 Диапазон:Ссылка
          ВВЕРХ BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:36311179 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6288784 errors:0 dropped:0 overruns:0 carrier:0
          коллизии:0 txqueuelen:1000
          RX bytes:3238889588 (3.2 GB)  TX bytes:3722882270 (3.7 GB)
          Прервано:19 Base address:0xc400

lo        Link encap:Локальная петля (Loopback)
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Диапазон:Узел
          ВВЕРХ LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:484 errors:0 dropped:0 overruns:0 frame:0
          TX packets:484 errors:0 dropped:0 overruns:0 carrier:0
          коллизии:0 txqueuelen:0
          RX bytes:43952 (43.9 KB)  TX bytes:43952 (43.9 KB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:192.168.100.1  P-t-P:192.168.100.2  Mask:255.255.255.255
          ВВЕРХ POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:5080970 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5642022 errors:0 dropped:0 overruns:0 carrier:0
          коллизии:0 txqueuelen:100
          RX bytes:881206101 (881.2 MB)  TX bytes:3226325753 (3.2 GB)

route -n

Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.100.2   0.0.0.0         255.255.255.255 UH    0      0        0 tun0
xx.yy.zz.192    0.0.0.0         255.255.255.240 U     1      0        0 eth1
192.168.116.0   0.0.0.0         255.255.255.0   U     1      0        0 eth0
192.168.100.0   192.168.100.2   255.255.255.0   UG    0      0        0 tun0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth1
0.0.0.0         xx.yy.zz.193    0.0.0.0         UG    0      0        0 eth1



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

Маршрут добавился без ошибок. Но пинги не пошли, да и вроде они ломятся в дефолтный шлюз...

route -n

Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.100.2   0.0.0.0         255.255.255.255 UH    0      0        0 tun0
xx.yy.zz.192    0.0.0.0         255.255.255.240 U     1      0        0 eth1
192.168.116.0   0.0.0.0         255.255.255.0   U     1      0        0 eth0
192.168.100.0   192.168.100.2   255.255.255.0   UG    0      0        0 tun0
192.168.115.0   0.0.0.0         255.255.255.0   U     0      0        0 tun0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth1
0.0.0.0         xx.yy.zz.193    0.0.0.0         UG    0      0        0 eth1

gufin
() автор топика

Еще на всякий. конфиг vpn-сервера

port 1194
proto udp
dev tun
;dev-node tap0
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key # This file should be kept secret
dh /etc/openvpn/keys/dh1024.pem
tls-server
tls-auth "/etc/openvpn/keys/ta.key" 0
tls-timeout 120
auth MD5
server 192.168.100.0  255.255.255.0 # vpn subnet
ifconfig-pool-persist "/etc/openvpn/config/ipp.txt"
push "route 192.168.116.0 255.255.255.0"
;duplicate-cn
keepalive 10 120
;cipher BF-CBC        # Blowfish (default)
;cipher AES-128-CBC   # AES
;cipher DES-EDE3-CBC  # Triple-DES
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status /etc/openvpn/log/openvpn-status.log
log /etc/openvpn/log/openvpn.log
log-append /etc/openvpn/log/openvpn.log
verb 3
mute 20
client-to-client
plugin /usr/lib/openvpn/openvpn-auth-pam.so login

И конфиг клиента

client
dev tun
proto udp
remote xx.yy.zz.203 1194
resolv-retry infinite
nobind
user nobody
group nobody
persist-key
persist-tun
ca shmir\\ca.crt
cert shmir\\client1.crt
key shmir\\client1.key
tls-client
tls-auth shmir\\ta.key 1
auth MD5
comp-lzo
verb 5
mute 20
auth-user-pass

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

В конфиг сервера:

route 192.168.115.0 netmask 255.255.255.0

anonymous
()

tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:192.168.100.1 P-t-P:192.168.100.2 Mask:255.255.255.255

Mask:255.255.255.255 - откуда возьмётся ip на другом конце ? Это в качестве пояснения, почему. Это уж не глядя на то, что для tun0 используются IP 192.168.100.x. Так что маршрутизация в интерфейс - нормальное явление для point-to-point каналов (но не для броадкаст-каналов, например, ethernet)

Что-то я отвыкать начал от точного понимания вывода route... По идее, там правильно, но что показывает «ip r» ?

И, ещё, вопрос, на самом ли деле этот tun0 PtP-интерфейс (хотя именно это и написано). Может быть, стоит зароутить на 192.168.100.2, хоть оно и не логично.

AS ★★★★★
()

Почему с сервера пингуете 192.168.100.6, хотя на tun0 назначено 192.168.100.1/192.168.100.2? А вобще с случае P-t-P соединенеи можно указывать свой ip-адрес

ip route add 192.168.115.0/24 via 192.168.100.1 dev tun0

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

Попробовал следующие варианты:

route add -net 192.168.115.0 netmask 255.255.255.0 gw 192.168.100.1 dev tun0
пинги не пошли

Добавил в конфиг клиента pull, попробовал с 1 маршрутом. Пинги не пошли.

Удалил 1 маршрут, дбавил:

route add -net 192.168.115.0 netmask 255.255.255.0 dev tun0
Пинги не пошли. Перебрал варианты с добавлением в конфиг сервера строчки route 192.168.115.0 netmask 255.255.255.0 . И с нелогичным =) маршрутом
route add -net 192.168.115.0 netmask 255.255.255.0 gw 192.168.100.2 dev tun0

Проверил на виндовой машине настройки керио - верные, в варианте керио-керио они работают. Может дело в винде, и керио плохо отрабатывает =(

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

Честно говоря, не знаю, что у вас там на самом деле происходит, но рекомендовал бы проверить настройки iptables. Проверьте, пингуется ли адрес 192.168.100.2.

Когда запускаете пинги, запускайте на сервере tcpdump или другой дампер пакетов на интерфейс tun0, чтобы было чётко видно, уходят ли icmp-пакеты на другую сторону или нет. Аналогично, можно запускать tcpdump на eth1, чтобы проверить, что пакеты не уходят по маршруту по умолчанию, только запускайте его для перехвата только icmp-тарфика:

tcpdump -i eth1 -n -nn icmp

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

Убрал с клиента винду, поставил так же Ububntu. Пинги в сеть клиента пошли при вот таких конфигах.

сервер

port 1194
proto udp
dev tun
;dev-node tap0
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key # This file should be kept secret
dh /etc/openvpn/keys/dh1024.pem
tls-server
tls-auth "/etc/openvpn/keys/ta.key" 0
tls-timeout 120
auth MD5
#server 192.168.100.0  255.255.255.0 # vpn subnet
#ifconfig-pool-persist "/etc/openvpn/config/ipp.txt"
ifconfig 192.168.100.1 192.168.100.2
route 192.168.118.0 255.255.255.0
push "route 192.168.116.0 255.255.255.0"
;duplicate-cn
keepalive 10 120
;cipher BF-CBC        # Blowfish (default)
;cipher AES-128-CBC   # AES
;cipher DES-EDE3-CBC  # Triple-DES
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status /etc/openvpn/log/openvpn-status.log
log /etc/openvpn/log/openvpn.log
log-append /etc/openvpn/log/openvpn.log
verb 3
mute 20
#client-to-client
plugin /usr/lib/openvpn/openvpn-auth-pam.so login

клиент

client
dev tun
proto udp
remote xx.yy.zz.203 1194
resolv-retry infinite
nobind
#user nobody
#group nobody
persist-key
persist-tun
ifconfig 192.168.100.2 192.168.100.1
route 192.168.116.0 255.255.255.0
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/client2.crt
key /etc/openvpn/keys/client2.key
tls-client
tls-auth /etc/openvpn/keys/ta.key 1
auth MD5
comp-lzo
verb 5
mute 20
log /var/log/openvpn.log
verb 3
auth-user-pass

+ клиенте добавил

iptables -A INPUT -i tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -j ACCEPT
iptables -A FORWARD -o tun0 -j ACCEPT

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

#server 192.168.100.0 255.255.255.0 # vpn subnet
пинги снова не проходят.

Возможно ли держать vpn сервером такой туннель и при этом принимать еще клиентов ? или это тупик и надо выбирать одно из двух ? )

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

Да вроде всё должно работать. Может вам просто нужно было разрешить в iptables все tun интерфейсы, а не только tun0 (то есть называть в правилах интерфейс именем tun+).

А что происходит с icmp-пакетами, если смотреть дамп трафика по интерфейсам?

P.S. Может вам имеет смысл создать новую тему, я не особо разбираюсь в опциях openvpn, а особенно у вас какая то путаница 192.168.116.0, 192.168.118.0.

mky ★★★★★
()

А зачем делать route врукопашную? У меня в client-config воткнуто «iroute x.x.x.x y.y.y.y», и при его (клиента) подключении автоматически начинает на него маршрутизироваться, ну и, соответственно, прекращает при его отвале.

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

«client-config» имеется в виду «client-config-dir ...» в server.conf. В том же «client-config» подключившемуся через «push „route a.b.c.d e.f.g.h“» рассказывается, какие сети для него будем прокидывать.

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

Да именно так проблема и решилась.

Изменил конфиг сервера следующим образом

port 1194
proto udp
dev tun
;dev-node tap0
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key # This file should be kept secret
dh /etc/openvpn/keys/dh1024.pem
tls-server
tls-auth "/etc/openvpn/keys/ta.key" 0
tls-timeout 120
auth MD5
server 192.168.100.0  255.255.255.0 # vpn subnet
#ifconfig-pool-persist "/etc/openvpn/config/ipp.txt"
#ifconfig 192.168.100.1 192.168.100.2
push "route 192.168.100.0 255.255.255.0"
route 192.168.115.0 255.255.255.0
client-config-dir ccd
;duplicate-cn
keepalive 10 120
;cipher BF-CBC        # Blowfish (default)
;cipher AES-128-CBC   # AES
;cipher DES-EDE3-CBC  # Triple-DES
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status /etc/openvpn/log/openvpn-status.log
log /etc/openvpn/log/openvpn.log
log-append /etc/openvpn/log/openvpn.log
verb 3
mute 20
client-to-client
plugin /usr/lib/openvpn/openvpn-auth-pam.so login
создал папку /etc/openvpn/ccd. В ней файл client1 и в нем:

push "route 192.168.116.0 255.255.255.0"
iroute 192.168.115.0 255.255.255.0
ifconfig-push 192.168.100.2 192.168.100.1

Помогла вот эта статья. http://www.sergeysl.ru/freebsd-openvpn-x509/

Всем спасибо )

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