Erik:

        It would be useful to see the rules you are actually using.
Do you have a Forward rule to match the prerouting DNAT rule?
The latest Redhat 7.2 Kernel is 2.4.9-31 and iptables is 1.2.4.
It wouldn't hurt to upgrade.

Stu........



-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On Behalf Of Erik Schaberg
Sent: April 26, 2002 2:48 AM
To: [EMAIL PROTECTED]
Subject: DNAT problem

Hi all,

I have a problem with iptables and hope one of you guru's can help me.

I'm using redhat 7.2 and the iptables (version 1.2.3) that came with it.
Iptables works fine for packet filtering and SNAT but I cannot get DNAT
working.

I have two linux boxes, connected with an ethernet card to each other
(192.168.1.0/24). One has also an adsl connection using a static
ipaddress (x.x.x.x/32). I use the adsl machine as firewall/workstation,
the other one is my webserver. I want to forward the http traffict from
the internet directed to my adsl ip address to the lan webserver. But
whatever I try, it timeouts.

I read a number of iptables tutorials and FAQs, but I cannot find the
solution. I tried different sample iptables configurations, but all have
the DNAT problem on my system.
To test the DNAT principle/working I added another rule to my nat table.
This rule should redirect all http traffict from my workstation to a
random chosen ip address 222.222.222.222 to my lan-webserver. This way I
can test the priciple/working of DNAT without help from someone on the
internet to connect to my box.
This connection also timeouts. When I look at the tcpdump output on the
ethernet interface it looks to me as if the firewall resets the
connection while still in the 3-way handshake.

This is my iptables nat configurations as shown with the command:
iptables -t nat -L:
(adsl-ip-address is the static ip address of the firewalls-adsl interface.)
<====start iptables output ==========>
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination        DNAT
tcp  --  anywhere         adsl-ip-address    tcp dpt:http state
NEW,RELATED,ESTABLISHED to:192.168.1.2
DNAT       tcp  --  anywhere         adsl-ip-address tcp dpt:http
to:192.168.1.2:80

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination        SNAT
all  --  anywhere             anywhere           to:adsl-ip-address

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination        DNAT
tcp  --  anywhere             222.222.222.222    tcp dpt:http
to:192.168.1.2
<=========== end iptables output==========>



This is the output of tcpdump when I'm connecting to
http://222.222.222.222/ from my workstation/firewall-box. (Rork-eth is
the lan interface of the firewall/workstation (ip-addresss 192.168.1.1).
Promethea is the lan interface (and hostname) of the webserver on the
lan (ip-address 192.168.1.2).)
<============ start tcp dump output=====>
18:26:48.765293 Rork-eth0.datametrics > Promethea.http: S
4139693190:4139693190(0) win 5840 <mss 1460,sackOK,timestamp 2036276
0,nop,wscale 0> (DF)
18:26:48.765293 Promethea.http > Rork-eth0.datametrics: S
3529853357:3529853357(0) ack 4139693191 win 5792 <mss
1460,sackOK,timestamp 2524120 2034176,nop,wscale 0> (DF)
18:26:48.765293 Rork-eth0.1024 > Promethea.http: R
4139693191:4139693191(0) win 0 (DF)
18:26:49.165293 Promethea.http > Rork-eth0.datametrics: S
3529853357:3529853357(0) ack 4139693191 win 5792 <mss
1460,sackOK,timestamp 2524161 2034176,nop,wscale 0> (DF)
18:26:49.165293 Rork-eth0.1024 > Promethea.http: R
4139693191:4139693191(0) win 0 (DF)
18:27:13.365293 Promethea.http > Rork-eth0.datametrics: S
3529853357:3529853357(0) ack 4139693191 win 5792 <mss
1460,sackOK,timestamp 2526581 2034176,nop,wscale 0> (DF)
18:27:13.365293 Rork-eth0.1024 > Promethea.http: R
4139693191:4139693191(0) win 0 (DF)
18:27:18.365293 arp who-has Promethea tell Rork-eth0
18:27:18.365293 arp reply Promethea is-at 0:60:8:72:5e:88
<========end tcdump output====>

How can I get dnat to work properly?
Can anybody help me? I don't know what the problem is? Is it my
configuration? Am I missing something obvious?

Thanks in advance for your help,

Erik








Reply via email to