LINUX.ORG.RU
ФорумAdmin

Openvpn клиент не получает ip

 


1

1

Поднял я тут на одной машине openvpn server, а на другой клиента создаю.

Настройки:

- сервер: https://pastebin.com/80miyJKv

- клиент: https://pastebin.com/XVu2buth

Клиент успешно находит сервер, коннектится и его лог заканчивается следующим:

...
...
Sun Dec  9 19:38:59 2018 us=136878 ROUTE_GATEWAY 192.168.1.1/255.255.255.0 IFACE=eth1 HWADDR=00:e0:4c:53:44:58
Sun Dec  9 19:38:59 2018 us=138649 TUN/TAP device tap0 opened
Sun Dec  9 19:38:59 2018 us=138944 TUN/TAP TX queue length set to 100
Sun Dec  9 19:38:59 2018 us=139173 do_ifconfig, tt->did_ifconfig_ipv6_setup=0
Sun Dec  9 19:38:59 2018 us=139558 /usr/bin/ip link set dev tap0 up mtu 1500
Sun Dec  9 19:38:59 2018 us=151381 /usr/bin/ip addr add dev tap0 10.8.0.201/24 broadcast 10.8.0.255
Sun Dec  9 19:38:59 2018 us=161408 /usr/bin/ip route add 10.8.0.1/24 via 10.8.0.1
Error: Invalid prefix for given prefix length.
Sun Dec  9 19:38:59 2018 us=170304 ERROR: Linux route add command failed: external program exited with error status: 2
Sun Dec  9 19:38:59 2018 us=170545 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Sun Dec  9 19:38:59 2018 us=170680 Initialization Sequence Completed

При этом на созданном интерфейсе не выставляется ip адрес:

[client]$ ip a
...
...
47: tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/ether 4e:d2:00:a7:0d:48 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::4cd2:ff:fea7:d48/64 scope link 
       valid_lft forever preferred_lft forever

Следует ли из лога, что клиент пытается вызвать настройку адреса?

Если после этого вручную повторить команду из лога, адрес настроится и все будет прекрасно работать:

[client]$ /usr/bin/ip addr add dev tap0 10.8.0.201/24 broadcast 10.8.0.255

[client]$# ip a
...
...
47: tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/ether 4e:d2:00:a7:0d:48 brd ff:ff:ff:ff:ff:ff
    inet 10.8.0.201/24 brd 10.8.0.255 scope global tap0
       valid_lft forever preferred_lft forever
    inet6 fe80::4cd2:ff:fea7:d48/64 scope link 
       valid_lft forever preferred_lft forever

[client]$ ping 10.8.0.1
PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_seq=1 ttl=64 time=325 ms
64 bytes from 10.8.0.1: icmp_seq=2 ttl=64 time=162 ms
^C

Поскажите, на каком этапе ошибка? Настройки openvpn или действительно клиент не может вызвать ip addr? (Для тестов и сервер и клиент запускаются прямо от рута.)

Ругань у вас на
push «route 10.8.0.1 255.255.255.0»

anc ★★★★★ ()

В конфиге сервера не указаны server и remote endpoints

ifconfig 10.8.0.1 10.8.0.Х

fox-mage ()

кое чего переписал

SERVER:

port 1723
proto tcp4
dev tap1

ca ca.crt
cert aserver.crt
key aserver.key  # This file should be kept secret
dh dh.pem
tls-auth ta.key 0 
cipher AES-256-CBC

persist-key
persist-tun

topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-config-dir ccd
route 10.8.0.0 255.255.255.252

keepalive 10 120
status openvpn-status.log

verb 4 

CCD/CLIENTNAME:

ifconfig-push 10.8.0.201 255.255.255.0

CLIENT:

client
dev tap1
proto tcp4

remote ******************************* 1723

ca ca.crt
cert rasclient.crt
key rasclient.key
tls-auth ta.key 1
cipher AES-256-CBC

resolv-retry infinite
nobind

persist-key
persist-tun

verb 5
mute 20

Получается следующее:

