Navigation

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

    Apu2c4 - enttäuschende Performance

    Deutsch
    6
    10
    7445
    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.
    • U
      Unterwasser last edited by

      Hi alle,

      ich habe mir eine nagelneue apu2c4 zugelegt, vor allem um damit IPSec zu tunneln. Das setup war soweit auch kein Problem. Aber
      ich die Performance ist etwas enttäuschend, daher habe ich angefangen etwas rumzutesten.

      Da ist pfsense 2.3.4 drauf und wenn ich mit iperf am LAN Interface teste (vom PC zur PFS), erreiche ich kaum mehr als 350MBit/sec - ohne dass
      hier auch nur ein Paket vermittelt oder gefiltert wird. Um Probleme am Switch auszuschließen, habe ich einen Server direkt mit
      der apu2 verbunden -> gleiches Ergebnis.

      Diese 350MBit erreiche ich auch nur, wenn ich IPSec und die Filterregeln ausschalte (SystemAdvancedFirewall & NAT -> Disable all packet filtering.)
      Wenn ich IPSec einschalte, komme ich noch auf ca 300MBit/sec, mit aktivierter FW gerade mal auf 220 MBit/sec. Auch hier
      ist noch kein Byte geroutet/vermittelt worden…

      Nun habe ich schon diverse andere Berichte über apu2 HW gelesen. Da gibt es Bereichte über Routingperformance im
      Bereich von 500MBit/sec aufwärts.

      Bei der IPSec Performance (um die es mir eigentlich geht) liege ich im Bereich von 50-60MBit/sec. Ich muss zugeben, dass
      ich da mehr erwartet hätte.

      Die Frage ist: was mache ich falsch?

      Was habe ich schon probiert:

      • HW Offloading on/off
      • enable/disable TSO und LRO
      • diverse Tunables

      -> alles ohne nennenswerten Effekt.

      Hat da jemand einen Tipp?

      1 Reply Last reply Reply Quote 0
      • A
        athurdent last edited by

        Hi,

        Firewall Performance misst man am Besten durch die Firewall hindurch, nicht mit iperf auf der Firewall. Du solltest Dir auf die WAN Seite einen Server stellen und dann nochmal durch die Firewall durch messen.
        IPsec profitiert vom AES-NI Modul, das solltest Du in Advanced -> Misc -> Cryto anstellen.

        1 Reply Last reply Reply Quote 0
        • U
          Unterwasser last edited by

          Hi athurdent,

          Performance durch die FW hindurch messen (ohne IPSec) , werde ich machen - muss ich erst ein Setup basteln.

          AES-NI habe ich aktiviert, konnte aber keinen nennenswerten Unterschied ausmachen. Die WAN Anbindung, über
          die der IPsec Tunnel geht, gibt 200MBit/sec her (symmetrisch). Aber für die APU2 ist bei ca. 55-60MBit/sec "schulss".

          Ich habe auch schon mit allen möglichen Cipher Einstellungen getestet, hat aber kaum einen Einfluss auf
          die Performance.

          Das einzige, was wirklich einen Einfluss hat, ist die Veränderung der MTU bzw. MSS Clamping. Ich erziele
          hier den Maximaldurchsatz bei 1398 Byte MSS (VPN->IPSec-> Advanced Settings). Die MTU auf dem WAN
          Interface ist 1500 Byte (kein PPPoE).

          Nach allem, was ich über die apu2 gelesen hatte, müsste die Kiste eigentlich in der Lage sein, mindestens
          100-150MBit/sec über den Tunnel zu bringen…

          1 Reply Last reply Reply Quote 0
          • U
            Unterwasser last edited by

            Hi,

            ich habe heute nochmal intensiv mit der apu2 getestet was den IP Durchsatz zwischen LAN <-> und WAN Interface angeht:

            • iperf zwischen LAN und WAN (ohne IPsec, OpenVPN. Fiter/NAT abgeschaltet): ca 830MBit/sec
            • iperf zwischen LAN und WAN mit aktivierten IPSec Tunnel (ohne, dass über den Tunnel Daten gehen): ca 450 MBit/sec
            • iperf zwischen LAN und WAN mit aktivierten IPSec und aktvierter Firewall+NAT: ca. 350 MBit/sec

            Bemerkenswert finde ich, dass das reine Vorhandensein eines IPSec Tunnels, die Datenrate halbiert.

            Da mich aber eigentlich die Performance über IPsec interessiert und ich mich mit ca. 60MBit/sec nicht zufrieden geben wollten, habe
            ich testweise den IPSec Tunnel abgeschaltet und einen GRE Tunnel eingerichtet. Darüber erreiche ich ca. 85-90 MBit/sec. Das
            ist fast das erreichbare Maximum von 100 MBit/sec.

            Als nächstes habe ich einen OpenVPN Peer-to-Peer Tunnel gebaut, und darüber geroutet…. Da war ich dann erstmal wieder
            bei ca. 60MBit/sec :-(

            Bei meinen vielfältigen Tests habe ich dann aber bemerkt, dass das aesni.ko Kernel Module für OpenVPN offenbar gar nicht
            so gut ist. Daher habe ich das mal deaktiviert (SystemAdvancedMiscellaneous -> Cryptographic Hardware=None). Man muss
            aber unbedingt sicherstellen, dass das Modul nicht geladen ist (kldstat darf aesni.ko nicht anzeigen, ggf mit kldunload aesni
            entfernen -> das wiederum geht nur, wenn das Modul gerade nicht genutzt wird, also ggf. openvpn/ipsec tunnel stoppen/beenden).
            Darüber hinaus ist es aber wichtig, dass in der OpenVPN Konfiguration "cryptodev" benutzt wird (also in der OpenVPN Konfiguration
            als "Hardware Crypto" die "BSD cryptodev engine" auswählen.

            Dann läuft alles in Software aber offenbar durch ein effizientes Interface. Ich habe als ciper AES-128-CBC ausgewählt und mit diversen
            digests getestet. Hier erreiche ich dann einen Durchsatz von ca. 80MBit/sec, wobei der openvpn Prozess bei ca. 70-80% CPU
            liegt...

            Mehr kriege ich verschlüsselt über eine apu2 nicht vermittelt. Falls jemand bessere Werte erzielt, wäre ich für einen Hinweis
            dankbar - vor allem im Bezug auf ipsec da ich hier nur magere Übertragungsraten erzielt habe....

            1 Reply Last reply Reply Quote 0
            • U
              Unterwasser last edited by

              Hi alle,

              also gut, nach weiteren, gefühlten 1000 Tests mit pfsense 2.3.4 nehme ich alles zurück und behaupte das Gegenteil :-)

              Tatsächlich kann man mit der apu2 durchaus 100MBit/sec IPSec Performance schaffen. Ich bin in meinen
              ersten Tests schlichtweg an der ungeeigneten Kombination von Ciphern und Hashes gescheitert.

              Mein Setup:

              • SystemAdvancedMiscellaneous -> Cryptographic Hardware = AES-NI CPU-based Acceleration
                  (auf der shell mit "kldstat" prüfen, dass das Modul aesni.ko auch wirklich geladen ist BEVOR ein IPSec Tunnel aufgebaut ist)
              • IPSec Phase 1: IKEv2, Encryption: AES256-GCM mit 128bit Blocklänge, Hash: AES-XCBC, DH-Group: 14
              • IPSec Phase 2: Encryption: AES256-GCM 128bit Blocklänge, Hash: AES-XCBC, PFS group 14

              Ich habe mich auf beiden Seiten des Tunnels auf diese Parameter festgelegt und keine anderen Ciphers/Hashes
              ausgewählt/zugelassen. Insbesondere andere Hashes (MD5,SHA1,SHA256) sind echte "Spielverderber".

              Mit diesen Einstellungen erreiche ich 100MBit/sec durch den IPSec Tunnel. Die CPU der apu2 ist dabei
              auch nur wenig ausgelastet - offenbar passiert dann die Ver-/Entschlüsselung in Hardware.

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

                perfekt, danke für deine Geduld und Rückmeldung…

                Grüße M.

                1 Reply Last reply Reply Quote 0
                • ?
                  Guest last edited by

                  ich habe mir eine nagelneue apu2c4 zugelegt, vor allem um damit IPSec zu tunneln. Das setup war soweit auch kein Problem. Aber
                  ich die Performance ist etwas enttäuschend, daher habe ich angefangen etwas rumzutesten.

                  Welche Performance hast Du denn erwartet?
                  Wie schnell ist denn Dein Internetzugang genau?
                  Was sind denn alles für Pakete installiert worden?

                  Da ist pfsense 2.3.4 drauf und wenn ich mit iperf am LAN Interface teste (vom PC zur PFS), erreiche ich kaum mehr als 350MBit/sec - ohne dass hier auch nur ein Paket vermittelt oder gefiltert wird. Um Probleme am Switch auszuschließen, habe
                  ich einen Server direkt mit der apu2 verbunden -> gleiches Ergebnis.

                  Iperf oder auch NetIO sollten immer als Client / Server von LAN zu WAN durch die pfSense laufen, und dort dann einen VPN
                  Tunnel anzulegen bringt nicht sehr viel, nur echte richtige Daten und Zahlen sind nachher interessant! Was nützt es denn schon
                  zu Hause im "Labor" oder bei dem Testaufbau xyz MBit/s via IPSec zu bekommen und dann im richtigen Einsatz kommt das
                  alles gar nicht so hin wie man es getestet hat! Nichts für ungut und nicht gelästert, aber für den reinen Routing-Durchsatz ist
                  so ein test alle male richtig gut, nur hinsichtlich des VPNs sollte man immer einen richtige VPN Gegenstellen haben, wie z.B.
                  einen Bekannten oder Freund und dann kann man einmal darüber einen test machen und etwas kopieren oder downloaden.

                  Diese 350MBit erreiche ich auch nur, wenn ich IPSec und die Filterregeln ausschalte (SystemAdvancedFirewall & NAT ->
                  Disable all packet filtering.)

                  Naja das ist dann wohl eher ein normales Routing ohne NAT. Also wie LAN port zu LAN port, oder?

                  Wenn ich IPSec einschalte, komme ich noch auf ca 300MBit/sec, mit aktivierter FW gerade mal auf 220 MBit/sec. Auch hier
                  ist noch kein Byte geroutet/vermittelt worden…

                  Also 220 Mbit/s IPSec Performance kann sich doch aber sehen lassen, oder?

                  Nun habe ich schon diverse andere Berichte über apu2 HW gelesen. Da gibt es Bereichte über Routingperformance im
                  Bereich von 500MBit/sec aufwärts.

                  Unter Linux mag das alles etwas anders sein als unter pfSense was ja auch FreeBSD basiert, und Linux mag auch etwas
                  Hardware naher programmiert worden zu sein bis hin zu der etwas besseren Treiberunterstützung, man sollte das nicht
                  alles auf "ein Gramm" abwiegen. GBit/s Durchsatz am WAN soll auch mit > 2.0GHz laufen und nicht mit 1.2GHz wie sie
                  die APU2C4 Geräte bieten!

                  Bei der IPSec Performance (um die es mir eigentlich geht) liege ich im Bereich von 50-60MBit/sec. Ich muss zugeben, dass
                  ich da mehr erwartet hätte.

                  Wie Du selber ja schon heraus gefunden hast profittiert eigentlich nur der AES-GCM Algorithmus von AES-NI und mit einer
                  SG-4860 sind da fast ~500 MBit/s per IPSec drinnen! Das sollte schon gehen oder?

                  Die Frage ist: was mache ich falsch?

                  Was habe ich schon probiert:

                  • HW Offloading on/off
                  • enable/disable TSO und LRO
                  • diverse Tunables

                  Manche Tuning Tipps reichen schon alleine und so manches Tuning ergänzt sich mit dem schon vorhandenen, und bei
                  wiederum anderen Punkten muss man da mehrfach ran und es eben etwas feiner tunen und einstellen.

                  Bei einer 1 GBit/s Netzwerkkarte ist z.B. eine mbuf size von 1000000 gut und bei einigen 10 GBit/s Karten wird es mit
                  65000 erst so richtig etwas. Also man kann nicht unbedingt sagen man stellt etwas ein und es bringt etwas oder nicht
                  sondern man muss schon hier und dort ein wenig einstellen und diese Einstellungen dann mit anderen Sachen kombinieren.

                  1 Reply Last reply Reply Quote 0
                  • JeGr
                    JeGr LAYER 8 Moderator last edited by

                    Da der OT das Problem für sich ja schon erledigt hatte, ist das aber ein wenig obsolete, oder?

                    1 Reply Last reply Reply Quote 0
                    • -flo- 0
                      -flo- 0 last edited by

                      Hallo Unterwasser,

                      darf ich mal diesen älteren Post vorkramen …

                      Erstmal danke für die Untersuchung!

                      @Unterwasser:

                      Mein Setup:

                      • SystemAdvancedMiscellaneous -> Cryptographic Hardware = AES-NI CPU-based Acceleration
                          (auf der shell mit "kldstat" prüfen, dass das Modul aesni.ko auch wirklich geladen ist BEVOR ein IPSec Tunnel aufgebaut ist)
                      • IPSec Phase 1: IKEv2, Encryption: AES256-GCM mit 128bit Blocklänge, Hash: AES-XCBC, DH-Group: 14
                      • IPSec Phase 2: Encryption: AES256-GCM 128bit Blocklänge, Hash: AES-XCBC, PFS group 14

                      Ich habe mich auf beiden Seiten des Tunnels auf diese Parameter festgelegt […]

                      Frage: Was betriebst Du denn auf der anderen Seite des Tunnels, auch eine pfSense oder ein VPN-Client, ggf. welchen?

                      -flo-

                      1 Reply Last reply Reply Quote 0
                      • U
                        Unterwasser last edited by

                        @-flo-:

                        Frage: Was betriebst Du denn auf der anderen Seite des Tunnels, auch eine pfSense oder ein VPN-Client, ggf. welchen?

                        -flo-

                        Hallo,

                        auf der anderen Seite läuft auch eine pfSense (gleiche Version) aber als VM (unter KVM). Die HW die die
                        VM treibt ist so dick, dass es da keine Performance Probleme gibt…

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Products

                        • Platform Overview
                        • TNSR
                        • pfSense Plus
                        • Appliances

                        Services

                        • Training
                        • Professional Services

                        Support

                        • Subscription Plans
                        • Contact Support
                        • Product Lifecycle
                        • Documentation

                        News

                        • Media Coverage
                        • Press
                        • Events

                        Resources

                        • Blog
                        • FAQ
                        • Find a Partner
                        • Resource Library
                        • Security Information

                        Company

                        • About Us
                        • Careers
                        • Partners
                        • Contact Us
                        • Legal
                        Our Mission

                        We provide leading-edge network security at a fair price - regardless of organizational size or network sophistication. We believe that an open-source security model offers disruptive pricing along with the agility required to quickly address emerging threats.

                        Subscribe to our Newsletter

                        Product information, software announcements, and special offers. See our newsletter archive to sign up for future newsletters and to read past announcements.

                        © 2021 Rubicon Communications, LLC | Privacy Policy