Problème libvirt avec nftables : erreur sur iptables au démarrage du réseau

Tu vois à quoi ça sert les commandes que je demande ?
Je vois seulement maintenant que firewalld est installé, donc parfaitement normal que tu puisses désinstaller iptables. -->> Pas de bug.

Donc, on récapitule.
Supprimer iptables n’est pas un problème, puisque firewalld est installé, mais désactivé.
Il faut donc … l’activer ->> firewalld.service

Après reboot, vois-tu toujours ça dans tes logs ?

libvirtd: Applying rule '/usr/sbin/iptables -w --table filter --list-rules'

Et remontre ça après reboot…
apt list -i '*tables*'
systemctl status firewalld.service

Oui je vois, c’est très intéressant. Je n’avais pas vu le ou pour iptables et firewalld. Comment fais-tu pour avoir une présentation comme ça ? quand je fais un sudo apt-cache depends libvirt-daemon-system, tout s’affiche lign par ligne, et le « | » n’est vraiment pas facile à lire.

Donc, j’autorise le service firewalld et supprime iptables :

$ sudo systemctl enable firewalld.service 
$ sudo apt remove iptables

Et je redémarre. Dans journalctl -b 0, je vois la même erreur :

août 17 18:25:40 Ryzen7-5700G libvirtd[1156]: internal error: Failed to apply firewall rules /usr/sbin/iptables -w --table filter --list-rules: libvirt:  erreur : cannot execute binary /usr/sbin/iptables:
août 17 18:25:40 Ryzen7-5700G libvirtd[1156]: internal error: Failed to apply firewall rules /usr/sbin/ip6tables -w --table filter --list-rules: libvirt:  erreur : cannot execute binary /usr/sbin/ip6tables: 

Voilà le retour de tes commandes :

$ sudo apt list -i '*tables*'
En train de lister... Fait
libnftables1/now 1.0.4-2 amd64  [installé, local]
libxtables12/now 1.8.8-1 amd64  [installé, local]
nftables/now 1.0.4-2 amd64  [installé, local]
python3-nftables/now 1.0.4-2 amd64  [installé, local]

$ sudo systemctl status firewalld.service 
● firewalld.service - firewalld - dynamic firewall daemon
     Loaded: loaded (/lib/systemd/system/firewalld.service; enabled; preset: enabled)
     Active: active (running) since Wed 2022-08-17 18:25:33 CEST; 6min ago
       Docs: man:firewalld(1)
   Main PID: 860 (firewalld)
      Tasks: 2 (limit: 37587)
     Memory: 45.1M
        CPU: 181ms
     CGroup: /system.slice/firewalld.service
             └─860 /usr/bin/python3 /usr/sbin/firewalld --nofork --nopid

août 17 18:25:33 Ryzen7-5700G systemd[1]: Starting firewalld - dynamic firewall daemon...
août 17 18:25:33 Ryzen7-5700G systemd[1]: Started firewalld - dynamic firewall daemon.
août 17 18:25:40 Ryzen7-5700G firewalld[860]: WARNING: COMMAND_FAILED: INVALID_IPV: 'ipv4' is not a valid backend or is unavailable
août 17 18:25:40 Ryzen7-5700G firewalld[860]: WARNING: COMMAND_FAILED: INVALID_IPV: 'ipv4' is not a valid backend or is unavailable

Après une rapide recherche sur le net, le message d’erreur sur ipv4 viendrait de l’absence de iptables !?

Et bien sûr le réseau virtuel n’est pas démarré :

$ sudo virsh net-list --all
 Nom       État      Démarrage automatique   Persistent
---------------------------------------------------------
 default   inactif   Oui                     Oui

$ sudo virsh net-start default
erreur :Impossible de démarrer le réseau default
erreur :internal error: Failed to apply firewall rules /usr/sbin/iptables -w --table filter --list-rules: libvirt:  erreur : cannot execute binary /usr/sbin/iptables: Aucun fichier ou dossier de ce type

Donc à mon avis, on en revient à ce que disait le type de redhat : libvirt a une dépendance à iptables (« libvirt still uses iptables to add its rules »). Et donc avec simplement firewalld, impossible de créer les règles pour le firewall.