I'm running a HTTP proxy service and want to route traffic to various Layer 3 TUNs based on the contents of HTTP packets (e.g. HTTP headers).
I'm using BSD and Linux to do this but it doesn't look like either of these are capable of Layer 7 classification when making routing decisions (at least, without writing my own extensive kernel patches).
So, is it possible to make Layer 3 routing decisions based on the contents of HTTP packets in Linux or BSD?
And, if not, do any Unix based operating sytems or distributions have this capability?