Kodi + VPN: DNS-Auflösung klappt nicht

  • Hallo zusammen,


    ich hab einen RPi4/4GB und diesen mit LibreElec (LibreELEC-RPi4.arm-9.1.002) am laufen. Jetzt hab ich ein etwas "besonderes" Nutzungsszenario. Meine Home-HTPC (wird von Pi-LibreElec nicht abgelöst) nutzt eine mySQL-DB (liegt auf einem Server im LAN) - die soll der RPi auch nutzen (macht ja Sinn - dafür ist die mySQL-Funktion ja da).

    Lösung dafür ist einfach: Ich muss mit dem RPi ein VPN-Tunnel aufbauen. Hier hab ich mit OpenVPN auf einem Pi3 schon Erfahrung. Remote nutze ich OpenVPN für DNS-Auflösung (Pi.hole) aber auch für den Zugriff ins LAN. Mit iOS/Android klappt das ohne Probleme. LibreElec stellt sich hier aber an in dem es sich weigert den gepushden DNS-Server zu nutzen:

    In der Mobilen Location hab ich nur WLAN. Der Pi baut diese Verbindung dann vorher auf (/storage/.cache/connman/mywifi.config). Danach startet über die Autoexec.sh das VPN: openvpen konfig.ovpn; sleep 8. In meiner Kodi-Konfig ist noch ein Fehler (hab die nicht neu geschrieben sondern vom HTPC weitgehendst übernommen): die mySQL-DB wird per IP angesprochen (ist ein historisches Überbleibsel - hatte mit xbmc schon Probleme mit Hostsnames bei der mySQL-Verbindung) => Kodi startet dann sauber durch (wenn eine mySQL eingetragen ist und nicht erreichbar => Kodi bleibt im Ladescreen stehen...)

    Mein OpenVPN-Server hat push-dns, route push etc. eingestellt. Leider wird DNS von LibreElec aber überschrieben:

    Wenn ich nun auf eines der Netzlaufwerke zugreifen möchte kommt INVALID ARGUMENT (im LAN klappt es). Das liegt definitiv am HOSTNAME. Testweise den Host mit der IP überschrieben: klappt! Leider kann ich mit IP nicht arbeiten -> ich verliere da alle Watch-Statis etc. IP ist halt nicht gleich Hostname für die DB. Zudem ist IP bei Änderungen unvorteilhaft - wofür gibt es hostnames :)

    Jetzt sollte mich DNS eigentlich nicht berühren - es gibt ja die [definition='2','1']advancedsettings[/definition].xml - hier gibt es die Möglichkeit <hosts> zu setzen um damit DNS zu übergehen (https://kodi.wiki/view/Advancedsettings.xml#hosts). Das hab ich natürlich gemacht! Diese Zeilen werden aber leider komplett übergangen - Bug?! Die Auflösung davon wird in LibreElec nicht genommen. Libre fragt die Fritz!Box ob man will oder nicht :(

    Jetzt hab ich eine Notlösung gefunden - aber die klappt nur sehr kurz - da LibreElec die Änderung schnell überschreibt.

    Ich erweitere die Autoexec.sh. Ich lösche die resolv.conf (Pfad weiß ich gerade nicht auswendig; in /etc/ ist ja nur eine "Weiterleitung" drin - das Weiterleitungsziel lösche ich!), den hier steht der Fritz!Box-DNS drin. Dann erstelle ich eine neue: touch /..../resolv.conf und schreibe den neuen Nameserver via echo nameserver 172.20.5.201 >> /..../resolv.conf.

    Ergebnis:
    Ich starte den Pi, gucke in die resolv.conf rein => hat geklappt. Ich kann ein Netzlaufwerk öffnen -> Super! Klicke bissel rum. Möchte nun auf ein anderes Netzlaufwerk, welches auf einen anderen Host liegt (!), zugreifen: Invalid Argument. Ich gucke in die resolv.conf => der Nameserver wurde im Betrieb ausgetauscht.

    Es gibt noch die ~/.config/hosts.conf - die Auflösung darüber klappt NUR via Konsole. LibreElec fragt auch hier weiter die FritzBox zum Auflösen ab.

    In Kodi selber gibt es zwar Netzwerkeinstellungen. Bei DHCP darf ich aber kein DNS setzen (und auf DHCP bin ich dort angewiesen). Hilft also auch nicht.

    Bin da leider mit meinem Latein schon am Ende :( Scheinbar hat Kodi fest eingestellt das es immer den DNS vom DHCP nimmt und sich gegen sämtliche andere Maßnahmen wehrt ... :(

    Jetzt stellen sich daher 3 Fragen:
    1) warum ignoriert Kodi die [definition='2','1']advancedsettings[/definition].xml <hosts>-Einträge? Die sind ja eigentlich genau für sowas gedacht. Sieht für mich nach einen Bug aus. (wobei das auch nur eine "Notlösung" wäre -> ich möchte alles über pi.hole laufen lassen - auch aus Sicherheitsgründen ... falsches Addon erwischt, telefoniert gerne zu einer als Böse bekannten Adresse ... mit pi.hole ist das alles nur halb so wild...)
    2) warum wird die resolv.conf IM Betrieb überschrieben und durch einen für mich nicht nutzbaren DNS-Server ersetzt?
    3) warum akzeptiert LibreElec nicht einfach den DNS den es vom VPN vorgeben bekommt. iOS/Android übernehmen die DNS-Server anstandslos.

    Grüße
    Wulfman


    PS: kleine Zusatzfrage: wie kann ich in der autoexce.sh ob eine bestimmte IP erreichbar ist (z.b. die IP von der mySQL-DB) - Ziel: wenn IP nicht erreichbar ist, möchte ich die [definition='2','1']advancedsettings[/definition].xml wo die mysql-db hinterlegt ist, durch eine andere ersetzen. Wie gesagt: wenn kein mySQL verfügbar startet Kodi nämlich leider nicht bzw. braucht minuten zum austimen. Möchte ich aber nur etwas via USB-Stick gucken ohne Netzanbindung, wäre das hilfreich :)

  • Wird den meisten zu viel Text gewesen sein :)

    Bin da auch nicht wirklich im Thema. Aber Kodi.tv ist generell gegen VPN. Daher stelle ich mir das in der Form nicht so einfach vor.
    Aber es geht auf jeden Fall. Also Kodi und VPN. Nur wie in LibreELEC? Davon habe ich keinen Plan.

    mit einem 2 Zeiler hätten wir jetzt 2 Seiten im Thread mit all den Infos die im Text stehen, dazu kommen dann als Tips die sachen die ich schon gemacht habe usw. ... und ich wäre trotzdem nicht weiter ;)


    VPN funktioniert ja .. ich starte das auch VOR Kodi. Die Frage ist nur warum Kodi sämtliche Maßnahmen bekämpft eine Namensauflösung nach MEINEM Wunsch zu realisieren...

    Warum wird z.b. die resolv.conf nach einigen Sekunden komplett überschrieben von Kodi. Das hat ja jetzt nichts mit VPN zu tun. Der <hosts>-Bug müsste schon sehr lange existieren (in meiner Konfig rufe ich die DB noch via IP auf - damals vor Jahren war mein DNS zu hause nicht so organisiert *G* ... ich hatte in hosts eben das eingetragen was jetzt auch steht - brachte nichts - daher IP bei den DB; mit mit den Netzlaufwerken etc. ist das alles nicht aufgefallen da mein DNS-Server dann auch sauber funktioniert hat) - da ist dann auch fraglich ob Kodi das Thema überhaupt interessiert...

    Und zu guter letzt haben wir ja die host-Dateien die von libreelec angeboten wird und ausschließlich auf der Konsole eine Namensauflösung macht ...

    Für Kodi scheint es leider nur eine wahre DNS-Auflösung zu geben -> die die man vom Router per DHCP bekommt - der rest ist böse und hat eigentlich nichts zu suchen. Was auch in den meisten fällen nicht aufällt - wer hat schon ein Mobilen Kodi mit VPN nach hause wegen der mySQL-DB und Netzlaufwerken ... oder auch nur teile einer solchen Konfig ...

    Ja, ist ein Bug und auch schon gemeldet.


    ja ... seit Anfang Februar (offiziell; existieren tut der Bug eigentlich schon Jahre....): https://github.com/xbmc/xbmc/issues/15469

  • Ein normales VPN idr Layer 3 (tun) kann keine Namensauflösung über den nmbd (Broadcast) dienst, dazu müsstest du ein layer 2 (bridged) tap aufbauen.

    Ich hab mir einen Chinaböller GL-Net 300m geholt, den nehm ich als VPN router für unterwegs mit. Ist am einfachsten und flexibelsten.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!