[clug] packet management on multi-homed network
andrew at donehue.net
Wed Dec 29 03:43:11 MST 2010
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
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