Why not let it come to you!
I am going to do something similar soon, and will probably use Endian community edition
http://www.endian.com/en/products/features/release/Or Clarkconnect (Endian looks like it has better traffic shaping though)
http://www.clarkconnect.com/info/gservices.phpOr possibly Vyatta (be wary though; this looks like it's only suitable for Cisco / Juniper peeps or those used to running network services from a command line in Linux)
http://www.vyatta.org/All of those are community editions of commercial products. You can do traffic shaping on Ubuntu or Debian if you like, but those guys look like their forums will dig you out of a hole if you get into one.