Kalin Bogatzevski
2001-Mar-30 11:39 UTC
mangle table can''t mark incoming packets if using SNAT
Hi,
I have the following situation here with Linux 2.4.2, iptables 1.2.1a+tc.
The box has 2 ethernet interfaces:
eth0 is connected to an adsl link with real ip address (213.174.10.162)
eth1 is connected to the lan with internal addresses (192.168.20.1)
Users behind the eth1 are connected with addresses 192.168.20.0/24 that are
all masqueraded (with SNAT) to the address of eth0.
I am trying to traffic control all incoming and outgoing packets with tc
cbq.
If a user in the eth1 lan is using a real IP address which is not
masqueraded I have no problem to mark packets with the mangle table.
If a user in the eth1 lan is using the fake address then I can control the
outgoing packets and they are correctly marked, but all the incoming packets
are not passing the mangle table PREROUTING and not being marked at all. So
I cannot control the incoming traffic.
Here is a sample of the configuration:
${IPTABLES} -t nat -A POSTROUTING -s ${subnet} -d ! ${INTRANET_REMOTE} -o
${INET_IFACE} -j SNAT --to 213.174.10.162
# MARK DOWNLOAD packets from different IP addresses
echo -n "MARK DOWNLOAD packets"
${IPTABLES} -t mangle -A PREROUTING -d 213.174.10.169/32 -j MARK --set-mark
10169
${IPTABLES} -t mangle -A PREROUTING -s 213.174.10.169/32 -j MARK --set-mark
10169
${IPTABLES} -t mangle -A PREROUTING -d 213.174.10.170/32 -j MARK --set-mark
10170
${IPTABLES} -t mangle -A PREROUTING -s 213.174.10.170/32 -j MARK --set-mark
10170
${IPTABLES} -t mangle -A PREROUTING -d 192.168.20.201/32 -j MARK --set-mark
20201
${IPTABLES} -t mangle -A PREROUTING -s 192.168.20.201/32 -j MARK --set-mark
20201
${IPTABLES} -t mangle -A PREROUTING -d 192.168.20.203/32 -j MARK --set-mark
20203
${IPTABLES} -t mangle -A PREROUTING -s 192.168.20.203/32 -j MARK --set-mark
20203
# iptables -L -t mangle -v -n
Chain PREROUTING (policy ACCEPT 74910 packets, 19572002 bytes)
pkts bytes target prot opt in out source
destination
10811 3390K MARK all -- * * 0.0.0.0/0
213.174.10.169 MARK set 0x27b9
10225 1255K MARK all -- * * 213.174.10.169
0.0.0.0/0 MARK set 0x27b9
19549 6873K MARK all -- * * 0.0.0.0/0
213.174.10.170 MARK set 0x27ba
16096 1949K MARK all -- * * 213.174.10.170
0.0.0.0/0 MARK set 0x27ba
0 0 MARK all -- * * 0.0.0.0/0
192.168.20.201 MARK set 0x4ee9
453 35261 MARK all -- * * 192.168.20.201
0.0.0.0/0 MARK set 0x4ee9
0 0 MARK all -- * * 0.0.0.0/0
192.168.20.203 MARK set 0x4eeb
3836 550K MARK all -- * * 192.168.20.203
0.0.0.0/0 MARK set 0x4eeb
As you can see those marks with destination to 192.168.20.xxx do not show
any packets, so the users are getting uncontrolled traffic.
If anyone has that problem, please let me know.
Thank you,
Kalin Bogatzevski.