Schwacher WAN-Durchsatz



  • Hallo,

    ich habe jetzt schon einiges selbst versucht, jedoch schaffe ich es nicht, mehr als ~3 MByte/s über den WAN-Port zu bekommen.

    Aber zunächst mal zu meinem Aufbau:

    Internet                            AirVPN
                    |                                  :
                    | M-Net 100/10                    :
                    |                                  :
              .–---+---------.                        :
      +-------+ Fritzbox 7490 |                        :
      |      '-----+---------'                        :
      |            | 192.168.178.1/24                : OpenVPN Tunnel
      |        WAN |                                  :
      |            | DHCPv4                          :
      |        .---+-----.                            :
      |        | pfSense +~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
      |        '---+-----'
      |            | 192.168.123.1/24
      |        LAN |                      (über VPN)
      |            | DHCPv4
      |  .--------|-+------.
      +--+ VLAN 1 | VLAN 2 | Managed Switch (TP-Link TL-SG1024DE)
        '-+------|------+-'
          |            |
      ...-+-....        |
      | Server |        |                  (Haustechnik etc.)
                    ....-+-....
                    | Clients |            (Offene WLANs etc.)

    Als Hardware für pfSense kommt folgendes zum Einsatz:

    • Supermicro A1SRi-2558F

      • Intel® Atom™ Processor C2558

      • C2000 SoC I354 Quad GbE Controller (MACs)

    • 8GB Kingston ValueRAM (KVR16LSE11/8KF)

    • DeLOCK SATA Flash Module 16GB

    Ich verwende ausschließlich neue Cat 7 Kabel.
    Konfiguriert habe ich pfSense nach der Offiziellen Anleitung von AirVPN.

    Nun aber zum eigentlichen Problem:
    Ein Download (dieser Datei) per fetch (nach /dev/null) über SSH auf pfSense auszuführen, resultiert in einer Geschwindigkeit von 20-30 MBit/s (~3 MByte/s). Ob ich dabei über WAN direkt oder über VPN gehe, macht kaum etwas aus.
    Über einen Laptop direkt am VPN_LAN erreiche ich 30-40 MBit/s (via wget). Ein Test mit zwei fetch-Instanzen (auf pfSense) gleichzeitig resultierte in doppelter Geschwindigkeit (also ~60 MBit/s), durch weitere Instanzen konnte ich das jedoch nicht weiter steigern.
    Teste ich über den Laptop direkt an der Fritzbox erreiche ich problemlos 10 MByte/s (nicht ausführlich getestet, aber die vollen 100 MBit/s erreiche ich auch).

    Die unter https://doc.pfsense.org/index.php/Tuning_and_Troubleshooting_Network_Cards vorgeschlagenen Einstellungen habe ich bereits ausprobiert. Die Systemauslastung ist auch vernachlässigbar und die Geschwindigkeitsgrenze ist ziemlich sauber (d.h. keine Schwankungen) und immer Reproduzierbar.

    Ich weiß einfach nicht mehr weiter. Ich würde mich freuen, wenn ihr noch Ideen hättet woran das liegen könnte.

    Andere Probleme, welche ich auch noch habe, werde ich dann danach angehen (Traffic aus zweitem LAN geht nicht raus, virtuelles pfSense, "Internet"/Netzwerk über Switch langsamer). Für den Moment kann man sich aber den Switch aus obigem Diagramm wegdenken (ich habe ohne diesen getestet).

    So weit erst mal von meiner Seite. Weitere Infos werden auf Nachfrage ergänzt.

    mfG



  • Könnte eine falsche MTU sein und die Datenpakete werden fragmentiert.
    Double NAT ist ein zusätzliches Problem und völlig unnötig sowie generell mit Einschränkungen behaftet.

    Ich würde ja ein simples DSL Modem z.B. DrayTek Vigor 130 vor die Pfsense hängen. Also nur Modem Betrieb und die FB raus werfen, bzw. hinter die Pfsense hängen, falls diese VOIP macht.

    Eine ganz ähnliches Supermicroboard macht hier ohne Probleme 500mbit im LAN und bald 200mbit FTTH (getestet habe ich diese Geschwindigkeit) mit der Pfsense schon



  • MTU habe ich gar nicht gesetzt. Müsste doch eigentlich automatisch erkannt werden, oder? Werde ich mir aber mal anschauen.

    Um die Double NAT werde ich nicht umhinkommen. Zumindest bis August muss ich mit der "Edition M-Net" der Fritzbox arbeiten :/
    Davon abgesehen sollte das doch trotzdem gehen, oder? Wenn ich selbst auf der pfSense an sich (also noch vor der 2. NAT sozusagen) die Geschwindigkeit nicht erreiche.

    Ich müsste das ganze mal ausführlicher mit iPerf testen und nochmal den Durchsatz an der Fritzbox ohne IPv6 (das war am Testlaptop nicht explizit deaktiviert) messen.


  • Rebel Alliance Moderator

    Double NAT ist ein zusätzliches Problem und völlig unnötig sowie generell mit Einschränkungen behaftet.

    Spannende Aussage, die ich bislang aber noch nirgends habe erleben dürfen. Was sind denn generelle Einschränkungen und Probleme? Wenn auf dem vorgeschalteten Router die pfSense dahinter als exposed Host eingetragen wird, sollte das den Paketen reichlich egal sein. Da hier keine Encapsulation irgendeiner Form stattfindet, ist an der spezifischen Stelle auch kein MTU ein Problem (was nicht heißt dass es davor oder dahinter nicht schon falsch ist). Aber bei ner doppelten NAT hat MTU bislang noch nie reingespielt und auch sonst kein großes Problem gemacht - bin ja als Kabelnetz geschädigter auch darauf angewiesen und nutze das jahrelang schon problemlos mit allem was rumfliegt (v6, VPN, etc.)



  • UPnP ist zum Beispiel eines der klassischen Problemfelder  bei Double NAT


  • Rebel Alliance Moderator

    Ömmm nö. Zumindest bei mir nicht. Funktioniert problemlos in o.g. Szenario. Da ich Daten unterwegs bzw. an andere Standorte bspw. mit BTSync synchronisiere, sehe ich da recht gut, ob UPnP-Ports aufgemacht werden und funktionieren oder nicht. Und da die Daten synchron sind und brav synchronisiert werden, klappt das auch sauber :)



  • Mag sein, dass dies bei einem exposed Host so ist, ist aber nun auch nicht wirklich das klassische Double NAT.



  • Exposed Host ist hier gar nicht benötigt, da offene Ports nicht gewünscht sind. Da würde es ja auch schon Probleme durch das VPN geben ;)

    Ich hab jetzt auch nochmal mit iPerf durchgemessen. Komme sowohl am WAN- als auch am (VPN-)LAN-Port auf 80-90 MBit/s (bei 100-MBit/s-Ethernet-Verbindung), die Hardware ist also definitiv nicht das Problem.

    Interessant finde ich dann wiederum Folgendes:

    Windows Client hinter pfSense (wohlgemerkt wiederum hinter einem weiteren Router [also im Endeffekt triple NAT ;)]):

    iperf -p 5200 -c bouygues.testdebit.info
    ------------------------------------------------------------
    Client connecting to bouygues.testdebit.info, TCP port 5200
    TCP window size:  208 KByte (default)
    ------------------------------------------------------------
    [  3] local 192.168.XXX.XXX port XXXXX connected with 89.84.127.53 port 5200
    write failed: Connection reset by peer
    [ ID] Interval       Transfer     Bandwidth
    [  3]  0.0- 0.0 sec   256 KBytes  54.3 Mbits/sec
    

    Auf pfSense selbst:
    mit VPN:

    iperf -p 5200 -c bouygues.testdebit.info
    ------------------------------------------------------------
    Client connecting to bouygues.testdebit.info, TCP port 5200
    TCP window size: 64.1 KByte (default)
    ------------------------------------------------------------
    [  3] local 10.XXX.XXX.XXX port XXXXX connected with 89.84.127.53 port 5200
    [ ID] Interval       Transfer     Bandwidth
    [  3]  0.0-10.0 sec  18446744073695952896 bits  3422735104518636462967653138432s/sec
    

    ohne VPN:

    iperf -B 192.168.178.XXX -p 5200 -c bouygues.testdebit.info
    ------------------------------------------------------------
    Client connecting to bouygues.testdebit.info, TCP port 5200
    Binding to local address 192.168.178.XXX
    TCP window size: 64.3 KByte (default)
    ------------------------------------------------------------
    [  3] local 192.168.178.XXX port 5200 connected with 89.84.127.53 port 5200
    [ ID] Interval       Transfer     Bandwidth
    [  3]  0.0-10.0 sec  18446744073695969280 bits  3422661519731621410045167665152s/sec
    

    Dabei denke ich, dass folgende Test aussagekräftiger sind:

    Windows Client:

    iperf -l 1M -p 5200 -c bouygues.testdebit.info
    ------------------------------------------------------------
    Client connecting to bouygues.testdebit.info, TCP port 5200
    TCP window size:  208 KByte (default)
    ------------------------------------------------------------
    [  3] local 192.168.XXX.XXX port XXXXX connected with 89.84.127.53 port 5200
    write failed: Connection reset by peer
    [ ID] Interval       Transfer     Bandwidth
    [  3]  0.0- 0.0 sec   416 KBytes  86.7 Mbits/sec
    

    pfSense:
    über VPN:

    iperf -l 1M -p 5200 -c bouygues.testdebit.info
    ------------------------------------------------------------
    Client connecting to bouygues.testdebit.info, TCP port 5200
    TCP window size: 64.1 KByte (default)
    ------------------------------------------------------------
    [  3] local 10.XXX.XXX.XXX port XXXXX connected with 89.84.127.53 port 5200
    [ ID] Interval       Transfer     Bandwidth
    [  3]  0.0-10.3 sec  10.0 MBytes  8.15 Mbits/sec
    
    

    ohne VPN:

    iperf -B 192.168.178.XXX -l 1M -p 5200 -c bouygues.testdebit.info
    ------------------------------------------------------------
    Client connecting to bouygues.testdebit.info, TCP port 5200
    Binding to local address 192.168.178.XXX
    TCP window size: 64.3 KByte (default)
    ------------------------------------------------------------
    [  3] local 192.168.178.XXX port 5200 connected with 89.84.127.53 port 5200
    [ ID] Interval       Transfer     Bandwidth
    [  3]  0.0-10.0 sec  11.0 MBytes  9.22 Mbits/sec
    

    Wobei ich befürchte, dass das alles an der Version von iperf liegt (dabei habe ich extra nicht die eigentlich aktuelle v3 genommen) :/
    Windows:```
    iperf -v
    iperf version 2.0.8b (17 Sept 2015) pthreads

    pfSense:```
    iperf -v
    iperf version 2.0.5 (08 Jul 2010) pthreads
    

    Nehme ich die 2.0.5 für Win32 komme ich auch auf folgendes:

    iperf -p 5200 -c bouygues.testdebit.info
    ------------------------------------------------------------
    Client connecting to bouygues.testdebit.info, TCP port 5200
    TCP window size: 64.0 KByte (default)
    ------------------------------------------------------------
    [  3] local 192.168.XXX.XXX port XXXXX connected with 89.84.127.53 port 5200
    [ ID] Interval       Transfer     Bandwidth
    [  3]  0.0-10.0 sec  2946184355743860 bits  2985223529346989240780709248336s/sec
    
    iperf -l 1M -p 5200 -c bouygues.testdebit.info
    ------------------------------------------------------------
    Client connecting to bouygues.testdebit.info, TCP port 5200
    TCP window size: 64.0 KByte (default)
    ------------------------------------------------------------
    [  3] local 192.168.XXX.XXX port XXXXX connected with 89.84.127.53 port 5200
    [ ID] Interval       Transfer     Bandwidth
    [  3]  0.0-11.7 sec  9.00 MBytes  6.47 Mbits/sec
    

    Okay. Ich mach gleich nochmal einen Post. iPerf3 gibts auch für pfSense, nur nicht über das GUI…



  • Jetzt mit Version 3.1.2 auf allen Maschinen:

    Windows Client:

    iperf3 -4 -p 5200 -c bouygues.testdebit.info
    Connecting to host bouygues.testdebit.info, port 5200
    [  4] local 192.168.XXX.XXX port XXXXX connected to 89.84.127.53 port 5200
    [ ID] Interval           Transfer     Bandwidth
    [  4]   0.00-1.00   sec   640 KBytes  5.24 Mbits/sec
    [  4]   1.00-2.00   sec   896 KBytes  7.34 Mbits/sec
    [  4]   2.00-3.00   sec  1.00 MBytes  8.39 Mbits/sec
    [  4]   3.00-4.00   sec   896 KBytes  7.35 Mbits/sec
    [  4]   4.00-5.00   sec   896 KBytes  7.33 Mbits/sec
    [  4]   5.00-6.00   sec  1.00 MBytes  8.40 Mbits/sec
    [  4]   6.00-7.00   sec  1.00 MBytes  8.39 Mbits/sec
    [  4]   7.00-8.00   sec   896 KBytes  7.33 Mbits/sec
    [  4]   8.00-9.00   sec   896 KBytes  7.34 Mbits/sec
    [  4]   9.00-10.00  sec  1.00 MBytes  8.39 Mbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bandwidth
    [  4]   0.00-10.00  sec  9.00 MBytes  7.55 Mbits/sec                  sender
    [  4]   0.00-10.00  sec  8.79 MBytes  7.38 Mbits/sec                  receiver
    
    iperf Done.
    

    pfSense:
    mit VPN:

    iperf3 -4 -p 5200 -c bouygues.testdebit.info
    Connecting to host bouygues.testdebit.info, port 5200
    [  4] local 10.XXX.XXX.XXX port XXXXX connected to 89.84.127.53 port 5200
    [ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
    [  4]   0.00-1.00   sec  1.03 MBytes  8.63 Mbits/sec    0   78.8 MBytes
    [  4]   1.00-2.00   sec   914 KBytes  7.48 Mbits/sec    4   37.7 MBytes
    [  4]   2.00-3.00   sec   937 KBytes  7.67 Mbits/sec    2   37.7 MBytes
    [  4]   3.00-4.00   sec   998 KBytes  8.18 Mbits/sec    0   77.1 MBytes
    [  4]   4.00-5.00   sec  1010 KBytes  8.28 Mbits/sec    3   70.2 MBytes
    [  4]   5.00-6.00   sec   786 KBytes  6.44 Mbits/sec    2   65.1 MBytes
    [  4]   6.00-7.00   sec   909 KBytes  7.45 Mbits/sec   24   22.3 MBytes
    [  4]   7.00-8.00   sec   949 KBytes  7.77 Mbits/sec    0   70.2 MBytes
    [  4]   8.00-9.00   sec   967 KBytes  7.92 Mbits/sec    3   56.5 MBytes
    [  4]   9.00-10.00  sec   865 KBytes  7.09 Mbits/sec    3   65.1 MBytes
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bandwidth       Retr
    [  4]   0.00-10.00  sec  9.17 MBytes  7.69 Mbits/sec   41             sender
    [  4]   0.00-10.00  sec  9.07 MBytes  7.61 Mbits/sec                  receiver
    
    iperf Done.
    

    ohne VPN:

    iperf3 -B 192.168.178.XXX -4 -p 5200 -c bouygues.testdebit.info
    Connecting to host bouygues.testdebit.info, port 5200
    [  4] local 192.168.178.XXX port XXXXX connected to 89.84.127.53 port 5200
    [ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
    [  4]   0.00-1.00   sec  1.05 MBytes  8.84 Mbits/sec    0   80.4 MBytes
    [  4]   1.00-2.00   sec  1.15 MBytes  9.65 Mbits/sec    0    110 MBytes
    [  4]   2.00-3.00   sec  1.12 MBytes  9.39 Mbits/sec    1   82.2 MBytes
    [  4]   3.00-4.00   sec  1.11 MBytes  9.32 Mbits/sec    0    112 MBytes
    [  4]   4.00-5.00   sec  1.09 MBytes  9.16 Mbits/sec    1   89.7 MBytes
    [  4]   5.00-6.00   sec  1.13 MBytes  9.46 Mbits/sec    7   63.6 MBytes
    [  4]   6.00-7.00   sec  1.12 MBytes  9.36 Mbits/sec    0   99.1 MBytes
    [  4]   7.00-8.00   sec  1.10 MBytes  9.21 Mbits/sec   12   69.2 MBytes
    [  4]   8.00-9.00   sec  1.10 MBytes  9.23 Mbits/sec    0    103 MBytes
    [  4]   9.00-10.00  sec  1.09 MBytes  9.12 Mbits/sec    7   84.1 MBytes
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bandwidth       Retr
    [  4]   0.00-10.00  sec  11.1 MBytes  9.27 Mbits/sec   28             sender
    [  4]   0.00-10.00  sec  10.9 MBytes  9.17 Mbits/sec                  receiver
    
    iperf Done.
    

    Bonus - Linux Laptop direkt an der Fritzbox:

    iperf3 -4 -p 5200 -c bouygues.testdebit.info
    Connecting to host bouygues.testdebit.info, port 5200
    [  4] local 192.168.178.XXX port XXXXX connected to 89.84.127.53 port 5200
    [ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
    [  4]   0.00-1.00   sec  1.05 MBytes  8.85 Mbits/sec    0   84.8 KBytes       
    [  4]   1.00-2.00   sec  1.11 MBytes  9.32 Mbits/sec    1   77.9 KBytes       
    [  4]   2.00-3.00   sec  1.12 MBytes  9.36 Mbits/sec    0   87.5 KBytes       
    [  4]   3.00-4.00   sec  1.15 MBytes  9.67 Mbits/sec    2   71.1 KBytes       
    [  4]   4.00-5.00   sec  1.07 MBytes  9.00 Mbits/sec    1   62.9 KBytes       
    [  4]   5.00-6.00   sec  1.04 MBytes  8.72 Mbits/sec    2   56.1 KBytes       
    [  4]   6.00-7.00   sec  1.12 MBytes  9.36 Mbits/sec    0   69.7 KBytes       
    [  4]   7.00-8.00   sec  1.12 MBytes  9.39 Mbits/sec    1   61.5 KBytes       
    [  4]   8.00-9.00   sec  1.05 MBytes  8.78 Mbits/sec    3   52.0 KBytes       
    [  4]   9.00-10.00  sec  1.06 MBytes  8.87 Mbits/sec    0   65.6 KBytes       
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bandwidth       Retr
    [  4]   0.00-10.00  sec  10.9 MBytes  9.13 Mbits/sec   10             sender
    [  4]   0.00-10.00  sec  10.8 MBytes  9.09 Mbits/sec                  receiver
    
    iperf Done.
    

    Das sieht mir jetzt leider so aus, als ob bei iPerf (zumindest mit dem Server) der Flaschenhals woanders steckt :(


Log in to reply