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

DNAT nach SNAT geht das ?

Mathi66

Newbie
Hallo zusammen,

ich habe ein kleines Problem.

Eingehender IP Traffic auf verschiedenen Ports wird auf einen Server mit DNAT weitergeleitet. Je nach verwendetem Port des eingehenden Traffic soll eine Source IP mit SNAT gesetzt werden.


kleines Beispiel:

iptables -t NAT -a PREROUTING -i eth0 -p tcp --dport 1111 -j DNAT --to 192.168.2.2:2222

iptables -t NAT -a POSTROUTING -p tcp --dport 1111 -o eth0 -j SNAT --to 192.168.3.100

ifconfig eth1:1 192.168.3.100 netmask 255.255.0.0 up


Nun habe ich das Problem das die SNAT rule nicht greift, da DNAT schon den dest Port gedreht hat. Wenn allerdings DNAT den dest Port nicht dreht versteht der Server nix.

Das ganze soll später mit mehreren tausend Verbindungen ein Netzwerk emulieren umd eine Serverapplikation testen.


Was kann man da machen ? Kann ich die Pakete aus der POST chain wieder in die PRE chain hängen ?

mfg
Mathias
 
A

Anonymous

Gast
1) SNAT weglassen
2) das Target MASQUERADE verwenden, damit bekommen die definierten Pakete die Source-IP des Rechners, auf dem diese Regel definiert ist, also lokal
 

basman

Member
Nein. Denn MASQ kann nicht wissen, welche der verschiedenen IPs des ausgehenden Interfaces Du als Absender-IP haben willst. Sowas kann im Routing festgelegt werden (mittels ip ... Befehl). Dann schnallt Masquerade automatisch, welche IP als Absender eingetragen werden soll.

Masquerade liegt in der POSTROUTING Chain. Daher kann es nach dem Routing noch was ausrichten.
 
Oben