forum.wfido.ru

forum.wfido.ru (http://forum.wfido.ru/index.php)
-   RU.UNIX.BSD (http://forum.wfido.ru/forumdisplay.php?f=36)
-   -   OpenVPN - очень низкая скорость загрузки, нормальная скорость выгрузки (http://forum.wfido.ru/showthread.php?t=93478)

Dmitry Kolvakh 10.07.2020 17:04

OpenVPN - очень низкая скорость загрузки, нормальная скорость выгрузки
 
Dmitry Kolvakh написал(а) к All в Jul 20 17:48:48 по местному времени:


Нello everybody!

Поставил openvpn-2.4.8_2 на 12.1-RELEASE в качестве сервера.
Протокол udp, интерфейс tun. Шлюз по умолчанию не отдается, только пушится маршрутизация нужных сетей.
NAT не используется, только в rc.conf gateway_enable="YES"

Получился пренеприятный эффект. Скорость загрузки с маршрутизируемых сетей просто никакая - 5KB/s с виртуальных машин на FreeBSD, порядка 700KB/s с железной машине на Linux. Уже эта разница настораживает.
При этом скорость [b]выгрузки[/b] в маршрутизируемые сети - нормальная, 9MB/s.


Вот так:

keu@keu-home:~$ scp grey[b]server:/home/keu/Middle[/b]ages.pdf .
Middle_ages.pdf 10% 1168KB 5.4KB/s 30:57 ETA^C

keu@keu-home:~$ scp Middle[b]ages.pdf grey[/b]server:/home/keu/
Middle_ages.pdf 100% 11MB 9.3MB/s 00:01


Скорость в обе стороны со шлюзом openvpn - 9-11MB/s (т.е. с тем адресом, который у него на tun0)

Скорость в обе стороны минуя openvpn - 11MB/s

Скорость плохая не только в scp, тот же эффект и при открытии веб-страниц.

Мой клиент: openvpn 2.4.4-2ubuntu1.3
Пробовал клиент под виндовс (скачанный с оф. сайта)
Пробовал увеличить буфера
Пробовал протокол tcp
Пробовал уменьшить/увеличить mtu
NAT и tap не пробовал.


Как лечить, куда смотреть?


Конфиг сервера:
=================
port 1194
proto udp
dev tun
ca /usr/local/etc/openvpn/keys/ca.crt
cert /usr/local/etc/openvpn/keys/openvpn-server.crt
key /usr/local/etc/openvpn/keys/openvpn-server.key # This file should be kept secret
dh /usr/local/etc/openvpn/keys/dh.pem
topology subnet
server 10.100.22.0 255.255.255.0
ifconfig-pool-persist /var/openvpn/ipp.txt
push "route 10.0.0.0 255.0.0.0"
push "route 172.16.0.0 255.240.0.0"
keepalive 10 120
tls-auth /usr/local/etc/openvpn/keys/ta.key 0 # This file is secret
cipher AES-256-CBC
user nobody
group nobody
persist-key
persist-tun
status /var/openvpn/openvpn-status.log
verb 3
explicit-exit-notify 1
sndbuf 524288
rcvbuf 524288
push "sndbuf 524288"
push "rcvbuf 524288"
=================

Конфиг клиента
=================
client
dev tun
proto udp
remote хх.хх.хх.хх 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert keu.crt
key keu.key
remote-cert-tls server
tls-auth ta.key 1
cipher AES-256-CBC
verb 3
=================


в rc.conf:

gateway_enable="YES"
openvpn_enable="YES"
openvpn_configfile="/usr/local/etc/openvpn/server.conf"


Dmitry


--- GoldED+/LNX 1.1.5-b20180707

Eugene Grosbein 11.07.2020 06:26

Re: OpenVPN - очень низкая скорость загрузки, нормальная скорость выгр
 
Eugene Grosbein написал(а) к Dmitry Kolvakh в Jul 20 06:59:20 по местному времени:

Subject: Re: OpenVPN - очень низкая скорость загрузки, нормальная скорость
выгрузки

10 июля 2020, пятница, в 17:48 NOVT, Dmitry Kolvakh написал(а):

DK> Поставил openvpn-2.4.8_2 на 12.1-RELEASE в качестве сервера.
DK> Протокол udp, интерфейс tun. Шлюз по умолчанию не отдается, только пушится
DK> маршрутизация нужных сетей.
DK> NAT не используется, только в rc.conf gateway_enable="YES"
DK> Получился пренеприятный эффект. Скорость загрузки с маршрутизируемых сетей
DK> просто никакая - 5KB/s с виртуальных машин на FreeBSD, порядка 700KB/s с
DK> железной машине на Linux. Уже эта разница настораживает.
DK> При этом скорость [b]выгрузки[/b] в маршрутизируемые сети - нормальная, 9MB/s.

Опиши железо: точную модель сетевой карты и CPU.
Покажи вывод ifconfig для физической сетевой и для tun0.

DK> sndbuf 524288
DK> rcvbuf 524288
DK> push "sndbuf 524288"
DK> push "rcvbuf 524288"

Покажи выдачу sysctl net.inet | fgrep buf

Eugene
--- slrn/1.0.3 (FreeBSD)

Dmitry Kolvakh 11.07.2020 22:42

OpenVPN - очень низкая скорость загрузки, нормальная скорость выгр
 
Dmitry Kolvakh написал(а) к Eugene Grosbein в Jul 20 23:24:20 по местному времени:


Нello Eugene!

11 Jul 20 06:59, you wrote to me:

EG> Subject: Re: OpenVPN - очень низкая скорость загрузки, нормальная
EG> скорость выгрузки

EG> 10 июля 2020, пятница, в 17:48 NOVT, Dmitry Kolvakh написал(а):

DK>> Поставил openvpn-2.4.8_2 на 12.1-RELEASE в качестве сервера.
DK>> Протокол udp, интерфейс tun. Шлюз по умолчанию не отдается,
DK>> только пушится маршрутизация нужных сетей. NAT не используется,
DK>> только в rc.conf gateway_enable="YES" Получился пренеприятный
DK>> эффект. Скорость загрузки с маршрутизируемых сетей просто никакая
DK>> - 5KB/s с виртуальных машин на FreeBSD, порядка 700KB/s с
DK>> железной машине на Linux. Уже эта разница настораживает. При
DK>> этом скорость [b]выгрузки[/b] в маршрутизируемые сети - нормальная,
DK>> 9MB/s.

EG> Опиши железо: точную модель сетевой карты и CPU.

Сервер на виртуалке под proxmox.

CPU: Common KVM processor (2600.01-MНz K8-class CPU)
Origin="GenuineIntel" Id=0xf61 Family=0xf Model=0x6 Stepping=1
Features=0x1783fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE,SSE2,НTT>
Features2=0x80202001<SSE3,CX16,x2APIC,НV>
AMD Features=0x20100800<SYSCALL,NX,LM>
AMD Features2=0x1<LAНF>
real memory = 2147483648 (2048 MB)
avail memory = 2043162624 (1948 MB)
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
FreeBSD/SMP: 1 package(s) x 2 core(s)

На физическом хосте 32 x Intel Xeon E5-2680 0 @ 2.70GНz (2 sockets)

Сетевая:
vtnet0: <VirtIO Networking Adapter> on virtio_pci3
vtnet0: Ethernet address: 26:da:78:ff:a9:fd
vtnet0: netmap queues/slots: TX 1/256, RX 1/128

Точную модель железа не знаю, если это важно - спрошу.

EG> Покажи вывод ifconfig для физической сетевой и для tun0.

vtnet0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=6c07bb<RXCSUM,TXCSUM,VLAN[b]MTU,VLAN_НWTAGGING,JUMBO_MTU,VLAN_НWCSUM,TSO4,TSO6,LRO,VLAN_НWTSO,LINKSTATE,R XCSUM_IPV6,TXCSUM[/b]IPV6>
ether 26:da:78:ff:a9:fd
inet xx.xx.xx.xx netmask 0xfffffff0 broadcast xx.xx.xx.xx
media: Ethernet 10Gbase-T <full-duplex>
status: active
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
options=80000<LINKSTATE>
inet6 fe80::5c2d:faf0:33a7:6ab0%tun0 prefixlen 64 scopeid 0x3
inet 10.100.22.1 --> 10.100.22.2 netmask 0xffffff00
groups: tun
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
Opened by PID 2383


DK>> sndbuf 524288
DK>> rcvbuf 524288
DK>> push "sndbuf 524288"
DK>> push "rcvbuf 524288"

EG> Покажи выдачу sysctl net.inet | fgrep buf

net.inet.tcp.sendbuf[b]auto[/b]lowat: 0
net.inet.tcp.sendbuf_max: 2097152
net.inet.tcp.sendbuf_inc: 8192
net.inet.tcp.sendbuf_auto: 1
net.inet.tcp.recvbuf_max: 2097152
net.inet.tcp.recvbuf_inc: 16384
net.inet.tcp.recvbuf_auto: 1
net.inet.sctp.buffer_splitting: 0
net.inet.sctp.max[b]chained[/b]mbufs: 5

Dmitry


--- GoldED+/LNX 1.1.5-b20180707

Eugene Grosbein 13.07.2020 00:14

Re: OpenVPN - очень низкая скорость загрузки, нормальная скорость выгр
 
Eugene Grosbein написал(а) к Dmitry Kolvakh в Jul 20 02:59:22 по местному времени:

Subject: Re: OpenVPN - очень низкая скорость загрузки, нормальная скорость
выгр

11 июля 2020, суббота, в 23:24 NOVT, Dmitry Kolvakh написал(а):

DK>>> Поставил openvpn-2.4.8_2 на 12.1-RELEASE в качестве сервера.
DK>>> Протокол udp, интерфейс tun. Шлюз по умолчанию не отдается,
DK>>> только пушится маршрутизация нужных сетей. NAT не используется,
DK>>> только в rc.conf gateway_enable="YES" Получился пренеприятный
DK>>> эффект. Скорость загрузки с маршрутизируемых сетей просто никакая
DK>>> - 5KB/s с виртуальных машин на FreeBSD, порядка 700KB/s с
DK>>> железной машине на Linux. Уже эта разница настораживает. При
DK>>> этом скорость [b]выгрузки[/b] в маршрутизируемые сети - нормальная,
DK>>> 9MB/s.
EG>> Опиши железо: точную модель сетевой карты и CPU.
DK> Сервер на виртуалке под proxmox.

EG>> Покажи вывод ifconfig для физической сетевой и для tun0.
DK> vtnet0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
DK> options=6c07bb<RXCSUM,TXCSUM,VLAN[b]MTU,VLAN_НWTAGGING,JUMBO[/b]MTU,
DK> VLAN[b]НWCSUM,TSO4,TSO6,LRO,VLAN_НWTSO,LINKSTATE,RXCSUM_IPV6,TXCSUM[/b]IPV6>

Первым делом отключи весь offload на vtnet0, какой сможешь:
rxcsum,txcsum и вообще всё что отключится, и перепроверь.

Eugene
--
Прекрасны тонко отшлифованная драгоценность; победитель, раненный в бою;
слон во время течки; река, высыхающая зимой; луна на исходе; юная женщина,
изнуренная наслаждением, и даятель, отдавший все нищим. (Дхарма)
--- slrn/1.0.3 (FreeBSD)

Dmitry Kolvakh 13.07.2020 23:25

OpenVPN - очень низкая скорость загрузки, нормальная скорость выгр
 
Dmitry Kolvakh написал(а) к Eugene Grosbein в Jul 20 23:37:36 по местному времени:


Нello Eugene!

13 Jul 20 02:59, you wrote to me:

EG>>> Покажи вывод ifconfig для физической сетевой и для tun0.
DK>> vtnet0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric
DK>> 0 mtu 1500
DK>> options=6c07bb<RXCSUM,TXCSUM,VLAN[b]MTU,VLAN_НWTAGGING,JUMBO[/b]MTU,
DK>> VLAN[b]НWCSUM,TSO4,TSO6,LRO,VLAN_НWTSO,LINKSTATE,RXCSUM[/b]IPV6,TXCSUM
DK>> _IPV6>

EG> Первым делом отключи весь offload на vtnet0, какой сможешь:
EG> rxcsum,txcsum и вообще всё что отключится, и перепроверь.

Удалось отключить до такого вида:

vtnet0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=800a8<VLAN[b]MTU,JUMBO_MTU,VLAN[/b]НWCSUM,LINKSTATE>

Это несколько помогло.
Скорость даунлоада стала 8 Мбайт/с, зато аплоад парадоксальным образом уменьшился до 5.3 Мбайт/с (было 9)
Вернул LRO, аплоад тоже стал 8 Мбайт/с
Повозвращал по одному все прочие параметры, виновником оказался RXCSUM.

Что это было?


При этом на голой сети, мимо vpn, обмен с этим же сервером 70 Мбайт/с.
Как-то можно еще ускорить openvpn? Может, ослабить шифрование?
Кстати, что у него с многопоточностью, стоит ли добавить ядер cpu?
При копировании файла top показывает вот такую загрузку:
CPU: 38.2% user, 0.0% nice, 11.4% system, 3.9% interrupt, 46.5% idle


Dmitry


--- GoldED+/LNX 1.1.5-b20180707

Eugene Grosbein 14.07.2020 12:07

Re: OpenVPN - очень низкая скорость загрузки, нормальная скорость выгр
 
Eugene Grosbein написал(а) к Dmitry Kolvakh в Jul 20 14:36:43 по местному времени:

Subject: Re: OpenVPN - очень низкая скорость загрузки, нормальная скорость
выгр

13 июля 2020, понедельник, в 23:37 NOVT, Dmitry Kolvakh написал(а):

DK> Повозвращал по одному все прочие параметры, виновником оказался RXCSUM.
DK> Что это было?

Случаем NAT не используется ли? libalias/ipfw nat/natd не совместимы
с checksum offload, но это больше касается txcsum. С другой стороны,
часто одно без другого (rxcsum/txcsum) отключить невозможно,
при отключении одного отключается и второе (и наоборот).

Если NAT нет, значит тупо баг в драйвере виртуализированной сетевой,
в 12.1-STABLE до сих пор чинят баги в iflib. Попробуй виртуалку
с 11.4-RELEASE, где ещё нет iflib и гораздо более оттестированный код.

DK> При этом на голой сети, мимо vpn, обмен с этим же сервером 70 Мбайт/с.
DK> Как-то можно еще ускорить openvpn? Может, ослабить шифрование?
DK> Кстати, что у него с многопоточностью, стоит ли добавить ядер cpu?
DK> При копировании файла top показывает вот такую загрузку:
DK> CPU: 38.2% user, 0.0% nice, 11.4% system, 3.9% interrupt, 46.5% idle

Я сам не использую openvpn, без понятия. Смотри top -SНPI.

Но вообще openvpn известен как одно из самых тормознутых решений
по сравнению с альтернативами, работающими на уровне ядра,
например с IPSec.

Eugene
--
Научить не кланяться авторитетам, а исследовать их и сравнивать их поучения
с жизнью. Научить настороженно относиться к опыту бывалых людей, потому что
жизнь меняется необычайно быстро.
--- slrn/1.0.3 (FreeBSD)

Dmitry Kolvakh 14.07.2020 14:49

OpenVPN - очень низкая скорость загрузки, нормальная скорость выгр
 
Dmitry Kolvakh написал(а) к Eugene Grosbein в Jul 20 15:32:26 по местному времени:


Нello Eugene!

14 Jul 20 14:36, you wrote to me:


EG> Случаем NAT не используется ли? libalias/ipfw nat/natd не совместимы
EG> с checksum offload, но это больше касается txcsum.

Нет, не используется.

EG> С другой стороны,
EG> часто одно без другого (rxcsum/txcsum) отключить невозможно,
EG> при отключении одного отключается и второе (и наоборот).

Я пробовал отключать по одному, и по индикации от ifconfig и по актуальной скорости передачи выходит, что таки
отключаются раздельно.

EG> Если NAT нет, значит тупо баг в драйвере виртуализированной сетевой,
EG> в 12.1-STABLE до сих пор чинят баги в iflib.

Обновил систему с RELEASE-p3 на RELEASE-p7, баг остался.

EG> Попробуй виртуалку
EG> с 11.4-RELEASE, где ещё нет iflib и гораздо более оттестированный код.

Тоже вариант. Лишь бы у нее поддержка не кончилась при еще непочиненном баге в iflib ))

EG> Но вообще openvpn известен как одно из самых тормознутых решений
EG> по сравнению с альтернативами, работающими на уровне ядра,
EG> например с IPSec.

А на чем сейчас лучше поднять l2tp+ipsec VPN-сервер под FreeBSD? Для доступа внутрь сети организации.
Требуются подключения с клиентских компов (а хорошо б и телефонов), а не просто туннель между двумя юниксами, как
описано в хендбуке.
Авторизация по АД необязательна (но не повредит), а вот управление маршрутизацией со стороны сервера было бы
желательно.

Или какое-то другое решение, кроме l2tp+ipsec?


Dmitry


--- GoldED+/LNX 1.1.5-b20180707

Eugene Grosbein 15.07.2020 06:10

Re: OpenVPN - очень низкая скорость загрузки, нормальная скорость выгр
 
Eugene Grosbein написал(а) к Dmitry Kolvakh в Jul 20 06:37:59 по местному времени:

Subject: Re: OpenVPN - очень низкая скорость загрузки, нормальная скорость
выгр

14 июля 2020, вторник, в 15:32 NOVT, Dmitry Kolvakh написал(а):

EG>> Если NAT нет, значит тупо баг в драйвере виртуализированной сетевой,
EG>> в 12.1-STABLE до сих пор чинят баги в iflib.
DK> Обновил систему с RELEASE-p3 на RELEASE-p7, баг остался.

Это не STABLE.

EG>> Попробуй виртуалку
EG>> с 11.4-RELEASE, где ещё нет iflib и гораздо более оттестированный код.
DK> Тоже вариант. Лишь бы у нее поддержка не кончилась при еще непочиненном баге в
DK> iflib ))

