NAT fehlerhaft?

soul_rebel

ist immer auf der flucht
also ich ahbe einen router hinter dem zwei pcs hängen (ein ubuntu linux[a] und ein freebsd4.10). per dynmischer dns ist meiner externen ip eine fester hostname zugewiesen.
ich hab ein programm geschrieben wodurch die beiden pcs kommunizieren sollen, aber über das internet (nicht intern). also, da beide pcs ja die selbe ip haben, lauscht das programm von [a] auf port 6890 und das programm von auf 6891; sie schicken auf den jeweils anderen port (selbe adresse versteht sich).
das NAT in dem router ist so eingestellt, dass es alle udp und tcp (in meinem fall brauche ich nur udp) anfragen auf port 6890 an [a] weiterleitet und alle auf 6891 an .
trotzdem läuft es immer so ab:
[a] schickt erstes paket, dieses kommt sogar bei an, aber alles was danach schickt kommt auch bei an. :confused:
andersrum genau dasselbe, also wenn ich das erste paket shcicken lasse, dann kommen alle weiteren bei [a] an...
es scheint mir also als würde der router nach dem ersten paket alle weitern (obwohl unterschiedliche zielt-ports) an die erste zieladresse schicken.
hat irgendjemand damit erfahrung gemacht? irgendwelche tipps? der router ist eine smc barricade 7004 ABR/VBR.
danke im voraus
 
lass dir mal von deinem proggie auf die zieladresse der pakete ausgeben.
btw: warum zur hoelle zu umstaendlich? hast du dir schonmal ssh angeguckt?
 
also soo umständlich ist es nicht ;) . nein ehrlich das muss so sein, ist eine anwendung die direkt pakete verschicken können muss und das sollte halt auch mit mehreren pcs hinter einem router gehen, deswegen die unterschiedlichen ports bei gleicher ip.

also mit tcpdump sieht das ganze so aus:
vorgang: [a] schickt paket zu
dumpauf [a]:
Code:
ubuntu:6890 -> test.dyndns.org:6891
dump auf:
Code:
test.dyndns.org:6890 -> test.dyndns.org:6891
vorgang: antwortet
dump auf [a]:
leider garnichts
dump auf :
Code:
freebsd:6891 -> test.dyndns.org:6890
und was eigentlich bei [a] kommen sollte, aber auch auf :
Code:
test.dyndns.org:6891 -> test.dyndns.org:6890

also irgendwelche ideen?
 
http://www.netfilter.org/documentation/HOWTO/NAT-HOWTO-10.html

If you are doing port forwarding back onto the same network, you need to make sure that both future packets and reply packets pass through the NAT box (so they can be altered). The NAT code will now (since 2.4.0-test6), block the outgoing ICMP redirect which is produced when the NAT'ed packet heads out the same interface it came in on, but the receiving server will still try to reply directly to the client (which won't recognize the reply). ...

... Because the PREROUTING rule gets run first, the packets will already be destined for the internal web server: we can tell which ones are internally sourced by the source IP addresses


Wenn ich das richtig verstehe,

"It´s not a bug, it´s a feature"
 
hmm also so ganz verständlich ist der textauszug ja nicht...
so lange der router von außenkommende pakete an die richtigen maschinen schickt kann ich auch um dieses "feature" rumprogrammieren, glaube ich.... trotzdem macht es unnötig komplizierter, naja egal.
danke für die hilfe
 
Back
Top