В настоящее время я настраиваю VPN типа "сеть-сеть" между двумя VPS, для чего требуются как исходящие, так и входящие соединения. Он будет использоваться приложением с высокой пропускной способностью, поэтому мне нужна максимальная скорость, которую я могу получить через соединение.
Используя iperf3, я надежно получаю около 600 Мбит / с по соединению с пингом ~ 30 мс.
По OpenSSH SCP я получаю около 260 Мбит / с, что меня устраивает, учитывая дополнительное шифрование.
Я пробовал различные конфигурации VPN, в основном с OpenVPN. Я пробовал изменения sndbuf / rcvbuf, без шифрования, без сжатия, но я все еще обычно получаю только 20 Мбит с UDP, 40 Мбит с TLS на порту 443.
Я также установил IPSec / L2TP, SoftEther (хотя у меня было всего около 500 Кбит / с) и встроенный адаптер Tun OpenSSH. Ни один из них не смог дать мне скорость iperf выше 40 Мбит / с.
Я внимательно следил за жестким диском и процессором каждого узла, и ни один из них не был перегружен. Один сервер значительно менее мощный, но во время теста использует только ~ 30% ЦП.
Я как бы в растерянности. Мне нужно что-то, что может достичь скорости выше 200 Мбит / с (что я точно знаю, возможно), и просто нужно маршрутизировать от одного виртуального интерфейса к другому. Теоретически SoftEther и предназначен для этого. Должен ли я продолжать попытки исправить SoftEther, чтобы получить какие-либо реальные скорости?
Есть ли предложения по дополнительным аспектам тестирования / отладки / настройки, чтобы попытаться запустить надежный туннельный интерфейс? Есть ли другое программное обеспечение, которое поможет маршрутизировать входящие соединения, чтобы я мог использовать обычный прокси-подобный туннель? Спасибо!
Учитывая ссылку, размещенную в комментариях, я решил еще раз взглянуть на эту статью об openvpn: https://community.openvpn.net/openvpn/wiki/Gigabit_Networks_Linux
Я смог достичь в среднем ~ 150 Мбит / с, используя пару настроек из этой статьи. Вот шаги, которые я предпринял, чтобы настроить OpenVPN для достижения этой цели.
Вот шаги, которые я пробовал по порядку:
Вот окончательный вывод iperf3:
64 bytes from 10.8.0.1: icmp_seq=1 ttl=64 time=37.2 ms
$ iperf3 -c 10.8.0.1 -p 5201
Connecting to host 10.8.0.1, port 5201
[ 4] local 10.8.0.2 port 59230 connected to 10.8.0.1 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 10.3 MBytes 86.5 Mbits/sec 2 632 KBytes
[ 4] 1.00-2.00 sec 12.0 MBytes 101 Mbits/sec 7 569 KBytes
[ 4] 2.00-3.00 sec 11.4 MBytes 95.8 Mbits/sec 7 443 KBytes
[ 4] 3.00-4.00 sec 10.9 MBytes 91.2 Mbits/sec 5 443 KBytes
[ 4] 4.00-5.00 sec 11.7 MBytes 98.4 Mbits/sec 2 759 KBytes
[ 4] 5.00-6.00 sec 13.0 MBytes 109 Mbits/sec 6 822 KBytes
[ 4] 6.00-7.00 sec 13.5 MBytes 113 Mbits/sec 5 696 KBytes
[ 4] 7.00-8.00 sec 13.9 MBytes 117 Mbits/sec 6 696 KBytes
[ 4] 8.00-9.00 sec 11.8 MBytes 98.9 Mbits/sec 5 696 KBytes
[ 4] 9.00-10.00 sec 12.5 MBytes 105 Mbits/sec 4 696 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 121 MBytes 102 Mbits/sec 49 sender
[ 4] 0.00-10.00 sec 120 MBytes 101 Mbits/sec receiver
По сравнению с прямым подключением без VPN:
$ iperf3 -c [...] -p 5201
Connecting to host [...], port 5201
[ 4] local [...] port 52172 connected to [...] port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 51.9 MBytes 435 Mbits/sec 0 3.03 MBytes
[ 4] 1.00-2.00 sec 73.3 MBytes 615 Mbits/sec 0 3.03 MBytes
[ 4] 2.00-3.00 sec 73.3 MBytes 615 Mbits/sec 0 3.03 MBytes
[ 4] 3.00-4.00 sec 72.7 MBytes 610 Mbits/sec 0 3.03 MBytes
[ 4] 4.00-5.00 sec 72.1 MBytes 605 Mbits/sec 0 3.03 MBytes
[ 4] 5.00-6.00 sec 73.7 MBytes 619 Mbits/sec 0 3.03 MBytes
[ 4] 6.00-7.00 sec 75.0 MBytes 629 Mbits/sec 0 3.03 MBytes
[ 4] 7.00-8.00 sec 72.5 MBytes 608 Mbits/sec 0 3.03 MBytes
[ 4] 8.00-9.00 sec 74.9 MBytes 628 Mbits/sec 0 3.03 MBytes
[ 4] 9.00-10.00 sec 72.6 MBytes 609 Mbits/sec 0 3.03 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 712 MBytes 597 Mbits/sec 0 sender
[ 4] 0.00-10.00 sec 710 MBytes 596 Mbits/sec receiver
Что я выучил