SSH와 비교하여 VPN을 통한 전송 속도가 70% 느려지는 문제를 해결하시겠습니까? (OpenVPN, IPSec/L2TP, OpenSSH, SoftEther 테스트)

SSH와 비교하여 VPN을 통한 전송 속도가 70% 느려지는 문제를 해결하시겠습니까? (OpenVPN, IPSec/L2TP, OpenSSH, SoftEther 테스트)

현재 나가는 연결과 들어오는 연결이 모두 필요한 두 VPS 사이에 사이트 간 VPN을 구성하고 있습니다. 고대역폭 애플리케이션에서 사용되므로 연결을 통해 얻을 수 있는 최대 속도가 필요합니다.

iperf3를 사용하면 ~30ms 핑으로 연결을 통해 약 600Mbit/s를 안정적으로 얻을 수 있습니다.

OpenSSH SCP를 통해 약 260Mbit/s를 얻었는데, 추가 암호화를 고려하면 만족스럽습니다.

저는 주로 OpenVPN을 사용하여 다양한 종류의 VPN 구성을 시도해 왔습니다. sndbuf/rcvbuf 변경, 암호화 없음, 압축 없음을 시도했지만 여전히 일반적으로 포트 443에서 UDP의 경우 20Mbit, TLS의 경우 40Mbit만 얻습니다.

또한 IPSec/L2TP, SoftEther(500Kbit/s 정도만 얻었지만) 및 OpenSSH 내장 tun 어댑터도 설정했습니다. 이들 중 어느 것도 40Mbit/s 이상의 iperf 속도를 제공할 수 없었습니다.

각 노드의 HDD와 CPU를 유심히 관찰해 보았는데 둘 다 포화 상태는 아니었습니다. 한 서버는 성능이 훨씬 떨어지지만 테스트 중에 CPU 사용량이 최대 30%에 도달했습니다.

나는 좀 당황스럽다. 200Mbit/s 이상의 속도를 달성할 수 있고(확실히 가능하다는 것을 알고 있음) 하나의 가상 인터페이스에서 다른 가상 인터페이스로 라우팅할 수 있는 것이 필요합니다. 이론적으로 이것이 SoftEther의 목적입니다. 실제 속도를 얻으려면 SoftEther를 계속 수정해야 합니까?

견고한 터널 인터페이스를 시작하고 실행하기 위해 테스트/디버깅/구성에 대한 추가 측면에 대한 제안 사항이 있습니까? 일반 프록시와 유사한 터널을 사용할 수 있도록 들어오는 연결을 라우팅하는 데 도움이 되는 또 다른 소프트웨어가 있습니까? 감사해요!

답변1

댓글에 게시된 링크를 보고 저는 이 openvpn 기사를 다시 살펴보기로 결정했습니다. https://community.openvpn.net/openvpn/wiki/Gigabit_Networks_Linux

이 기사의 몇 가지 설정을 사용하여 평균 ~150Mbit/s를 달성할 수 있었습니다. 이를 달성하기 위해 OpenVPN을 구성하기 위해 취한 단계는 다음과 같습니다.

제가 시도한 단계는 다음과 같습니다.

  • 기본 설정(AES-128 포함): 14.7Mbit/s
  • mssfix 0, tun-mtu 6000, 조각 0 활성화: 16.3Mbit/s
  • '암호 없음' 설정: 17.7Mbit/s
  • AES-128, tun-mtu 9000으로 돌아가기: 22.0Mbit/s
  • tun-mtu 18000: 27.2Mbit/s
  • tun-mtu 36000: 37.2Mbit/s
  • tun-mtu 60000: 44.9Mbit/s
  • '암호화 BF-CBC' 설정(큰 차이 없음): 44.0Mbit/s
  • 서버 및 클라이언트의 sndbuf 393216, rcvbuf 393216: 67.1Mbit/s
  • Linux UDP Recv 버퍼의 크기 증가: 102Mbit/s
  • iperf3 [...] -P 10 10개의 병렬 연결을 활성화하려면: SUM:135메가비트/초 - 170메가비트/초

최종 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

내가 배운 것

  • 내 네트워크는 tun-mtu 증가로 인해 상당한 이점을 얻었습니다.
  • UDP 혼잡은 큰 문제입니다. Linux UDP recvbuf를 늘리면 UDP 성능이 크게 향상되었습니다. iperf에서 재전송된 패킷은 정체가 여전히 문제임을 보여줍니다.개선을 위한 제안을 주시면 감사하겠습니다.
  • 병렬 iperf3 연결은 속도를 더욱 높이는 데 도움이 되었습니다.
  • CPU 코어가 100% 미만으로 유지되는 한 암호는 실제로 성능에 큰 영향을 미치지 않습니다.
  • 기가비트 속도를 달성하는 개방형 인터넷을 통해 VPN을 구성하는 것은 어렵습니다.
  • 이는 여전히 일반 네트워크 성능의 1/6 수준입니다.

관련 정보