Назад | Перейти на главную страницу

Замедлить отдельные соединения, проходящие через маршрутизатор Linux?

У нас есть Linux-сервер, действующий как маршрутизатор / брандмауэр для нашего офиса. Иногда кто-то загружает большой файл, который занимает всю нашу полосу пропускания. Я не хочу внедрять какие-либо сложные правила или формирование трафика, но мне интересно, есть ли способ замедлить одно соединение на месте? я нашел tcpnice, но это не замедляет передачу в моем тестировании.

Если формирование трафика не формирует трафик должным образом как для оболочки, так и для активных загрузок (я думаю, что может, но не уверен), вы можете:

а) запустите ssh на двух портах - вы можете установить приоритет одного для передачи файлов, а другой для интерактивной работы.

б) ограничить общую скорость ssh - единственная проблема заключается в том, если вы заполните емкость загрузки ссылки, и ssh будет работать нормально в интерактивном режиме, если вы ограничите скорость примерно до 50 кбит / с (это заставит пользователей использовать какой-то другой протокол для передачи больших файлов )

в) расставьте приоритеты трафика на исходном адресе, если можете

Кроме того, формирование трафика должно сделать его более сбалансированным, независимо от того, чтобы одно соединение не монополизировало весь канал.

РЕДАКТИРОВАТЬ: Вот пример который использует сценарий bash. В нем упоминается, что ssh действительно устанавливает TOS с интерактивного на интерактивный, поэтому я предполагаю, что Wondershaper использует это в своих интересах.

Если вам нужны другие варианты помимо Wondershaper убедитесь, что вы посмотрите на Shorewall или pyshape.

Shorewall - это довольно зрелый и красивый баланс гибкости, мощности и простоты.

Wondershaper может творить чудеса, и его довольно легко настроить. Кроме этого, вы можете найти для этого несколько пользовательских программ. В Linux есть Струйка, могут быть эквиваленты для Windows.

Но на самом деле вам нужно формирование трафика - люди забудут запустить программу и т. Д. Простое ограничение загрузки чуть меньше вашей полной емкости, вероятно, принесет вам много пользы.

Взгляните на connrate на странице руководства iptables (8). Вы можете сопоставить скорость соединения и замедлить соединение, которое загружается слишком быстро, либо поместив его в соответствующий класс tc, либо drop, либо tarpit, либо что-то еще, что вам подходит.

Думали ли вы о настройке обратного прокси-сервера Squid и настройке отложенные пулы? Вы также можете сделать это с помощью директивы limit iptables.

Единственная проблема, с которой я столкнулся с вашим запросом, заключается в том, что кажется, что вы хотите начать ограничивать скорость передачи уже установленного соединения, что будет довольно сложно сделать, поскольку все, что я могу придумать, захочет начать работать на новое соединение и оставит существующие соединения активными.

Я должен согласиться с Алексом в том, что вам, вероятно, понадобится какой-то формирователь трафика, вы хотите посмотреть количество пакетов в секунду, поскольку интерактивная оболочка будет иметь значительно меньшую ценность, чем скромная передача файлов.