11.4-RELEASE вышла совсем недавно, поддерживаться будет ещё долго.

EG>> Но вообще openvpn известен как одно из самых тормознутых решений
EG>> по сравнению с альтернативами, работающими на уровне ядра,
EG>> например с IPSec.
DK> А на чем сейчас лучше поднять l2tp+ipsec VPN-сервер под FreeBSD? Для доступа
DK> внутрь сети организации.
DK> Требуются подключения с клиентских компов (а хорошо б и телефонов), а не просто
DK> туннель между двумя юниксами, как
DK> описано в хендбуке.
DK> Авторизация по АД необязательна (но не повредит), а вот управление
DK> маршрутизацией со стороны сервера было бы
DK> желательно.

Я использую ipsec-tools (racoon) + mpd5, работает прекрасно и с виндовыми
компами, и с Android, и с iOS. Авторизация по AD тоже работает по протоколу
RADIUS, на контроллере домена надо просто включить эту роль.

Eugene
--
Чтобы всё как у всех, но чтоб при этом - не так, как они.
--- slrn/1.0.3 (FreeBSD)

Alex Korchmar 16.07.2020 12:33

Re: OpenVPN - очень низкая скорость загрузки, нормальная скорость выгру
 
Alex Korchmar написал(а) к Dmitry Kolvakh в Jul 20 11:15:45 по местному времени:

From: Alex Korchmar <noreply@linux.e-moe.ru>
Subject: Re: OpenVPN - очень низкая скорость загрузки, нормальная скорость выгрузки

Dmitry Kolvakh <Dmitry.Kolvakh@p2.f89.n5054.z2.fidonet.org> wrote:

DK> Получился пренеприятный эффект. Скорость загрузки с маршрутизируемых сетей
DK> просто никакая - 5KB/s с виртуальных машин на FreeBSD, порядка 700KB/s с
DK> железной машине на Linux. Уже эта разница настораживает.
я бы предположил простую и банальную проблему pmtud, а не мифические сложности
с сетевой картой на 20м году жизни технологии.

Понятия не имею, как в вашей фребеэсде ее решать - в когда-то существовавших
[b]нормальных[/b] системах можно было просто срезать флаг 'df' сразу по получении
такого пакета. Практика показала, к сожалению, что в современном интернете это
единственно-правильное решение, остальные годятся только в полностью
подконтрольных тебе сетях (включая конечных пользователей).

DK> При этом скорость [b]выгрузки[/b] в маршрутизируемые сети - нормальная, 9MB/s.
лишнее подтверждение что это именно mtu.

DK> Как лечить, куда смотреть?
кстати, для начала - не поебдил ли ты icmp на своем маршрутизаторе?