Sun Dec  9 22:57:50 2018 us=268045 Attempting to establish TCP connection with.......
Sun Dec  9 22:57:51 2018 us=268384 TCP connection established with [AF_INET].........
....
....
....
Sun Dec  9 22:57:53 2018 us=322418 SENT CONTROL [aserver]: 'PUSH_REQUEST' (status=1)
WRRSun Dec  9 22:57:53 2018 us=665543 PUSH: Received control message: 'PUSH_REPLY,route-gateway 10.8.0.1,ping 10,ping-restart 120,ifconfig 10.8.0.201 255.255.255.0,peer-id 0,cipher AES-256-GCM'
Sun Dec  9 22:57:53 2018 us=665993 OPTIONS IMPORT: timers and/or timeouts modified
Sun Dec  9 22:57:53 2018 us=666103 OPTIONS IMPORT: --ifconfig/up options modified
Sun Dec  9 22:57:53 2018 us=666171 OPTIONS IMPORT: route-related options modified
Sun Dec  9 22:57:53 2018 us=666285 OPTIONS IMPORT: peer-id set
Sun Dec  9 22:57:53 2018 us=666391 OPTIONS IMPORT: adjusting link_mtu to 1658
Sun Dec  9 22:57:53 2018 us=666610 OPTIONS IMPORT: data channel crypto options modified
Sun Dec  9 22:57:53 2018 us=666714 Data Channel: using negotiated cipher 'AES-256-GCM'
Sun Dec  9 22:57:53 2018 us=666868 Data Channel MTU parms [ L:1586 D:1450 EF:54 EB:411 ET:32 EL:3 ]
Sun Dec  9 22:57:53 2018 us=667792 Outgoing Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
Sun Dec  9 22:57:53 2018 us=667998 Incoming Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
Sun Dec  9 22:57:53 2018 us=669712 TUN/TAP device tap1 opened
Sun Dec  9 22:57:53 2018 us=670300 TUN/TAP TX queue length set to 100
Sun Dec  9 22:57:53 2018 us=670485 do_ifconfig, tt->did_ifconfig_ipv6_setup=0
Sun Dec  9 22:57:53 2018 us=670623 /usr/bin/ip link set dev tap1 up mtu 1500
Sun Dec  9 22:57:53 2018 us=681725 /usr/bin/ip addr add dev tap1 10.8.0.201/24 broadcast 10.8.0.255
Sun Dec  9 22:57:53 2018 us=692452 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Sun Dec  9 22:57:53 2018 us=692746 Initialization Sequence Completed

Никакой ругани. Push приходит, настройки принимаются, устройство создается, а вот дальше?... Эти строки говорят о том, что ip действительно вызывается? Мне кажется что нет, или оно вылетает с ошибкой.)

marxengels ()
Ответ на: комментарий от anc

Нет, пока не заработало.

server.conf:
-----------------
...
proto tcp4
dev tap1
...
server 10.8.0.0 255.255.255.0
route 10.8.0.0 255.255.255.252
client-config-dir ccd

ccd/client:
-----------------
ifconfig-push 10.8.0.2 255.255.255.0

Клиент по прежнему не получает адрес:

[client]# openvpn client.conf
Mon Dec 10 18:04:12 2018 us=707467 PUSH: Received control message: 'PUSH_REPLY,route-gateway 10.8.0.1,ping 10,ping-restart 120,ifconfig 10.8.0.2 255.255.255.0,peer-id 0,cipher AES-256-GCM'
Mon Dec 10 18:04:12 2018 us=707869 OPTIONS IMPORT: timers and/or timeouts modified
Mon Dec 10 18:04:12 2018 us=707983 OPTIONS IMPORT: --ifconfig/up options modified
Mon Dec 10 18:04:12 2018 us=708051 OPTIONS IMPORT: route-related options modified
Mon Dec 10 18:04:12 2018 us=708139 OPTIONS IMPORT: peer-id set
Mon Dec 10 18:04:12 2018 us=708275 OPTIONS IMPORT: adjusting link_mtu to 1658
Mon Dec 10 18:04:12 2018 us=708416 OPTIONS IMPORT: data channel crypto options modified
Mon Dec 10 18:04:12 2018 us=708536 Data Channel: using negotiated cipher 'AES-256-GCM'
Mon Dec 10 18:04:12 2018 us=708800 Data Channel MTU parms [ L:1586 D:1450 EF:54 EB:411 ET:32 EL:3 ]
Mon Dec 10 18:04:12 2018 us=709617 Outgoing Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
Mon Dec 10 18:04:12 2018 us=709736 Incoming Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
Mon Dec 10 18:04:12 2018 us=714013 TUN/TAP device tap1 opened
Mon Dec 10 18:04:12 2018 us=714935 TUN/TAP TX queue length set to 100
Mon Dec 10 18:04:12 2018 us=715189 do_ifconfig, tt->did_ifconfig_ipv6_setup=0
Mon Dec 10 18:04:12 2018 us=715344 /usr/bin/ip link set dev tap1 up mtu 1500
Mon Dec 10 18:04:12 2018 us=725496 /usr/bin/ip addr add dev tap1 10.8.0.2/24 broadcast 10.8.0.255


