Bonjour,
Je viens de migrer sous Debian Buster une machine de dev et un serveur Kimsufi.
Du côté de ma machine locale pas de souci, mais côté Kimsufi je rencontre un problème certainement lié à la migration iptables/nftables. Lorsque je lance une stack de containers avec docker-compose j'obtiens l'erreur suivante :
ERROR: Failed to program FILTER chain: iptables failed: iptables --wait -I FORWARD -o br-1f984716e934 -j DOCKER: iptables v1.8.2 (nf_tables): RULE_INSERT failed (Invalid argument): rule in chain FORWARD
(exit status 4)
J'ai checké mes versions de docker et docker-compose sont identiques sur les deux machines :
Docker version 19.03.1, build 74b1e89
docker-compose version 1.24.1, build 4667896b
Sur les deux machines iptables pointe bien vers nftables :
$ aptitude search nftables | grep ^i
i A libnftables0 - Netfilter nftables high level userspace API library
i A nftables - Program to control packet filtering rules by Netfilter project
$ update-alternatives --config iptables
Il existe 2 choix pour l'alternative iptables (qui fournit /usr/sbin/iptables).
Sélection Chemin Priorité État
------------------------------------------------------------
* 0 /usr/sbin/iptables-nft 20 mode automatique
1 /usr/sbin/iptables-legacy 10 mode manuel
2 /usr/sbin/iptables-nft 20 mode manuel
Je précise que j'ai vidé, pour tester, mes anciennes règles iptables sur le serveur et que celui-ci a été rebooté (suite à la migration). J'ai par ailleurs re-installé docker après la migration mais rien n'y fait.
Je ne sais pas si cela peut jouer mais sur le serveur Kimsufi j'utilise un noyau ovh :
$ uname -mr
4.9.185-xxxx-std-ipv6-64 x86_64
sur ma machine locale c'est le noyau par défaut de Debian Buster :
4.19.0-5-amd64 x86_64
Je n'ai pas trouvé de ressources qui pourraient m'aiguiller sur le net, auriez-vous une piste ?
# Logs noyau ?
Posté par Cyril Brulebois (site web personnel) . Évalué à 1.
Déjà vu des blagues similaires sur une machine où on essayait de configurer un VPN. Au final,
iptables
(c'était il y a quelques années déjà) renvoyait des erreurs similaires sur la gestion des routes et du forwarding, mais le problème fondamental était que lancer ces commandes nécessitait de charger des modules noyau. Or cette machine avait un nouveau noyau, n'avait pas encore redémarré dessus, et le chargement de modules échouait.Bref, je suggère de vérifier
dmesg
et assimilés. Quant au noyau OVH, je ne suis pas sûr de comprendre pourquoi il faut se fader ce genre de choses…Debian Consultant @ DEBAMAX
[^] # Re: Logs noyau ?
Posté par tomskab . Évalué à 1.
Merci pour le retour.
Le serveur Kimsufi avait été rebooté plusieurs fois entre temps, ce qui n'exclut pas l'absence d'un/plusieurs modules noyau sur le kernel ovh.
Sur le dmesg du serveur Kimsufi, il y a cela que je ne retrouve pas en local :
Toutefois je ne maîtrise pas assez Netfilter et ce que Docker fait avec Netfilter pour être certain que cela soit le souci.
Par ailleurs, sur le serveur, j'ai désactivé Nftables au démarrage, je l'ai stoppé, vidé toutes les règles (nftables flush rules), basculé en iptables-legacy.
Puis, après un reboot dans le doute, mes stacks dockers se lancent correctement.
Mais si je reviens en nftables, c'est mort ! (j'ai testé avec toutes les règles vidées sauf celles montées par dockerd).
Suis un peu perdu….
[^] # Re: Logs noyau ?
Posté par Cyril Brulebois (site web personnel) . Évalué à 1.
Ça ressemble beaucoup à ce que j'évoquais… Il semblerait qu'il n'y ait pas de
nf_nat.ko
etxt_conntrack.ko
chargeable pour ton noyau, du coup paf ?Debian Consultant @ DEBAMAX
# Même cas ici
Posté par RougailSawSix . Évalué à 1.
Je suis dans le même cas que vous avec un upgrade vers Buster, J'ai redémarré les containers des milliers de fois. Jusqu'à effacer les networks docker externe et interne et au moment de recréer un network interne à une stack j'ai eu ce joli message d'IPTable. Auparavant même les perfs docker s'écroulaient dans le temps.
Je regrette un peu d'avoir upgradé le serveur de prod vers Buster.
[^] # Re: Même cas ici
Posté par Ericounet . Évalué à 1.
Bonjour,
si je me souviens bien, le noyau OVH de base n'utilise pas les modules.
Mais vous avez la possibilité d'installer un noyau "standard" qui lui les gère.
C'est ce que j'avais fait pour installer docker sur mon serveur kimsufi.
Eric
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.