Thomas-Krenn OPNsense Firewall Performance

From Thomas-Krenn-Wiki
Jump to navigation Jump to search

The free firewall solution OPNsense can be used for a lot of different devices and server. To find the suitable hardware for your purpose, the systems are subject to comprehensive performance tests. This article shows tabular results of Thomas-Krenn Low Energy Server (LES) devices and further fanless devices. The chart is permanently expanded with more systems after testing. An overview for performance data of Rack server can also be found in Thomas-Krenn-Wiki.

Important: These tests were carried out under laboratory conditions. Real values in production environments may differ. The tested models may have already been replaced by new versions. The latest hardware selection can be found in the online shop of Thomas-Krenn.

To our OPNsense firewalls in the online shop of Thomas-Krenn

Testing results

The following chart shows available results so far:

Server invalid id

(note: tests with OPNsense 19.7)

Edge 4L

(note: tests with OPNsense 22.7.2)

LES v4

(note: tests with OPNsense 22.7.10_2, except WireGuard)

LES network 6L

(Version 1, Intel Core i5-8250U)

(note: tests with OPNsense 22.7_4-amd64)

LES network 6L

(Version 2, Intel Core i5-10210U)

(note: tests with OPNsense 23.1)

LES network 6L

(Version 4, Intel Core i5-1235U)

(note: tests (ecxept for Zenarmor Test) with OPNsense 25.1.6_4-amd64)

FWA-1112VC-4CA1S

(Intel Atom C3558)

(note: tests with OPNsense 25.1.5_5-amd64)

Hardware equipment used for testing RAM 2 GB RAM 2 GB RAM 32 GB (RAM maximum demand was 11 GB (IPS Test)) RAM 4 GB RAM 16 GB RAM 16 GB RAM 8 GB
settings

(exact test settings listed below)

performance last (CPU time in %) performance load (CPU time in %) performance load (CPU time in %) performance load (CPU time in %) performance load (CPU time in %) performance load (CPU time in %) performance load (CPU time in %)
Upload Download Upload Download Upload Download Upload Download Upload Download Upload Download Upload Download Upload Download Upload Download Upload Download Upload Download Upload Download Upload Download
Routing
  • NAT deactivated
  • pure routing
not tested not tested not tested not tested 2,35 Gbit/s 2,35 Gbit/s 10 11 not tested not tested
(note: 2,5 Gbit/s NIC maxed out)
Firewall
  • NAT active
  • Spamhaus DROP and EDROP lists (since 2025 only DROP list) on WAN and LAN interface
not tested 942 Mbit/s 942 Mbit/s 31 29 2,35 Gbit/s 2,35 Gbit/s 19 20 940 Mbit/s 941 Mbit/s 15 18 2,35 Gbit/s 2,35 Gbit/s 17 18 2,35 Gbit/s 2,36 Gbit/s 12 13 8,3 Gbit/s 6,6 Gbit/s 96,8 74,4
(note: 1 Gbit/s NIC maxed out) (note: 2,5 Gbit/s NIC maxed out) (note: 1 Gbit/s NIC maxed out) (note: 2,5 Gbit/s NIC maxed out) (note: 2,5 Gbit/s NIC maxed out, therefore routing not tested) (note: very high throughput, but CPU almost fully utilized)
Firewall and IDS
  • basic settings such as firewall test
  • In addition, intrusion detection (IDS) is active on WAN interface
  • number of rules (missing)
not tested 941 Mbit/s 941 Mbit/s 51 58 2,35 Gbit/s 2,35 Gbit/s 51 52 942 Mbit/s 942 Mbit/s 15 18 2,35 Gbit/s 2,35 Gbit/s 19 20 2,35 Gbit/s 2,36 Gbit/s 14,5 12,5 6,7 Gbit/s 5,2 Gbit/s 99 87,8
(note: 1 Gbit/s NIC maxed out, but significantly increased load compared to pure firewalling) (note: 2,5 Gbit/s NIC maxed out, but significantly increased load compared to pure firewalling) (note: 1 Gbit/s NIC maxed out) (note: 2,5 Gbit/s NIC maxed out, only minimal increased load compared to pure firewalling) (note: 2,5 Gbit/s NIC maxed out, only minimal increased load compared to firewalling test with block lists) (note: very high throughput, but CPU almost fully utilized)
Firewall and IPS
  • basic settings such as firewall test
  • In addition, intrusion detection (IDS) is active on WAN interface
  • number of rules (missing)
