From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=AWL,BAYES_00,FUZZY_XPILL, SPF_PASS autolearn=no version=3.2.5 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :user-agent:mime-version:to:subject:references:in-reply-to :content-type:content-transfer-encoding; bh=VXUjS+LNseO0T33+88YFuqKLoAhcYi8zNfWvfq0shlc=; b=hvy/5QVSu5oI8cZTElveHriKubJHgsOATR6tYSUwcC/sfvBi6MbEBPh9e72lu6cusg q69icSpJgs3kK8wWaZr7G2h27WY6YCEsCEgJrfuA4hrVTQ1z//3oOut3YL4JzlFAEgZQ 4sbTQ+HY++IKNPWrOul5QoU4BabEMT+TXFyOM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding; b=dWM21VmhRjKZKiGL5sQf4/Bv+2gdNqxSG4OhLv2ISMdKZ41SJLsYuK16MJM71Ai+GS tVh3CHTKSa1Dn+/Csu495KG2rJuzfPMz8fN5kYVJ83xVUUtzuHKSyYsKnlTEnas1wvO6 j2CRKl+44cJPVqKYKV0rGTXEQRaH6tTDYb13Q= Message-ID: <497300FF.8040802@gmail.com> Date: Sun, 18 Jan 2009 16:14:23 +0600 From: Vasyuk_Maksim User-Agent: Thunderbird 2.0.0.17 (X11/20080929) MIME-Version: 1.0 To: ALT Linux Community general discussions References: In-Reply-To: Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [Comm] =?koi8-r?b?68HLINLB2sTFzNHU2CDV2svVwCDQz8zP09Ug0NLP0NXT?= =?koi8-r?b?y8HOydEgxMzRINfIz8TR3cXHzyDU0sHGycvBPw==?= X-BeenThere: community@lists.altlinux.org X-Mailman-Version: 2.1.10b3 Precedence: list Reply-To: ALT Linux Community general discussions List-Id: ALT Linux Community general discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Jan 2009 10:25:54 -0000 Archived-At: List-Archive: List-Post: Денис Черносов пишет: > С тех пор, как перешли на безлимитный, но медленный интернет, есть > задача разделить полосу пропускания по приоритетам и/или > гарантированным полосам пропускания. > Сначала настраивал в SQUID - всё понятно, всё настраивается (в т.ч. и > по mime-типам). Одна беда - часть критически важного трафика плывет > мимо него. Также за бортом остаются потенциально прожорливые протоколы > типа torrent и ftp. > Стал настраивать QoS в etcnet - немного разобрался, настроил по > примеру... и обнаружил, что это всё для исходящего трафика, который > для меня не сильно критичен (разве что веб-серверу легче будет > немного). > > Поиски вывели сюда: > http://www.masters.donntu.edu.ua/2004/kita/batyr/library/message1.htm > Очень интересная статья, осилил до конца и понял, что счастье моё в > IMQ (наверное). > Остались вопросы: > 1) как правильно это прикрутить к etcnet? > 2) как выделить тот самый входящий, если у меня разрешающее правило > через ESTABLISH,RELATED? > > Для определенности скажем я хочу, чтобы хорошо бегал трафик на 443-й > tcp и обратно + притормозить входящий ftp. Полоса интерфейса 256кбит. А поиски на HTB не выводили? ;) Это мой скрипт который занимаеться разделением трафика. Может и коряво, но работает! ) #!/bin/bash DOWNLINK=2000 UPLINK=1024 DEV=ppp999 # очистка входящей и исходящей qdisc tc qdisc del dev $DEV root 2> /dev/null > /dev/null tc qdisc del dev $DEV ingress 2> /dev/null > /dev/null ###### исходящий трафик # установка корневой HTB, отправить трафик по-умолчанию в 1:20: tc qdisc add dev $DEV root handle 1: htb default 20 # ограничить общую исходящую скорость величиной $UPLINK -- это предотвратит # появление огромных очередей в DSL модеме, # которые отрицательно сказываются на величине задержки: tc class add dev $DEV parent 1: classid 1:1 htb rate ${UPLINK}kbit burst 1k # высокоприоритетный (интерактивный) класс 1:10: tc class add dev $DEV parent 1:1 classid 1:10 htb rate $[UPLINK/2]kbit \ burst 1k prio 1 # класс по-умолчанию 1:20 -- получает немного меньший объем трафика # и имеет более низкий приоритет: #tc class add dev $DEV parent 1:1 classid 1:20 htb rate $[9*$UPLINK/10]kbit \ # burst 20k prio 2 tc class add dev $DEV parent 1:1 classid 1:20 htb rate 8kbit \ burst 50k prio 2 #tc class add dev $DEV parent 1:1 classid 1:20 htb rate 10kbit \ # burst 40k prio 2 tc class add dev $DEV parent 1:1 classid 1:30 htb rate $[UPLINK/2/2]kbit \ burst 1k prio 3 # оба получают дисциплину Stochastic Fairness: #tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10 #tc qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10 #tc qdisc add dev $DEV parent 1:30 handle 30: sfq perturb 10 # TOS = Minimum-Delay (ssh, НО НЕ scp) -- в 1:10: #tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32 \ # match ip tos 0x10 0xff flowid 1:10 # ICMP (ip protocol 1) -- в интерактивный класс 1:10 # так мы сможем удивить своих друзей: tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32 \ match ip protocol 1 0xff flowid 1:30 ############ tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32 \ match ip dport 80 0xff flowid 1:10 tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32 \ match ip dport 8500 0xff flowid 1:10 tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32 \ match ip dport 8080 0xff flowid 1:10 tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32 \ match ip dport 5190 0xff flowid 1:10 tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32 \ match ip dport 110 0xff flowid 1:10 tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32 \ match ip dport 3999 0xff flowid 1:10 tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32 \ match ip dport 8000 0xff flowid 1:10 tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32 \ match ip dport 25 0xff flowid 1:10 # Поднять скорость входящего трафика, при наличии исходящего -- передать ACK-пакеты # в интерактивный класс: tc filter add dev $DEV parent 1: protocol ip prio 10 u32 \ match ip protocol 6 0xff \ match u8 0x05 0x0f at 0 \ match u16 0x0000 0xffc0 at 2 \ match u8 0x10 0xff at 33 \ flowid 1:10 tc filter add dev $DEV parent 1: protocol ip prio 16 u32 \ match ip dst 217.70.119.218 flowid 1:30 tc filter add dev $DEV parent 1: protocol ip prio 16 u32 \ match ip dst 80.64.94.12 flowid 1:10 #lenege tc filter add dev $DEV parent 1: protocol ip prio 16 u32 \ match ip dst 89.249.27.112 flowid 1:10 tc filter add dev $DEV parent 1: protocol ip prio 16 u32 \ match ip dst 4.69.141.74 flowid 1:10 tc filter add dev $DEV parent 1: protocol ip prio 16 u32 \ match ip dst 217.70.119.181 flowid 1:10 tc filter add dev $DEV parent 1: protocol ip prio 16 u32 \ match ip dst 90.189.192.111 flowid 1:10 tc filter add dev $DEV parent 1: protocol ip prio 16 u32 \ match ip dst 212.164.71.12 flowid 1:10 tc filter add dev $DEV parent 1: protocol ip prio 16 u32 \ match ip dst 194.228.101.195 flowid 1:10 tc filter add dev $DEV parent 1: protocol ip prio 16 u32 \ match ip src 172.19.0.17 flowid 1:10 tc filter add dev $DEV parent 1: protocol ip prio 16 u32 \ match ip src 172.19.0.2 flowid 1:10 tc filter add dev $DEV parent 1: protocol ip prio 16 u32 \ match ip dst 217.18.158.27 flowid 1:10 # остальной трафик не является интерактивным поэтому он попадает в 1:20 ########## входящий трафик ############# # необходимо несколько уменьшить скорость поступления входящего трафика, # это предотвратит задержку пакетов в очередях у поставщика услуг. # Поставщики имеют обыкновение увеличивать размеры очередей, # поэтому, экспериментальным путем подберите требуемые значения, # при которых скачивание будет происходить с максимальной скоростью. # # присоединить входной ограничитель: tc qdisc add dev $DEV handle ffff: ingress # сбрасывать все подряд (0.0.0.0/0), что приходит со слишком большой скоростью. tc filter add dev $DEV parent ffff: protocol ip prio 50 u32 match ip src \ 0.0.0.0/0 police rate ${DOWNLINK}kbit burst 10k drop flowid :1