iptables v1.4.14: impossible d'initialiser iptables table `nat': la Table n'existe pas (avez-vous besoin de insmod?)
Je suis en train de définir des règles iptable, et j'ai eu de message d'erreur suivant lorsque j'utilise iptable :
iptables v1.4.14: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
Je suis en utilisant :
cat /etc/debian_version
7.4
uname -a
Linux myserver 2.6.32-22-pve #1 SMP Mon Jul 15 08:36:46 CEST 2013 x86_64 GNU/Linux
uname -r
2.6.32-22-pve
C'est un serveur virtuel hébergé par un fournisseur de services.
Que puis-je faire pour résoudre ce problème ?
- Peut-être que votre noyau a été compilé sans prise en charge NAT ? Est-ce que votre fournisseur de services vous permettent de remplacer le noyau ?
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème et cela a fonctionné:
http://www.howtoforge.com/forums/showthread.php?t=3196
J'ai eu le même problème avec Debian 8. J'ai résolu en redémarrant le système. Il semble que l'erreur peut se produire si l'image du noyau a été mis à jour et le système n'a pas été redémarré par la suite.
Il peut être utile d'ajouter que, si vous voyez ce message d'erreur et vous n'êtes pas en utilisant une sorte de restrictions d'conteneur en fonction de l'hébergement (par exemple OpenVZ), alors le problème peut-être que le noyau est absent de la nat modules. Pour vérifier lancer:
Qui doit imprimer l'emplacement du module, si elle imprime une ERREUR, alors vous savez que c'est votre problème. Il y a aussi des modules dépendants comme nf_nat qui est peut-être manquant de sorte que vous aurez à creuser plus profondément si la iptable_nat module est là, mais échoue. Si elle est manquante, vous aurez besoin d'obtenir un autre noyau et les modules, ou si vous êtes roulement de votre propre s'assurer que la configuration du noyau contient
CONFIG_IP_NF_NAT=m
(pour NAT IPv4).Pour info le module en question est généralement trouvé dans un de ces endroits:
Et si vous utilisez IPv6 aussi regarder ici:
modinfo iptable_nat
- je obtenirlibkmod: ERROR ../libkmod/libkmod.c:586 kmod_search_moddep: could not open moddep file '/lib/modules/4.2.0-25-generic/modules.dep.bin' modinfo: ERROR: Module alias iptable_nat not found.
. Mais je n'ai aucune idée de comment résoudre ce problème. La version vient deuname -r
sudo depmod
Puis exécutez à nouveau la commande modinfo.Finalement, mon fournisseur de service répondu :
J'ai DONC dû migrer mon serveur vers le nouveau système...
Version courte :
exécutez la commande iptables sur l'hôte avant de l'exécuter dans le serveur virtuel (je suis sûr que ce est une sorte de LXC ou conteneur OpenVZ ici).
Version longue :
Le problème est dû au fait que le ip_table module est chargé à la demande. Donc, après un redémarrage, sur toute machine qui n'a pas de règles iptables chargés au démarrage, le ip_tables module n'est pas chargé (pas de demande pour les modules == le module n'est pas chargé). Par conséquent, la LXC ou OpenVZ conteneurs ne peuvent pas utiliser iptables (puisqu'ils partagent le noyau de l'hôte, mais ne peut pas modifier les modules qui sont chargés) jusqu'à ce que l'hôte a en quelque sorte chargé le module iptables.
"IP conntrack fonctionnalité a un impact négatif sur venet performances (jusqu'à environ 10%), de sorte qu'ils de mieux être désactivé par défaut."
Il est nécessaire pour le nat
https://serverfault.com/questions/593263/iptables-nat-does-not-exist
Que la solution du wiki officiel:
https://openvz.org/VPN_via_the_TUN/TAP_device#Troubleshooting
vérifier si tun/tap activé:
si ok va voir quelque chose :
Si vous exécutez de marionnettes il peut définir
/proc/sys/kernel/modules_disabled
à 1, l'inhibition de module supplémentaire de chargement.Lorsque la machine est en redémarrage, il est défini à 0, permettant des changements, tels que le chargement des modules iptables. Après un certain laps de temps de marionnettes va le mettre à 1 pour protéger le système de la racine du noyau kits.
Par conséquent, quels que soient les modules que nous allons avoir besoin de doit être chargé pendant ou peu de temps après le démarrage.
Les noms de table sont sensibles à la casse, donc vous devez utiliser des bas-de-casse nat au lieu de majuscules NAT.
Par exemple;
Sur OpenSUSE 15.3 systemd journal a signalé cette erreur (insmod suggestion était inutile).
REBOOT fixé le problème