[clug] packet management on multi-homed network

Andrew andrew at donehue.net
Wed Dec 29 03:43:11 MST 2010

Hi All!

I have spent a fair bit of time on google trying to find a solution for 
this problem, but no luck as yet.

For traffic management purposes I am trying to track packets based on 
incoming and outgoing interfaces (in a multi-homed network, presume 100% 
linux minus the switches).   I want to achieve this to allow exceptions 
for lower cost data movement (eg, if bandwidth is going via peering 
instead of transit then allow it to go through at a faster rate).  This 
is not to due to a per-GB download charge (just to the fact that the 
peering interfaces are faster than the transit) - so it is to avoid 

Incoming is simple enough (TOS marking based on incoming interface).  
Outgoing is much harder (as I don't know which interface it is going out 
of until it reaches one of the border routers - too late for the 
shaping). It would be possible to manually (or automatically export the 
routes), but this is far less than dynamic and becomes more of a 
headache as the number of peering arrangement (and routes) increase.  
Also risky (if the peer goes down then we risk congestion through an 
alternative route)

I am interested in any suggestions on how others manage the tracking of 
outgoing bandwidth (before it hits the border interface).   DiffServ for 
linux looks attractive, but the project seems dead (maybe I am looking 
in the wrong place)?

On a related matter-  is anyone able to give some clues on how TOS 
tagging is managed in a return packet situation? (eg packet comes in 
with TOS values, passes to the application server eventually, then a new 
but related packet returns back out). On the return path, is there a way 
to recognise the return packet and assign the correct TOS value? (kind 
of like a 'related/established'), or does the server sending the return 
packet have to preserve the TOS value?   I am aware that this has a 
fundamental flaw when used in multi-homing network (it presumes that 
return path is the same as entry).

Grateful for any input.


More information about the linux mailing list