Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    PfSense hardware for home router - OpenVPN performance

    Scheduled Pinned Locked Moved Hardware
    110 Posts 30 Posters 58.3k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      mauroman33
      last edited by

      @spon901:

      Ok, so on a non pFsense device there is no correlation between theoretical and real sped ?

      I think there is also correlation for not pfSense devices, but I don't think you could be sure to get a definitive answer on the pfSense forum.

      1 Reply Last reply Reply Quote 0
      • T
        teh g
        last edited by

        Figured I'd show my J3455 results:

        Intel Celeron J3455 4x1.5GHz        -TDP 10W -CPU Mark 2134 -Single Thread  782

        AES-256-CBC : 267.9 Mbps
        AES-256-GCM: 282.4 Mbps

        AES-128-CBC: 270.0 Mbps
        AES-128-GCM: 284.9Mbps

        1 Reply Last reply Reply Quote 0
        • D
          denova
          last edited by

          I know it's a bit of an old topic but I'm currently looking at some pfsense hardware with openvpn capabilities as well..

          As I have a 1000/1000 fiber connection, I was wondering if a kaby lake celeron 3865u (1.8 GHz, dual core) would do similar or better than a j3355 for pfsense+openvpn purposes?

          1 Reply Last reply Reply Quote 0
          • P
            pfBasic Banned
            last edited by

            Probably pretty similar to j3355, but that's a mobile part.

            1 Reply Last reply Reply Quote 0
            • C
              chrcoluk
              last edited by

              aes256 is just needlessly throwing away performance especially on CBC, I suggest sticking to aes128-gcm guys.

              pfSense CE 2.7.2

              1 Reply Last reply Reply Quote 0
              • D
                denova
                last edited by

                @teh:

                Figured I'd show my J3455 results:

                Intel Celeron J3455 4x1.5GHz        -TDP 10W -CPU Mark 2134 -Single Thread  782

                AES-256-CBC : 267.9 Mbps
                AES-256-GCM: 282.4 Mbps

                AES-128-CBC: 270.0 Mbps
                AES-128-GCM: 284.9Mbps

                Ended up with a G4400 build myself, speed with PIA using OpenVPN and AES-128-CBC is near 500 Mbps. I never see the CPU taxed above 30% though with AES-NI enabled.

                Also, the idle power consumption for the total system is about 13 watts, which is still fine for me.

                1 Reply Last reply Reply Quote 0
                • stephenw10S
                  stephenw10 Netgate Administrator
                  last edited by

                  Nice result. I would assume one core is at 100% in those conditions?

                  Steve

                  1 Reply Last reply Reply Quote 0
                  • D
                    denova
                    last edited by

                    While using some of the tips and tricks in this topic: https://forum.pfsense.org/index.php?topic=112877.15 I was able to increase my speed to 700-800 Mbps with a Speedtest.net test using a nearby 1000 mbit server (see attached).

                    That's actually a lot better than I had expected. While testing, the OpenVPN WCPU goes up to a about 50% and the max one core is used is also about 50%. Is this normal? I thought OpenVPN would be harder on my processor? (3.3 Ghz G4400 Skylake processor with AES-NI enabled) I'm quite sure my VPN is working fine as the OpenVPN process is spiking and both speedtest.net and privateinternetaccess.com report my PIA ip address. The cipher used is AES-256-CBC.

                    speedtest.PNG_thumb
                    speedtest.PNG

                    1 Reply Last reply Reply Quote 0
                    • stephenw10S
                      stephenw10 Netgate Administrator
                      last edited by

                      Hmm, that is surprisingly fast. Almost suspiciously so.

                      Increasing the buffers and setting fast-io can help quite a bit though. Those options are in the gui in 2.4.

                      Steve

                      1 Reply Last reply Reply Quote 0
                      • D
                        denova
                        last edited by

                        Thanks Steve. Yeah, I'm not sure what to think of it yet (1000/1000 mbit connection)

                        These are the settings I've used:

                        tls-client;
                        tls-cipher TLS-DHE-RSA-WITH-AES-256-CBC-SHA;
                        remote-cert-tls server;
                        persist-key;
                        persist-tun;
                        persist-remote-ip;
                        keysize 256;
                        reneg-sec 0;
                        link-mtu 1540;
                        fragment 0;
                        mssfix 0;
                        fast-io;
                        sndbuf 1572864;
                        rcvbuf 1572864;

                        All seemed fine in the logs until I just received this error in the OpenVPN log: 38532 tun packet too large on write (tried=1500,max=1482).
                        Is that bad news? Can't seem to find anything decisive about it.

                        1 Reply Last reply Reply Quote 0
                        • stephenw10S
                          stephenw10 Netgate Administrator
                          last edited by

                          There's no way the link-mtu is 1540, you should probably remove that.

                          I'm not sure what setting mssfix and fragment to 0 does. Probably nothing, it seems to be undefined.

                          When I tested locally I found increasing the send receive buffers above 512k made negligible difference.

                          Steve

                          1 Reply Last reply Reply Quote 0
                          • D
                            denova
                            last edited by

                            Think you are correct, changed to this settings:

                            tls-client;
                            tls-cipher TLS-DHE-RSA-WITH-AES-256-CBC-SHA;
                            remote-cert-tls server;
                            persist-key;
                            keysize 256;
                            reneg-sec 0;
                            fast-io;
                            sndbuf 572864;
                            rcvbuf 572864;

                            No more errors in the log but the same speed (700-800 Mbps).

                            EDIT: a bit too soon, a new error occurs every approx. 5 minutes: PID_ERR replay-window backtrack occurred [13] [SSL-0] [000000000000__00000000000000000000000000000000000000000000000000] 0:4803054 0:4803041 t=1505773250[0] r=[-3,64,15,13,1] sl=[22,64,64,528]. Apparently this is connected to having some packet loss while using UDP instead of TCP.

                            Back on topic: apparently a G4400 is able to reach 700+ Mbps with PIA under favorable circumstances (server very close etc).

                            1 Reply Last reply Reply Quote 0
                            • M
                              mauroman33
                              last edited by

                              Hi denova, your results are really interesting.
                              It could be nice if you'll have the time to run test suggested in the first post. Just out of curiosity.
                              cheers

                              1 Reply Last reply Reply Quote 0
                              • D
                                denova
                                last edited by

                                @mauroman33:

                                Hi denova, your results are really interesting.
                                It could be nice if you'll have the time to run test suggested in the first post. Just out of curiosity.
                                cheers

                                8.45 seconds, so 3200/8.45 would be around 380 Mbps. I'm getting up to 850 Mbps though, with about 50% core taxing.

                                I still don't really get it, is there something I'm missing?

                                Connection 1000/1000 mbit, Private Internet Access, OpenVPN settings:

                                Server mode: peer to peer
                                Protocol: UDP on IP4 only
                                Peer Certificate Authority: PIA certificate
                                AES-256-CBC
                                Compression: LZO compression
                                Device mode: tun layer 3 tunnel mode
                                Custom options:

                                tls-client;
                                tls-cipher TLS-DHE-RSA-WITH-AES-256-CBC-SHA;
                                remote-cert-tls server;
                                persist-key;
                                persist-tun;
                                persist-remote-ip;
                                keysize 256;
                                reneg-sec 0;
                                fragment 0;
                                mssfix 0;
                                fast-io;
                                sndbuf 572864;
                                rcvbuf 572864;

                                Capture.PNG
                                Capture.PNG_thumb
                                Capture4.PNG
                                Capture4.PNG_thumb

                                1 Reply Last reply Reply Quote 0
                                • D
                                  denova
                                  last edited by

                                  Think I found whats giving me the very high results on Speedtest.net. With LZO compression disabled in OpenVPN my results are near 500 Mbps again, with LZO enabled its much higher. But it appears speedtest.net is a bit tricked by LZO:

                                  "When doing VPN tests to measure connection speeds, most people turn to the web’s most prominent internet speed testing website, speedtest.net. Unfortunately, although speedtest.net is a very good indicator of naked internet speed, it can yield some very odd results when VPN testing, often indicating speeds much faster than not just the naked internet results, but than the cap put on a service by the ISP . The reason for this is that the Flash based speedtest.net tool does not account for LZO compression, which is built into the  OpenVPN protocol.

                                  LZO compression
                                  OpenVPN has built into it the optional ability to use the LZO lossless compression library. Much like the better known .zip format, this compresses the size of some files types, which can indeed increase data throughput, but does not count against your ‘real’ bandwidth usage. Files that are already compressed, such as .zip, .rar, and .mp3, and .jpg files, do not benefit much from additional compression. As we noted earlier, speedtest.net is easily confused by the use of LZO compression" (https://www.bestvpn.com/vpn-speed-test-overview/)

                                  So my real world speed is probably 500 Mbps, still very nice  ;D

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    mauroman33
                                    last edited by

                                    Nice found!
                                    Your's definitely a great achievement. I also have a PIA connection at moment (swedish server), but I had never exceed the theoretical maximum speed. On what PIA server are you connected?

                                    1 Reply Last reply Reply Quote 0
                                    • stephenw10S
                                      stephenw10 Netgate Administrator
                                      last edited by

                                      Interesting. There's nothing wrong with using compression. Speedtests data should probably be non-compressible to test the actual available bandwidth though. But it shows how much it can help if what you're transferring is compressible.

                                      Steve

                                      1 Reply Last reply Reply Quote 0
                                      • V
                                        VAMike
                                        last edited by

                                        I don't see any point in enabling compression on the modern internet. The majority of data is either encrypted (thus incompressible) or already compressed (like streaming video). So outside of benchmarks it basically never gets used, but it always adds a bit of CPU overhead.

                                        1 Reply Last reply Reply Quote 0
                                        • stephenw10S
                                          stephenw10 Netgate Administrator
                                          last edited by

                                          I guess it all depends on what your expected traffic is. Yeah if you're mostly using https and netflx then maybe not worth it. I've never actually tried to measure the overhead introduced though.

                                          Steve

                                          1 Reply Last reply Reply Quote 0
                                          • V
                                            VAMike
                                            last edited by

                                            @stephenw10:

                                            I guess it all depends on what your expected traffic is. Yeah if you're mostly using https and netflx then maybe not worth it. I've never actually tried to measure the overhead introduced though.

                                            If the bulk of your traffic isn't encrypted or already compressed, then you've got a very, very unusual traffic profile. If someone's transferring huge quantities of uncompressed text over http, then sure, they should enable link compression.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.