Testy wydajności OPNsense z OpenVPN

Z Thomas-Krenn-Wiki
Przejdź do nawigacji Przejdź do wyszukiwania

Bezpłatny firewall OPNsense oferuje różne opcje konfiguracji połączenia VPN. Domyślnie OPNsense obsługuje połączenia IPsec i OpenVPN. Techniki te mogą być wykorzystywane m.in. do statycznego połączenia dwóch lokalizacji za pomocą połączenia site-to-site. Wybór techniki szyfrowania jest zależy w dużym stopniu od wymaganej przepustowości. Ten artykuł przedstawia wyniki naszych testów wydajności z iperf i OpenVPN, przy użyciu połączenia site-to-site. Przetestowaliśmy również wydajność sieci VPN przy użyciu technologii IPsec. Szczegółowe wyniki tych testów można znaleźć w artykule Testy wydajności OPNsense z IPsec.

Porównanie wydajności systemów LES compact 4L i LES network+ firmy Thomas-Krenn.

Środowisko testowe

Wykorzystana w tych testach instalacja testowa składa się z dwóch systemów firewall z oprogramowaniem OPNsense, z których każdy posiada po stronie sieci LAN jeden system kliencki. Oba firewalle są podłączone do switcha za pośrednictwem interfejsu WAN. Na obu firewallach użyto aktualnej, w momencie przeprowadzania testów, wersji OPNsense. Na systemach klienckich w czasie testów użyto aktualnego oprogramowania Ubuntu Server LTS. Więcej informacji na ten temat można znaleźć w sekcjach z wynikami testów.

Testy

Poniżej są wymienione użyte komponenty, parametry i opisany sposób przeprowadzania testów.

Oprogramowanie wykorzystane w testach

Do testów wydajności wykorzystano iperf w wersji 2.0.10, zainstalowany na systemach klienckich.

$ iperf -v
iperf version 2.0.10 (2 June 2018) pthreads

Parametry w testach

Wszystkie testy zostały przeprowadzone z następującymi parametrami:

  • Server: iperf -p 5000 -f m -s
  • Client: iperf -p 5000 -f m -c <IP-serwera> -t 180 -P 10

Procedura testowa

Na kliencie 1 po stronie 1 zostaje uruchomiony iperf w trybie serwera, a na kliencie po drugiej stronie zostaje uruchomiony iperf w trybie klienta. Umożliwia to określenie prędkości przesyłania danych ze strony klienta na stronę serwera. Aby zmierzyć wydajność pobierania, strona serwera i strona klienta zostały zamienione. Przeprowadzono 10 testów ładowania (upload) i 10 testów pobierania (download). Uzyskane wartości dodano i obliczono ich średnią. To samo dotyczy zmierzonego obciążenia systemów.

Ustawienia w OpenVPN

W testach zostały zastosowane następujące ustawienia:

  • Server Mode: Peer to Peer (SSL/TLS)
  • Protocol: UDP
  • TLS Authentication: 2048 bit
  • DH Parameters Length: 4096 bit
  • Encryption algorithm: AES-128-GCM
  • Auth Digest Algorithm: SHA256 (256-bit)

Wyniki testów OpenVPN z TLS

W poniższych tabelach są przedstawione wyniki testów, z podziałem na zastosowany firewall. Jako tryb serwera OpenVPN została wybrana opcja Peer to Peer (SSL/TLS), która w przeciwieństwie do opcji Pre-Shared-Key pozwala na zastosowanie szyfrowania bazującego na AES GCM.[1]

Środowisko testowe z Supermicro X11SSH-LN4F i systemem Thomas-Krenn LES compact 4L

Poniższa tabela przedstawia komponenty zastosowane w testach z płytą główną Supermicro X11SSH-LN4F i systemem Thomas-Krenn LES compact 4L:

Rola Sprzęt Informacje o BIOS-ie Oprogramowanie
Firewall strona 1
  • Płyta główna: Supermicro X11SSH-LN4F
  • CPU: Intel Xeon E3-1230 v6 (4 core)
  • RAM: 4 GB
  • Wersja: 2.2
  • Konfiguracja BIOS-u
    • Hyper Threading: Disabled
  • Wersja OPNsense:
    • OPNsense 19.1.7-amd64
    • FreeBSD 11.2-RELEASE-p9-HBSD
    • OpenSSL 1.0.2r 26 Feb 2019
Firewall strona 2
  • Thomas-Krenn LES compact 4L
  • CPU: Intel Celeron J3160 (4 core)
  • RAM: 2 GB
  • Wersja: BSW4L004
Klient strona 1
  • Płyta główna: Supermicro X10SLH-F
  • CPU: Intel Celeron G1820T (2 core)
  • RAM: 4 GB
  • Wersja: 3.0
  • Wersja oprogramowania Ubuntu Server:
    • 18.04.2
    • Kernel 4.15.0-47
Klient strona 2
  • Płyta główna: Asus P9D-MV
  • CPU: Intel Celeron G1820T (2 core)
  • RAM: 2 GB
  • Wersja: 2101

Wyniki testów z systemem Thomas-Krenn LES compact 4L

W poniższej tabeli znajdują się uzyskane wartości podczas testów połączenia OpenVPN site-to-site z firewallem 1 (Supermicro X11SSH-LN4F) i firewallem 2 (Thomas-Krenn LES compact 4L). Uwaga: Testy nie zostały przeprowadzone z włączoną funkcją Hyper-Threading, gdyż procesor systemu LES compact 4L nie obsługuje tej funkcji. Wyniki testów to średnia wartość z 10 testów:

