Zugriff auf NAS Service aus dem Internet?

  • Hallo Alle,


    vermutlich übersehe ich ganz was blödes, aber im Moment komme ich nicht weiter mit meinem Anliegen.


    Auf meinem QNAP habe ich mittels ipkg einen cvs Server und ein xinetd installiert. Diese lassen sich aus dem lokalen Netzwerk heraus prima ansprechen.
    Vom Internet aus (ich habe bereits seit Jahren einen DynDNS Eintrag; bislang lief der cvs Server auf einem normalen Linux Rechner), bekomme ich nur ein "Connection Reset".
    Wenn ich statt meinem cvs Server nur ein /bin/echo über den xinetd ausführen lasse, funktioniert es auch wiederum nur aus dem lokalen Netzwerk heraus, nicht aus dem Internet.


    Wenn ich meinem Router beibringe, dass der Port (2401) nicht auf mein QNAP sondern auf mein Arbeitsplatzrechner weitergeleitet werden soll, funktioniert der Zugriff von aussen wieder.


    Da offenbar das Portmapping richtig funktioniert und auch die Anwendung funktioniert, muss es wohl mein QNAP sein, der quer liegt.


    Die Security steht auf "low", allow all connections.


    Oh ja, von meinem QNAP aus, komme ich auch ins Internet. NAT ist im Router aktiviert, Firewall auch, allerdings im Moment ohne Filterfunktion.


    Hat jemand eine Idee was ich übersehen habe??? (Ich bin mir sicher, es ist etwas gaaanz blödes, aber ich komme nicht darauf).


    Im Voraus vielen Dank!


    Gruß,


    Ronald



    Gerade habe ich die Hinweise gelesen und ich werde mal mein Bestes tun die Fehlende Info nach zu reichen.


    1. Mein NAS: QNAP TS-559 Pro II
    2. Meine Netzwerktopologie:


    Intenet
    |
    Router (Easy Box A 300)
    |
    Switch --------+
    | |
    NAS ------ Arbeitsplatz


    Anders gesagt: Der NAS und mein Arbeitsplatzrechner hängen beide am Switch (192.168.25.x/24) und es liegt zusätzlich ein Crosskabel zwischen Arbeitsplatz und NAS (192.168.6.x/24)


    Zusatzinfo:
    Der Arbeitsplatzrechner läuft mit Ubuntu 10.04 LTS.


    uname -a:
    Linux cheetah 2.6.32-31-generic #61-Ubuntu SMP Fri Apr 8 18:25:51 UTC 2011 x86_64 GNU/Linux


    NAS:
    Firmware Version 3.4.3 Build 0520T


    [/etc] # ifconfig
    eth0 Link encap:Ethernet HWaddr 00:08:9B:C7:EA:90
    inet addr:192.168.25.2 Bcast:192.168.25.255 Mask:255.255.255.0
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:336485 errors:0 dropped:0 overruns:0 frame:0
    TX packets:341783 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:58753828 (56.0 MiB) TX bytes:194398515 (185.3 MiB)
    Memory:feae0000-feb00000


    eth1 Link encap:Ethernet HWaddr 00:08:9B:C7:EA:91
    inet addr:192.168.6.2 Bcast:192.168.6.255 Mask:255.255.255.0
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:574177 errors:0 dropped:0 overruns:0 frame:0
    TX packets:736885 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:304001116 (289.9 MiB) TX bytes:951646308 (907.5 MiB)
    Memory:fe9e0000-fea00000


    lo Link encap:Local Loopback
    inet addr:127.0.0.1 Mask:255.0.0.0
    UP LOOPBACK RUNNING MTU:16436 Metric:1
    RX packets:49273 errors:0 dropped:0 overruns:0 frame:0
    TX packets:49273 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:7384519 (7.0 MiB) TX bytes:7384519 (7.0 MiB)


    [/etc] # route -n
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    255.255.255.255 0.0.0.0 255.255.255.255 UH 0 0 0 eth1
    255.255.255.255 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
    192.168.25.2 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
    192.168.6.2 0.0.0.0 255.255.255.255 UH 0 0 0 eth1
    192.168.6.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
    192.168.25.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
    127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
    224.0.0.0 0.0.0.0 240.0.0.0 U 0 0 0 eth0
    0.0.0.0 192.168.25.60 0.0.0.0 UG 1 0 0 eth0


    Wenn mehr Info benötigt wird: einfach fragen

  • Gut, entweder ist das Problem wohl gänzlich unbekannt (weil alle es auf einmal richtig machen, bzw. niemand ähnliche Wünsche wie ich hat), oder niemand weiss auch nur annähernd wo eine Lösung zu suchen ist. Schade.


    Inzwischen habe ich eine Art von Lösung. Auf meinem Arbeitsrechner läuft nun ein (von mir auf die Schnelle geschriebener) Daemon der nix anderes macht als Requests auf den CVS Port (2401) entgegen zu nehmen und an meinen QNAP weiter zu leiten. Damit kommt aus Sicht meines QNAPs der Request aus dem lokalen Netzwerk und die Sache funktioniert.


    Sollte irgend jemand ein ähnliches Problem haben und ebenfalls vergeblich nach einer Lösung suchen, kann er/sie gerne den Source Code meines Daemons haben. (Natürlich funktioniert die Lösung nur auf einem Linux (oder mit geringem Portrierungsaufwand Unix) System).


    Ich bin aber nach wie vor interessiert in echte Lösungen :)


    Ronald

  • Ich denke Dein Problem liegt am Default-Gateway.


    Das NAS nutzt nur ein Default Gateway und es hängt ja in zwei Netzen.


    Was ich aber nicht verstehe: was macht es für einen Sinn in Deiner Konstellation 2 Netze zu verwenden?


    Oder stimmt Deine Zeichnung/Erklärung nicht?


    Mein Vorschlag: Crosskabel auflösen und Switch nutzen (Für den Fall das dieser kein Gigabit unterstützt, Switch ersetzen)

  • Hallo Downsideup,


    erstmal herzlichen dank für Deine Antwort! Ich finde es super wenn jemand mitdenkt und versucht die Ursache meines Problems zu finden!


    Ob ich nun ein Crosskabel oder zwei normale Kabel und einen Switch zwischen meinem Arbeitsplatzrechner und QNAP lege, ist egal. Etwas anderes als transmit und receive vertauschen macht der Switch dann auch nicht. (OK, mein QNAP bemerkt es nicht wenn mein Rechner ausgeschaltet wird, aber das ist dann auch alles).


    Sinn und Zweck meines Setups ist, dass ich für die Kommunikation von meinem Arbeitsplatzrechner zum QNAP (und umgekehrt) die volle Bandbreite einer Ethernetverbindung zur Verfügung habe (theoretisch also 1Gbit/s). Das andere Netzwerk wird auch von vielen anderen Geräten genutzt, so dass hier eine Bandbreite geteilt werden muss. Egoistisch wie ich bin, nutze ich also die Tatsache, dass sowohl mein Rechner als auch mein QNAP zwei NICs haben.


    Es ist klar, dass nur _ein_ default Gateway genutzt werden kann. Das default Gateway wird für "Nachrichten" an Adressen die nicht im lokalen Netzwerk zugestellt werden können, genutzt. Also alles was nicht 192.168.25.x/24 bzw. 192.168.6.x/24 ähnelt. Nach wie vor: Zugriff aufs Internet von meinem QNAP aus, ist kein Problem. Damit ist mein Router von innen nach aussen zumindest OK. Von meinem Arbeitzplatzrechner aus, komme ich natürlich auch nach aussen aber zudem von aussen nach innen (so weit ich das zugelassen habe, also SSH und CVS).


    Meine Zeichnung wurde etwas kaputt gemacht. Font Problem. :( Aber die Erklärung dazu trifft es genau. :)


    Übrigens bleibt das Problem bestehen, wenn ich das Cross-Kabel entferne (dann muss mein Arbeitsplatzrechner natürlich übers 192.168.25.x/24 Netz mit dem QNAP Kommunizieren). Zugriff von innen (auf mein QNAP) klappt, Zugriff (über mein Router mit NAT) von aussen funktioniert nicht.


    Gruß,


    Ronald

  • Sorry, Du hast mich missverstanden:


    Das Crosskabel und das zweite Netz kannst Du komplett entfallen lassen.


    Was das Crosskabel macht und wie ein Switch funktioniert ist mir durchaus bewusst. :roll:


    Du kannst alles was Du machst über ein Netzwerkinterface durchführen.


    Die Kommunikation erfolgt über den bereits vorhandenen Switch.


    Was ich nicht verstehe: was läuft an Datenverkehr über das zweite Interface, das es dediziert ein eigenen Netz benötigt und eine eigene Ethernetschnittstelle?


    Vielleicht kannst Du mir das mal erklären.


    Wie hast Du z.B. das Port Forwarding auf dem Router konfiguriert?


    Danke...

  • Hallo Downsideup,


    natürlich benötige ich das zweite Netzwerk nicht zwingend. Aber wenn ich eine gesamte Bandbreite von 2GBit/s zur Verfügung habe wäre es ja schade die Hälfte davon ungenutzt liegen zu lassen. Und ja, ich kann natürlich beide Rechner jeweils zwei Adressen im 192.168.25.0 Netz geben und jeweils zwei Kabel zu meinem Switch verlegen, aber (abgesehen von der Tatsache, dass mein Switch dann zu wenig ports hat) dann werden 2 GBit/s Bandbreite auf allen angeschlossenen Geräten verteilt. Jetzt habe ich zweischen Arbeitsplatz und QNAP immer eine Bandbreite von 1 GBit/s. Der Rest muss dann schauen mit der anderen 1 GBit/s klar zu kommen. Im Normalfall wird es kein Problem sein, aber sollten alle Smartphones, Laptops und sonstige Geräte plötzlich auf die Idee kommen, dass Kommunikation eine tolle Sache ist, kann ich ungehindert weiter arbeiten. Mein Netzwerksegment ist schlichtweg nicht betroffen.
    Ich könnte auch Geld für ein managed Switch ausgeben, aber diese Lösung kostet nichts und tut was ich möchte.


    Noch bin ich in der Setup-Phase des Ganzen. Mittelfristig stelle ich mir aber schon vor (testen werde ich es auf jeden Fall), dass mein /home auf den QNAP landet. Dann benötige ich jedes bisschen Bandbreite um eine akzeptable Performance zu haben. Ansonsten wird mein QNAP etwas Musik streamen (übers zweite Interface, also ins "große" Netz) und dient sowieso als CVS Server (ok, das liefert nicht direkt ein riesen Traffic, aber wenn's mal anfällt sollte es schnell gehen). Alternativ zum /home auf dem QNAP kann ich auch Datensicherungen von meinem /home auf den QNAP speichern. Auch da bin ich nicht traurig wenn's schnell geht. (Und wenn's klappt mit /home auf dem QNAP, läuft die Sicherung in die andere Richtung).


    Das Port Forwarding auf meinem Router ist denkbar einfach. Ich erzähle dem Router auf welchem Port er an der Internetseite hören soll und wohin Connects bzw. Traffic auf den Port hingeschickt werden sollen. Ich fülle also eine Tabelle aus in der Art:


    Port Zieladresse Zielport
    2401 192.168.25.2 2401
    22 192.168.25.11 22


    So funktioniert CVS nicht übrigens. Wenn ich aus 192.168.25.2 eine 192.168.25.11 mache, und mein Daemon starte, dann läuft's prima. Wenn ich mein alter CVS Server starte und die 192.168.25.24 eintrage, funktioniert es auch. Es ist wirklich nur der Zugang aus dem Internet auf mein QNAP der nicht funktioniert. Also irgendeine Art von Firewall Einstellung, die ich aber trotz intensive Suche nicht gefunden habe. Ich weiss, dass es nicht unüblich ist "fremde" Adressen nicht zu zu lassen (sogar sehr sinnvoll), aber für diesen einen Port möchte ich dann doch eine Ausnahme machen.


    Gruß,


    Ronald

  • Die Backplane Deines Switches ist in der Regel (mal von Billigswitchen oder alten geswitchten Hubs) schon so ausgelegt das auf jedem Port den Du nutzt die Gigabit voll zur Verfügung stehen.


    Dein NAS wird die Gigabit Schnittstelle aktuell nicht ausreizen können und da ist sicher noch genug Bandbreite übrig um Mails zu checken oder ein Userprofil zu laden.


    Warum soll ein managed Switch daran etwas ändern? Ein dediziertes Vlan erweitert die Bandbreite nicht.


    Wenn Du die Security nicht eingeschränkt hast ist es ein Routingproblem oder ein Problem mit den genutzten Ports.

  • Wenn ich 1 Kabel vom NAS zum Switch (und alle andere Ports sind nun mal belegt) habe, geht da maximal 1 Gbis/s rüber. Wenn ich Musik hören möchte _und_ ein Backup ziehen möchte ist potentiell 100 Mbyte/s die Obergrenze. Jetzt habe ich zwei.
    Das Netzwerk ist gar nicht das Problem, das funktioniert prima in allen Richtungen, bis auf den Zugriff aus dem Internet auf das NAS.
    Da ich die Ports auf anderen Rechnern (der QNAP ist auch nur ein Rechner) von aussen problemlos ansprechen kann, liegt das Problem auf dem NAS und ist es kein Routing- oder Netwerkproblem. (Wie gesagt, ohne Cross-Kabel funktioniert es auch nicht, und dann habe ich die von Dir offenbar bevorzugte Netzwerktopologie).


    Hast Du übrigens schon mal einen Compile von einem größeren Projekt auf ein NFS mounted Directory versucht? Da entsteht einiges an Traffic. Fürs E-Mail checken brauche ich natürlich keine zweite Leitung. Und User-Profile unter Linux/Unix Systeme sind typischerweise nur wenige Megabyte (oder gar nur Kilobyte, je nach Benutzeroberfläche) groß.

  • Wenn Du mal den maximalen Traffic Deines NAS messen tätest, würdest Du feststellen das Du es nicht schaffst an die max. 100Mbyte/sec. heranzukommen. Der max. Durchsatz wird je nach Dateigrösse zwischen 50 und 80 Mbyte/sec. liegen. Da ist sogar noch Luft im Internet zu surfen und ein HD Video aus dem Internet zu streamen, erst dann geht der Gigabit Schnittstelle die Luft aus. Da hilft die zweite Schnittstelle nichts wenn die CPU des NAS zu wenig Leistung hat diese noch zu bedienen.


    Dein Netzwerkdesign macht in meinen Augen wenig Sinn und verkompliziert nur unnötig die Fehlersuche.


    Ich gebe Dir Recht das Dein Portmapping zu funktionieren scheint aber nutzt Deine Anwendung auf dem Server die selben Ports? Deine Routing Tabelle auf dem NAS zeigt auch nichts ungewöhnliches...ansonsten kannst Du mal Screenshots der Security und Netzwerksettings posten. Ansonsten ist die Fehlerdiagnose aus der Ferne schwierig...


    Du kannst ja mal Wireshark auf Deinem PC installieren und den Traffic in Richtung NAS bzw. Router mitschneiden.



    Dann siehst Du ganz schnell wo es hakt...

  • Gut, einen Auszug von meinem NAS:


    [~] # netstat -an
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address Foreign Address State
    tcp 0 0 0.0.0.0:49152 0.0.0.0:* LISTEN
    tcp 0 0 0.0.0.0:2401 0.0.0.0:* LISTEN
    tcp 0 0 0.0.0.0:6881 0.0.0.0:* LISTEN
    tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN
    tcp 0 0 0.0.0.0:610 0.0.0.0:* LISTEN
    tcp 0 0 0.0.0.0:3493 0.0.0.0:* LISTEN
    tcp 0 0 192.168.25.2:9000 0.0.0.0:* LISTEN
    tcp 0 0 192.168.6.2:9000 0.0.0.0:* LISTEN
    tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
    tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN
    tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN
    tcp 0 0 0.0.0.0:49804 0.0.0.0:* LISTEN
    tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
    tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
    tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN
    tcp 0 0 0.0.0.0:33844 0.0.0.0:* LISTEN
    tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
    tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
    tcp 0 0 0.0.0.0:48918 0.0.0.0:* LISTEN
    tcp 0 0 0.0.0.0:631 0.0.0.0:* LISTEN
    tcp 0 0 0.0.0.0:8090 0.0.0.0:* LISTEN
    tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN
    tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN


    Es folgt noch mehr, aber das Hören auf Port 2401 ist nicht zu übersehen (und, wie auch schon gesagt, aus dem lokalen Netzwerk heraus funktioniert ja alles).


    Ich gebe Dir Recht, dass prinzipiell eine kompliziertere Topologie die Fehlersuche schwieriger macht, aber die Topologie habe ich ja schon als Fehlerquelle ausgeschlossen (denn ob ich nun eine eigene Verbindung zwischen NAS und Arbeitsplatz habe oder nicht, macht keinen Unterschied, noch abgesehen von der Tatsache, dass diese Verbindung beim direkten Zugriff auf das NAS gar nicht benutzt wird).


    Security und Network settings habe ich bereits beschrieben, aber zur Sicherheit schicke ich die Screenshots mal mit.


    Ich tippe nach wie vor auf irgendeine Firewall Einstellung die Traffic von aussen blockiert.

  • Die Netzwerksettings sind ok und die Securitysettings auch.


    Eine Firewall im NAS gibt es nicht.


    Wenn es im lokalen Netz geht, vermute ich den Fehler in Deinem Router.


    Du solltest dort mal die Routingtabelle und das Port Mapping sowie die Firewall Settings überprüfen.


    Evtl. Ein Mac-Filter?


    Ich bin ziemlich sicher das das Problem dort zu suchen ist... ;)

  • Zitat

    Die Netzwerksettings sind ok und die Securitysettings auch.


    ja, die sind so wie schon beschrieben


    Zitat

    Eine Firewall im NAS gibt es nicht.


    Und wenn es doch eine gäbe, wo wäre sie dann?


    Zitat

    Wenn es im lokalen Netz geht, vermute ich den Fehler in Deinem Router.


    Das ist keine unlogische Vermutung


    Zitat


    Du solltest dort mal die Routingtabelle und das Port Mapping sowie die Firewall Settings überprüfen.
    Evtl. Ein Mac-Filter?


    Mac-Filter habe ich (vorübergehend) ausgeschaltet, allerdings bereits ganz am Anfang. Zugriff vom NAS aufs Internet ist auch kein Problem (und das NAS bekommt auch Antworte, es hat gestern sogar ganz selbständig festgestellt, dass es ein Firmware Update gibt).
    Firewall ist aktiviert (wie bereits geschrieben), hat aber keine Filterregeln hinterlegt. Mit dem Portmapping wurde natürlich fleissig rumgespielt. Dass ich wiederholt unfähig bin, 11 nach 2 zu ändern halte ich jedoch für unwahrscheinlich. Deutsche Rechtschreibung ist nicht so ganz meine Sache, aber mit Zahlen komme ich normalerweise gut zurecht.


    Aufgrund des Fehlens spezifischer FW-Regeln, gibt es eine Art Symmetrie. Anders gesagt, ob ich nun die Adresse 192.168.25.2 oder die 192.168.25.24 oder die 192.168.25.11 von aussen anspreche (über NAT) ist egal. Die 192.168.25.11 und 192.168.25.24 sind Linux Rechner die ich selbst aufgesetzt habe, und da funktioniert der Zugriff. Auf dem NAS nicht.


    Aufgrund dieser Überlegung teile ich Deine Überzeugung nicht :(

  • Du kannst ja mal testweise die IP Adressen Deinen PCs mit der des NAS vertauschen.


    Nur so eine Idee...