O pequeno ISP onde eu trabalho usa um shaper de pacotes desses caras ( link ) para gerenciar a alocação de largura de banda entre nossos clientes. Se você tiver a capacidade de manter escritórios / andares diferentes em sub-redes diferentes (pode ser sem classes), o controle de largura de banda muito granular deve ser muito fácil - até os limites de um único host, se desejar.
Se você não quiser uma solução pronta para uso, poderá criar um pacote de pacotes por conta própria em um servidor Linux com duas NICs usando tc. Eu experimentei isso, mas decidi que, dado o tempo de administração limitado, uma solução pronta para uso era a melhor compra. Este artigo deve começar: