Автор Тема: Проблем с FlatTC  (Прочетена 4892 пъти)

BuSteR

  • Напреднали
  • *****
  • Публикации: 26
    • Профил
Re: Проблем с FlatTC
« Отговор #30 -: Dec 04, 2008, 20:35 »
Ами да малки са, но при ъплоада играеха голяма роля та добавих още едни стойности в config.pl съответно за международен - ъплоад, БГ- ъплоад , и ги замених в tc.add и tc.change. Ето как изглежда в момента:
1.config.pl

Код:
#!/usr/bin/perl

### PATH Config ###############################################################

$ipt = "/sbin/iptables";                        # Path to iptables binary
$ips = "/sbin/ipset";                           # Path to ipset binary
$self = "/admin/firewall/flatc/";               # Installation path of this package

###############################################################################


### Interfaces config #########################################################

$EXT_ETH = "eth0";      # Interface connected to your ISP
$INT_ETH = "eth1";      # Interface connected to your LAN

###############################################################################


#### Trafic control config ####################################################

$TRAFF_ALL_UL = "100Mbit";      # Total download bandwidth
$TRAFF_BG_UL  = "10Mbit";       # BG download bandwidth
$TRAFF_INT_UL = "5Mbit";        # International download bandwidth

$TRAFF_ALL_DL = "100Mbit";      # Total upload bandwidth
$TRAFF_BG_DL  = "100Mbit";      # BG upload bandwidth
$TRAFF_INT_DL = "15Mbit";       # International upload bandwidth

$int_class_param = "cburst 128Kb";      # Some additional TC params (read the HTB manual)
$bg_class_param = "cburst 512Kb";
$int_ul_class_param = "cburst 0Kb";
$bg_ul_class_param = "cburst 0Kb";

###############################################################################

return 1;

2.tc.add

Код:
#!/usr/bin/perl

require "config.pl";
require "functions.pl";

