LINUX - Жизнь в консоли ЕСТЬ!!! вконтакте твиттер фэйсбук Главное меню Основные команды линукс Сеть Текстовые редакторы Системные утилиты Мультимедиа CD, DVD, HDD, USB-Flash Графика Игры Юмор о Linux Заметки о разном... Полезные ссылки Коротко о себе... Для возможности комментирования статей необходима авторизация: Логин Пароль Запомнить меня Забыли пароль? Забыли логин? Регистрация Последние статьи TOR - обеспечиваем анонимность в сети Консольная игра Pac-Man Monit: автоматический перезапуск сервера 1С при падении Установка нового ядра linux 3.3 в Ubuntu Bastet - консольный tetris Слушаем музыку онлайн с сайта vk.com ( vkontakte.ru ) из консоли Просмотр конфигурационных файлов без комментариев и пустых строк Инкрементный бэкап расшаренного каталога. HTOP - монитор процессов. SMART. Смотрим состояние жесткого диска. Счетчики 20.03.2011 19:23 Шейпер трафика: режем скорость. htb.init - это скрипт, который с помощью утилит ip, tc настраивает пропускную способность канала. Адрес проекта HTB.init http://sourceforge.net/projects/htbinit/ Немного теории: Шейпер может ограничивать только ИСХОДЯЩИЙ трафик, распределяя его по разным очередям. Пакеты, не помещающиеся в очередь, отбрасываются. Данные из очереди выдаются на сетевой интерфейс и далее к клиенту. Каждый конфигурационный файл описывает очередь, это заложено в самом названии файла, который имеет формат: $HTB_PATH/<ifname>-<clsid>(:<clsid>).<description> или если "по-русски": $HTB_PATH/<Имя интерфейса>-<Номер класса>(:<Номер дочернего класса>).<Комментарий> clsid - задается цифровыми значениями от 0x2 до 0xFFFF (записывается без приставки 0x) Сам интерфейс описывается файлом только с именем ifname. Например: eth0 имеет идентификатор класса clsid=0. eth0-2 - основной (корневой) класс с clsid=2 eth0-2:3 - класс очереди clsid=3, унаследует ограничения от родительского clsid=2 eth0-2:3:4 - класс очередь clsid=4, унаследует ограничения от родительского clsid=3 и 2, т.е. накладываются еще более жесткие ограничения. Параметры DEFAULT=30 : указывает номер класса, куда попадает трафик не попавший ни под одно правило. R2Q=10 : точность шейпера. RATE=5Mbit : выделенная (гарантированная) пропускная способность очереди, задается в Kbit, Mbit или bps (bytes per second) CEIL=6MBit : максимальная пропускная способность очереди. если не указывать, то по умолчанию CEIL=RATE BURST=<bytes> : количество байт без ограничения скорости PRIO=<number> : приоритет трафика очереди к другим очередям в классе. Чем меньше число, тем выше приоритет. По умолчанию 0 LEAF=<параметр> правило распределения внутри самой очереди. default "none". LEAF=sfq - равномерное распределение между участниками очереди. RULE= : правило, определяющее трафик, который должен проходить через данную очередь. В одном файле могут присутствовать сразу несколько правил. RULE=[[source_addr][:port[/mask]],][destination_addr][:port[/mask]] Если трафик попадает по условиям в очередь -2:10 (например где правило задано по маске), то дальше он уже не будет проверять условия в -2:20 (где допустим будет описано правило с конкретно этим ip), -2:30 MARK =<метка> : трафик имеющий метку. Например если надо ограничить исходящий трафик от клиента в лок. сети, находящегося за NATом, RULE не прокатит, нужно использовать MARK, и метить нужные пакеты в фаерволе примерно так: iptables -t mangle -A PREROUTING -s 192.168.0.1 -j MARK –set-mark 101 TIME : временные параметры. TIME=18:00-06:00;256Kbit Для корректной работы скрипта, сумма всех RATE дочерних классов (очередей) не должна превышать RATE корневого класса, а значение CEIL в каждой очереди не должно превышать значение в корневом классе. Установка htb.init Качаем скрипт htb.init который будет генерировать вам правила шейпера согласно созданным вами файлам конфигурации. Сайт проекта http://sourceforge.net/projects/htbinit/ Переименуем покороче скачанный скрипт, назовем например просто htb и поместим в директорию /usr/sbin . Разрешим выполнение этого скрипта: chmod +x /usr/sbin/htb По желанию можно добавить скрипт в автозагрузку системы, например добавив в rc.local строку /usr/sbin/htb start Теперь надо создать директории и файлы необходимые для правильной работы скрипта. mkdir /etc/sysconfig mkdir /etc/sysconfig/htb touch /var/cache/htb.init Теперь можно приступать к написанию конфигурационных файлов нашего шейпера. cd /etc/sysconfig/htb На сервере имеется локалка на интерфейсе eth0, интернет на eth1. Используется NAT. Скорость интернет-канала 30Мбит\с. Необходимо обеспечить гарантированную скорость доступа по rdp (на сервере проброшены порты к некоторым компам) и ограничить скорость интернет для некоторых компьютеров в сети, при этом не ограничивая скорость в локалке (на сервере еще файлопомойка). Создаем конфигурационные файлы: Для входящего трафика: sudo touch eth0 # Описываем интерфейс eth0 sudo nano eth0 DEFAULT=10 # метка на файл, создаваемый ниже, eth0-2:10.dfl R2Q=100 # точность ограничений sudo touch eth0-2.root # корневой класс sudo nano eth0-2.root RATE=100Mbit # гарантированная пропускная способность CEIL=100Mbit # максимальная пропускная способность BURST=15k # первые 15k без ограничений
Шейпер трафика: режем скорость.
Материал перенесён из старой базы знаний ATC-IP и оформлен в едином стиле нового сайта.