Testy bez Hyper-Threading Prędkość pobierania (download) na systemie LES

LES compact 4L: deszyfrowanie
X11SSH-LN4F: szyfrowanie

Prędkość ładowania (upload) na systemie LES

LES compact 4L: szyfrowanie
X11SSH-LN4F: deszyfrowanie

Przepustowość 114,9 Mbits/sec 84,74 Mbits/sec
Obciążenie systemu LES compact 4L

(vmstat -w 180 -c 2)

us - sy - id

9 - 23,9 - 67,4

us - sy - id

9 - 23,9 - 67,2

Obciążenie płyty głównej X11SSH-LN4F

(vmstat -w 180 -c 2)

us - sy - id

1,8 - 4 - 95

us - sy - id

1,6 - 3 - 95

Wyniki poszczególnych testów zostały zapisane w archiwum zip.

Środowisko testowe z Supermicro X11SSH-LN4F i systemem Thomas-Krenn LES compact 4L Poniższą tabela przedstawia komponenty zastosowane w testach z płytą główną Supermicro X11SSH-LN4F i systemem Thomas-Krenn LES compact 4L:

Środowisko testowe z Supermicro X11SSH-LN4F i systemem Thomas-Krenn LES network+

Poniższa tabela przedstawia komponenty zastosowane w testach z płytą główną Supermicro X11SSH-LN4F i systemem Thomas-Krenn LES network+:

Rola Sprzęt Informacje o BIOS-ie Oprogramowanie
Firewall strona 1
  • Płyta główna: Supermicro X11SSH-LN4F
  • CPU: Intel Xeon E3-1230 v6 (4 core)
  • RAM: 4 GB
  • Wersja: 2.2
  • Konfiguracja BIOS-u
    • Hyper Threading włączony | wyłączony
  • Wersja OPNsense:
    • OPNsense 19.1.6-amd64
    • FreeBSD 11.2-RELEASE-p9-HBSD
    • OpenSSL 1.0.2r 26 Feb 2019
Firewall strona 3
  • Thomas-Krenn LES network+
  • CPU: Intel Core i5-6300U (2 core)
  • RAM: 4 GB
  • Wersja: BF551TK6
    • Wersja ME 11.8.60
  • Konfiguracja BIOS-u
    • Hyper Threading włączony | wyłączony
    • Load Optimized Settings
Klient strona 1
  • Płyta główna: Supermicro X10SLH-F
  • CPU: Intel Celeron G1820T (2 core)
  • RAM: 4 GB
  • Wersja: 3.0
  • Wersja oprogramowania Ubuntu Server:
    • 18.04.2
    • Kernel 4.15.0-47
Klient strona 3
  • Płyta główna: Asus P9D-MV
  • CPU: Intel Celeron G1820T (2 core)
  • RAM: 2 GB
  • Wersja: 2101

Wyniki testów z systemem Thomas-Krenn LES network+

W poniższej tabeli znajdują się uzyskane wartości podczas testów połączenia OpenVPN site-to-site z firewallem 1 (Supermicro X11SSH-LN4F) i firewallem 3 (Thomas-Krenn LES network+). Uwaga: Testy zostały przeprowadzone zarówno z włączoną, jak i wyłączoną funkcją Hyper-Threading.

Wyniki testów to średnia wartość z 10 testów:

Testy bez Hyper-Threading Prędkość pobierania (download) na systemie LES

LES network+: deszyfrowanie

X11SSH-LN4F: szyfrowanie

Prędkość ładowania (upload) na systemie LES

LES network+: szyfrowanie

X11SSH-LN4F: deszyfrowanie

Przepustowość 495 Mbits/sec 435,3 Mbits/sec
Obciążenie systemu LES network+

(vmstat -w 180 -c 2)

us - sy - id

17,7 - 41,1 - 41,3

us - sy - id

17 - 42,3 - 40,6

Obciążenie na płycie głównej X11SSH-LN4F

(vmstat -w 180 -c 2)

us - sy - id

5 - 13 - 82

us - sy - id

4 - 11,5 - 84

Testy z Hyper-Threading Prędkość pobierania (download) na systemie LES

LES network+: deszyfrowanie

X11SSH-LN4F: szyfrowanie

Prędkość ładowania na systemie LES

LES network+: szyfrowanie

X11SSH-LN4F: deszyfrowanie

Przepustowość 466,5 Mbits/sec 394,3 Mbits/sec
Obciążenie systemu LES compact 4L

(vmstat -w 180 -c 2)

us - sy - id

11 - 19,5 - 69,9

us - sy - id

10,8 - 20,1 - 69,2

Obciążenie na płycie głównej X11SSH-LN4F

(vmstat -w 180 -c 2)

us - sy - id

3 - 6 - 91

us - sy - id

3 - 5,8 - 91,9

Wyniki poszczególnych testów zostały zapisane w archiwum zip.

Stwierdzenia wynikające z testów

Wyniki testów z OpenVPN można podsumować za pomocą następujących punktów:

  • Wydajność jest znacznie niższa niż w przypadku połączenia IPsec.
  • OpenVPN działa tylko w trybie jednowątkowym (single threaded), brak korzyści w przypadku procesorów wielordzeniowych (multi core).
  • Wiele możliwości konfiguracyjnych.

Odnośniki


Autor: Thomas Niedermeier

Powiązane artykuły

Konfiguracja OpenVPN w OpenSense dla Road Warrior
Konfiguracja systemu iOS 11 jako klienta OpenVPN
Temperatura procesora w OPNsense