[client]$ ip addr
...
61: tap1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/ether 42:82:a0:a6:76:67 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::4082:a0ff:fea6:7667/64 scope link 
       valid_lft forever preferred_lft forever
marxengels ()
Ответ на: комментарий от marxengels

У меня сложилось дурацкое ощущение, что клиент не может вызвать утилиту ip, чтобы назначить самому себе адрес, ведь когда я ее вызову вручную по строчке из лога, все будет работать. Может ли такое быть и как это исправить?

Хотя при завершении клиента выдается следующее:

Mon Dec 10 18:39:39 2018 us=391134 TCP/UDP: Closing socket
Mon Dec 10 18:39:39 2018 us=391427 Closing TUN/TAP interface
Mon Dec 10 18:39:39 2018 us=391555 /usr/bin/ip addr del dev tap0 10.8.0.2/30
RTNETLINK answers: Cannot assign requested address
Mon Dec 10 18:39:39 2018 us=399261 Linux ip addr del failed: external program exited with error status: 2
Mon Dec 10 18:39:39 2018 us=447496 SIGINT[hard,] received, process exiting

Т.е. клиент пытается удалить ранее не присвоенный адрес. Почемy он его не присваивает при старте?

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

Странная ситуация, вроде все верно в настройках. Но не может ли быть это связано со всякими nm ? И другими selinux? Но это так пальцем в небо. Попробуйте вручную запустить ovpn
openvpn --daemon --config /path-to-config/configname

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

Также:

#openvpn /etc/openvpn/client/client.conf

Система клиента: archlinux armv7l на raspberry pi 3.

Cистема сервера: archlinux x86_64

marxengels ()
Ответ на: комментарий от anc

Никаких nm нет, система чистая, есть только systemd, да и то не решает, так как и сервер и клиент запускаю от рута прямо в консоли.

marxengels ()
Ответ на: комментарий от anc

Совсем извращение. Как вариант у клиента в up(параметр в конфиге up /pathtoscript) скрипт прописать команду, и выхлоп в какой-нибудь лог перенаправить.

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

Ну вроде я только для теста как первый раз поставил и запускаю --- и оп, вот эта ошибка. Попробовать что ли запустить косвенно? Вдруг ошибки не будет?

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

А что не так?

Ну как бэ сокращенная маска.

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

Попробовать что ли запустить косвенно?

Эмм не понял, что значит «запустить косвенно» ? То что я предложил? Тогда да, стоит попробовать.
ЗЫ Я конечно могу ошибаться в просмотре ваших выхлопов и что-то не заметить. Но в упор не вижу проблем.

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

Проблема в этом:

[client]# openvpn /etc/openvpn/client.conf
...
...
Mon Dec 10 18:04:12 2018 us=715189 do_ifconfig, tt->did_ifconfig_ipv6_setup=0
Mon Dec 10 18:04:12 2018 us=715344 /usr/bin/ip link set dev tap0 up mtu 1500
Mon Dec 10 18:04:12 2018 us=725496 /usr/bin/ip addr add dev tap0 10.8.0.2/30 broadcast 10.8.0.3
Mon Dec 10 21:03:34 2018 us=384431 Initialization Sequence Completed

[client]$ ip addr
...
61: tap1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/ether 42:82:a0:a6:76:67 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::4082:a0ff:fea6:7667/64 scope link 
       valid_lft forever preferred_lft forever

[client]$ ping 10.8.0.1
PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
^C
--- 10.8.0.1 ping statistics ---
6 packets transmitted, 0 received, 100% packet loss, time 161ms

[client]$ ip addr add dev tap0 10.8.0.2/30 broadcast 10.8.0.3

[client]$ ip addr
64: tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/ether 16:b6:f4:49:0b:58 brd ff:ff:ff:ff:ff:ff
    inet 10.8.0.2/30 brd 10.8.0.3 scope global tap0
       valid_lft forever preferred_lft forever
    inet6 fe80::14b6:f4ff:fe49:b58/64 scope link 
       valid_lft forever preferred_lft for

