Buna,

Am o problema simpla si nu ii dau de cap:

LAN/192.168.1.0/24---192.168.1.1|eth1(Linux Router)eth0|1.2.3.4---Internet

1. Unul din serverele din LAN (192.168.1.2) este server de web, pentru
    care exista in router o regula de DNAT:

iptables -t nat -A PREROUTING -d 1.2.3.4/255.255.255.255 -i eth0 -p tcp -m tcp 
--dport 80 -j DNAT --to-destination 192.168.1.2

    care functioneaza (deci din Internet, o adresare de forma
    http://1.2.3.4/ este deservita de 192.168.1.2 fara nici o problema)

2. Ceea ce vreau sa fac si nu imi iese este ca din interiorul LAN-ului, un
    access de forma http://1.2.3.4/ sa rezulte tot intr-un access la
    192.168.1.2

Dupa multe ore de incercari si RTFM, am ajuns la regula:

iptables -t nat -A PREROUTING -i eth1 -s 192.168.1.0/255.255.255.0 -d 
1.2.3.4/255.255.255.255 -j DNAT --to-destination 192.168.1.2

si cu ping/tracepath merge ok:
$tracepath 1.2.3.4
1:  192.168.1.34                                    0.177ms pmtu 1500
1:  192.168.1.1                                     0.419ms
2:  192.168.1.2                                     asymm  1   0.598ms reached
      Resume: pmtu 1500 hops 2 back 1

Numai ca nu merge si la nivel de conexiuni TCP:

(192.168.1.2)$ tcpdump -nn | egrep -i 192.168.1.34

20:14:15.042053 IP 192.168.1.34.51426 > 192.168.1.2.80: F 575:575(0) ack 338 
win 1728 <nop,nop,timestamp 546804086 3121889417>
20:14:15.042406 IP 192.168.1.2.80 > 192.168.1.34.51426: F 338:338(0) ack 576 
win 1735 <nop,nop,timestamp 3121896669 546804086>
20:14:15.042469 IP 192.168.1.34.51426 > 192.168.1.2.80: . ack 339 win 1728 
<nop,nop,timestamp 546804087 3121896669>
20:14:16.577841 IP 192.168.1.34.38061 > 192.168.1.2.80: S 
4239008103:4239008103(0) win 5840 <mss 1460,sackOK,timestamp 546805622 
0,nop,wscale2>
20:14:16.577889 IP 192.168.1.2.80 > 192.168.1.34.38061: S 
3207082894:3207082894(0) ack 4239008104 win 5792 <mss 1460,sackOK,timestamp 
3121898205 546805622,nop,wscale 2>

Deci la server pachetele ajung cu IP sursa si destinatie corecte (sursa 
192.168.1.34, destinatia 192.168.1.2), numai ca:

(192.168.1.34)$ netstat -n | egrep -i 1.2.3.4
tcp        0      1 192.168.1.34:38062      1.2.3.4:80      SYN_SENT    -

workstation-ul 192.168.1.34 degeaba primeste raspuns de la 192.168.1.2 
cand el asteapta un raspuns de la 1.2.3.4

Probelma e ca ar trebui sa fac si SNAT si DNAT in acelasi timp, ceea ce nu 
se poate. Unde gresesc? FORWARD e pe ACCEPT.

Multumesc

--- 
Detalii despre listele noastre de mail: http://www.lug.ro/


Raspunde prin e-mail lui