Hallo,
ich habe eine Nextcloud in der DMZ hinter einer OPNsense, was grundsätzlich auch funktioniert. Die Nextcloud ist außerdem auch über ein lokales Netzwerk (auch hinter der OPNsense) erreichbar. Die DNS Einstellungen wurden hier schon angepasst. Jetzt habe ich das Problem, dass ich nur aus diesem lokalen Netzwerk keine größeren Dateien auf die Nextcloud laden kann, weil der Upload nach einigen kbytes abbricht. Direkt aus der DMZ besteht dieses Problem nicht und es können auch Dateien aus der Nextcloud heruntergeladen werden. Hat jemand eine Idee, was das Problem sein könnte?
Danke schonmal!
Ist da nur Routing und Firewalling im Spiel oder betreibst du die Nextcloud in Verbindung mit HAproxy oder ähnlichem auf der Sense?
Welchen Client nutzt du von extern, welchen Client von intern? Ist das der selbe Client (z.B. Laptop)?
Arbeitest du von außen mit Portforwarding direkt auf die Nextcloud? Wenn ja welche Ports sind freigeben/weitergeleit?
Welche Firewallregeln sind auf dem internen Interface vom internen Netz (Standard-LAN Interface)?
Findet der Upload jeweils über HTTPs, also das Webinterface der Nextcloud statt oder lädst du noch über andere Protokolle hoch/runter (FTP, Webdav, ....)?
Klingt zwar nach nem einfachen Netzaufbau, aber ein Netzplan wäre trotzdem ganz schön. ;-)
Die Nextcloud läuft im Zusammenhang mit HAproxy. Dieser läuft aber auf einem anderen Container des selben Servers im selben Netzwerk. Entsprechend werden über Portforwarding die Ports 443 und 80 an den Container, auf dem HAproxy läuft, weitergeleitet. Dieser kümmert sich dann um den Proxy zu der Nextcloud (nur Port 443). Also würde ich behaupten, dass nur Routing und Firewalling im Spiel ist. Ich nutze von extern und intern den selben Laptop (bisher nur) über das Webinterface. Das Problem tritt aber bei allen Geräten im LAN auf.
In der Sense ist eine Regel für das LAN eingerichtet, die alle Verbindungen in andere Netzwerke zulässt. Hier mal ein grober Plan von den wichtigsten Teilen des Netzwerks:
WAN
|
LAN OPNsense ServerNetzwerk
––––––––––' '–––––––––––––––––––
| | |
Lokaler Rechner HAproxy Nextcloud
Wird die Nextcloud denn immer über den (gleichen) DNS-Namen angesprochen? Wenn sich der Proxy auch um SSL kümmert, könntest Du (falls Unbound auf der Sense läuft) einen Override Eintrag für Clients aus dem LAN erstellen und auf die IP des Proxys verweisen, damit der Traffic von intern nicht über das Gateway geht.
Der Override Eintrag ist bereits eingetragen. Vorher war die Nextclod von lokal gar nicht erreichbar. Jetzt ist sie erreichbar. Nur Uploads ab wenigen kByte sind nicht möglich. Die Nextcloud meldet:
QuoteSabre\DAV\Exception\BadRequest: Erwartete Dateigröße von 910320 bytes, aber 49152 bytes gelesen (vom Nextcloud-Client) und geschrieben (in den Nextcloud-Speicher). Dies kann entweder ein Netzwerkproblem auf der sendenden Seite oder ein Problem beim Schreiben in den Speicher auf der Serverseite sein.
Um ein Speicherproblem kann es sich nicht handeln, weil Uploads von extern ja funktionieren.
Als was läuft Nextcloud denn? VM, LXC oder Docker? Falls Apache für Nextcloud verwendet wird, sollte das Modul ,,mod_reqtimeout.so" testweise in der http.conf auskommentiert werden.
Ansonsten würde ich zunächst versuchen, mittels iperf o.ä. die Verbindung vom LAN zum Host der NC zu testen, ob es grundlegende Probleme gibt.
Nextcloud läuft in LXC mit Apache. Deaktivieren des Moduls brachte keine Veränderung.
iperf liefert:
Quote[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 529 KBytes 4.33 Mbits/sec 2 1.41 KBytes
[ 5] 1.00-2.00 sec 0.00 Bytes 0.00 bits/sec 1 1.41 KBytes
[ 5] 2.00-3.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
[ 5] 3.00-4.00 sec 0.00 Bytes 0.00 bits/sec 1 1.41 KBytes
[ 5] 4.00-5.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
[ 5] 5.00-6.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
[ 5] 6.00-7.00 sec 0.00 Bytes 0.00 bits/sec 1 1.41 KBytes
[ 5] 7.00-8.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
[ 5] 8.00-9.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
[ 5] 9.00-10.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 529 KBytes 433 Kbits/sec 5 sender
[ 5] 0.00-10.01 sec 65.0 KBytes 53.3 Kbits/sec receiver
iperf Done.
Es scheint also ein grundlegendes Problem zu sein.
Der iperf Test lief vom LAN zum LXC der NC? Proxmox VE als Hypervisor? Wenn iperf vom LAN zum Hypervisor volle Geschwindigkeit liefert, könnte man die Sense (vorerst) als Ursache ausschließen. Wobei ich letztens eine defekte 2x10G NIC in einer Sense hatte, die auf einem der Ports (dediziertes VLAN interface) 4kbit oder meistens auch gar nix durchließ. NIC getauscht (Intel 710-DA2), Problem weg. Das aber nur als Randnotiz.
Ja, Proxmox VE ist der Hypervisor. Der erste Test lief vom LAN zum Hypervisor, weil direkt auf ihm HAproxy läuft. Ich habe jetzt mal zum LXC der NC getestet und dort kam:
Quote[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 37.4 MBytes 314 Mbits/sec 0 1.67 MBytes
[ 5] 1.00-2.00 sec 38.8 MBytes 325 Mbits/sec 0 2.10 MBytes
[ 5] 2.00-3.00 sec 42.5 MBytes 356 Mbits/sec 0 2.63 MBytes
[ 5] 3.00-4.00 sec 41.2 MBytes 346 Mbits/sec 0 2.76 MBytes
[ 5] 4.00-5.00 sec 41.2 MBytes 346 Mbits/sec 238 2.07 MBytes
[ 5] 5.00-6.00 sec 47.5 MBytes 397 Mbits/sec 151 1.58 MBytes
[ 5] 6.00-7.00 sec 58.8 MBytes 494 Mbits/sec 0 1.68 MBytes
[ 5] 7.00-8.00 sec 52.5 MBytes 440 Mbits/sec 0 1.75 MBytes
[ 5] 8.00-9.00 sec 58.8 MBytes 493 Mbits/sec 0 1.80 MBytes
[ 5] 9.00-10.00 sec 56.2 MBytes 472 Mbits/sec 0 1.83 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 475 MBytes 398 Mbits/sec 389 sender
[ 5] 0.00-10.01 sec 473 MBytes 396 Mbits/sec receiver
iperf Done.
Also besteht das Problem nur zum Hypervisor. Ist es vielleicht grundsätzlich so, der Hypervisor keine größeren Datenpakete annimmt? Sollte ich HAproxy in einen LXC verschieben?
Der PVE sollte eher als der LXC volle Bandbreite liefern. iperf läuft dort ohne Einschränkung. Hast Du die Firewall am PVE modifiziert bzw. rules erstellt? Die Bridges sind ,,sauber" konfiguriert?
Ich habe die Firewalleinstellungen am PVE nicht verändert.
Die Bridges sind eigentlich auch ziemlich standard. Also ich habe zwei Bridges: Eine geht in die "DMZ" und eine ins LAN. Wobei die ins LAN nur von einem LXC mit unificontroller und einer VM mit einem Proxmox Backup Server genutzt wird. Als Gateway ist die Sense mit ihrer IP in der "DMZ" eingetragen. Die Bridges haben aber doch bis auf die IP wenig mit dem PVE selbst zu tun, oder?
Ich denke, dass ein genauerer Netzwerkplan vielleicht hilfreicher wäre (inkl. VLANs, falls verwendet). Ebenso ein Auszug aus Deiner PVE NIC config aus /etc/network/interfaces.