RasPi nicht über Domain erreichbar, … aber über ip (int./ext.)

RasPi nicht über Domain erreichbar, … aber über ip (int./ext.)

Hinweis: meine Domain nenne ich im Folgenden „my-domain.de“ … lautet aber natürlich anders.
IP-Adressen sind durch „X“ unkenntlich gemacht.

Setup:

  • Telekom: ↓ 119,1 Mbit/s ↑ 41,5 Mbit/s, keine Info bezgl. DS-Lite, ipv4= 94.230.xx.xxx
  • Fritz!Box: 7510 FRITZ!OS: 7.57
  • Switch: TP-Link TL-SG105
  • RasPi: Raspberry Pi 4 Model B 8GB RAM (hängt am Lan)
  • OS: DietPi v8.25.1
  • Domain: Strato (my-domain.de, pihole.my-domain.de, nginx.my-domain.de)

Software/Plan:

  • Docker
  • Portainer
  • Nginx Proxy Manager
  • Pihole
  • Home Assistant

Aktueller Stand:

  • Strato Haupt-Domain:

    ssl: aktiv
    dyndns: aktiv
    A: öffentliche ipv4 meiner Fritz!Box (Eintrag durch dyndns)
    AAAA: ipv6 meiner Fritz!Box (Eintrag durch dyndns)
    CNAME Rec: nginx.my-domain.de, pihole.my-domain.de

  • Strato Subdomains:

    nginx.my-domain.de: CNAME: my-domain.de (zeigt auf Haupt-Domain)
    pihole.my-domain.de: CNAME: my-domain.de (zeigt auf Haupt-Domain)

  • Fritz!Box:

    DS-Lite: ??? … ipv4= 94.230.xx.xxx (k.A.)
    IPv6: 2003:cc:XXXX:XXXX:XXXX:XXXX:XXXX:9d3/64
    IPv6-Präfix: 2003:cc:XXXX:XXXX::/56
    DynDNS: aktiviert, my-domain.de, IPv4-Status: erfolgreich angemeldet, IPv6-Status: erfolgreich angemeldet
    Portfreigabe: raspi 192.xxx.xxx.xx ::XXXX:XXXX:XXXX:2a71 ipv4 & ipv6: HTTP 80, HTTPS 443
    DNSv4-Server: 208.67.222.222, 208.67.220.220
    DNSv6-Server: Vom Internetanbieter zugewiesene DNSv6-Server verwenden (empfohlen)
    DNS-Rebind-Schutz: my-domain.de, nginx.my-domain.de, pihole.my-domain.de

  • Portainer Ports:
    portainer: 9002:9000
    nginx-proxy-manager-sqlite: 81:81, 443:443, 80:80
    pihole_unbound: 4443:443, 53:53, 1010:80

  • NginX Proxy:

    SSL Certificates my-domain.de, *.my-domain.de (Strato DNS01 Challenge unf TXT Eintrag war erfolgreich, Cert ist allen Hosts zugeordnet)

    my-domain.de http://[int. ipv4 Fritz!Box:80], Let’Encrypt, Public, Online
    nginx.my-domain.de http://[int. ipv4 Fritz!Box:80], Let’Encrypt, Public, Online ← hier müsste ich den Port 80 noch auf 8080 umleiten … denk ich?! … oder 81 für das logon???
    pihole.my-domain.de http://[int. ipv4 Fritz!Box:1010], Let’Encrypt, Public, Online

    alle drei hosts stehen auf „Force SSL“ und werden demnach automatisch auf Port 81 umgeleitet!?

    Hier bin ich mir nicht sicher welche ip’s ich zuordnen soll. Die interne der Fritz!Box oder die jeweiligen portainer ip’s?
    Beides erfolglos getestet.
    Ich denke die von der Fritz!Box ist schon die richtige und die container werden dann über die Ports angesprochen!?
    Bei den Ports bin ich mir auch nicht sicher welchen genau ich nehmen soll:
    Nehme an, so wie ich den Port 80 der Container umleite … also z.B. für pihole 1010

  • Tests:

    • ping 93.xxx.xx.xxx ← ext. ipv4 der Fritz!Box

      Ping wird ausgeführt für 93.xxx.xx.xxx mit 32 Bytes Daten:
      Antwort von 93.xxx.xx.xxx: Bytes=32 Zeit<1ms TTL=63
      Antwort von 93.xxx.xx.xxx: Bytes=32 Zeit<1ms TTL=63
      Antwort von 93.xxx.xx.xxx: Bytes=32 Zeit<1ms TTL=63
      Antwort von 93.xxx.xx.xxx: Bytes=32 Zeit<1ms TTL=63

      Ping-Statistik für 93.xxx.xx.xxx:
      Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0
      (0% Verlust),
      Ca. Zeitangaben in Millisek.:
      Minimum = 0ms, Maximum = 0ms, Mittelwert = 0ms

    • ping my-domain.de

      Ping wird ausgeführt für 93.xxx.xx.xxx mit 32 Bytes Daten:
      Antwort von 93.xxx.xx.xxx: Bytes=32 Zeit<1ms TTL=63
      Antwort von 93.xxx.xx.xxx: Bytes=32 Zeit<1ms TTL=63
      Antwort von 93.xxx.xx.xxx: Bytes=32 Zeit<1ms TTL=63
      Antwort von 93.xxx.xx.xxx: Bytes=32 Zeit<1ms TTL=63

      Ping-Statistik für 93.xxx.xx.xxx:
      Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0
      (0% Verlust),
      Ca. Zeitangaben in Millisek.:
      Minimum = 0ms, Maximum = 0ms, Mittelwert = 0ms

    • nslookup my-domain.de
      Server: dns.sse.cisco.com
      Address: 208.67.222.222

      Nicht autorisierende Antwort:
      Name: my-domain.de
      Addresses: 2003:cc:xxxx:xxxx:xxxx:xxxx:xxxx:9d3 ← ipv6 der Fritz!Box
      93.xxx.xx.xxx ← ext. ipv4 der Fritz!Box

    • nslookup pihole.my-domain.de
      Server: dns.sse.cisco.com
      Address: 208.67.222.222

      Nicht autorisierende Antwort:
      Name: my-domain.de
      Addresses: 2003:cc:xxxx:xxxx:xxxx:xxxx:xxxx:9d3 ← ipv6 der Fritz!Box
      93.xxx.xx.xxx ← ext. ipv4 der Fritz!Box
      Aliases: pihole.my-domain.de

    • Firefox 192.168.xxx.xx ← interne ip RasPi
      Nginx Congrats Page

    • Firefox 192.168.xxx.xx:81 ← interne ip RasPi - Port 81
      Nginx Admin Page

    • Firefox 192.168.xxx.xx:1010 ← interne ip RasPi - Port 1010
      Pihole Admin Page

    • Firefox 93.xxx.xx.xxx ← ext. ipv4 der Fritz!Box
      Nginx Congrats Page ← … schonmal gut

    • Firefox my-domain.de
      Adressleiste wechselt zu https://my-domain.de ← das ist das „Force SSL“ des nginx denke ich

      Fehler: Umleitungsfehler
      Beim Verbinden mit my-domain.de trat ein Fehler auf.

    • Firefox pihole.my-domain.de
      Adressleiste wechselt zu https://pihole.my-domain.de ← „Force SSL“ des nginx

      403 Forbidden

    • www.whatsmyip.org: 93.230.xx.xxx ← ipv4 meiner Fritz!Box

    • ipv6-test.com: IPv6 not supported

    → what the fudge??? Hab ich am Ende doch DS-Lite???

    • test-ipv6.com: Ihre IPv4 Internet-Adresse ist höchstwahrscheinlich 93.230.xx.xxx ← ipv4 meiner Fritz!Box

        				Ihr Internet Service Provider (ISP) scheint zu sein: DTAG Internet service provider operations
        				Keine IPv6-Adresse erkannt [mehr Infos]
        				Es scheint, als hätten Sie nur eine IPv4-fähige Internetverbindung. Sie werden nicht in der Lage sein, Webseiten, welche nur via IPv6 verfügbar sind, zu erreichen.
        				Um die beste Internet-Leistung und Konnektivität sicherzustellen, fragen Sie bei Ihrem ISP nach nativem IPv6. [mehr Infos]
        				Ihr DNS Server (wahrscheinlich von Ihrem ISP betrieben) scheint über IPv6-Internetzugriff zu verfügen.
        				Ihr Bereitschafts-Ergebnis für Ihre IPv6-Stabilität und -Bereitschaft, wenn Inhalte nur via IPv6 verfügbar sind: 0/10
      

    → hmm? Kein ipv6 … offensichtlich

    → Ich bin verwirrt! Habe ich jetzt doch eine ipv6 fähige Leitung???
    → Ich sehe eindeutig die ipv6 meiner Fritz!Box.

    → und wieder … ipv6 geht ja doch.

  • Bemerkung:

    Vorweg: Ich bin kein Netzwerk-Spezialist … sonst wär ich nicht hier.
    Was ich vor habe (… mit einem RasPi Pihole betreiben und bissl Home Automation und das Ganze von außen zugänglich.) ist sicher schon tausendfach umgesetzt worden.
    Es sieht in den Tutorials so einfach aus und ist bei vielen nach 10 min eingetütet, … nicht so bei mir.
    Ich hänge da schon gut 3 Wochen dran und stoße gefühlt alle 5 min auf irgendein Problem … und langsam an meine Grenzen.
    Ich bin an einem Punkt, an dem ich noch nicht einmal das eigentliche Problem benennen kann, und damit fällt es auch schwer nach einer Lösung zu suchen.

    Ich war schon soweit, dass ich mit der Domain und allen Subdomains zumindest auf der Login-Page der Fritzbox gelandet bin.
    Aus irgendeinem Grund geht das jetzt auch nicht mehr und Firefox gibt mir nur noch den Umleitungsfehler.
    Mit der pihole.subdomain gibts den 403 Forbidden, mit der pihole.subdomain gibts den 502 Bad Gateway.

    Ich bin mir dast sicher, das ipv6 bei meinem Problem auch eine Rolle spielt.
    In meiner Port und Proxy Host konfiguration ist sicher auch der Wurm drin.

    Vielleicht kann mich einer von Euch in die richtige Richtung stupsen oder mir einen Tipp geben wo ich nach Fehlern suchen kann bzw. was hier von Nöten ist.

    Besten Dank vorab!

Fangen wir mal klein an :wink:

  1. NIEMALS, NIE und NEVER willst du deinen Pi-hole öffentlich ins Netz stellen. Da kannst du dir in Deutschland gleich einen guten Anwalt suchen…
  2. Was genau ist am Ende dein Ziel?

Am Besten gibst du möglichst wenig Dienste im Netz frei. Home Assistant erreicht man z.B. über einen VPN. Im schlimmsten Fall könnte sonst jemand von Außen dein Smarthome steuern und nachts um 3 Uhr alle Lichter, die Heizung und eventuell noch Musik abspielen.

Ein paar Sachen, bei denen du falsch denkst (Liste nicht vollständig🤣):

  1. Port 80 = HTTP. Port 443 = HTTPS. Umgeleitet wir davon 80 auf 443. Du brauchst nach außen nur Port 89 und 443. Kein Port 81.
  2. DS-Lite bedeutet, dass du eine öffentliche IPv6 hast, aber nur eine private, nicht von außen erreichbare IPv4.
  3. Man darf Niemals einen Pi-Hole DNS Server nach außen freigeben, weil der nach 5 Minuten missbraucht wird. Für sowas nutzt man ein VPN.