Mein aktuelles Netzwerk:

Mein aktuelles Netzwerk:

Mein aktuelles Netzwerk:

Router         - 192.168.1.1   (static)
Windows PC     - 192.168.1.10  (static)
Synology NAS   - 192.168.1.11  (static)
DockerPihole   - 192.168.1.12  (macvlan-static)
DockerUnbound  - 192.168.1.13  (macvlan-static)
DockerTraefik  - 192.168.1.14  (macvlan-static)

Docker Bridge Network (damit Traefik funktioniert)

DockerTraefik  - 192.168.10.2  (bridge-static)
DockerNginx1   - 192.168.10.10 (bridge-static)
DockerNginx2   - 192.168.10.20 (bridge-static)
  • Ich verwende Docker auf meinem Synology NAS
  • Ich verwende DNS auf meinem Synology NAS (die integrierte DNS-App). Pi-Hole, Unbound und Traefik laufen in einem gemeinsam genutzten Macvlan.
  • Ich habe ein Brückennetzwerk erstellt, über das Traefik eine Verbindung zu jedem Container herstellen kann.
  • Ich konfiguriere Labels auf dem Stapel jedes Containers in Portainer, um die Traefik-Konfiguration zu handhaben.
  • Ich versuche, dem Tutorial hier zu folgenhttps://youtu.be/wLrmmh1eI94aber das war nicht auf einer Synology, also ist es etwas anders.
  • Obwohl ich Eigentümer der Domäne bin, die ich verwenden möchte, ist dies meines Wissens nach nicht erforderlich, solange ich auf meinen Synology DNS-Server verweisen kann, der diese Domäne verwaltet.

Der Hauptunterschied besteht darin, dass Synology bereits 80 und 443 verwendet. Meine Lösung bestand daher darin, Traefik in ein Macvlan zu setzen, damit es nicht zu Portkonflikten kommt.

Ich habe fast alles zum Laufen gebracht, aber ich habe Probleme, diese eine (hoffentlich letzte) Sache herauszufinden. In den Traefik-Protokollen kann ich sehen, dass letsencrypt.org Probleme mit meinem DNS hat.

Hier ist der Fehler für das Protokoll:

level=error
msg=Unable to obtain ACME certificate for domains "nginx2.mydomain.com": 
    unable to generate a certificate for the domains [nginx2.mydomain.com]:
error: one or more domains had a problem:
      [nginx2.mydomain.com] acme: error: 400 :: urn:ietf:params:acme:error:dns :: DNS problem: NXDOMAIN looking up A for nginx2.mydomain.com
      - check that a DNS record exists for this domain; DNS problem: NXDOMAIN looking up AAAA for nginx2.mydomain.com
      - check that a DNS record exists for this domain
providerName=staging.acme
routerName=nginx2@docker
rule=Host(`nginx2.mydomain.com`)
ACME CA=https://acme-staging-v02.api.letsencrypt.org/directory

Ich habe den DNS in der Synology eingerichtet und meinen Router so eingestellt, dass die Synology mein erster DNS-Server ist. Wenn ich nginx2.mydomain.com von meinem PC aus anpinge, wird die IP des DockerTraefik-Containers 192.168.1.14 zurückgegeben. Ich glaube, das ist das richtige Verhalten.

Wenn ich mir außerdem meine acme.json-Datei anschaue (die leer war), sehe ich, dass sie mit einem Zertifikat mit dem Status „gültig“ (derzeit Staging, Produktion ist leer) gefüllt wurde. Ich glaube, das ist das richtige Verhalten.

Ich bin nicht sicher, was ich übersehe, aber wenn ich zu nginx2.mydomain.com navigiere, sagt das Zertifikat im Browser

Ausgestellt an: TRAEFIK DEFAULT CERT Ausgestellt von: TRAEFIK DEFAULT CERT

Ich erwarte, dass dort steht: Ausgestellt an: nginx2.mydomain.com Ausgestellt von: (STAGING) ...

Hier sind meine Ziele:

  1. (erledigt) Greifen Sie über den Namen auf meine Docker-Container zu. Beispiel: nginx.mydomain.com
  2. (erledigt) Zugriff auf meine Docker-Container ohne DNS (bei Problemen). Beispiel: 192.168.1.14:10080
  3. Der Browser sagt „Sicher“, wenn ich per Namen auf meine Container zugreife.
  4. Vielleicht möchte ich ein oder zwei davon später extern verfügbar machen, daher ist es wichtig, diese Option leicht verfügbar zu halten. Momentan plane ich jedoch, für alles ein VPN zu verwenden.

Probleme, die ich bisher gelöst habe:

  1. Ich kann Traefik keinen direkten Zugriff auf 80/443 geben, da das NAS diese Ports verwendet.
    • Ich habe Traefik in ein Macvlan-Netzwerk integriert
  2. Container konnten ihren übergeordneten Container nicht anpingen
    • Durch das Hinzufügen von Ports zum Stapel (z. B. „Ports:/n – 180:80/n – 1443“) konnte ich direkt mit DNS auf den Container zugreifen (Ziel Nr. 2) und außerdem das Ping-Problem des übergeordneten Elements beheben.

verwandte Informationen