LINUX.ORG.RU
ФорумAdmin

низкая скорость OpenVPN


1

5

Есть выделенный сервер. На нем стоит OpenVPN.

Канал симметричный по данным iperf вниз 89.4 Mbits/sec, вверх 86.8 Mbits/sec.

Ставлю openvpn Конфиг сервера

dev tap
proto udp
port $port
dh keys/server/dh2048.pem
ca keys/server/ca.crt
cert keys/server/server.crt
key keys/server/server.key
cipher none
server 192.168.250.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway"
log-append /var/log/openvpn.log
daemon
user nobody
group nogroup
persist-tun
persist-key
client-config-dir ccd
verb 0
tun-mtu 1500
fragment 1300
mssfix
push "dhcp-option 8.8.8.8"
management 127.0.0.1 1234

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

client
proto udp
dev tap
ca ca.crt
dh dh2048.pem
cert client.crt
key client.key
remote 5.9.89.75  45156
cipher none
user nobody
group nogroup
verb 2
mute 20
keepalive 10 120
persist-key
persist-tun
float
resolv-retry infinite

Тестирование скорости по по туннелю дает 675 Кбит/с на скачку и 3667 Кбит/с аплинка.

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

★★★

Последнее исправление: kombrig (всего исправлений: 1)

Ответ на: комментарий от kombrig

Данный конфиг обеспечивает максимальную скорость

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

Сейчас попробовал на всякий случай с udp

660 Кбит/с вниз, 3379 Кбит/с - вверх

kombrig ★★★
() автор топика

Еще есть --auth, который хеширует пакеты, его тоже убери. Нагрузка на проц проецессом openvpn во время iperf-а какая?

По моим тестам одно ядро Core 2 Duo 3Ghz может провернуть около 100Мбит траффика с шифрованием aes256-cbc/sha1

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

не серьезная - сервер Xeon E3-1240

auth none в конфге дает 677 Кбит/с и 5757 Кбит/с

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

а без этих фиксов - сам понимаешь, неверное их использование приводит как раз к подобным проблемам.

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

во время передачи со стороны клиента (verb 9)


Oct  8 17:25:32 evgeny ovpn-client[13564]: UDPv4 write returned 49
Oct  8 17:25:32 evgeny ovpn-client[13564]: PO_CTL rwflags=0x0001 ev=5 arg=0x0068edf0
Oct  8 17:25:32 evgeny ovpn-client[13564]: PO_CTL rwflags=0x0001 ev=6 arg=0x0068ece4
Oct  8 17:25:32 evgeny ovpn-client[13564]: I/O WAIT TR|Tw|SR|Sw [1/136423]
Oct  8 17:25:32 evgeny ovpn-client[13564]: PO_WAIT[1,0] fd=6 rev=0x00000001 rwflags=0x0001 arg=0x0068ece4 
Oct  8 17:25:32 evgeny ovpn-client[13564]:  event_wait returned 1
Oct  8 17:25:32 evgeny ovpn-client[13564]: I/O WAIT status=0x0004
Oct  8 17:25:32 evgeny ovpn-client[13564]:  read from TUN/TAP returned 40
Oct  8 17:25:32 evgeny ovpn-client[13564]: TUN READ [40]
Oct  8 17:25:32 evgeny ovpn-client[13564]: FRAG_OUT len=40 type=0 seq_id=0 frag_id=0 frag_size=0 flags=0x00000000
Oct  8 17:25:32 evgeny ovpn-client[13564]: TLS: tls_pre_encrypt: key_id=0
Oct  8 17:25:32 evgeny ovpn-client[13564]: PO_CTL rwflags=0x0003 ev=5 arg=0x0068edf0
Oct  8 17:25:32 evgeny ovpn-client[13564]: PO_CTL rwflags=0x0000 ev=6 arg=0x0068ece4
Oct  8 17:25:32 evgeny ovpn-client[13564]: I/O WAIT Tr|Tw|SR|SW [1/136423]
Oct  8 17:25:32 evgeny ovpn-client[13564]: PO_WAIT[0,0] fd=5 rev=0x00000004 rwflags=0x0002 arg=0x0068edf0 
Oct  8 17:25:32 evgeny ovpn-client[13564]:  event_wait returned 1
Oct  8 17:25:32 evgeny ovpn-client[13564]: I/O WAIT status=0x0002
Oct  8 17:25:32 evgeny ovpn-client[13564]: UDPv4 WRITE [49] to [AF_INET]$IP:45156: P_DATA_V1 kid=0 DATA 00000f9e 00000000 45000028 90104000 400671c2 c0a8fa06 25095945 c511005[more...]

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