[root@alarmpi client]# ping 10.8.0.1
PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_seq=1 ttl=64 time=333 ms
64 bytes from 10.8.0.1: icmp_seq=2 ttl=64 time=167 ms
64 bytes from 10.8.0.1: icmp_seq=3 ttl=64 time=167 ms
^C
--- 10.8.0.1 ping statistics ---
4 packets transmitted, 3 received, 25% packet loss, time 7ms
rtt min/avg/max/mdev = 166.993/222.333/332.580/77.957 ms
marxengels ()
Ответ на: комментарий от anc

Странно все это.

[client]# cat abc.sh 

#!/usr/bin/sh
exec "/usr/bin/ip addr add dev tap0 10.8.0.2/30 broadcast 10.8.0.3"

[client]# cat client.conf

...
script-security 2
up /etc/openvpn/client/abc.sh

[client]# openvpn client.conf
...
...
...
Mon Dec 10 21:48:14 2018 us=477054 TUN/TAP device tap0 opened
Mon Dec 10 21:48:14 2018 us=478362 TUN/TAP TX queue length set to 100
Mon Dec 10 21:48:14 2018 us=478607 do_ifconfig, tt->did_ifconfig_ipv6_setup=0
Mon Dec 10 21:48:14 2018 us=478780 /usr/bin/ip link set dev tap0 up mtu 1500
Mon Dec 10 21:48:14 2018 us=488430 /usr/bin/ip addr add dev tap0 10.8.0.2/30 broadcast 10.8.0.3
Mon Dec 10 21:48:14 2018 us=497937 /etc/openvpn/client/abc.sh tap0 1500 1586 10.8.0.2 255.255.255.252 init
/etc/openvpn/client/abc.sh: line 3: /usr/bin/ip addr add dev tap0 10.8.0.2/30 broadcast 10.8.0.3: No such file or directory
Mon Dec 10 21:48:14 2018 us=512310 WARNING: Failed running command (--up/--down): could not execute external program
Mon Dec 10 21:48:14 2018 us=512487 Exiting due to fatal error

Ну не хочет он запускать ip!

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

Ничего не понял.
Ранее:

Mon Dec 10 18:04:12 2018 us=725496 /usr/bin/ip addr add dev tap1 10.8.0.2/24 broadcast 10.8.0.255

Теперь:

Mon Dec 10 21:48:14 2018 us=488430 /usr/bin/ip addr add dev tap0 10.8.0.2/30 broadcast 10.8.0.3

Сменили топологию? Да и еще интерфейс (имя)?

exec Зачем?
/usr/bin/ip addr add dev tap0 10.8.0.2/30 broadcast 10.8.0.3
Достаточно
Да и sh - это у вас sh там или симлинк ? Куда смотрит?

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

Все перемены из-за судорожных попыток найти ошибку. При этом каждый раз при ручном повторении команды из текущего лога — будет работать.

Exec? Не знаю, посмотрим без него.

Mon Dec 10 22:18:00 2018 us=577527 /etc/openvpn/client/abc.sh tap0 1500 1586 10.8.0.2 255.255.255.252 init
RTNETLINK answers: File exists
Mon Dec 10 22:18:00 2018 us=598803 WARNING: Failed running command (--up/--down): external program exited with error status: 2
Mon Dec 10 22:18:00 2018 us=598999 Exiting due to fatal error

Вручную по-прежнему работает.

marxengels ()
Ответ на: комментарий от anc

С настройками openvpn как сервера так и клиента вроде бы все нормально.

RTNETLINK answers: File exists — эта фраза натолкнула меня на мысль, что дело в драйвере RapberryPi

И таки да: https://raspberrypi.stackexchange.com/questions/13895/solving-rtnetlink-answers-file-exists-when-running-ifup

If the solution provided by @theoB610 still doesn't work, then you might have to flush the wlan0 device before ifup and ifdown.

sudo ip addr flush dev wlan0

This is a problem not too specific to Raspberry Pi, a similar problem occurred and was solved in wired networks in here (from where I derived the solution for my problem with the Pi).

Только как бы это поэлегантнее сделать? Опять через up.sh? но ведь он выполняется уже после штатной настройки ip...

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

Не похоже что оно. Скорее у вас сработало получение адреса автоматом в топологии net30, а потом и скрипт сработал. Вот от этого и ругань.
Еше раз повторю давайте, «с чистого листа». Покажите последние конфиги и логи.

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

