Автор Тема: Shaper-i meipari  (Прочетена 1021 пъти)

edmon

  • Гост
Shaper-i meipari
« -: Dec 05, 2006, 01:38 »
отдавна имам забъркано едно скриптче... за шейпър.
написнано  е на пхп за конзола.
понеже съм се изчерпал идейно, а и понеже не му разбирам тънкостите, реших да го споделя с всички вас.
ако някой има желание да каже кое и как може да се направи по добре.
или направо да ми каже че съм идиот...:) лошо няма.
и така условията който покрива са следните.
1. поради условията роутера е с 1 интерфейс.
2. за това се маркира трафика с иптаблес за изходящия трафик.
3. знам че доставчика ми маркира с тос на бордър гейтуейя пакетите . за пииринг с 2 за другия трафик с 4
4. ай-пи адресите са на писани в файл всеки на ред след него скорост в битове. след това има още един архаичен параметъ който вече не изолвам
5. може и да има и 5 ама не се сещам сега.

ще се радвам да обсядя с всеки предимства и недостатци и възможности за подобрение което включва и самото пренаписване на скрипта на нещо различно от пхп

ето и чудото:
Примерен код

#!/usr/bin/php -q
<?php
`/sbin/tc qdisc del dev eth0 root`;
`/sbin/tc qdisc add dev eth0 root handle 1 htb default 2 r2q 3`;

#peering
`/sbin/tc class add dev eth0 parent 1: classid 1:5 htb rate 1800Kbit prio 2`;
#internet
`/sbin/tc class add dev eth0 parent 1: classid 1:6 htb rate 4700Kbit prio 2`;

#upload ALL
`/sbin/tc class add dev eth0 parent 1: classid 1:7 htb rate 2000Kbit`;
for($i=2;$i<501;$i++){
$y=100+$i;
echo "upload: $y\r";
`/sbin/tc class add dev eth0 parent 1: classid 1:$y htb rate 128Kbit`;
`/sbin/tc qdisc add dev eth0 parent 1:$y handle $y sfq perturb 10`;
`/sbin/tc filter add dev eth0 parent 1:0 protocol ip prio 200 handle $i fw classid 1:$y`;
}
#upload
# ICMP also goes into low latency class 1:5 (for measurements).
#`/sbin/tc filter add dev eth0 parent 1:0 protocol ip prio 10 u32 match ip protocol 1 0xff flowid 1:5`;

$f=file("htbinit.conf");
$num=1000;
while(list($key,$val)=each($f)){
list($ipaddress,$rate,$connection_type)=explode(" ",$val);
$connection_type=trim($connection_type);
$night_coef=$argv[1];
if($night_coef<1) $night_coef=1;
$rate_int=trim($rate); #skorost internatinal
$over_int=($rate_int*6*$night_coef); #ne pri svoboden intern
$rate_peer=($rate_int); #skorost peer
$over_peer=($rate_peer*4*$night_coef); #narastvane pri svoboden peer
$rate_int=$rate_int."Kbit";
$rate_peer=$rate_peer."Kbit";
$over_int=$over_int."Kbit";
$over_peer=$over_peer."Kbit";
#NEW IDIEAAAAAA
$rate_int="6Kbit";
$rate_peer="12Kbit";
####################
echo "download: $num\r";
`/sbin/tc class add dev eth0 parent 1:5 classid 1:$num htb rate $rate_int ceil $over_int quantum 2000`;
echo "$num rate $rate_peer ceil $over_peer\n";
`/sbin/tc qdisc add dev eth0 parent 1:$num handle $num sfq perturb 10`;
`/sbin/tc filter add dev eth0 parent 1:0 protocol ip prio 100 u32 match ip tos 0x02 0xff match ip dst $ipaddress classid 1:$num`;
$num++;
`/sbin/tc class add dev eth0 parent 1:6 classid 1:$num htb rate $rate_peer ceil $over_peer quantum 2000`;
echo "$num rate $rate_int ceil $over_int\n";
`/sbin/tc qdisc add dev eth0 parent 1:$num handle $num sfq perturb 10`;
`/sbin/tc filter add dev eth0 parent 1:0 protocol ip prio 100 u32 match ip tos 0x04 0xff match ip dst $ipaddress classid 1:$num`;
echo "download: $num\r";
$num++;
}
echo "\n";
?>

а htbinit.conf съдържа ето това:
Примерен код

192.168.1.2 2048 s
192.168.1.3 128 s
192.168.1.4 128 w
192.168.1.5 128 s
192.168.1.6 128 s
192.168.1.7 128 w
192.168.1.8 256 s
192.168.1.9 128 s
192.168.1.10 64 w
192.168.1.11 64 s
192.168.1.12 64 s
192.168.1.13 64 s
192.168.1.14 64 w


'<img'>



Активен

edmon

  • Гост
Shaper-i meipari
« Отговор #1 -: Dec 07, 2006, 01:20 »
бааа никой не ииибаааа...да се вкл. да напраим нещо... по ...мани
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
HTB shaper
Настройка на програми
Dzver 1 5326 Последна публикация Feb 12, 2003, 11:34
от alpha
shaper
Настройка на програми
sunhater 11 6308 Последна публикация Jul 01, 2003, 13:10
от sunhater
shaper
Настройка на програми
Enigmatic 0 3040 Последна публикация Mar 06, 2004, 09:13
от Enigmatic
Shaper
Настройка на хардуер
Enigmatic 1 4138 Последна публикация Mar 28, 2004, 21:46
от
shaper
Настройка на програми
Enigmatic 1 3827 Последна публикация Mar 28, 2004, 22:20
от sebastianz55