Есть vps с CentOS с установленым openvpn сервер.
По тунелю от сервера к клиенту очень низкая скорость 32Кb от клиента к серверу ~2Mb что в целом нормально. Игрался с параметрами mtu и другими опциями результата ноль. Скорость проверял scp. Есть подозрение что гдето ограничение в самой системе на сервере но где непонятно.
Вот конфиг сервера:
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
Попробуй добавить
tun-mtu 1500
fragment 1200
mssfix 1200
sndbuf 131072
rcvbuf 131072на клиенте и сервере.
Без изменений.
> Без изменений.А без VPN-я скорость нормальная? Пинг большими пакетами и т. д.?
Да без тунеля все ок, пинг нормальный, пинговал пакетами по 1472 как по тунелю так и без, проблем нет. Система не нагружена абсолютно ничем, tcpdump показывает что уже в tun пакеты влетают с большими задержками.
Поиграйтесь с шифрованием, поставьте принудительно
cipher AES-128-CBC
> Поиграйтесь с шифрованием, поставьте принудительно
> cipher AES-128-CBCУ меня тоже такая фигня была, вроде сейчас выжимает все мои мегабиты.
Но бывает проседает канал, видимо это связанно с провайдерами. Так как, я с домашнего компа соединяюсь с рабочим. На работе и дома провайдеры разные.Вот конфиг сервера:
######### Start config ###########
tls-server
server 192.168.100.0 255.255.255.0
persist-key
persist-tun
status openvpn-status.log
client-config-dir /etc/openvpn/ccd
push "route 10.168.50.0 255.255.255.0"
duplicate-cn
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/vpnserver.crt
key /etc/openvpn/keys/vpnserver.key
dh /etc/openvpn/keys/dh1024.pem
##Tuning Speed##
#cipher none
tcp-nodelay
#comp-lzo
fast-io
tun-mtu 1500
mssfix
fragment 1200
keepalive 15 120
######### End config ###########Вот конфиг клиента:
######### Start config ###########
client
tls-client
verb 3
dev tun
proto udp
remote 123.123.123.123 1194
nobind
persist-key
persist-tun
ca ca1.crt
cert client03.crt
key client03.key
##Tuning Speed##
#cipher none
#comp-lzo
tun-mtu 1500
mssfix
fragment 1200
######### End config ###########
> Поиграйтесь с шифрованием, поставьте принудительно
> cipher AES-128-CBCС каналом проблем нет ето точно, и шифрование не помогло.
>> Поиграйтесь с шифрованием, поставьте принудительно
>> cipher AES-128-CBC
> С каналом проблем нет ето точно, и шифрование не помогло.Проверьте канал iperf'ом и посмотрите во время проверки загрузку cpu mpstat'ом.
>>> Поиграйтесь с шифрованием, поставьте принудительно
>>> cipher AES-128-CBC
>> С каналом проблем нет ето точно, и шифрование не помогло.
> Проверьте канал iperf'ом и посмотрите во время проверки загрузку cpu mpstat'омКак я писал выше нагрузки нет, вот вывод mpstat во время скачивания через vpn.
08:23:10 AM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
08:23:11 AM all 0.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 99.00
08:23:12 AM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
08:23:13 AM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
08:23:14 AM all 0.00 0.00 0.00 0.00 0.00 0.00 4.76 0.00 95.24
08:23:15 AM all 0.99 0.00 0.99 0.00 0.00 0.00 0.00 0.00 98.02
08:23:16 AM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
08:23:17 AM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
08:23:18 AM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
Переведите соединение на tcp, tun - на tap, уберите шифрование, снимите tcpdump'ом трафик и оцените, есть ли tcp retransmit или какие-то другие проблемы (фрагментация, рассогласование mss/congestion window).
Может быть, у провайдера настроена "урезка" такого типа трафика?
В конечном итоге, можно попробовать поднять просто нешифрованный GRE туннель и посмотреть скорость так. Есть адекватно - зашифровать ipsec и снова померить.
> В конечном итоге, можно попробовать поднять просто нешифрованный GRE туннель и посмотреть
> скорость так. Есть адекватно - зашифровать ipsec и снова померить.Спасибо всем большое! Перевод на tap решил проблему, но есть желание узнать в чом была проблема. Не поскажете куда смотреть?
>> В конечном итоге, можно попробовать поднять просто нешифрованный GRE туннель и посмотреть
>> скорость так. Есть адекватно - зашифровать ipsec и снова померить.
> Спасибо всем большое! Перевод на tap решил проблему, но есть желание узнать
> в чом была проблема. Не поскажете куда смотреть?Можно попробовать вернуть обратно на tun и снять дамп трафика tcpdump'ом для анализа. Возможно, фрагментация, или проблемы с mss (мерили скорость по tcp ведь?).