Взял ваши конфиги.
сервер: OpenVPN 2.3.17 x86_64-slackware-linux-gnu (не стал обновлять)
клиент: debian 9.6 OpenVPN 2.4.0 i686-pc-linux-gnu

Ключи оставил старые, я их создавал для других тестов.

У сервера убрал за ненадобностью
#route 10.8.0.0 255.255.255.252
tcp4 на tcp поменял (в 2.3.17 еще не было такого)

На клиенте
убрал
#remote-cert-tls server
убрал
скрипт up /etc/openvpn/client/abc.sh
добавил
tls-client

Все сцуко робит.

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

Еще вариант
Сервер: слака 14.2 (обновил ovpn)

OpenVPN 2.4.6 x86_64-slackware-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [MH/PKTINFO] [AEAD] built on Apr 26 2018
library versions: OpenSSL 1.0.2q  20 Nov 2018, LZO 2.09
Originally developed by James Yonan
Copyright (C) 2002-2018 OpenVPN Inc <sales@openvpn.net>
Compile time defines: enable_async_push=no enable_comp_stub=no enable_crypto=yes enable_crypto_ofb_cfb=yes enable_debug=yes enable_def_auth=yes enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown enable_fast_install=yes enable_fragment=yes enable_iproute2=yes enable_libtool_lock=yes enable_lz4=yes enable_lzo=yes enable_management=yes enable_multihome=yes enable_pam_dlopen=no enable_pedantic=no enable_pf=yes enable_pkcs11=no enable_plugin_auth_pam=no enable_plugin_down_root=yes enable_plugins=yes enable_port_share=yes enable_selinux=no enable_server=yes enable_shared=yes enable_shared_with_static_runtimes=no enable_small=no enable_static=yes enable_strict=no enable_strict_options=no enable_systemd=no enable_werror=no enable_win32_dll=yes enable_x509_alt_username=no with_aix_soname=aix with_crypto_library=openssl with_gnu_ld=yes with_mem_check=no with_sysroot=no

