Salut,
Am intrat intr-o problema interesanta care suna asa:
Trimit de pe un linux1 un pachet (udp) catre linux2 destinatie portul 3000.
Vreau ca linux 2 sa raspunda cu acelasi pachet cu sursa Linux2, destinatia
linux1 si portul de destinatie  3001.
Am incercat cu NAT (SNAT+DNAT) pe linux2, insa nu merge, problema pe care
eu o vad fiind urmatoarea:
in momentul cind fac DNAT (in prerouting, pentru redirect de la portul 3000
la destinatia linux1 port 3001), pachetul modificat este de gen
sursa:linux1 destinatie:linux1 port 3001. In acest moment cred ca apare
problema (sursa si destinatia sunt identice, adica linux1), pachetul nu mai
atinge postrouting fiindca nu este rutat. Fiindca nu mai atinge
postrouting, nu mai pot face SNAT-ul ca sa imi apara pachetul de gen sursa
Linux2 destinatie linux1 port 3001. Nu stiu exact cum se comporta kernelul,
insa teoretic ar trebui sa ruteze totusi pachetul dupa destinatie (fara sa
ia in considerare sursa)

Am folosit pe linux2 :

iptables -t nat -N fwd_to_dnat

iptables -t nat -A fwd_to_dnat -p udp -j DNAT --to 192.168.0.1:3001

iptables -t nat -I PREROUTING  -p udp  --dport 3000 -j fwd_to_dnat

iptables -t nat -N fwd_to_snat

iptables -t nat -A fwd_to_snat -p udp -j SNAT --to 192.168.0.2

iptables -t nat -I POSTROUTING  -p udp  --dport 3001 -j fwd_to_snat


Linux 1 are adresa 192.168.0.1, linux 2 are adresa 192.168.0.2
Ce vreau este ca pachetul s:192.168.0.1:yyyy  d:192.168.0.2:3000 sa fie
trimis inapoi ca s:192.168.0.2:xxxx d:192.168.0.1:3001.
Iptables -Lnv imi spune ca se face dnat dar chain-ul de snat nu mai este
triggerat.
Stiu ca sunt si alte solutii (tip netcat/ udp forwarder) dar ma intereseza
daca se poate cu iptables si cum (sau unde am gresit).

o zi buna
_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui