LINUX.ORG.RU
ФорумAdmin

Can`t brake 200Mbs используя OpenVPN между двумя Ubuntu 16.04.

 , , , ,


2

5

Добрый вечер, коллеги!

Из названия наверное стало понятно о чем идет речь. Кратко - есть канал 500Мбитс, по нему используя OpenVPN соединяются два виртуальных сервера на Ubuntu 16.04, процессоры x5670(сервер) и x5645(клиент), выделено по 4 ядра, проблема в том что больше 200Мбитс прокачать не получается.

Сначала думал что это из-за слабости x5645, он при 200Мбтс показывает загрузку CPU 70-80%, в то же время x5670 - 40%. Добавляю еще один туннель, соединяю оба в bond0 на двух сторонах. И что вы думаете? Загрузка CPU разделилась на 2 ядра (по 30-50%), но скорость осталась 200Мбитс! Один раз обнаружил что скорость резко увеличилась в двое до 400-450Мбитс, думал что наконец-то победил, с тех пор уже неделю подобный эффект не наблюдаю, как было 200 так и есть. Что это было, не пойму, настройки не менялись.

На форуме openvpn.net народ молчит. Дабы не засорять тему, вот ссылка на мою тему с настройками openvpn и bonding которые я использую: https://forums.openvpn.net/viewtopic.php?f=4&t=23028&p=66418#p66418 Если запрещено указывать ссылки на чужие ресурсы, перенесу сюда.

Прощу помощи!

Дурацкая идея, наверное, но попробуй сделать 4 тоннеля. Может процессор с гипертредингом, и тебе попадались два логических ядра с одного физического.

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

comp-lzo

Добавлю, что тестировал с разными шифрованиями, с comp-lzo и без - разницы ноль, полка 200Мбс.

4 туннеля, идея интересная, можно попробовать.

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

Первым эе комментарием тебе посоветовали tun. Ты пробовал?

tailgunner ★★★★★
()

Трафик по двум каналам бондинга от одного клиента просто так не пойдёт.

Попробуй посмотреть в сторону wireguard ещё. Всё-таки, не юзерспейс.

post-factum ★★★★★
()

Просто openvpn не умеет в многоядерность. Если припинить процесс на одно ядро, можно выжать ещё немного скорости для одного канала.
Можно поднять общую производительность для нескольких каналов, раскидывая подключения по разным процессам openvpn.

Deleted
()
Ответ на: комментарий от post-factum

По ссылке на форум openvpn есть скриншоты. Трафик идет по двум интерфейсам, это говорит статистика ifconfig и nload во время загрузки.

tun пробовал, так же 200Мбс, тем более tun не объединяются в bond, по крайней мере везде пишут что нельзя поэтому не стал делать.

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

Выкладываю конфиги. Увеличение буффера до 3-6МБ к увеличению скорости не приводит.

Server:

port 1195 - (интерфейс tap0)
port 1193 - (интерфейс tap1)
proto udp
dev tap

ca ca.crt
cert server.crt
key server.key
dh dh1024.pem

server 172.16.8.0 255.255.255.128 - (интерфейс tap0)
server 172.16.8.158 255.255.255.128 - (интерфейс tap1)
client-config-dir ccd

sndbuf 3145728
rcvbuf 3145728
push "sndbuf 3145728"
push "rcvbuf 3145728"

cipher AES-128-CBC
auth none
comp-lzo yes
push "comp-lzo yes"

Client:

client
dev tap
proto udp
remote 10.10.10.1 1195

resolv-retry infinite
nobind

ca ca.crt
cert client.crt
key client.key
remote-cert-tls server

cipher AES-128-CBC
auth none
pull

Настройки bond:

# Tap interfaces
auto tap0
iface tap0 inet manual
pre-up openvpn --mktun --dev tap0
post-down openvpn --rmtun --dev tap0

auto tap1
iface tap1 inet manual
pre-up openvpn --mktun --dev tap1
post-down openvpn --rmtun --dev tap1

# Bonding interfaces
auto bond0
iface bond0 inet static
 address 172.16.9.1
 netmask 255.255.255.252
 bond-slaves none
 bond-mode 802.3ad
 bond_xmit_hash_policy layer3+4
# bond-mode balance-rr
 bond-miimon 100
 bond-downdelay 200
 bond-updelay 200
ArthurX
() автор топика
Ответ на: комментарий от ArthurX

cipher AES-128-CBC

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

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

Похоже с каналом что-то не то. Сделал тесты iperf3.

Сервер: iperf3 -s -p 443

Клиент: iperf3 -c x.x.x.x(внешний IP) -p 443 -n 500m -i 1s

[ ID] Interval Transfer Bandwidth Retr

[ 4] 0.00-31.17 sec 500 MBytes 135 Mbits/sec 115 sender

[ 4] 0.00-31.17 sec 498 MBytes 134 Mbits/sec receiver

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

Попробуй наоборот поставить нормальное шифрование, разницы быть не должно. В процессор, если он чем-то другим не загружен, в принципе ты упираться не должен. Также посмотри тут:
https://habrahabr.ru/post/246953/ Вот у меня например:

dh dh4096.pem
proto udp
sndbuf 393216
rcvbuf 393216
comp-lzo
fast-io
push "sndbuf 393216"
push "rcvbuf 393216"
tls-auth ta.key number
auth SHA512
cipher AES-256-CBC
txqueuelen 1000 (в твоем случае можно попробовать больше)
И да если хосты в разных физических локациях, то это хороший результат, и да я ценю latency больше скорость. Ну и порт используй не дефолтный, вдруг порт провайдер шейпит. AES весь аппаратно идет, так что нагрузки сильной не должно быть.

0.00-31.17 sec 500 MBytes 135 Mbits/sec 115 sender
-p 443
полка 200Мбс.

Весело

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

Покрутите в iperf размер окна, — скорее всего сможете добиться лучших результатов. После того как определите оптимальный размер — используйте его как значение rcvbuf/sndbuf.

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

sndbuf 393216
rcvbuf 393216
push «sndbuf 393216»
push «rcvbuf 393216»

вот от такого у меня тупняки в канале всегда были.

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

Сильно от канала зависит. Универсальных настроек тут быть не может.

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

Коллеги, надоело мучить себя и сервера. Написал в ТП провайдера обращение. Даже speedtest показывает upload 130Мбитс, то есть совпадает 1в1 с моим тестом iperf. Был один день когда скорость была до 450Мбитс, оба ядра были загружены по 55%, видимо в этот день у провайдера что-то «сломалось» и потом он это «удачно» пофиксил вернув нас к 200Мбитс.

Про openvpn прочитал уже от и до, про bonding тоже. Очень полезные статьи: http://bezopasnik.org/linux/dok/common/11.htm https://community.openvpn.net/openvpn/wiki/Gigabit_Networks_Linux

AES-NI включать не надо, процессор поддерживает по умолчанию.

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

Победа! (надеюсь)

https://img-fotki.yandex.ru/get/30752/25891105.6/0_a58b0_c99f42ba_orig.png

Добился у своего провайдера снятия ограничений (у нас 500Мбитс), скорость резко возросла до 400-450Мбитс. Через некоторое время попросил вернуть ограничения - скорость осталась в районе 400-450Мбитс. Подозреваю что был косяк с шейпером у провайдера. Надеюсь это победа!

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