not tested (not recommended, CPU too weak) 606 Mbit/s 420 Mbit/s 62 41 770 Mbit/s 630 Mbit/s 44 33,5 942 Mbit/s 942 Mbit/s 21 19 2,35 Gbit/s 2,30 Gbit/s 23 18 2,35 Gbit/s 2,37 Gbit/s 10 12 - -
(note: CPU and software the limited factor, not 1 Gbit/s NIC anymore) (note: 1 Gbit/s NIC maxed out, load slightly higher than for IDS) (note: 2,5 Gbit/s NIC maxed out in the upload, download slightly less throughput, slightly increased load compared to IDS) (note: 2,5 Gbit/s NIC maxed out) (note: test results not plausible, faster than IDS)
Firewall and Zenarmor
  • basic settings such as firewall test
  • In addition, Zenarmor is active on LAN interface
not tested (not recommended, CPU too weak) 769 Mbit/s 825 Mbit/s 36 47 893 Mbit/s 941 Mbit/s 32 33 940 Mbit/s 942 Mbit/s 17 19 2,35 Gbit/s 2,35 Gbit/s 16 21 2,35 Gbit/s 2,37 Gbit/s 10 8,5 not tested
(note: 1 Gbit/s NIC maxed out, load slightly higher than for IDS) (note: 2,5 Gbit/s NIC maxed out, settings: MongoDB data base, routed mode with native netmap) (note: 2,5 Gbit/s NIC maxed out, test with OPNsense 25.1.7)
OpenVPN Tunnel
  • basic settings such as Firewall Test
  • In addition, there is an OpenVPN tunnel between both firewalls
84 Mbit/s 114 Mbit/s 33 33 145 Mbit/s 175 Mbit/s 36 34 435 Mbit/s 436 Mbit/s 28 27 470 Mbit/s 462 Mbit/s 17 16 997 Mbit/s 788 Mbit/s 17 14 986 Mbit/s 632 Mbit/s 9,9 7 188 Mbit/s 252 Mbit/s 32,7 33,6
IPsec VPN Tunnel
  • basic settings such as firewall test
  • An IPsec VPN tunnel between both firewalls additionally
403 Mbit/s 324 Mbit/s 70 53 746 Mbit/s 479 Mbit/s 75 48 1,77 Gbit/s 1,3 Gbit/s 64 43 825 Mbit/s 847 Mbit/s 17 19 1,87 Gbit/s 1,74 Gbit/s 20 21 2,03 Gbit/s 2,01 Gbit/s 16,2 15,3 1,26 Gbit/s 1,3 Gbit/s 80,1 75,9
WireGuard VPN Tunnel
  • basic settings such as firewall test
  • WireGuard VPN tunnel between both firewalls additionally
178 Mbit/s 171 Mbit/s 89 86 296 Mbit/s 331 Mbit/s 82 80 896 Mbit/s 849 Mbit/s 70 74 865 Mbit/s 889 Mbit/s 48 45 1,35 Gbit/s 1,26 Gbit/s 49 50 2,25 Gbit/s 2,25 Gbit/s 23,5 23 1,15 Gbit/s 1,6 Gbit/s 87 98,6
(note: WireGuard tests were performed with OPNsense 22.7.11-amd64) (note: Tested with wireguard-go and OPNsense-23.1.1_2) (note: 2,5 Gbit/s NIC maxed out, consider overhead of WireGuard protocol) (note: results very strong, but with extremely high CPU load)

Setup of performance tests

The following table shows further components of firewall tests. The firewall, which should be tested, is always marked as firewall 2. To test the maximum performance, a server based on a Supermicro H12SSL-NT Mainboard was selected as performant remote station (Firewall Site 1):

purpose hardware BIOS information software
Firewall Site 1
  • Mainboard: Supermicro H12SSL-NT
  • CPU: AMD EPYC 72F3 (8 cores)
  • RAM: 32 GB
  • version: 2.3
  • BIOS settings
    • default
  • Always tested with the respective current community version of OPNsense
