iptables nat tidak ada

13

Hari ini iptables saya nat pada sistem host berhenti bekerja dan saya tidak tahu apa yang terjadi! (Itu sangat buruk, saya tahu)

Semua perintah dijalankan sebagai pengguna root.

Jika saya menjalankan $ iptables -t nat -Lsaya mendapatkan pesan kesalahan berikut:

$ 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.

Tidak ada pembaruan lebih lanjut tersedia. Saya juga me-restart server dengan beberapa kernel lama, tetapi saya selalu mendapatkan pesan kesalahan yang sama.

Server saya berjalan pada CentOS dengan kernel OpenVZ resmi di versi terbaru.

$ uname -r
2.6.32-042stab088.4

Juga menguji versi kernel: 2.6.32-042stab85.20 dan 2.6.32-042stab084.26

Kernel pertama di 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

Pembaruan berikut diinstal:

$ 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 memberi saya yang berikut:

$ 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

Menjalankan modprobe memberikan kesalahan berikut:

$ 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.

Tetapi file itu ada:

$ 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*

Ada ide?

Lukas Schulze
sumber
Beberapa konfigurasi OpenVZ tidak memungkinkan NAT di tamu. Apakah ada perubahan pada tuan rumah?
Zoredache
Ini adalah sistem host, bukan sistem tamu.
Lukas Schulze

Jawaban:

10

Karena pembaruan vzctl dari 4,6 ke 4,7 mereka mengubah pengaturan nf_conntrack untuk dinonaktifkan secara default. ( https://openvz.org/Download/vzctl/4.7/changes )

Pesan komit yang sesuai:

...

Nonaktifkan conntrack untuk VE0 secara default

Fungsi IP conntrack memiliki dampak negatif pada kinerja venet (hingga 10%), sehingga lebih baik dinonaktifkan secara default.

...

(Sumber: http://git.openvz.org/?p=vzctl;a=commit;h=a191a462579ee )

Larutan:

Dalam ketergantungan distribusi itu adalah suatu tempat di direktori / etc. Temukan:

$ sudo grep -R "options nf_conntrack ip_conntrack_disable_ve0 = 1" /etc/modprobe.d/

dan ganti "1" dengan "0":

opsi nf_conntrack ip_conntrack_disable_ve0 = 0

reboot sistem Anda

(Sumber: https://bugzilla.openvz.org/show_bug.cgi?id=2943#c5 )

Cara lain untuk me-reboot:

rmmod iptable_nat
rmmod nf_nat
rmmod nf_conntrack_ipv4
rmmod nf_conntrack

Dan nat sekarang bekerja

Semua sumber:

Changelog untuk vzctl 4.7: https://openvz.org/Download/vzctl/4.7/changes

Laporan bug dengan solusi dalam komentar: https://bugzilla.openvz.org/show_bug.cgi?id=2943

Laporan bug dengan uraian solusi singkat: https://bugzilla.openvz.org/show_bug.cgi?id=2755#c4

Komitment GIT yang terkait: http://git.openvz.org/?p=vzctl;a=commit;h=a191a462579ee

Artikel Wiki terkait: https://openvz.org/NAT#IP_conntracks

Lukas Schulze
sumber
4

Anda harus menjadi pengguna super untuk dijalankan iptables. Karena itu, jalankan sebagai root.

$ iptables -t nat -L
iptables v1.4.19.1: can't initialize iptables table `nat': Permission denied (you must be root)
Perhaps iptables or your kernel needs to be upgraded.

# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
[...]
Spack
sumber
1
Saya sudah masuk sebagai pengguna root.
Lukas Schulze
1

Sepertinya ada sesuatu yang salah dengan file tersebut? Bagaimana jika Anda mencoba untuk strace modprobe /lib/modules/2.6.32-042stab088.4/kernel/net/ipv4/netfilter/iptable_nat.ko? Apakah sistem benar-benar mengembalikan ENOENT (Tidak ada file atau direktori seperti itu)? Saya tidak bisa membayangkan ini akan terjadi, tetapi mungkin SELinux mengacaukan file? Dan akhirnya, mungkin file / sistem file rusak. md5sum itu dengan versi bagus yang dikenal. Atau cukup hapus dan salin yang baru sama sekali. Semoga bukan sistem file.

Coba ini: /programming/3140478/fatal-module-not-found-error-using-modprobe

majikman
sumber
0

Saya menemukan solusi lain untuk masalah ini! Pada node saya tidak bisa menghapus

rmmod iptable_nat
rmmod nf_nat
rmmod nf_conntrack_ipv4
rmmod nf_conntrack

dalam Panduan Resmi, saya menemukan:

vzctl mengatur VZID --netfilter full --save --setmode restart

Дмаи Летов
sumber