RPi4 Home-LAN

  • Hi,


    bei den meisten Kollegen hier stehe ich ja schon auf der Abschussliste...


    Also experimentiere ich erstmal im LAN rum.. Hab ja noch 3 RPi4 rumfliegen.. Wahnsinn, was der kleine alles kann.


    Am meisten interessiert mich, wie ich jedem Dienst statt dem Port eine xyz.local Domain geben kann. Im Moment ist der RPi unter nas.local erreichbar, eingetragen im DNS bei Pihole. da kann man aber keine Ports angeben. Wahrscheinlich nginx reverse proxy? Aber da habe ich auch schon wieder Bedenken - installiere ich den jetzt per Docker - danach geht nix mehr



    Screenshot 2023-01-14 at 18-02-10 Portainer local.pngScreenshot 2023-01-14 at 17-51-33 Startseite.pngScreenshot 2023-01-14 at 17-53-46 openmediavault Workbench - Dashboard.png

    RS 3000 G9.5 SE auch genannt OST22 L - 24 GB RAM, 8 Kerne, AMD Epyc, 960 GB SSD

    Webhosting 8000 SE BF22

  • Am meisten interessiert mich, wie ich jedem Dienst statt dem Port eine xyz.local Domain geben kann.

    Erst mal gar nicht. Ein Dienst ist kein Hostname (zu DNS-SD kommen wir noch). Dazu solltest du bedenken, dass .local die mDNS Domain ist. In sowas wie PiHole solltest du die nicht verwenden.


    Du kannst Endgeräte dazu bringen, ihre Dienste per DNS-SD bekannt zugeben, dazu brauchst du zeroconf und mDNS. Möglicherweise geht sowas auch auf Standard-DNS, vielleicht sogar auf dem PiHole, aber das dürfte dann eine eher statische Angelegenheit werden. Wenn du Anleitungen suchst: DNS-SD ist das ZauberGoogle-Wort.


    Natürlich gibts auch andere Möglichkeiten der Service Discovery. Wenn du schon dabei bist, kannst du dir die ja auch mal ansehen.


    nginx, docker oder gar einen Reverse Proxy braucht man dafür nicht. Wenn man es sorgfältig konfiguriert, dann ist es aber denkbar, auch Dienste im Docker per DNS-SD im Netz bekannt zu geben.

  • Dazu solltest du bedenken, dass .local die mDNS Domain ist. In sowas wie PiHole solltest du die nicht verwenden.

    Aber in allen Anleitungen, die ich dazu finden kann, heisst es immer .local , .home oder .lan - was denn nu?


    Den Rest google ich mal, danke! :thumbup:

    RS 3000 G9.5 SE auch genannt OST22 L - 24 GB RAM, 8 Kerne, AMD Epyc, 960 GB SSD

    Webhosting 8000 SE BF22

    Einmal editiert, zuletzt von KrisAusEU ()

  • Am meisten interessiert mich, wie ich jedem Dienst statt dem Port eine xyz.local Domain geben kann. Im Moment ist der RPi unter nas.local erreichbar, eingetragen im DNS bei Pihole. da kann man aber keine Ports angeben.

    DNS hat erst mal nichts mit Ports zu tun, sondern weist nur Domainnamen IP Adressen zu.


    Wenn Du Deine Dienste ohne Angabe des Ports erreichen willst (wäre mir wurscht, aber ok), also z.B. https://grafana.nas.local wirst Du sowohl diesen DNS Namen an der genannten Stelle in Pi-Hole einrichten und auf den Server verweisen lassen müssen (grafana.nas.local -> 192.168.0.23), als auch einen lokalen Reverse Proxy wie NPM einrichten (http(s)://grafana.nas.local -> nas.local:3000). Du wirst allerdings für HTTPS eher selbsterzeugte Zertifikate verwenden müssen, die dann im Clientbrowser nicht automatisch vertraut sind, oder Du bleibst bei HTTP, Du brauchst ja im LAN keine Man in the Middle Attacke befürchten.

    Was nebenbei auch gehen würde: eine "echte" Domain meinedomain.tld mit öffentlichen A Records zu verwenden, die auf lokale IPs verweist. Diese DNS Namen gehen dann logischerweise nur in Deinem LAN und nicht außerhalb, kann man aber absolut machen. Mit der DNS Methode kannst Du Dir dafür auch z.B. bei Cloudflare oder deSEC ein LE Wildcard Zertifikat holen.

    RS Ostern L OST22 (~RS "3000" G9.5) (8C,24GB,960GB) | RS Cyber Quack (1C,2GB,40GB)

  • Was nebenbei auch gehen würde: eine "echte" Domain meinedomain.tld mit öffentlichen A Records zu verwenden, die auf lokale IPs verweist. Diese DNS Namen gehen dann logischerweise nur in Deinem LAN und nicht außerhalb, kann man aber absolut machen. Mit der DNS Methode kannst Du Dir dafür auch z.B. bei Cloudflare oder deSEC ein LE Wildcard Zertifikat holen.

    Das wäre mir ja am liebsten, eine .de Domain hätte ich auch noch übrig (hier bei netcup). Aber da scheitert es wahrscheinlich wieder am Provider-NAT.. So DynDNS-Kram geht ja hier auch nicht.. Wo ich wieder bei meiner VPN-Theorie wäre. Aber eins nach dem anderen.


    Dir auch danke ! :thumbup:

    RS 3000 G9.5 SE auch genannt OST22 L - 24 GB RAM, 8 Kerne, AMD Epyc, 960 GB SSD

    Webhosting 8000 SE BF22

  • Du kannst dir auch ein LE-Zertifikat über die DNS-Challenge besorgen. Da brauchen die LE-Server gar keinen Kontakt zu dir nach Hause aufnehmen - das wird einfach via Netcup-API im DNS verifiziert und das war's schon. So erstelle ich mir auch Wildcard-Zertifikate für mein Homelab ohne auch nur einen Port zu öffnen. :)


    PS: ich nutze den acme.sh Client dafür - der liefert direkt eine Netcup-Unterstützung mit.

  • Viele Router blockieren allerdings DNS-Antworten von öffentlichen Resolvern, die lokale IPs (bzw. private IPs, 192.168/16, 172.16/12, 10/8) enthalten. Also nicht wundern, wenn die Namensauflösung nicht funktioniert, obwohl der DNS-Eintrag richtig gesetzt wurde. (z.B. grafana.example.com. A 192.168.178.1)

    Einmal editiert, zuletzt von femur () aus folgendem Grund: So ist der DNS-Eintrag syntaktisch korrekt.

    Gefällt mir 1
  • Aber da scheitert es wahrscheinlich wieder am Provider-NAT.. So DynDNS-Kram geht ja hier auch nicht.. Wo ich wieder bei meiner VPN-Theorie wäre. Aber eins nach dem anderen.

    Nein, mit meiner "DNS Methode" meinte ich die DNS-01 Challenge, die mit diversen DNS Servern (Netcup, Cloudflare, deSEC und vielen anderen) möglich ist.

    https://letsencrypt.org/de/docs/challenge-types/

    Nur mit DNS Challenge bekommt man übrigens überhaupt Wildcard LE Zertifikate (*.meinedomain.de) und diese Challenge funktioniert auch, wenn der anfragende Host nicht über Port 80 und 443 direkt erreichbar ist, also hinter ProviderNAT, IPv6 etc.

    RS Ostern L OST22 (~RS "3000" G9.5) (8C,24GB,960GB) | RS Cyber Quack (1C,2GB,40GB)

  • Ich nutze das für alle meine internen Server.


    Im reverse proxy wird für jeden Host das entsprechende Backend eingetragen, welches dann die IP und den Port beinhaltet.

    Die Abfrage geht also: Host Name in der URL => entsprechendes Backend


    Alle DNS-Adressen sind lokal und verweisen auf den Reverse Proxy. Lets encrypt geht über die DNS challenge.

  • Was nebenbei auch gehen würde: eine "echte" Domain meinedomain.tld mit öffentlichen A Records zu verwenden

    Nutze ich so schon seit vielen Jahren. Hab auf meinem Ansible Host ein Script laufen welches via acme.sh DNS 01 Challenge ein Wilcard der intern genutzten echten Domain holt und dieses wird dann automatisiert weiter verteilt und ggf. Dienste neu gestartet.


    Funktioniert gut und man kann seine Dienste so konfigurieren, dass Sie außen wie innen vom gleichen DNS erreichbar sind.


    DNS hab ich früher mit pihole gemacht, seit einiger Zeit hab ich zwei bind9 mit primary/secondary replikation laufen. Das sollte aber für den Anfang überzogen sein.


    Trag Deine DNS Overrides einfach in Pihole oder im Router ein und gut. Sobald Du lokal bist oder im VPN werden die dann benutzt.


    Lokale IPs im öffentlichen DNS würde ich aus den besagten gründen (dass viele Router das verhindern) nicht machen. Ist nur eine Fehlerquelle die man vergisst, wenn es mal ein Router Update vom Hersteller gibt welcher die Einstellungen auf Default zurück setzt o.ä.


    Aber in allen Anleitungen, die ich dazu finden kann, heisst es immer .local

    Das hat den gleichen Grund weshalb es immer noch junge Menschen gibt, die A/B/C-Netze in Gesprächen nutzen: Veraltetes Lehrmaterial und alte Menschen die veraltetes Zeug weitervermitteln.

  • Ich schon wieder (bevor es hier langweilig wird.. vielleicht bekomme ich ja mal ein eigenes Unterforum "Grundlagen für DAUs" 8o )


    Ich hab auf meinem Pi ein simples


    Code
    pihole -up


    ausgeführt. (Weil er eben angezeigt hat, Updates verfügbar)


    Seitdem komme ich nicht mehr per http://192.168.1.52:8080 zum PiHole-Web-Frontend, wohl aber per http://pi.hole


    Auch komme ich nicht mehr zum Web-Frontend von OpenMediaVault, das bis vorhin auf Port 80 war..

    Alles andere läuft aber noch, also SMB-Freigaben, Portainer auf :9000 , Grafana auf :3000 usw.


    Wo muss ich gucken?

    RS 3000 G9.5 SE auch genannt OST22 L - 24 GB RAM, 8 Kerne, AMD Epyc, 960 GB SSD

    Webhosting 8000 SE BF22

  • Seitdem komme ich nicht mehr per http://192.168.1.52:8080 zum PiHole-Web-Frontend, wohl aber per http://pi.hole

    Du hast ja den Fehler schon gefunden, was aber auch ein solches Fehlerbild hätte, ist eine DHCP IP Vergabe an den Pi Hole und Änderung der IP Adresse nach Ablauf des DHCP Leases. Du solltest - falls nicht schon passiert - dem Pi-Hole eine fixe IP verpassen, sonst gibts Probleme mit der gesamten DNS Auflösung, wenn nicht noch (externe) Fallback DNS Server im DHCP Server eingetragen sind.

    RS Ostern L OST22 (~RS "3000" G9.5) (8C,24GB,960GB) | RS Cyber Quack (1C,2GB,40GB)

    Gefällt mir 1
  • Du solltest - falls nicht schon passiert - dem Pi-Hole eine fixe IP verpassen, sonst gibts Probleme mit der gesamten DNS Auflösung, wenn nicht noch (externe) Fallback DNS Server im DHCP Server eingetragen sind.

    Danke für den Hinweis, das hatte ich tatsächlich bisher nicht gemacht.


    Aber wo kommt jetzt nach dem Update die Adresse http://pi.hole wieder her, die mich jetzt auf Port 80 an OMV schickt? Ich bin mir ziemlich sicher, das ich die als erstes bei der Installation ausgeschaltet hatte.. Im Router steht sie nirgends, auch nicht im Pi-Hole unter "Lokale DNS Einträge"..

    RS 3000 G9.5 SE auch genannt OST22 L - 24 GB RAM, 8 Kerne, AMD Epyc, 960 GB SSD

    Webhosting 8000 SE BF22

    Einmal editiert, zuletzt von KrisAusEU ()

  • In meinem Router (ASUS GT-AC2900) habe ich nix verändert, außer LAN - DHCP - DNS auf den Pi, 192.168.1.52 - sonst machts ja keinen Sinn..

    RS 3000 G9.5 SE auch genannt OST22 L - 24 GB RAM, 8 Kerne, AMD Epyc, 960 GB SSD

    Webhosting 8000 SE BF22