Клиент: Копейка7 (со всеми последними обновами)
OpenVPN 2.4.6 x86_64-redhat-linux-gnu [Fedora EPEL patched] [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Apr 26 2018
library versions: OpenSSL 1.0.2k-fips  26 Jan 2017, LZO 2.06
Originally developed by James Yonan
Copyright (C) 2002-2018 OpenVPN Inc <sales@openvpn.net>
Compile time defines: enable_async_push=no enable_comp_stub=no enable_crypto=yes enable_crypto_ofb_cfb=yes enable_debug=yes enable_def_auth=yes enable_dependency_tracking=no enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown enable_fast_install=yes enable_fragment=yes enable_iproute2=yes enable_libtool_lock=yes enable_lz4=yes enable_lzo=yes enable_management=yes enable_multihome=yes enable_pam_dlopen=no enable_pedantic=no enable_pf=yes enable_pkcs11=yes enable_plugin_auth_pam=yes enable_plugin_down_root=yes enable_plugins=yes enable_port_share=yes enable_selinux=yes enable_server=yes enable_shared=yes enable_shared_with_static_runtimes=no enable_small=no enable_static=yes enable_strict=no enable_strict_options=no enable_systemd=yes enable_werror=no enable_win32_dll=yes enable_x509_alt_username=yes with_aix_soname=aix with_crypto_library=openssl with_gnu_ld=yes with_mem_check=no with_sysroot=no


Ну тоже все работает.

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

Ну, слава Б-гу! Значит я вчера правильно вышел --- драйвер сетевой дурит в малинке (armv7l). Надо было раньше самому попробовать на десктоп (x86_64) перенести клиент, у меня archlinux как раз под рукой есть... Сейчас и попробую.

marxengels ()
Ответ на: комментарий от anc

Да нет такого, даже на самых высоких verb level нет об этом данных... Получается что на малинке вновь созданный сетевой адаптер сразу какой-то загаженный, что его тут же чистить надо.

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

Про net30 забудем. Это вы маску поменяли, поэтому и подумал что оно.

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

Еще как вариант (пальцем в небо):
Добавить к конфиг клиента
route-delay 30
попробовать два варианта:
1. без up скрипта
2. с up скриптом

Но это честно говоря совсем на уровне «а что? а вдруг?» бывает нужно либо для оффтопика или в онтопике при выдаче адресов с dhcp сервера.

anc ★★★★★ ()

Выглядит как попытка «сэмулировать» поведение tun на tap. Цель конечная таких чесаний левой рукой правой пятки какая?

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

Вы о чем? Конечная цель выбрать конфигурацию и настроить сервер и N клиентов, видимых друг-другу в единой локальной сети, включая сервер.

Конкретный вопрос озвучен в начале темы --- ни на tun ни на tap, вероятно, свежесозданный сетевой адаптер не дает возможности назначить ip, путем вызова соответствующей утилиты.

marxengels ()
Ответ на: комментарий от anc

Пока оставил так:

client.conf:
----------------
ifconfig-noexec
script-security 3
up /etc/openvpn/client/abc.sh

abc.sh
---------------
#!/sbin/bash
/usr/bin/ip addr flush dev tap0
sleep 0.1
/usr/bin/ifconfig $1 $4 netmask $5 up
marxengels ()
Ответ на: комментарий от marxengels

Скрипт удалось сократить до

abc.sh
---------------
#!/sbin/bash
sleep 0.1
/usr/bin/ifconfig $1 $4 netmask $5 up

Таким образом, лог дефолта (ip не устанавливатся):

LOG:
Sat Dec 15 17:04:54 2018 us=846147 TUN/TAP device tap0 opened
Sat Dec 15 17:04:54 2018 us=847072 TUN/TAP TX queue length set to 100
Sat Dec 15 17:04:54 2018 us=848883 do_ifconfig, tt->did_ifconfig_ipv6_setup=0
Sat Dec 15 17:04:54 2018 us=849068 /usr/bin/ip link set dev tap0 up mtu 1500
Sat Dec 15 17:04:54 2018 us=858760 /usr/bin/ip addr add dev tap0 10.8.0.2/30 broadcast 10.8.0.3
Sat Dec 15 17:04:54 2018 us=868201 Initialization Sequence Completed

Лог случая со скриптом (ip корректно настроен):

Sat Dec 15 17:09:38 2018 us=748788 TUN/TAP device tap0 opened
Sat Dec 15 17:09:38 2018 us=749589 TUN/TAP TX queue length set to 100
Sat Dec 15 17:09:38 2018 us=750046 /etc/openvpn/client/abc.sh tap0 1500 1586 10.8.0.2 255.255.255.252 init
Sat Dec 15 17:10:23 2018 us=494195 Initialization Sequence Completed
marxengels ()
Ответ на: комментарий от anc

Очищать адаптер не требуется, только выдержать паузу перед настройкой ip-адреса. ifconfig я выбрал, чтобы проще обойтись с аргументами (не пересчитывать маску).

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

opvn поднимал на разных дистрах, в разных конфигурациях, и в разное время, но с таким не сталкивался. Спасибо что отписали рабочее решение. В копилку.

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

А все таки, в чем же разница между тем, как

- клиент создает адаптер и сам вызывает ip link set, ip addr add

или

- клиент создает адаптер, выдеживает паузу и обращается через скрипт к ifconfig?

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

К сожалению, не настолько «сварщик». vel может что-то подскажите? Что бы не читать всю простыню, отсюда: Openvpn клиент не получает ip (комментарий)
ЗЫ Пытаюсь вспомнить, может и слышал когда-то, нечто подобное связанное с таймаутом между созданием интерфейса tap и его поднятием, но с чем было связано и где, когда?... никаких предположений.

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

ни на tun ни на tap

А на чем? Я больше режимов openvpn не знаю.

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

В первом посте была явная дичь

Sun Dec  9 19:38:59 2018 us=161408 /usr/bin/ip route add 10.8.0.1/24 via 10.8.0.1
Error: Invalid prefix for given prefix length.

Про удаление адреса - туда же.

По вопросу о разнице - она есть: ifconfig обычно все делал через ioctl, а ip все делает через netlink. Кто, где и сколько проверок выполняет (или не выполняет) ХЗ.

Смущает «up» в /usr/bin/ifconfig $1 $4 netmask $5 up. У ifconfig был полезный интеллект - если назначили адрес и маску, а устройство в «down»,то оно его само поднимало.

На мой непросвещенный взгляд порядок должен быть такой: сначала назначаем все параметры интерфейсу, потом поднимаем его.

Что мешает в начале скрипта посмотреть состояния интерфейса через «ip li show dev tap0» куда-нибудь в /tmp ? Может быть ларчик и открылся бы...

sleep 0.1 не должен на что-то повлиять.

Возможно «ip mo» запущенный на клиенте во время подъема ovpn может дать подсказки.

vel ★★★★★ ()
Последнее исправление: vel (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.