• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

iptables/vserver:cant initialize table nat (need to insmod?)

trevilor

Newbie
Hallo,

ich bekomme bei meinem Vorhaben folgende Fehlermeldung (Ubuntu 8.10):

"iptables v1.4.0: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded."


Möglicherweise reicht das schon aus, damit mir ein Linuxer sagen kann, was zu tun ist.


Ansonsten:

Die menuconfig des Kernels 2.6.22.19 (auf die ich angewiesen bin) bietet mir keine ersichtliche möglichkeit, NAT Unterstützung einzubinden.


Der Inhalt von
/lib/modules/2.6.22.19-vs2.2.0.7/kernel/net/ipv4/netfilter/
ist wie folgt:

arptable_filter.ko ip_queue.ko iptable_raw.ko ipt_ah.ko ipt_LOG.ko ipt_ttl.ko
arp_tables.ko iptable_filter.ko ip_tables.ko ipt_ecn.ko ipt_recent.ko ipt_TTL.ko
arpt_mangle.ko iptable_mangle.ko ipt_addrtype.ko ipt_ECN.ko ipt_REJECT.ko ipt_ULOG.ko



Da fehlt, soweit ich das Problem eingrenzen konnte, die iptables_nat.ko.


Die Datei einfach aus dem Verzeichnis einer anderen (neueren) Kernelversion zu kopieren bringt nichts.
Auch nicht mit dem /boot/config Eintrag CONFIG_IP_NF_NAT=y.

Ich vermute mal so einfach ist es nicht. Aber ich habe endlos gegoogelt und nichts gefunden.
Laut apt ist iptables auf dem neusten Stand und ich finde keine klare Anleitung wie das Problem zu lösen ist. (Wie, in welcher Form, das Modul zu erweitern ist!?)


Hat jemand Rat?


Kurz zum Hintergrund:
Habe Ubuntu 8.10 und führe einen gepatchten Kernel aus.
Den Kernel musste ich für vserver patchen und das funktioniert nun alles auch problemlos.
D.h. ich kann einen neuen vserver starten und die test-scripts laufen fehlerlos.
Das Problem kommt beim verbinden meines virtuellen Rechners mit der Außenwellt: Wenn ich via NAT eine lokale IP meines virtuellen Systems per Portmapping mit meiner einzigen externen IP verbinden will:

#iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d ! 192.168.1.0/24 -j SNAT --to-source $meine_externe_IP
->"iptables v1.4.0: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded."



Danke fürs Lesen.

Bin ziemlicher Linux-Neuling. Wenn nicht alles Sinn macht und die Lösung auf der Hand liegt, bitte ich das zu entschuldigen. Ansonsten: Danke
 

pingu!

Member
Hallo,
Falls iptables_nat als Modul im Kernel kompiliert wurde und das file im /lib/modules/2.6.22.19-vs2.2.0.7/kernel/net/ipv4/netfilter/ nicht vorhanden ist, funktioniert NAT nicht. Desswegen erhälst du auch die Meldung.
Sieht auch so aus, dass iptables_nat nicht "fix" im Kernel implementiert wurde, da du ansonsten die Fehlermeldung nicht erhalten würdest.

Einfach so das File von einem anderen Kernel oder PC in das Verzeichniss zu kopieren geht auch nicht.

(Naja kopieren kannst Du das schon aber das Modul wird nicht geladen, soblad der Kernel initialisiert wird)

Die einzige Möglichkeit die Dir bleibt, ist den Kernel neu zu kompilieren, diesmal jedoch mit Unterstützung von iptables_nat.

Am besten gehts wenn Du mit der aktuellen Kernel-config (/boot/config-2.6........) als "start-config für die Kernel-config nimmst. Dann kannst Du mit dieser Config alles so lassen, ausser das iptables_nat hinzugefügt wird.

hier ist ein link wenn Du noch keinen Kernel kompiliert hast. http://www.linuxmaker.com/linux/kernel.html ist zwar für Debian aber sollte für Ubuntu auch gehen.

Gruss pingu!
 
Oben