У нас есть маршрутизатор на базе Linux, который в настоящее время работает достаточно хорошо, но наша сеть имеет только входящее соединение 1,5 Мбит / с. Сеть небольшая, но в периоды высокой нагрузки некоторые системы могут доминировать в полосе пропускания. Например, клиент, загружающий файл, может легко перегрузить соединение, оставив всем остальным практически любой доступ к внешнему миру.
Естественно, хотелось бы это исправить. Я считаю, что комбинация правил iptables и tc подходит, но я не знаю, как равномерно распределить полосу пропускания между клиентами.
Было бы неплохо, если бы был способ разделить полосу пропускания только между клиентами, которые фактически также используют соединение, а не жестко ограничивать каждое соединение (пропускная способность / количество клиентов).
Если вы говорите о веб-трафике, Squid может это сделать. Он может ограничивать максимальную пропускную способность для всех пользователей и максимальную пропускную способность для каждого пользователя.
Я применил это решение, чтобы исправить именно эту проблему.
Если вы когда-нибудь захотите использовать что-то еще, не используйте tc. Это беспорядок. Используйте OpenSolaris и flowadm, что намного проще.
Вот что-то похожее на скрипты, которые я когда-то использовал:
http://www.amiryan.org/2009/02/16/traffic-shaping-under-linux-with-tc-and-iptables/
HTH