Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.
Всем привет и С НАСТУПИВШИМ НОВЫМ 2013 ГОДОМ!!!! Пытаюсь ограничить полосу для FTP по приему. Сразу скажу что сижу уже часов 6 с этой проблемой и перечитал много. Ничего не помогает ( FTP работает в пассивном режиме, поэтому ограничиваю скорость по пассивным портам.
пытаетесь ограничить полосу пропускания для ftp сервера или для ftp клиента? Если для клиента, то как быть, если сервер принимает пассивные соединения на других портах?
Моя задача заключается в ограничении скорости скачки\закачки для клиентов FTP. Полоса пропускания для FTP должна быть к примеру 5мбит full_duplex (в приведенном примере стоит другое ограничение, просто для теста). Т.е. в обе стороны (прием\отдача) максимальная скорость по 5мбит (для закачки 5мбит и для скачки 5мбит) для всех клиентов. Пассивные порты (порты по которым происходит закачка\скачка файлов) это TCP 61000-61999 (так настроено в FTP сервере).
Конечно проще, но не предоставляется возможным. На графиках сети появляются "пики", т.к. скорость постепенно анализируется и снижается до выделенного лимита. Так вот когда такие пики возникают потребляемая полоса резко возрастает и превышает выделенную. Все пакеты что свыше определенной скорости полосы пропускания дропаются (эта политика дата-центра) =\ И многие, даже существующие, коннекты обрываются с таймаутами до тех пор пока скорость не понизится до лимита, выставленного на FTP сервере. Так что необходим шейпер и это точно, т.к. помимо ФТП необходимо ограничить еще некоторые виды трафика. Вопрос остается открытым.
tc qdisc add dev eth0 root handle 1: htb default 30
tc class add dev eth0 parent 1: classid 1:1 htb rate 35mbit burst 15k
35мбит это FullDuplex? Т.е. одновременная передача\прием могут быть по 35мбит? Или это half duplex, т.е. на прием и передачу будет делиться 35мбит? Просто если 1ый вариант не верен, то необходимо объявлять не 35мбит а 70мбит в моем случае.
tc qdisc add dev eth0 root handle 1: htb default 30
tc class add dev eth0 parent 1: classid 1:1 htb rate 35mbit burst 15k
35мбит это FullDuplex? Т.е. одновременная передача\прием могут быть по 35мбит? Или это half duplex, т.е. на прием и передачу будет делиться 35мбит? Просто если 1ый вариант не верен, то необходимо объявлять не 35мбит а 70мбит в моем случае.
Это просто 35Мбит.
tc работает с исходящим трафиком, соответственно, для ограничения входящего трафика используются костыли в виде ifb/imq, который весь входящий трафик пропускают через виртуальный интерфейс(для него этот трафик уже является исходящим и, соответственно, ограничивается так же, как и исходящий на реальном интерфейсе).
И, до кучи: если есть возможность изменить диапозон портов, то можно обойтись без iptables -- tc filter умеет проверять порты(порт + маска -- см. tc filter ... u32 ... dport).
Спасибо за ответ! Обошелся диапазоном портов u32, хотя это полный велосипед получается, т.к. чтобы покрыть данный диапазон необходимо 8 правил с масками =\
Насчет траффика уже поэкспериментировал и в живую прочувствовал что входящий трафф никак не ограничить ( Обошелся тупым дропанием лишних пакетов до необходимой полосы. Но все же хочется научиться перенаправлять входящий траф на виртуальный интерфейс для нормальной фильтрации и последующего шейпинга. Буду благодарен если направите или покажете где почитать про создание виртуальных интерфейсов и перенаправления на них входящего трафика.
Спасибо за ответ! Обошелся диапазоном портов u32, хотя это полный велосипед получается, т.к. чтобы покрыть данный диапазон необходимо 8 правил с масками =\
Поэтому и стоит поменять диапозон так, чтобы это было 1 маской.
Насчет траффика уже поэкспериментировал и в живую прочувствовал что входящий трафф никак не ограничить ( Обошелся тупым дропанием лишних пакетов до необходимой полосы. Но все же хочется научиться перенаправлять входящий траф на виртуальный интерфейс для нормальной фильтрации и последующего шейпинга. Буду благодарен если направите или покажете где почитать про создание виртуальных интерфейсов и перенаправления на них входящего трафика.