#1
|
|||
|
|||
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. Уже эта разница настораживает. При этом скорость выгрузки в маршрутизируемые сети - нормальная, 9MB/s. Вот так: keu@keu-home:~$ scp greyserver:/home/keu/Middleages.pdf . Middle_ages.pdf 10% 1168KB 5.4KB/s 30:57 ETA^C keu@keu-home:~$ scp Middleages.pdf greyserver:/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 |
#2
|
|||
|
|||
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> При этом скорость выгрузки в маршрутизируемые сети - нормальная, 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) |
#3
|
|||
|
|||
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>> этом скорость выгрузки в маршрутизируемые сети - нормальная, 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,VLANMTU,VLAN_НWTAGGING,JUMBO_MTU,VLAN_НWCSUM,TSO4,TSO6,LRO,VLAN_НWTSO,LINKSTATE,R XCSUM_IPV6,TXCSUMIPV6> 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.sendbufautolowat: 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.maxchainedmbufs: 5 Dmitry --- GoldED+/LNX 1.1.5-b20180707 |
#4
|
|||
|
|||
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>>> этом скорость выгрузки в маршрутизируемые сети - нормальная, 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,VLANMTU,VLAN_НWTAGGING,JUMBOMTU, DK> VLANНWCSUM,TSO4,TSO6,LRO,VLAN_НWTSO,LINKSTATE,RXCSUM_IPV6,TXCSUMIPV6> Первым делом отключи весь offload на vtnet0, какой сможешь: rxcsum,txcsum и вообще всё что отключится, и перепроверь. Eugene -- Прекрасны тонко отшлифованная драгоценность; победитель, раненный в бою; слон во время течки; река, высыхающая зимой; луна на исходе; юная женщина, изнуренная наслаждением, и даятель, отдавший все нищим. (Дхарма) --- slrn/1.0.3 (FreeBSD) |
#5
|
|||
|
|||
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,VLANMTU,VLAN_НWTAGGING,JUMBOMTU, DK>> VLANНWCSUM,TSO4,TSO6,LRO,VLAN_НWTSO,LINKSTATE,RXCSUMIPV6,TXCSUM DK>> _IPV6> EG> Первым делом отключи весь offload на vtnet0, какой сможешь: EG> rxcsum,txcsum и вообще всё что отключится, и перепроверь. Удалось отключить до такого вида: vtnet0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=800a8<VLANMTU,JUMBO_MTU,VLANН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 |
#6
|
|||
|
|||
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) |
#7
|
|||
|
|||
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 |
#8
|
|||
|
|||
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) |
#9
|
|||
|
|||
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м году жизни технологии. Понятия не имею, как в вашей фребеэсде ее решать - в когда-то существовавших нормальных системах можно было просто срезать флаг 'df' сразу по получении такого пакета. Практика показала, к сожалению, что в современном интернете это единственно-правильное решение, остальные годятся только в полностью подконтрольных тебе сетях (включая конечных пользователей). DK> При этом скорость выгрузки в маршрутизируемые сети - нормальная, 9MB/s. лишнее подтверждение что это именно mtu. DK> Как лечить, куда смотреть? кстати, для начала - не поебдил ли ты icmp на своем маршрутизаторе? > Alex --- ifmail v.2.15dev5.4 |
#10
|
|||
|
|||
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>> При этом скорость выгрузки в маршрутизируемые сети - нормальная, DK>> 9MB/s. AK> лишнее подтверждение что это именно mtu. Я тоже думал, что дело в mtu, т.к. инкапсуляция в vpn. Но вот оказалось не так просто. Может быть, mtu влияет каким-то косвенным образом. DK>> Как лечить, куда смотреть? AK> кстати, для начала - не поебдил ли ты icmp на своем маршрутизаторе? Ни на маршрутизаторе, ни на всех участвовавших в эксперименте виртуалках я icmp не трогал. Dmitry --- GoldED+/LNX 1.1.5-b20180707 |