[LARTC] Packet marking for ingress shapping and NET

Andy Furniss andy.furniss@dsl.pipex.com
Mon, 10 May 2004 13:06:58 +0100


Patrick Spousta wrote:
> Hi,
> I have typical situation, local LAN with private addresses, translated 
> via NAT to internet. I need to shape ingress traffic (from internet to 
> local LAN) in several HTB queues accorting to destination (private not 
> public) IP. So I need mark packets to divide them to corresponding 
> queue. According to http://www.docum.org/stef.coene/qos/kptd/ I thing I 
> have only one way how to do it, because MARK in PREROUTING is before 
> (de)NAT
> 
> PREROUTING (de)NAT
>               V
> FORWARD    marking
>               V
> FORWARD   put to IMQ
>               V
>          HTB shapping
>               V
>        routing decision
>               V
>        output interface
> 
> It has a small problem. After PREROUTING some packets are routed to 
> INPUT (packets intended for this machine for local processes)
> 
> Does exists solution how to NAT and MARK in PREROUTING, but in this order?
> 

If you really need to shape for local and forwarded on ingress then you 
use IMQ + the IMQ NAT patch and use u32 to filter on dst IP (if you are 
masquerading a dynamic IP mark LAN traffic and use default for local).

If the traffic to local is not "bulk" ie just dns or ntp etc. then it 
would be less trouble to ignore it and just shape on your LAN facing 
interface marking on dst in postrouting or using u32 on dst - both 
should work, you may want to exclude traffic from server to LAN.

Andy.