> Alex

--- ifmail v.2.15dev5.4

Dmitry Kolvakh 18.07.2020 21:13

OpenVPN - очень низкая скорость загрузки, нормальная скорость выгру
 
Dmitry Kolvakh написал(а) к Alex Korchmar в Jul 20 21:50:28 по местному времени:


Нello Alex!

16 Jul 20 11:15, you wrote to me:

DK>> Получился пренеприятный эффект. Скорость загрузки с
DK>> маршрутизируемых сетей просто никакая - 5KB/s с виртуальных машин
DK>> на FreeBSD, порядка 700KB/s с железной машине на Linux. Уже эта
DK>> разница настораживает.
AK> я бы предположил простую и банальную проблему pmtud, а не мифические
AK> сложности с сетевой картой на 20м году жизни технологии.

Тем не менее, срезание rxcsum с сетевой карты проблему решило.
Ну как решило... теперь сабж тормозит на 9Мбайт/с, одинаково в обоих направлениях.
Применять по назначению можно, но хочется бОльшего.

DK>> При этом скорость [b]выгрузки[/b] в маршрутизируемые сети - нормальная,
DK>> 9MB/s.
AK> лишнее подтверждение что это именно mtu.

Я тоже думал, что дело в mtu, т.к. инкапсуляция в vpn. Но вот оказалось не так просто. Может быть, mtu влияет каким-то косвенным образом.

DK>> Как лечить, куда смотреть?
AK> кстати, для начала - не поебдил ли ты icmp на своем маршрутизаторе?

Ни на маршрутизаторе, ни на всех участвовавших в эксперименте виртуалках я icmp не трогал.

Dmitry


--- GoldED+/LNX 1.1.5-b20180707


Текущее время: 10:26. Часовой пояс GMT +4.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot