¡Hoy mi iptables nat en el sistema host dejó de funcionar y no tengo idea de lo que sucedió! (Eso es muy malo, lo sé)
Todos los comandos se ejecutan como usuario root.
Si ejecuto $ iptables -t nat -L
me sale el siguiente mensaje de error:
$ iptables -t nat -L
iptables v1.4.7: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
No hay más actualizaciones disponibles. También reinicié el servidor con varios núcleos más antiguos, pero siempre recibo el mismo mensaje de error.
Mi servidor se ejecuta en CentOS con el núcleo oficial de OpenVZ en la última versión.
$ uname -r
2.6.32-042stab088.4
Versión de kernel también probada: 2.6.32-042stab85.20 y 2.6.32-042stab084.26
Primer núcleo en grub.conf:
title OpenVZ (2.6.32-042stab088.4)
root (hd0,1)
kernel /vmlinuz-2.6.32-042stab088.4 ro root=/dev/md2 rd_NO_LUKS rd_NO_DM nomodeset crashkernel=auto SYSFONT=latarcyrheb-sun16 LANG=en_US.UTF-8 KEYTABLE=de
initrd /initramfs-2.6.32-042stab088.4.img
Se instalaron las siguientes actualizaciones:
$ rpm -qa --last
vzctl-4.7.2-1.x86_64 Mon 05 May 2014 03:25:16 AM CEST
vzctl-core-4.7.2-1.x86_64 Mon 05 May 2014 03:25:14 AM CEST
util-linux-ng-2.17.2-12.14.el6_5.x86_64 Wed 30 Apr 2014 11:37:19 PM CEST
libuuid-2.17.2-12.14.el6_5.x86_64 Wed 30 Apr 2014 11:37:18 PM CEST
libblkid-2.17.2-12.14.el6_5.x86_64 Wed 30 Apr 2014 11:37:18 PM CEST
vzkernel-2.6.32-042stab088.4.x86_64 Mon 26 Apr 2014 09:01:00 AM CEST
nss-softokn-freebl-3.14.3-10.el6_5.x86_64 Sat 26 Apr 2014 09:01:00 AM CEST
nss-softokn-3.14.3-10.el6_5.x86_64 Sat 26 Apr 2014 09:01:00 AM CEST
bridge-utils-1.2-10.el6.x86_64 Tue 15 Apr 2014 02:22:41 PM CEST
openssl-1.0.1e-16.el6_5.7.x86_64 Wed 09 Apr 2014 10:14:03 AM CEST
...
lsmod
me da lo siguiente:
$ lsmod | grep ip
iptable_nat 6302 0
nf_nat 23213 2 iptable_nat,vzrst
nf_conntrack_ipv4 9946 3 iptable_nat,nf_nat
nf_defrag_ipv4 1531 1 nf_conntrack_ipv4
nf_conntrack 80281 5 iptable_nat,vzrst,nf_nat,nf_conntrack_ipv4,vzcpt
ip6t_REJECT 4711 0
ip6table_mangle 3669 0
ip6table_filter 3033 0
ip6_tables 18988 2 ip6table_mangle,ip6table_filter
iptable_mangle 3493 0
iptable_filter 2937 0
xt_multiport 2716 0
ipt_REJECT 2399 0
ip_tables 18119 3 iptable_nat,iptable_mangle,iptable_filter
ipv6 322519 35 vzrst,ip6t_REJECT,ip6table_mangle
Ejecutar modprobe da el siguiente error:
$ modprobe /lib/modules/2.6.32-042stab088.4/kernel/net/ipv4/netfilter/iptable_nat.ko
FATAL: Module /lib/modules/2.6.32_042stab088.4/kernel/net/ipv4/netfilter/iptable_nat.ko not found.
Pero el archivo existe:
$ ll /lib/modules/2.6.32-042stab088.4/kernel/net/ipv4/netfilter/iptable_nat.ko
-rwxr--r-- 1 root root 16K Apr 3 16:20 /lib/modules/2.6.32-042stab088.4/kernel/net/ipv4/netfilter/iptable_nat.ko*
¿Algunas ideas?
Respuestas:
Debido a la actualización de vzctl de 4.6 a 4.7, cambiaron la configuración de nf_conntrack para que esté deshabilitada de forma predeterminada. ( https://openvz.org/Download/vzctl/4.7/changes )
Mensaje de confirmación correspondiente:
Solución:
Alternativamente al reinicio:
Y nat ahora trabaja
Todas las fuentes:
Registro de cambios para vzctl 4.7: https://openvz.org/Download/vzctl/4.7/changes
Informe de error con solución en comentarios: https://bugzilla.openvz.org/show_bug.cgi?id=2943
Informe de error con descripción abreviada de la solución: https://bugzilla.openvz.org/show_bug.cgi?id=2755#c4
Compromiso GIT correspondiente: http://git.openvz.org/?p=vzctl;a=commit;h=a191a462579ee
Artículo de Wiki relacionado: https://openvz.org/NAT#IP_conntracks
fuente
Deberías ser súper usuario para ejecutar
iptables
. Por lo tanto, ejecútelo comoroot
.fuente
Parece que algo está realmente mal con el archivo? ¿Qué sucede si intenta estratificar modprobe /lib/modules/2.6.32-042stab088.4/kernel/net/ipv4/netfilter/iptable_nat.ko? ¿El sistema realmente devuelve un ENOENT (no existe tal archivo o directorio)? No puedo imaginar que sea así, pero ¿tal vez SELinux está jugando con el archivo? Y finalmente, tal vez el archivo / sistema de archivos está dañado. md5sum con una buena versión conocida. O simplemente quítelo y copie uno nuevo por completo. Esperemos que no sea el sistema de archivos.
Pruebe esto: /programming/3140478/fatal-module-not-found-error-using-modprobe
fuente
¡Encontré otra solución a este problema! En el nodo no pude eliminar
en la Guía oficial, encontré:
fuente