On Mon, Dec 31, 2001 at 02:24:21PM +0100, Torsten Werner wrote:
Warum geht die alte Verbindung noch???
Der Kernel unterhaelt einen Cache zusammengehoerender Portnummern und IP-Adressen aehnlich dem ARP-Cache, damit auch die Antwortpakete richtig zugestellt werden koennen.
Ja, das ist klar.
Das bedeutet das alle Pakete, fuer die es einen Eintrag im Cache gibt, ganz anders behandelt werden.
Mmh. Mit Entferen der Regel in der NAT-Tabelle könnte er im Cache die Einträge, die aufgrund der entfernten Regel erstellt worden sind, auch löschen oder notfalls den kompletten Cache löschen. Wenn er das nicht tut muß ich das per hand machen können.
Wie verhindere ich, daß die alte Verbindung weiterhin funktionniert?
echo 0 > /proc/sys/net/ipv4/ip_forward
nein, er soll ja weiter forwarden, nur nicht mehr NATten
oder vielleicht eine passende DROP-Regeln in der FORWARD-Chain?
Das heisst: Weil der Kern mit Paketen NAT macht, für die keine NAT-Regel mehr da ist, muß ich mir extra eine Regel einfallen lassen, um diese nicht mehr existierende Regel zu überstimmen. Wenn ich so eine Regel nicht finden würde müsste ich sicherheitshalber rebooten ... Das wäre totaler Unsinn, ist also ganz bestimmt nicht so.
Irgendwie muß sich also dieser NAT-Cache anzeigen und löschen lassen. Nur wie??? Wer weiss das? Im manual zu iptables steht nix dazu.
Anzeigen ging übrigens mit ipchains (ipchains -ML glaube ich, ich kanns im Moment nicht testen). Da standen dann immmer die timeout-werte mit dabei. Sowas muß es auch für iptables geben ...
Reinhard