Synology über Traefik auf externem NAS erreichen

hubort

Member
Moin,

ich habe auf einem NAS Træfik laufen und möchte gerne darüber auf mein DS215j (nicht mit Docker kompatibel) zugreifen.

Hat sich damit bereits jemand auseinandergesetzt oder weiterführende Links? :)
 
Hi,

wo genau soll das Problem liegen? Hast doch bestimmt auch schon anderweitiges dort verewigt, oder? Dann wäre es ja so wie "sonst auch".... Falls nicht... hab ich auch keine Ahnung, da ich Traefik nicht einsetze 😁 Aber hier gibt es definitiv Leute die wo wussten, das weiss ich zumindestens 😇

Auch wenn es jetzt eher weniger angebracht ist... ggf. einfach den Reverse-Proxy der Synology nutzen (aber auch verständlich, wenn man das nicht möchte) ☺️
 
Ja, aber immer über Docker, da ist das dann irgendwann Schema F. 😅
Auf der DS215j läuft aber (leider) kein Docker, das macht es dann etwas abstrakter für mich.
Irgendwie muss ich die Synology in das Træfik-Netzwerk bringen und beiden verklickern wie sie miteinander kommunizieren sollen.

Edit: Habe mal andere Suchbegriffe verwendet und zumindestens einen möglichen Lösungsansatz gefunden.
 
Zuletzt bearbeitet:
Irgendwie muss ich die Synology in das Træfik-Netzwerk bringen
Öhm... eigentlich nicht... Variante a) Traefik hängt direkt am Netz, oder b) in einem eigenen Docker-Netz, geht dann aber mithilfe von NAT wieder raus. Das NAS sollte (eigentlich) - in seiner Form als Reverse-Proxy-"Ziel" keine eigenständige initiale Kommunikation mit dem Reverse-Proxy aufnehmen. Entweder spricht der RP das Ziel initial an, oder es kommt nur eine Antwort zurück (aber egal ob direkt im Netz, oder im eigenen Netz + NAT - spielt keine Rolle, die Kommunikation sollte funktionieren). Das einzige was dann ggf. nicht funktioniert, wäre eine initiale Anfrage der Synology an den Reverse-Proxy (wenn dieser keine eigenständige IP hat, sondern in einem eigenen Netz samt Source-NAT hängt).

EDIT: Jedenfalls meinem Verständnis nach, aber ich hab mit Docker auch nicht wirklich was an der Mütze... 😅
 
Du bringst gute Punkte ein, du brauchst deine Aussagen gar nicht relativieren :)
Vieles davon hatte ich mir auch so überlegt, aber habe da auf jeden Fall auch noch Verständnislücken. So wie ich das verstanden habe (und ich freue mich über Korrekturen, denn ich möchte hier keinen Anspruch auf Richtigkeit erheben), zieht Docker eigene Netzwerke für Services auf, z. B. ist Træfik im Netzwerk proxy, Nextcloud dann mit MariaDB in default und Nextcloud zusätzlich im Netzwerk proxy. So hat Træfik keinen Zugriff auf die MariaDB.
 
Da gibt es verschiedene Möglichkeiten, eine Übersicht findest Du hier: https://docs.docker.com/network/drivers/. Meines Wissens nach, kannst Du auch durchaus mehrere Dinge benutzen und das wird auch gerne mal gemacht, z.B. ein Container von aussen erreichbar, die dazugehörige Datenbank hängt aber - mit dem von aussen erreichbaren Container - nochmal in einem eigenen Netz zwecks interner Kommunikation.

Ein mögliches Konstrukt wäre:

RP: erreichbar von aussen + RP-Netz
NC: RP-Netz + DB-Netz (+ggf. erreichbar von aussen)
DB: DB-Netz (+ggf. erreichbar von aussen)

Mit "aussen" ist hier Dein LAN gemeint, also "ausserhalb" der virtuellen Docker-Netze. Betrachtet man nur die Kommunikation zwischen den Containern, sieht es dann ungefähr so aus:

extern <-LAN-> RP <-RP-Netz-> NC <-DB-Netz-> DB

Alternativ kannst Du NC+DB natürlich auch in ein gemeinsames Netz verfrachten, oder wie auch immer Du Dir das bauen möchtest.
 
Falls das Thema mit Traefik noch relevant sein sollte.

Man kann in Traefik den file_provider als zusätzlichen Provider definieren und dort statische Konfigurationen hinterlegen.

Hier mal exemplarisch die Konfiguration für den file provider und zwei routen. Die Regeln werden für dich vermutlich eher keinen Sinn ergeben, sollen aber auch eher nur den Mechanismus zeigen:

file_provider.yml:
Code:
entryPoints:
  web:
    address: :80

providers:
  file:
    filename: ./dynamic_conf.yml

dynamic_conf.yml:
Code:
# http routing section
http:
  routers:
    service1:
      rule: "Host(`nas1`) && PathPrefix(`/service1/`)"
      middlewares:
      - service1-stripprefix
      service: service1
    service2:
      rule: "Host(`nas1`) && PathPrefix(`/service2/`)"
      middlewares:
      - service2-stripprefix
      service: service2

  middlewares:
    service1-stripprefix:
      stripPrefix:
        prefixes:
          - "/service1/"
    service2-stripprefix:
      stripPrefix:
        prefixes:
          - "/service2/"

  services:
    service1:
      loadBalancer:
        servers:
        - url: http://DS215j:8000/
    service2:
      loadBalancer:
        servers:
        - url: http://DS215j:8080/

Damit Traefik weiss, dass es den file_provider nutzen soll, braucht es die Argumente --configfile file_provider.yml (das müsste in der compose Datei dann unter command eingebaut werden. Beide Dateien müssten über volumes in den Traefik Container gebracht werden, und die Pfade entsprechend im oberen argument, bzw. in der file_provider.yml entsprechend korrigiert werden. Wenn Du mit subdomains arbeitest, kannst du pathprefix in der router rule, sowie die middlewares weglassen.
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
4.595
Beiträge
47.014
Mitglieder
4.238
Neuestes Mitglied
Funkenmariechen
Zurück
Oben