Firewall Site 2
  • Changing firewall to be tested
Clients to 2023
Client Site 1
  • Mainboard: Supermicro X11SSH-LN4F
  • CPU: Intel Xeon CPU E3-1230 v6 (3.50GHz, 4 cores)
  • RAM: 4 GB
  • version: 2.7
  • Ubuntu server 22.04.1
Client Site 2
  • Mainboard Supermicro X10SLH-F
  • CPU: Intel Xeon CPU E3-1220 v3 (3.10GHz, 4 cores)
  • RAM: 4 GB
  • version: 3.4
Clients since 2024 (two new identic and more performant last clients were procured)
Client Site 1 and 2
  • Mainboard Asus P12R-M/10G-2T
  • CPU: Intel Xeon E-2378 (2,60 GHz, 8 cores, 16 MB)
  • RAM: 32 GB
  • version: 1201
  • Ubuntu server 24.04.2 LTS

Benchmark tools

The performance tests were made with iperf.

  • iperf was started with the following command on the server page: iperf -p 5000 -f m -s
  • The client page connected with the following command to the iperf server: iperf -p 5000 -f m -c <IP-de-Servers> -t 180 -P 10
  • The load on the firewalls was measured on the firewalls: "vmstat -w 180 -c 2"

Upload test

To simulate an upload test, client mode was started on Client Site 2. On Client Site 1, iperf was started with the parameter -s in server mode.

Download test

The directions were reversed for a download test and Client Site 1 was started as client via parameter -c as client and Client Site 2 with -s in server mode.

Test runs

In general, the values in the charts are to be regarded as average values from up to 10 runs. In some tests, when the network socket was busy, the results were not generated in several runs because they were always identical.

Settings

The following settings were made on the OPNsense firewalls. In general, no special optimization steps were carried out. OPNsense was used with default settings. As the settings for individual VPN technologies are also demanding, measured values can certainly be regarded as an absolute minimum.

  • Firewall Test
    • Spamhaus DROP and EDROP lists on LAN and WAN Interface activated
    • EDROP list now integrated in DROP and no longer available, only DROP list used in tests of FWA-1112VC-4CA1S and RI1102-SMXDFH.
  • OpenVPN Test (legacy server/Client method)
    • Server Mode: Peer to Peer (SSL/TLS)
    • Protocol: UDP4
    • Device Mode: tun
    • TLS Authentication: Enabled - Authentication & encryption
    • TLS Shared Key: 2048bit OpenVPN static key
    • DH Parameters Length: 4096 bit
    • Encryption Algorithm: AES-256-GCM (256 bit key, 128 bit block, TLS client/server mode only)
    • Auth Digest Algorithm: SHA512 (512-bit)
    • Certificate Depth: Do Not Check
    • Compression: Enabled - LZO algorithm (--compress lzo)
  • OpenVPN Test (Instances method)
    • TLS static key crypt
    • 2048 bit Static Key
    • cipher AES-256-GCM,protocol-flags cc-exit tls-ekm dyn-tls-crypt,tun-mtu 1500
    • Data Channel: cipher 'AES-256-GCM', peer-id: 0
    • Protocol options: protocol-flags cc-exit tls-ekm dyn-tls-crypt
  • IPsec VPN Test (legacy Tunnel Settings method)
    • Phase 1
      • Authentication method: Mutual PSK
      • Pre-Shared Key: yes
      • Encryption algorithm: 256 bit AES-GCM with 128 bit ICV
      • Hash algorithm: SHA256
      • DH key group: 14 (heißt 2048 bits)
    • Phase 2
      • Protocol: ESP
      • Encryption algorithms: aes256gcm16
      • Hash algorithms: SHA256
      • PFS key group: 14 (2048 bits)
  • WireGuard VPN test
    • Shared secret (PSK)
  • WireGuard VPN test (Instances)
    • Public Keys
    • Pre-shared key additionally


Author: Thomas Niedermeier

Thomas Niedermeier working in the product management team at Thomas-Krenn, completed his bachelor's degree in business informatics at the Deggendorf University of Applied Sciences. Since 2013 Thomas is employed at Thomas-Krenn and takes care of OPNsense firewalls, the Thomas-Krenn-Wiki and firmware security updates.