Mon Oct  8 17:29:40 2012 us=451853 client/$client-ip:61580 UDPv4 write returned 57
Mon Oct  8 17:29:40 2012 us=451873 PO_CTL rwflags=0x0001 ev=6 arg=0x7f3560407138
Mon Oct  8 17:29:40 2012 us=451896 PO_CTL rwflags=0x0001 ev=7 arg=0x7f3560407064
Mon Oct  8 17:29:40 2012 us=451910 PO_CTL rwflags=0x0001 ev=3 arg=0x7f3560407068
Mon Oct  8 17:29:40 2012 us=451926 I/O WAIT TR|Tw|SR|Sw [5/88143]
Mon Oct  8 17:29:40 2012 us=600415 PO_WAIT[1,0] fd=7 rev=0x00000001 rwflags=0x0001 arg=0x7f3560407064 
Mon Oct  8 17:29:40 2012 us=600455  event_wait returned 1
Mon Oct  8 17:29:40 2012 us=600475 I/O WAIT status=0x0004
Mon Oct  8 17:29:40 2012 us=600492  read from TUN/TAP returned 48
Mon Oct  8 17:29:40 2012 us=600514 GET INST BY VIRT: 192.168.250.6 -> client/$client-ip:61580 via 192.168.250.6
Mon Oct  8 17:29:40 2012 us=600529 client/$client-ip:61580 TUN READ [48]
Mon Oct  8 17:29:40 2012 us=600544 client/$client-ip:61580 FRAG_OUT len=48 type=0 seq_id=0 frag_id=0 frag_size=0 flags=0x00000000
Mon Oct  8 17:29:40 2012 us=600558 client/$client-ip:61580 TLS: tls_pre_encrypt: key_id=0
Mon Oct  8 17:29:40 2012 us=600574 PO_CTL rwflags=0x0002 ev=6 arg=0x7f3560407138
Mon Oct  8 17:29:40 2012 us=600588 PO_CTL rwflags=0x0000 ev=7 arg=0x7f3560407064
Mon Oct  8 17:29:40 2012 us=600604 PO_CTL rwflags=0x0001 ev=3 arg=0x7f3560407068
Mon Oct  8 17:29:40 2012 us=600621 I/O WAIT Tr|Tw|Sr|SW [5/88143]
Mon Oct  8 17:29:40 2012 us=600640 PO_WAIT[0,0] fd=6 rev=0x00000004 rwflags=0x0002 arg=0x7f3560407138 
Mon Oct  8 17:29:40 2012 us=600654  event_wait returned 1
Mon Oct  8 17:29:40 2012 us=600667 I/O WAIT status=0x0002
Mon Oct  8 17:29:40 2012 us=600703 client/$client-ip:61580 UDPv4 WRITE [57] to [AF_INET]$client-ip:61580: P_DATA_V1 kid=0 DATA 00001cd1 00000000 45000030 00004000 3311cf9e 6fdd4d92 c0a8fa06 9c6645d[more...]

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

увы, игры с udp-tcp, tun-tap роли не играют. На практике tap udp без шифрования и сжатия дают максимальный результат 700 кбит на скачку, что при возможной скорости в 80 мегабит вызывает легкое расстройство.

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

Зачем verb9? с verb 3 покажи.

Вот пример конфига, который у меня отлично работает. Она правда со статик ключем, без SSL, но это на скорость не влияет. У клиента всё симметрично + remote.

dev tun4
proto udp
port 1198
topology p2p

mlock
nice -19
fast-io

ifconfig 192.168.254.9 192.168.254.10

mtu-disc maybe
tun-mtu 1500
fragment 1400
mssfix 1400

keepalive 10 120

secret openvpn.key

auth SHA1
cipher AES-128-CBC

user root
group root

persist-key
persist-tun

status /var/log/openvpn-status.log
verb 3

Да, ОСь и версия openvpn?

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

клиент

 openvpn --version
OpenVPN 2.2.0 x86_64-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] [eurephia] [MH] [PF_INET6] [IPv6 payload 20110424-2 (2.2RC2)] built on Jun 16 2011
Originally developed by James Yonan
Copyright (C) 2002-2010 OpenVPN Technologies, Inc. <sales@openvpn.net>

  $ ./configure --enable-pthread --enable-password-save --host=x86_64-linux-gnu --build=x86_64-linux-gnu --prefix=/usr --mandir=${prefix}/share/man --with-ifconfig-path=/sbin/ifconfig --with-route-path=/sbin/route CFLAGS=-g -O2 build_alias=x86_64-linux-gnu host_alias=x86_64-linux-gnu LDFLAGS= CPPFLAGS= --no-create --no-recursion

Compile time defines:  ENABLE_CLIENT_SERVER ENABLE_DEBUG ENABLE_EUREPHIA ENABLE_FRAGMENT ENABLE_HTTP_PROXY ENABLE_MANAGEMENT ENABLE_MULTIHOME ENABLE_PASSWORD_SAVE ENABLE_PORT_SHARE ENABLE_SOCKS USE_CRYPTO USE_LIBDL USE_LZO USE_PF_INET6 USE_PKCS11 USE_SSL 

сервер



openvpn --version
OpenVPN 2.2.1 x86_64-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] [eurephia] [MH] [PF_INET6] [IPv6 payload 20110424-2 (2.2RC2)] built on Mar 30 2012
Originally developed by James Yonan
Copyright (C) 2002-2010 OpenVPN Technologies, Inc. <sales@openvpn.net>

  $ ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --libexecdir=${prefix}/lib/openvpn --disable-maintainer-mode --disable-dependency-tracking CFLAGS=-g -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security CPPFLAGS=-D_FORTIFY_SOURCE=2 CXXFLAGS=-g -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security FFLAGS=-g -O2 LDFLAGS=-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now --enable-password-save --host=x86_64-linux-gnu --build=x86_64-linux-gnu --prefix=/usr --mandir=${prefix}/share/man --with-ifconfig-path=/sbin/ifconfig --with-route-path=/sbin/route

Compile time defines:  ENABLE_CLIENT_SERVER ENABLE_DEBUG ENABLE_EUREPHIA ENABLE_FRAGMENT ENABLE_HTTP_PROXY ENABLE_MANAGEMENT ENABLE_MULTIHOME ENABLE_PASSWORD_SAVE ENABLE_PORT_SHARE ENABLE_SOCKS USE_CRYPTO USE_LIBDL USE_LZO USE_PF_INET6 USE_PKCS11 USE_SSL
kombrig ★★★
() автор топика
Ответ на: комментарий от kombrig

Странно, у меня fast-io не сильно влияет на производительность. Возможно какое-то странное ядро стоит у тебя...

blind_oracle ★★★★★
()

Если интересно, попробуй поиграться с vtun. У меня дает меньшую латентность чем openvpn.

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

Средний пинг через vpn больше прямого пинга сервера на 1 мс, так что это не особо критично.

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