if ($#ARGV < 7)
{
    print "Not enough paramters. Stopping  ...\n";
    exit;
}

($ip, $subnet, $bgmin, $bgmax, $intmin, $intmax, $bgrate, $bgceil, $intrate, $intceil) = @ARGV;

if ($subnet < 1)
{
        print "ERROR: Subnet ID must be greater than 0. \n";
        exit;
}


$ip = $ip + 0x400*$subnet;

$id = sprintf("%X", $ip + 0x100);
$class_bg_dl = "tc class add dev $INT_ETH parent 1:10 classid 1:0".$id." htb rate ".$bgmin."Kbit ceil ".$bgmax."Kbit prio 5 ".$bg_class_param;
$qdisc_bg_dl = "tc qdisc add dev $INT_ETH parent 1:0".$id." handle ".$id." sfq perturb 10";
$id = sprintf("%X", $ip + 0x200);
$class_bg_ul = "tc class add dev $EXT_ETH parent 1:15 classid 1:0".$id." htb rate ".$bgrate."Kbit ceil ".$bgceil."Kbit prio 5 ".$bg_ul_class_param;
$qdisc_bg_ul = "tc qdisc add dev $EXT_ETH parent 1:0".$id." handle 0".$id." sfq perturb 10";
                                                     

$id = sprintf("%X", $ip + 0x300);
$class_int_dl = "tc class add dev $INT_ETH parent 1:20 classid 1:0".$id." htb rate ".$intmin."Kbit ceil ".$intmax."Kbit prio 4 ".$int_class_param;
$qdisc_int_dl = "tc qdisc add dev $INT_ETH parent 1:0".$id." handle ".$id." sfq perturb 10";
$id = sprintf("%X", $ip + 0x400);
$class_int_ul = "tc class add dev $EXT_ETH parent 1:25 classid 1:0".$id." htb rate ".$intrate."Kbit ceil ".$intceil."Kbit prio 4 ".$int_ul_class_param;
$qdisc_int_ul = "tc qdisc add dev $EXT_ETH parent 1:0".$id." handle ".$id." sfq perturb 10";


`$class_bg_ul`;
`$qdisc_bg_ul`;

`$class_int_ul`;
`$qdisc_int_ul`;

`$class_bg_dl`;
`$qdisc_bg_dl`;

`$class_int_dl`;
`$qdisc_int_dl`;

3.tc.change

Код:
#!/usr/bin/perl

require "config.pl";
require "functions.pl";

if ($#ARGV < 7)
{
    print "Usage:\n";
    print "tc.change ip subnet bgmin bgmax intmin intmax bgrate bgceil intrate intceil\n";
    print "Not enough paramters. Stopping  ...\n";
    exit;
}

($ip, $subnet, $bgmin, $bgmax, $intmin, $intmax, $bgrate, $bgceil, $intrate, $intceil) = @ARGV;

if ($subnet < 1)
{
        print "ERROR: Subnet ID must be greater than 0. \n";
        exit;
}


$ip = $ip + 0x400*$subnet;

$id = sprintf("%X", $ip + 0x100);
$class_bg_dl = "tc class change dev $INT_ETH parent 1:10 classid 1:0".$id." htb rate ".$bgmin."Kbit ceil ".$bgmax."Kbit prio 5 ".$bg_class_param;
$id = sprintf("%X", $ip + 0x200);
$class_bg_ul = "tc class change dev $EXT_ETH parent 1:15 classid 1:0".$id." htb rate ".$bgrate."Kbit ceil ".$bgceil."Kbit prio 5 ".$bg_ul_class_param;                                                 
$id = sprintf("%X", $ip + 0x300);
$class_int_dl = "tc class change dev $INT_ETH parent 1:20 classid 1:0".$id." htb rate ".$intmin."Kbit ceil ".$intmax."Kbit prio 4 ".$int_class_param;
$id = sprintf("%X", $ip + 0x400);
$class_int_ul = "tc class change dev $EXT_ETH parent 1:25 classid 1:0".$id." htb rate ".$intrate."Kbit ceil ".$intceil."Kbit prio 4 ".$int_ul_class_param;


`$class_bg_ul`;
`$qdisc_bg_ul`;

`$class_int_ul`;
`$qdisc_int_ul`;

`$class_bg_dl`;
`$qdisc_bg_dl`;

`$class_int_dl`;
`$qdisc_int_dl`;


Още един път ти благодаря за помощта така всичко работи перфектно !!
« Последна редакция: Dec 04, 2008, 20:44 от BuSteR »
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Re: Проблем с FlatTC
« Отговор #31 -: Dec 04, 2008, 22:04 »
Явно ще трябва да преработя малко скриптовете, така че да може да обслужва по-гъвкаво асиметрични връзки. :)
Радвам се, че си успял :)

ПП: И ще взема да оправя най-накрая IPCLASSIFY пача за kernel > 2.6.20 :)
ППП: Всъщност май скоро ще пусна пълната версия на ISP софтуера ми :)
Малко screenshots:
« Последна редакция: Dec 04, 2008, 22:11 от VladSun »
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

BuSteR

  • Напреднали
  • *****
  • Публикации: 26
    • Профил
Re: Проблем с FlatTC
« Отговор #32 -: Dec 04, 2008, 23:28 »
Дам това ще е много удобно и функционално особено частта с управление на сучове ... пуснеш ли софта ще съм един от първите изтествали го на 100%  :) Браво само така !

P.S.
Какво ще включва горе-доло секцията управлние на суитчове ?
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Re: Проблем с FlatTC
« Отговор #33 -: Dec 08, 2008, 13:46 »
Дам това ще е много удобно и функционално особено частта с управление на сучове ... пуснеш ли софта ще съм един от първите изтествали го на 100%  :) Браво само така !

P.S.
Какво ще включва горе-доло секцията управлние на суитчове ?

Не става въпрос за "умни" суичове, ако това си мислиш ;) - просто се въвежда "дървото" на свързване между суичовете.
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P