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