Удивительно, но ваш вопрос неясен - это зависит от того, что вы подразумеваете под "через аппаратное обеспечение". Если вы имеете в виду «только аппаратное обеспечение, а не программное обеспечение», то ваша гибкость чрезвычайно ограничена - фактически имеется только возможность переключения между 10, 10, 1000, 10 тыс. Бит в секунду и полным и полудуплексным режимом - если только вы не начнете преднамеренно наносить ущерб кабели.
Если вы ищете "ограничение скорости", как это делает интернет-провайдер, то вы можете сделать это на коммутаторе и / или маршрутизаторе - маршрутизаторы, как правило, являются более дешевым способом сделать это - по крайней мере, в небольших объемах и где вся информация проходит через роутер. Что-нибудь лучше, чем домашний пользовательский маршрутизатор - что-то, работающее с DD-WRT или лучше, - вам следует ограничить скорость.
Вы также можете ограничить скорость на дорогом коммутаторе, но, вероятно, это того не стоит.
Уловка, которую вы, кажется, пропускаете, заключается в том, что вы можете иметь маршрутизаторы, подключенные к маршрутизаторам, и выполнять ограничение скорости на пограничных маршрутизаторах (т. Е. В / около того места, где они покидают вашу сеть для более широкого Интернета) - хотя ближе к краю вашего сеть, тем больше трафика им нужно будет обрабатывать.
Если деньги не проблема, поговорите с CCNE и купите маршрутизатор Cisco для своего преимущества. Если деньги беспокоят вас, и вы пытаетесь сделать это самостоятельно, я бы хотел получить низкокачественный, но надежный компьютер Linux с как минимум 2 сетевыми картами (4 лучше, если вы хотите избыточность) и настроить это поле для настройки / ограничения трафика. Если бы мне нужен был дополнительный контроль, я бы купил управляемый коммутатор, а затем запустил отдельную VLAN между ними (маршрутизатор, который подключается к серверам виртуальных машин), а затем подключил коммутатор к компьютеру через магистральный порт - эффективно преобразовав обычный управляемый ПК + коммутатор в многопортовый управляемый маршрутизатор с полным QoS.
Конечно, другой вариант - рассматривать каждый узел виртуальной машины как маршрутизатор и управлять трафиком на узле виртуальной машины - это программное решение, но маршрутизация не требует значительных ресурсов.