ich habe seit einem Upgrade das Problem, dass aus virtuellen Maschinen unter KVM die DNS Namensauflösung nicht mehr funktioniert. Ich kann aus den virtuellen Maschinen über die IP Adresse auf das Internet zugreifen nicht aber über den Hostnamen. ping 8.8.8.8 funktioniert, ping google.com nicht.
Ich habe im Internet eine Lösung gefunden. Ich muss per sysctl drei Kernelparameter setzen.
danach funktioniert die Namensauflösung aus den virtuellen Maschinen.
Allerdings ist es so, dass ich das nun nach jedem Einloggen machen muss. Nach einem Neustart hat Linux die Werte der drei Kernelparameter wieder vergessen. Wie kann ich das dauerhaft machen ? Wie kann ich nach dem Systemstart ein Kommando als root automatisch ausführen ?
geht folgendes Kommando im Autostart per skript gestartet ?
aber es funktioniert nicht. Der Dienst boot-sysctl liest auch nicht aus diesem Verzeichnis sondern aus /boot
Dort wird eine Datei sysctl.conf-5.14.21-15400… eingelesen.
im log vom systemd-sysctl kann ich auch nichts entdecken
Couldn’t write ‘0’ to ‘net/bridge/bridge-nf-call-ip6tables’, ignoring: No such file or directory
Couldn’t write ‘0’ to ‘net/bridge/bridge-nf-call-iptables’, ignoring: No such file or directory
Couldn’t write ‘0’ to ‘net/bridge/bridge-nf-call-arptables’, ignoring: No such file or directory
Ich vermute mal da wird das Kernel Module bridge nicht (oder noch nicht )geladen sein wenn der systemd Dienst versucht die Parameter zu setzen. Auf meinem Test System funktioniert es aber da wird bridge auch geladen (aber vermutlich eher zufällig zum richtigen Zeitpunkt)
Meine ursprüngliche Antwort war wohl leider etwas zu einfach gedacht. Wenn man zusätzlich in /etc/dracut.conf.d eine Datei 99-kvm-dns.conf mit folgendem Inhalt anlegt
wie sieht der dracut Befehl aus, um initramfs neu zu erzeugen ?
Habe noch nie mitr dracut gearbeitet ?Ich sehe dracut immer erst am Ende eines updates am Bildschirm durchlaufen
dracut OPTIONS image kernel-version
???
Ich habe mir das Kapitel Generate an initramfs angesehen, traue mich aber nicht
Ich benutze dracut eigentlich auch nur in Ausnahmefällen und wenn ich so nachdenke es geht auch ohne dracut und neue initramfs. Lösche die Datei /etc/dracut.conf.d/99-kvm-dns.conf wieder falls vorhanden. Dann dies hier ausführen:
Damit wird das br_netfilter module beim Systemstart auf einer Test VM bei mir auch ohne modifizierte initramfs geladen und die net.bridge* Parameter gesetzt.
Ja, das klappt nun. Habe eine Datei im etc Verzeichnis
peter@linux-Z840:/etc/modules-load.d> ls
kvm-dns.conf
peter@linux-Z840:/etc/modules-load.d>
peter@linux-Z840:/etc/modules-load.d> cat kvm-dns.conf
br_netfilter
peter@linux-Z840:/etc/modules-load.d>
nun keine Fehlermeldungen im log von Dienst "systemd-sysctl"
Modulk br_netfilter wurde wohl gefunden. Danke wieder was gelernt