... Пример приведен для спутникового канала в 8 мбит/с с провайдерским ограничением 1000 пакетов в секнуду h4. Задача Торрент у одного пользователя забивает весь канал, за счет выкачивания лимита, который установил вышестоящий провайдер h4. Решение *Внимание\!* Указанные действия необходимо производить когда сервер находится в режиме [удаленного помощника|http://asrdoc.ideco-software.ru/pages/viewpage.action?pageId=2687433]. Сначала нужно разрешить редактирование файла /usr/local/ics/bin/ics_tune.sh {code} mount -o rw,remount /mnt/ro_disc chattr -i /usr/local/ics/bin/ics_tune.sh {code} Дальше нужно отредактировать файл /usr/local/ics/bin/ics_tune.sh и привести его к подобному виду {code} #!/bin/bash if [ "$1" = "firewall.sh" ]; then #Добавляем новую цепочку iptables -t mangle -N short_packet
|
#Ограничиваем трафик по количеству пакетов в секунду
|
iptables -t mangle -I short_packet -p udp --dport 1024: -m limit --limit 300/sec -j RETURN iptables -t mangle -I short_packet -p tcp --dport 1024: -m limit --limit 300/sec -j RETURN
|
iptables -t mangle -I short_packet -m limit --limit 300/sec -j RETURN
|
iptables -t mangle -A short_packet -j DROP
|
... #Перенаправляем в нее маленькие пакеты
|
iptables -t mangle -I PREROUTING 12 -p udp --dport 1024: -m length --length 0:300 -j short_packet iptables -t mangle -I PREROUTING 12 -p tcp --dport 1024: -m length --length 0:300 -j short_packet
|
iptables -t mangle -I PREROUTING 12 -p udp --sport 1024: -m length --length 0:300 -j short_packet iptables -t mangle -I PREROUTING 12 -p tcp --sport 1024: -m length --length 0:300 -j short_packet
|
fi
|
... true {code} *300* \- размер пакета в кбайтах *300/sec* \- количество пакетов в секунду Для применения изменений выполните команду (*Перезагрузка не потреуется*): {code} /usr/local/ics/bin/ics_tune.sh firewall.sh {code} Если файл не пустой, то старое содержимое оставить нетронутым и добавить в любое место файла основной условный блок из примера выше.
|