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

    22.05 and NordVPN tunneling

    Scheduled Pinned Locked Moved General pfSense Questions
    23 Posts 2 Posters 2.4k 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.
    • D
      davidstoll
      last edited by

      I have a netgate appliance 4100 running 22.05. I have FTTH at 1GBps. When I tunnel my traffic through a VPN on the appliance, my speed goes down to about 180MBps.

      That seems like quite a drop. I know there is some overhead and CPU limits, but I was wondering what settings I should check to make sure I am configured as best as I can be.

      I have followed many different step-throughs on NordVPN forums as well as the netgate pages and others. I have made some changes (as each step-through is a little different), but no luck making any improvement on throughput.

      I am not using wireless. I'm all wired and get ~800+ when I disable the client on pfsense. I have tried different servers on Nord...closest and others.

      If it matters, I'm using NordVPN.

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

        What encryption settings are they using/allowing?

        Enabling DSO with QAT would give you a significant increase if it's cpu limited but that can only use AES-CGM.

        Check the system activity page whilst testing the speed and see if one CPU core is at 100%.
        180Mbps would be a low result though so I suspect it might be limited at the server end or by route conditions.

        Steve

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

          I'm not sure how to see each core on my 4100, but the CPU chart on the main page was at 55-61% during the test.

          Supposedly this unit should be able to easily do 500+ while tunneling (was my understanding per the specs).

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

            It's shows per core in Diag > System Activity.

            Or you can run at the command line: top -HaSP

            500Mbps would be a very good result for OpenVPN on the 4100. What settings are you using? Does Nord allow other encryption types?

            Steve

            D 1 Reply Last reply Reply Quote 0
            • D
              davidstoll @stephenw10
              last edited by

              @stephenw10 Here are the specs for the 4100. https://shop.netgate.com/products/4100-base-pfsense

              It shows it can do much much much more than 50mbps.

              Using the command prompt (I forgot about that), I get very little response. It's like it's not reporting correctly.

              last pid: 88049; load averages: 0.54, 0.31, 0.16 up 32+23:48:49 09:56:34
              603 threads: 4 running, 569 sleeping, 30 waiting
              CPU 0: 0.6% user, 0.2% nice, 1.3% system, 0.4% interrupt, 97.6% idle
              CPU 1: 0.3% user, 0.2% nice, 1.0% system, 0.1% interrupt, 98.4% idle
              Mem: 62M Active, 175M Inact, 472M Wired, 3105M Free
              ARC: 203M Total, 28M MFU, 167M MRU, 301K Anon, 903K Header, 6855K Other
              81M Compressed, 206M Uncompressed, 2.53:1 Ratio

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

                Sorry I typo'd that, I meant 500Mbps. That's for OpenVPN, it will do more for IPSec.

                You need to use the actual command line not the Command Prompt page in the gui, that is non interactive. Or use Diag > System Activity which does update.

                Steve

                D 1 Reply Last reply Reply Quote 0
                • D
                  davidstoll @davidstoll
                  last edited by davidstoll

                  If I log in directly to a shell, it shows about 20-30% for each CPU as it does a speedtest.

                  1 Reply Last reply Reply Quote 0
                  • D
                    davidstoll @stephenw10
                    last edited by

                    @stephenw10 So, based on the 20-30% cpu, what do you suggest at this point?

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

                      What is that load? What does it actually show?

                      It could be a limit on the server side or the route. Are you able to see more than that using a client device directly to the same Nord server?

                      Steve

                      D 1 Reply Last reply Reply Quote 0
                      • D
                        davidstoll @stephenw10
                        last edited by

                        @stephenw10 Sorry, I guess I don't know what you mean by the load....other that 20-30% on each cpu.

                        Yes, I can get 800+ mb/s without the VPN connected.

                        Yes, it could be the far end, but I have tried different servers on NordVPN and I get very similar results.

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

                          I mean if I test an OpenVPN tunnel on a 4100 here and look at the activity I see:

                          last pid:  6977;  load averages:  0.64,  0.30,  0.16                                                                   up 71+01:47:45  20:28:48
                          539 threads:   4 running, 522 sleeping, 13 waiting
                          CPU 0: 36.6% user,  0.0% nice, 43.3% system,  0.0% interrupt, 20.1% idle
                          CPU 1: 12.2% user,  0.0% nice, 30.3% system,  0.0% interrupt, 57.5% idle
                          Mem: 33M Active, 261M Inact, 472M Wired, 3033M Free
                          ARC: 237M Total, 92M MFU, 138M MRU, 692K Anon, 1027K Header, 5445K Other
                               133M Compressed, 249M Uncompressed, 1.87:1 Ratio
                          Swap: 1024M Total, 1024M Free
                          
                          Message from syslogd@4100-2 at Oct  5 20:24:41 ...C   TIME    WCPU COMMAND
                          21459pm[80344]: /i 96    0    17M  7468K CPU0     0  46:25  93.43% /usr/local/sbin/openvpn --config /var/etc/openvpn/client1/config.ovpn
                             11 root        155 ki31     0B    32K RUN      1 1684.1  59.69% [idle{idle: cpu1}]
                             11 root        155 ki31     0B    32K RUN      0 1685.2  18.61% [idle{idle: cpu0}]
                          96097 root         26    0    15M  6668K select   0   0:02  12.32% iperf3 -c 10.2.4.1 -t 60
                              0 root        -76    -     0B   544K -        1  15:31   7.75% [kernel{if_io_tqg_1}]
                              0 root        -76    -     0B   544K -        0   4:25   1.24% [kernel{if_io_tqg_0}]
                          74666 root         52    0   133M    58M accept   0   0:17   0.38% php-fpm: pool nginx (php-fpm)
                              0 root        -92    -     0B   544K -        0 242:49   0.32% [kernel{dummynet}]
                              0 root        -76    -     0B   544K -        1 165:14   0.18% [kernel{if_config_tqg_0}]
                             20 root        -16    -     0B    16K -        0  12:35   0.17% [rand_harvestq]
                          71350 root         20    0    15M  5528K CPU1     1   0:00   0.12% top -HaSP
                          

                          So you can see OpenVPN using most of the CPU. iperf itself is using quite a bit there because I'm testing from the firewall directly.

                          Try testing a nordvpn client that isn't running on the firewall and see what sort of throughput you can get to the same server. It may be that's the best you can get and we are chasing the unobtainable.

                          Steve

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

                            @stephenw10 said in 22.05 and NordVPN tunneling:
                            Ok, here is what when speed testing with the vpn running on the 4100...

                            top -HaSP

                            last pid: 21582;  load averages:  0.27,  0.20,  0.13                                                                            up 35+04:02:56  14:10:41
                            603 threads:   4 running, 569 sleeping, 30 waiting
                            CPU 0: 15.7% user,  0.0% nice, 34.1% system,  0.0% interrupt, 50.2% idle
                            CPU 1: 23.1% user,  0.0% nice, 34.9% system,  0.0% interrupt, 42.0% idle
                            Mem: 38M Active, 185M Inact, 473M Wired, 3117M Free
                            ARC: 207M Total, 29M MFU, 170M MRU, 432K Anon, 918K Header, 6906K Other
                                 84M Compressed, 212M Uncompressed, 2.53:1 Ratio
                            
                              PID USERNAME    PRI NICE   SIZE    RES STATE    C   TIME    WCPU COMMAND
                            13920 root         85    0    17M  7480K CPU0     0 124:02  85.90% /usr/local/sbin/openvpn --config /var/etc/openvpn/client6/config.ovpn
                               11 root        155 ki31     0B    32K RUN      0 823.4H  50.90% [idle{idle: cpu0}]
                               11 root        155 ki31     0B    32K RUN      1 829.0H  42.11% [idle{idle: cpu1}]
                                0 root        -76    -     0B   528K -        0 102:18  16.04% [kernel{if_io_tqg_0}]
                                0 root        -76    -     0B   528K -        1 114:40   2.98% [kernel{if_io_tqg_1}]
                            73000 root         20    0    12M  3480K bpf      1   5:38   0.85% /usr/local/sbin/filterlog -i pflog0 -p /var/run/filterlog.pid
                            25057 root         20    0    11M  2640K select   1   4:47   0.42% /usr/sbin/syslogd -s -c -c -l /var/dhcpd/var/run/log -P /var/run/syslog.pid -f /etc/s
                               12 root        -60    -     0B   480K WAIT     1 155:42   0.33% [intr{swi4: clock (0)}]
                               20 root        -16    -     0B    16K -        0  25:18   0.17% [rand_harvestq]
                            23700 root         20    0    14M  4856K CPU1     1   0:01   0.12% top -HaSP
                                0 root        -76    -     0B   528K -        0  31:00   0.06% [kernel{if_config_tqg_0}]
                               19 root        -16    -     0B    16K pftm     1  19:02   0.06% [pf purge]
                            21929 root         20    0    11M  2184K select   1   0:54   0.01% /usr/sbin/powerd -b hadp -a hadp -n hadp
                             5420 dhcpd        20    0    23M    12M select   1   0:42   0.01% /usr/local/sbin/dhcpd -user dhcpd -group _dhcp -chroot /var/dhcpd -cf /etc/dhcpd.conf
                            
                            1 Reply Last reply Reply Quote 0
                            • stephenw10S
                              stephenw10 Netgate Administrator
                              last edited by

                              Ok, well neither CPU core is anywhere near 100% there so it's not CPU limiting.

                              I would have to assume it's either limited at the server side or as a result of something in the route.

                              So check what throughput you can see using a NordVPN client running off the firewall.

                              What VPN client settings are you using in pfSense currently?

                              Steve

                              D 1 Reply Last reply Reply Quote 0
                              • D
                                davidstoll @stephenw10
                                last edited by

                                @stephenw10
                                So, if I use UDP, it cuts the speed way down. If I use Nord Lynx, it helps a LOT (testing with the same server). Is it possible to setup Nordlynx on pfsense?

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

                                  Nord Lynx is mostly Wireguard. So...maybe! I've never tried it and it may require some extra bits pfSense cannot currently do.

                                  OpenVPN over TCP is almost always significantly slower than UDP. So if you're seeing the opposite that's suspicious. What settings have you tried? What were you using for the results you have stated here?

                                  Steve

                                  D 1 Reply Last reply Reply Quote 0
                                  • D
                                    davidstoll @stephenw10
                                    last edited by

                                    @stephenw10
                                    I'm sorry I meant UDP vs Nord Lynx was slower vs faster. I can't get TCP to work, so no worry there.

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

                                      Ok, well it looks like Nord Lynx can be made to work in pfSense. You just need to install their client in something else and extract the keys first because for some reason they won't give them to you directly.

                                      Or use one of the other VPN providers that do support Wireguard dircetly.

                                      But you still haven't said what client settings you're using in OpenVPN so you might just have very slow encryption. Or no fastio. Or too smaller buffers.

                                      Steve

                                      D 1 Reply Last reply Reply Quote 0
                                      • D
                                        davidstoll @stephenw10
                                        last edited by

                                        @stephenw10
                                        Sorry about not getting the client config to you...

                                        dev tun
                                        persist-tun
                                        persist-key
                                        ncp-ciphers AES-256-GCM:AES-128-GCM:AES-256-CBC
                                        cipher AES-256-CBC
                                        auth SHA256
                                        tls-client
                                        client
                                        resolv-retry infinite
                                        remote xxx.xxx.xxx.xxx 1194 tcp-client
                                        nobind
                                        auth-user-pass
                                        remote-cert-tls server
                                        
                                        1 Reply Last reply Reply Quote 0
                                        • stephenw10S
                                          stephenw10 Netgate Administrator
                                          last edited by

                                          Ok, so you have AES-128-GCM available as a cipher via ncp which should be the fastest available. Can you see if Nord is negotiating that in the connection logs?

                                          Since you're using UDP I would enable FastIO and increase the send/recv buffers to 512K. Both of those should give you an increase in throughput.

                                          Steve

                                          D 1 Reply Last reply Reply Quote 0
                                          • D
                                            davidstoll @stephenw10
                                            last edited by

                                            @stephenw10
                                            The fast io option was already checked in the pfsense client GUI. The buffer was set to "default", whatever that is and I updated to 512k.

                                            On a separate note...regarding wireguard...I found another page to setup the wireguard because the reddit post ws limited....and it is overwhelming. I get the interface to show as "up", but wasn't routing traffic even though I set the pass option in the new interface and set a lan firewall entry to use that gateway.

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