Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: h7d8 в Aug 08, 2007, 00:00



Титла: рутер+шейпър
Публикувано от: h7d8 в Aug 08, 2007, 00:00
Здравейте.
От скоро започнах с линукс и в момента използвам debian etch.Имам нужда от рутиране и шейпване конкретно,насочиха ме към iptables,но като новак търся нещо също толкова полезно,но с web interface.Разбирате,че не съм напреднал толкова и няма да мога да се справя с iptables толкова бързо,а това ми трябва наложително.Неможах да прегледам всички постове затова ме извинете.Надявам се да има алтернативен софтуер и човек който да ме запознае с него(настройка и нещо специфично при инсталирането).
Благодаря и очаквам Вашата помощ.


Титла: рутер+шейпър
Публикувано от: console в Aug 08, 2007, 08:31
Аз бих ти препоръчал само 1:

Примерен код
man iptables


Вземи научи го (освен ако не ти е спешно) и за в бъдеще ще имаш по малко ядове.

Поздрави!


Титла: рутер+шейпър
Публикувано от: luda_glawa в Aug 08, 2007, 10:06
За маршрутизацията ти предлагам да погледнеш командата "route". "iptables" е по-скоро за защитна стена. Но нищо не пречи да ги комбинираш и двете ;).  За shaper не мога да помогна.


Титла: рутер+шейпър
Публикувано от: smg в Aug 08, 2007, 12:27
Аз бих ти препоръчал като за тепърва навлизащ в света на Линукс да ползваш някоя от специално модифицираните дистрибуции за рутери. Една такава е ClarkConnect (www.clarkconnect.com). Това много ще те улесни, има уеб интерфейс с който можеш да контролираш всеки един аспект на задачата която си си поставил. При желание можеше да почнеш да модифицираш и променяш на ръка скриптове и настройки - по този начин кривата на усвояване на възможностите е много по гладка.
Когато аз го ползвах беше базиран на Fedora Core 2, в последствие го промениих изцяло и даже в момента същата машина я ползвах като десктоп докато ми липсваше лаптопа. Все още си работи безотказно.

Има много такива дистрибуции, някои от които тръгват дори от дискета или флаш и не е нужен хард диск. Разгледай и си избери една.

Успех и се радвай на живота преди всичко :)


Титла: рутер+шейпър
Публикувано от: arda_kj в Aug 08, 2007, 13:46
Аз също ползвам Дебиан Етч и мога да ти каже, че за рутирането има графична надстройка на iptables. Преди си я бях инсталирал от чисто любопитство да видя какво представлява и затова не и помня името в момента, но т.к. предпочитам конзолата много не се занимавах с нея.
Така, че потърси в пакетите с ключова дума примерно "route" или "router" и виж кво ще ти изскара.
За шейпването, вече не знам как може да стане чрез GUI програма, а пък знам ли може да откриеш в пакетите и програма и за тази цел. Просто се поразрови в описанието на пакетите и виж има ли нещо.


Титла: рутер+шейпър
Публикувано от: arda_kj в Aug 08, 2007, 14:09
Виж това
http://packages.debian.org/stable/net/fwbuilder

http://packages.debian.org/stable/net/iprelay

http://packages.debian.org/stable/net/shorewall


Титла: рутер+шейпър
Публикувано от: gat3way в Aug 08, 2007, 14:25
Между другото, route е отживелица, iproute2 пакета покрива пълната му функционалност + доста отгоре. Което е лошо, защото имам твърде много стари навици, които не умират лесно.

Що се отнася до уеб интерфейсите...ъммм вижда ми се глупава идея поради няколко причини. Пък и не е удобно, не знам :)


Титла: рутер+шейпър
Публикувано от: h7d8 в Aug 08, 2007, 15:04
Благодаря Ви ще разрушкам и ще взема под внимание това което ми казахте.
Всеки друг имащ нещо впредвид нека пише.За мен е  важно всичко това да е на тази машина понеже видимоста отвън е изцяло и само върху нея.Така че при пускане на apache, ftp и прочие при друг случай всичко това ще бъде излишно.Говорейки за дистрибуции в момента съм с такава на freeBSD ,която не използва параметрите на сървъра който съм сложил,заема ми място (box) и за нещо не толкова натоварващо съм сложил доста надута машина.Лошото е,че немога да ползвам достъп отвън дори да си upload един файл.Шейпъра който има пък от своя страна неможе да ограничава точно конкретен потребител,а и при пускането дори на обикновенния се дига latency(ms).Ето за това реших да си сложа linux конкретно debian etch за server който ще има всичко необходимо служещ за firewall за local network, monitoring и shaping на потребителите.Невиждам и какво лошо има един router и shaper да е с web interface ,та нали най-големите производители на такива машини макар конзолата която са сложили не изключват web interfaces.
Благодаря Ви!Не щадете съвети и идеи.


Титла: рутер+шейпър
Публикувано от: bnight в Aug 08, 2007, 18:13
Debian Etch е страхотна идея за такова нещо няма да ти трябва кой знае какво. Между впрочем преди време имаше една серия статии именно за перфектният рутер.
http://www.getoto.net/2007/06/the-perfect-soho-router-part-1/
Прочети внимателно статията дано ти е от полза. Успех.


Титла: рутер+шейпър
Публикувано от: h7d8 в Aug 08, 2007, 18:19
Цитат (bnight @ Авг. 08 2007,19:13)
Debian Etch е страхотна идея за такова нещо няма да ти трябва кой знае какво. Между впрочем преди време имаше една серия статии именно за перфектният рутер.
http://www.getoto.net/2007/06/the-perfect-soho-router-part-1/
Прочети внимателно статията дано ти е от полза. Успех.

Благодаря!
Аз пък попаднах на това -> MasterShaper 0.44 мисля ,че върши работа.Още не съм го подкаръл ,но доста голяма вероятност има да върши работа.





Титла: рутер+шейпър
Публикувано от: bnight в Aug 08, 2007, 18:26
Shaper-a не е сложно научи го от конзола ще ти е много по лесно да си го настроиваш и да прави каквото ти искаш. Само се научи като си го направиш как да си го тестваш повече по същият начин с Iptables-a самото рутиране там е елементарно но и Iptables и tc са много мощни програми и трябва да се знаят ако искаш сериозно да се занимаваш с Linux. Успех.


Титла: рутер+шейпър
Публикувано от: h7d8 в Aug 12, 2007, 03:52
Някой пробвал ли е да подкара m0n0wall на linux.В момента на едната машина съм с него и ми върши страхотна работа като firewall и router?


Титла: рутер+шейпър
Публикувано от: KPETEH в Aug 12, 2007, 11:42
Цитат (h7d8 @ Авг. 12 2007,03:52)
Някой пробвал ли е да подкара m0n0wall на linux.В момента на едната машина съм с него и ми върши страхотна работа като firewall и router?

//offtopic Хм до колкото знам m0n0wall e BSD базирана и може да бъде инсталирана на HDD или CF.
Тоест нещо не се връзва да бъде инсталирана на линукс.


Титла: рутер+шейпър
Публикувано от: h7d8 в Aug 12, 2007, 16:27
:) Алтернативи които биха свършили работа.Знам ,че е BSD дистрибуция.Малко може да съм бил неточен с въпроса ,но общо взето firewall + router  с web interface долу горе с възможностите на m0n0wall.


Титла: рутер+шейпър
Публикувано от: h7d8 в Aug 27, 2007, 21:14
Май всеки се отказа да помага :)


Титла: рутер+шейпър
Публикувано от: KPETEH в Aug 27, 2007, 23:21
Цитат (h7d8 @ Авг. 27 2007,21:14)
Май всеки се отказа да помага :)

//offtopic а и на кой ли му пука ? :-)


Титла: рутер+шейпър
Публикувано от: h7d8 в Aug 30, 2007, 16:32
Сигурно е така.Скръб!


Титла: рутер+шейпър
Публикувано от: zeridon в Aug 30, 2007, 16:58
ruter + shaper on linux + web interface = ipcop, coyote linux, freesco, entian firewall, untangle, astaro security gateway


Титла: рутер+шейпър
Публикувано от: h7d8 в Sep 06, 2007, 22:58
Цитат (zeridon @ Авг. 30 2007,17:58)
ruter + shaper on linux + web interface = ipcop, coyote linux, freesco, entian firewall, untangle, astaro security gateway

Благодаря ти!Това е друго нещо.


Титла: рутер+шейпър
Публикувано от: edmon в Sep 06, 2007, 23:39
router.... shaper....
какво ще рутираш и колко клиента ще шейпваш...
до около 50 мое и ръчно да го правиш.
ако е за бизнеш може да си купиш има едно http://www.ipacct.com/  за не знам колко пари...
и накрая може да ти дам едни ЧУДЕСИИ дето аз съм забъркал да се изкефиш:)


Титла: рутер+шейпър
Публикувано от: h7d8 в Sep 08, 2007, 17:55
Цитат (edmon @ Сеп. 07 2007,00:39)
router.... shaper....
какво ще рутираш и колко клиента ще шейпваш...
до около 50 мое и ръчно да го правиш.
ако е за бизнеш може да си купиш има едно http://www.ipacct.com/  за не знам колко пари...
и накрая може да ти дам едни ЧУДЕСИИ дето аз съм забъркал да се изкефиш:)

Е аз не бих отказъл :) пращай да видим какво ще се получи.


Титла: рутер+шейпър
Публикувано от: h7d8 в Sep 09, 2007, 20:21
Цитат (edmon @ Сеп. 07 2007,00:39)
router.... shaper....
какво ще рутираш и колко клиента ще шейпваш...
до около 50 мое и ръчно да го правиш.
ако е за бизнеш може да си купиш има едно http://www.ipacct.com/  за не знам колко пари...
и накрая може да ти дам едни ЧУДЕСИИ дето аз съм забъркал да се изкефиш:)

Обаче май ще трябва да се прави по друг начин :) .Тези дистрибуции не ми вършат работа.Мен ми трябва нещо за debian etch.Някъкво базирано php работещo със iptables tc и прочие.В крайна сметка ,ако няма никаква алтернатива давай с "маладжите" може и да стане нещо сносно. :)


Титла: рутер+шейпър
Публикувано от: h7d8 в Sep 12, 2007, 23:23
Хората които смятат ,че не е нужно web interface и всичко това може да се върши и от някой скрипт може да пише и да предлага варианти които използва или има опит с такива. ;)





Титла: рутер+шейпър
Публикувано от: edmon в Sep 13, 2007, 01:53
htb:

Примерен код

#!/bin/bash

/root/manage/htb/htb.batch $1 > /tmp/shaper
/sbin/tc -force -batch /tmp/shaper



тва e:
htb.batch

 
Примерен код

#!/usr/bin/php -q
<?php
#qdisc add dev eth0 parent 1:1000 handle 1000 sfq perturb 10
#qdisc add dev eth1 parent 1:1000 handle 1000 sfq perturb 10
#qdisc add dev eth1 parent 1:2000 handle 2000 sfq perturb 10
#qdisc add dev eth1 parent 1:6000 handle 6000 sfq perturb 10


$tc_root =<<<TCROOT
qdisc del dev eth0 root
qdisc add dev eth0 root handle 1 htb default 1000 r2q 3
class add dev eth0 parent 1: classid 1:1000 htb rate 100Mbit ceil 100Mbit quantum 2000
qdisc add dev eth0 parent 1:1000 handle 1000 sfq perturb 10

qdisc del dev eth1 root
qdisc add dev eth1 root handle 1 htb default 1000 r2q 3
class add dev eth1 parent 1: classid 1:1000 htb rate 100Mbit ceil 100Mbit quantum 2000
qdisc add dev eth1 parent 1:1000 handle 1000 sfq perturb 10

class add dev eth1 parent 1: classid 1:2000 htb rate 11Mbit ceil 11Mbit quantum 2000

class add dev eth1 parent 1: classid 1:6000 htb rate 50Mbit ceil 50Mbit quantum 2000

class add dev eth0 parent 1: classid 1:6000 htb rate 11Mbit ceil 11Mbit quantum 2000


TCROOT;

#upload
for($i=2;$i<501;$i++){
$y=2000+$i;
$tc_upload .=<<<TCUPLOAD
class add dev eth0 parent 1: classid 1:$y htb rate 512kbit
qdisc add dev eth0 parent 1:$y handle $y sfq perturb 10
filter add dev eth0 parent 1:0 protocol ip prio 200 handle $i fw classid 1:$y

TCUPLOAD;
}

$MYSQL_SERVER="localhost:3306";
$MYSQL_USER="root";
$MYSQL_PASS="";
$MYSQL_BASE="accounting";

$db = mysql_connect ($MYSQL_SERVER,$MYSQL_USER,$MYSQL_PASS);
mysql_select_db($MYSQL_BASE,$db);

$sql="select distinct clients.id as client,clients.ipaddr as ipaddr,tarifs.* from tarifs,clients where clients.tarifa=tarifs.name";
$sql_q=mysql_query($sql);

$num=2001;
$num1=2001;
$num2=6001;
while($arr=mysql_fetch_array($sql_q)){
$coef=$argv[1];
if($coef<1) $coef=0;


$rate_int=$arr[int_in_rate];
$ceil_int=$ceil_int."Kbit";


if($ipaddress!=""){

#qdisc add dev eth1 parent 1:$num handle $num sfq perturb 10
#qdisc add dev eth1 parent 1:$num2 handle $num2 sfq perturb 10


$tc_download .=<<<TCDOWNLOAD

class add dev eth1 parent 1:2000 classid 1:$num htb rate $rate_int ceil $ceil_int quantum 2000
filter add dev eth1 parent 1:0 protocol ip prio $prio u32 match ip dst $ipaddress classid 1:$num
qdisc add dev eth1 parent 1:$num handle $num sfq perturb 10

TCDOWNLOAD;

$num++;
$num2++;

}
}
echo $tc_root;
echo $tc_upload;
echo $tc_download;

$tc=$tc_root.$tc_upload.$tc_download;
?>



Така.
Общо взето.
Взимаш това чудо дето се казва htb.batch.
И се опитваш да разбереш кое какво е.
Като стигнеш до някъде все пак питай пак.


Титла: рутер+шейпър
Публикувано от: Dean79 в Sep 13, 2007, 02:48
Цитат (h7d8 @ Сеп. 09 2007,21:21)
Цитат на: edmon,Сеп. 07 2007,00:39
router.... shaper....
какво ще рутираш и колко клиента ще шейпваш...
до около 50 мое и ръчно да го правиш.
ако е за бизнеш може да си купиш има едно http://www.ipacct.com/  за не знам колко пари...
и накрая може да ти дам едни ЧУДЕСИИ дето аз съм забъркал да се изкефиш:)

Обаче май ще трябва да се прави по друг начин :) .Тези дистрибуции не ми вършат работа.Мен ми трябва нещо за debian etch.Някъкво базирано php работещo със iptables tc и прочие.В крайна сметка ,ако няма никаква алтернатива давай с "маладжите" може и да стане нещо сносно. :)А аз искам да попитам как ще пускаш интернет?
По адрес, или тунел(пптп, пппое)? Или и двете ?
Съветвам те да се запознаеш с това.


Титла: рутер+шейпър
Публикувано от: h7d8 в Sep 13, 2007, 03:46
Цитат (edmon @ Сеп. 13 2007,02:53)
htb:

Примерен код

#!/bin/bash

/root/manage/htb/htb.batch $1 > /tmp/shaper
/sbin/tc -force -batch /tmp/shaper



тва e:
htb.batch

 
Примерен код

#!/usr/bin/php -q
<?php
#qdisc add dev eth0 parent 1:1000 handle 1000 sfq perturb 10
#qdisc add dev eth1 parent 1:1000 handle 1000 sfq perturb 10
#qdisc add dev eth1 parent 1:2000 handle 2000 sfq perturb 10
#qdisc add dev eth1 parent 1:6000 handle 6000 sfq perturb 10


$tc_root =<<<TCROOT
qdisc del dev eth0 root
qdisc add dev eth0 root handle 1 htb default 1000 r2q 3
class add dev eth0 parent 1: classid 1:1000 htb rate 100Mbit ceil 100Mbit quantum 2000
qdisc add dev eth0 parent 1:1000 handle 1000 sfq perturb 10

qdisc del dev eth1 root
qdisc add dev eth1 root handle 1 htb default 1000 r2q 3
class add dev eth1 parent 1: classid 1:1000 htb rate 100Mbit ceil 100Mbit quantum 2000
qdisc add dev eth1 parent 1:1000 handle 1000 sfq perturb 10

class add dev eth1 parent 1: classid 1:2000 htb rate 11Mbit ceil 11Mbit quantum 2000

class add dev eth1 parent 1: classid 1:6000 htb rate 50Mbit ceil 50Mbit quantum 2000

class add dev eth0 parent 1: classid 1:6000 htb rate 11Mbit ceil 11Mbit quantum 2000


TCROOT;

#upload
for($i=2;$i<501;$i++){
$y=2000+$i;
$tc_upload .=<<<TCUPLOAD
class add dev eth0 parent 1: classid 1:$y htb rate 512kbit
qdisc add dev eth0 parent 1:$y handle $y sfq perturb 10
filter add dev eth0 parent 1:0 protocol ip prio 200 handle $i fw classid 1:$y

TCUPLOAD;
}

$MYSQL_SERVER="localhost:3306";
$MYSQL_USER="root";
$MYSQL_PASS="";
$MYSQL_BASE="accounting";

$db = mysql_connect ($MYSQL_SERVER,$MYSQL_USER,$MYSQL_PASS);
mysql_select_db($MYSQL_BASE,$db);

$sql="select distinct clients.id as client,clients.ipaddr as ipaddr,tarifs.* from tarifs,clients where clients.tarifa=tarifs.name";
$sql_q=mysql_query($sql);

$num=2001;
$num1=2001;
$num2=6001;
while($arr=mysql_fetch_array($sql_q)){
$coef=$argv[1];
if($coef<1) $coef=0;


$rate_int=$arr[int_in_rate];
$ceil_int=$ceil_int."Kbit";


if($ipaddress!=""){

#qdisc add dev eth1 parent 1:$num handle $num sfq perturb 10
#qdisc add dev eth1 parent 1:$num2 handle $num2 sfq perturb 10


$tc_download .=<<<TCDOWNLOAD

class add dev eth1 parent 1:2000 classid 1:$num htb rate $rate_int ceil $ceil_int quantum 2000
filter add dev eth1 parent 1:0 protocol ip prio $prio u32 match ip dst $ipaddress classid 1:$num
qdisc add dev eth1 parent 1:$num handle $num sfq perturb 10

TCDOWNLOAD;

$num++;
$num2++;

}
}
echo $tc_root;
echo $tc_upload;
echo $tc_download;

$tc=$tc_root.$tc_upload.$tc_download;
?>



Така.
Общо взето.
Взимаш това чудо дето се казва htb.batch.
И се опитваш да разбереш кое какво е.
Като стигнеш до някъде все пак питай пак.

От тук от там ми става ясно макар ,че не толкова разбирам от всичко това. :) Мисля ,обаче че това няма възможност да ограничава конкретно зададени айпита -скороста за сваляне и за качване или съм тръгнал в погрешна посока.


Титла: рутер+шейпър
Публикувано от: h7d8 в Sep 13, 2007, 03:56
Цитат
Цитат (Dean79 @ Сеп. 13 2007,03:48)
Цитат на: h7d8,Сеп. 09 2007,21:21
Цитат на: edmon,Сеп. 07 2007,00:39
router.... shaper....
какво ще рутираш и колко клиента ще шейпваш...
до около 50 мое и ръчно да го правиш.
ако е за бизнеш може да си купиш има едно http://www.ipacct.com/  за не знам колко пари...
и накрая може да ти дам едни ЧУДЕСИИ дето аз съм забъркал да се изкефиш:)

Обаче май ще трябва да се прави по друг начин :) .Тези дистрибуции не ми вършат работа.Мен ми трябва нещо за debian etch.Някъкво базирано php работещo със iptables tc и прочие.В крайна сметка ,ако няма никаква алтернатива давай с "маладжите" може и да стане нещо сносно. :)
Цитат

А аз искам да попитам как ще пускаш интернет?
По адрес, или тунел(пптп, пппое)? Или и двете ?
Съветвам те да се запознаеш с това.

Лека поправка на quote!

По адрес. :) Евентуално ще се заключват маковете.Не че ако съм аз и това ми е пречката няма да си сменя мака ;) ,но пък в крайна сметка то като се краде се краде. :) То и име и парола се крадът лесно затова не смятам ,че е нужно нещо повече от адрес и заключен мак.


Титла: рутер+шейпър
Публикувано от: Dean79 в Sep 13, 2007, 06:27
То шейпинга по адрес не е сложен, ама мисля, че ще се затрудниш с намирането на уеб интерфейс. Колкото до шейпинга - ако нямаш идея какво да правиш с това чудо "tc", можеш да използваш htb.init или cbq.init скриптовете, които не са много трудни за настройка, имат и вградени примери. Те не са нищо повече от обикновени bash скриптове, които ти създават правилата, а от теб се искат само конфигурационните файлове, в които има само стойности за адрес, скорост, интерфейс и т.н.
 За ползването на уеб интерфейс за всички конфиг. файлове се изисква малко повече от "абе дай да работи с tc". Административна система по принцип се прави за съответните нужди на доставчика. Едно е да имаш административна система,която да обслужва хиляди частни абонати и десетки сървъри, друго е да обслужва 50-100 частни клиента, за които ще е необходимо просто добавяне в dhcp, iptables, tc и евентуално chap/pap-secrets.


Титла: рутер+шейпър
Публикувано от: angelinoff в Sep 13, 2007, 13:47
Пич, като гледам кога си пуснал темата и кой ден е днеска... да беше прочел едно хау-ту за iptables   и за iproute2  и да беше забравил за какво става дума. Те нали програмите с интерфейс ползват точно тия две програми ...


Титла: рутер+шейпър
Публикувано от: h7d8 в Sep 13, 2007, 14:37
Цитат (angelinoff @ Сеп. 13 2007,14:47)
Пич, като гледам кога си пуснал темата и кой ден е днеска... да беше прочел едно хау-ту за iptables   и за iproute2  и да беше забравил за какво става дума. Те нали програмите с интерфейс ползват точно тия две програми ...

Реално погледнато е така :) ,но невиждам смисъл просто от форумите като не се разисква даден проблем.Нищо ,че си прав мога да ти дам много аргументи .защо. .Прав си за това ,че мога да прочета достатъчно материали в интернет ,справка със гугъл ,но нека да си кажим истината-едно е да ти се каже от човек с практика да ти се разнищи основата на всичко и след това да почнеш теоретичната част ,отколкото да четеш ли четеш без да ти става ясно какво четеш понеже опита ти в тази сфера е малък и базовите термини които имаш трупащи се от практиката просто липсват.Също подкрепям твоето мнение,това предварително подготвяне преди задаване на въпроси и тормозене до някъква степен на момчетата които са се потрудили доста за това.


Титла: рутер+шейпър
Публикувано от: k4BIG в Sep 13, 2007, 19:31
Ами като цяло избора ти не е от най-добрите.Дебиан като втора дистрибуция да ,но за първа не мисля ,че е добре.Учи на лоши навици с тази си пакетна система и етц.

А по въпроса.Смени дистрото на FreeBSD и разгледаи http://www.openbsd.org/faq/pf/.

Iptables и TC на едно.Лесно удобно красиво и завършено нещо.Плаче някои да го ползва.

Аз ползвам Дебиан нищо ,че препоръчвам друго.Просто мисля ,че доста зор ще видиш с iptables и особено TC.А да ползваш скриптове за направата му е като да слагаш презерватив.Пак е добре АМА може и по добре


Титла: рутер+шейпър
Публикувано от: h7d8 в Sep 13, 2007, 22:59
С този пост ме прати в тъча. :) Без думи.


Титла: рутер+шейпър
Публикувано от: arda_kj в Sep 13, 2007, 23:36
Цитат
Учи на лоши навици с тази си пакетна система и етц.

Ако Дебиана учи на лоши навици... ще отида да се застрелям някъде :).


Титла: рутер+шейпър
Публикувано от: edmon в Sep 14, 2007, 00:15
явно лошите навици са всичко да работи както го очакваш и да няма нужда да променяш кой знае какво.
...
а к'ъв лош,лош навик е да знаеш, че колата ти винаги пали!!!!.


Титла: рутер+шейпър
Публикувано от: bnight в Sep 14, 2007, 00:19
Цитат (arda_kj @ Сеп. 14 2007,00:36)
Цитат
Учи на лоши навици с тази си пакетна система и етц.

Ако Дебиана учи на лоши навици... ще отида да се застрелям някъде :).

По добре деиствай че дебиан наистина учи на много лоши навици. Като например да не може да се компилира от сорс. Други са че повечето хора и идея си нямат кое къде отива след инсталацията от пакет а и не си правят труда да проверяват. И все пак Дебиан си е Дебиан.


Титла: рутер+шейпър
Публикувано от: edmon в Sep 14, 2007, 00:25
Цитат (h7d8 @ Сеп. 13 2007,04:46)
Цитат на: edmon,Сеп. 13 2007,02:53
htb:

Примерен код

#!/bin/bash

/root/manage/htb/htb.batch $1 > /tmp/shaper
/sbin/tc -force -batch /tmp/shaper



тва e:
htb.batch

 
Примерен код

#!/usr/bin/php -q
<?php
#qdisc add dev eth0 parent 1:1000 handle 1000 sfq perturb 10
#qdisc add dev eth1 parent 1:1000 handle 1000 sfq perturb 10
#qdisc add dev eth1 parent 1:2000 handle 2000 sfq perturb 10
#qdisc add dev eth1 parent 1:6000 handle 6000 sfq perturb 10


$tc_root =<<<TCROOT
qdisc del dev eth0 root
qdisc add dev eth0 root handle 1 htb default 1000 r2q 3
class add dev eth0 parent 1: classid 1:1000 htb rate 100Mbit ceil 100Mbit quantum 2000
qdisc add dev eth0 parent 1:1000 handle 1000 sfq perturb 10

qdisc del dev eth1 root
qdisc add dev eth1 root handle 1 htb default 1000 r2q 3
class add dev eth1 parent 1: classid 1:1000 htb rate 100Mbit ceil 100Mbit quantum 2000
qdisc add dev eth1 parent 1:1000 handle 1000 sfq perturb 10

class add dev eth1 parent 1: classid 1:2000 htb rate 11Mbit ceil 11Mbit quantum 2000

class add dev eth1 parent 1: classid 1:6000 htb rate 50Mbit ceil 50Mbit quantum 2000

class add dev eth0 parent 1: classid 1:6000 htb rate 11Mbit ceil 11Mbit quantum 2000


TCROOT;

#upload
for($i=2;$i<501;$i++){
$y=2000+$i;
$tc_upload .=<<<TCUPLOAD
class add dev eth0 parent 1: classid 1:$y htb rate 512kbit
qdisc add dev eth0 parent 1:$y handle $y sfq perturb 10
filter add dev eth0 parent 1:0 protocol ip prio 200 handle $i fw classid 1:$y

TCUPLOAD;
}

$MYSQL_SERVER="localhost:3306";
$MYSQL_USER="root";
$MYSQL_PASS="";
$MYSQL_BASE="accounting";

$db = mysql_connect ($MYSQL_SERVER,$MYSQL_USER,$MYSQL_PASS);
mysql_select_db($MYSQL_BASE,$db);

$sql="select distinct clients.id as client,clients.ipaddr as ipaddr,tarifs.* from tarifs,clients where clients.tarifa=tarifs.name";
$sql_q=mysql_query($sql);

$num=2001;
$num1=2001;
$num2=6001;
while($arr=mysql_fetch_array($sql_q)){
$coef=$argv[1];
if($coef<1) $coef=0;


$rate_int=$arr[int_in_rate];
$ceil_int=$ceil_int."Kbit";


if($ipaddress!=""){

#qdisc add dev eth1 parent 1:$num handle $num sfq perturb 10
#qdisc add dev eth1 parent 1:$num2 handle $num2 sfq perturb 10


$tc_download .=<<<TCDOWNLOAD

class add dev eth1 parent 1:2000 classid 1:$num htb rate $rate_int ceil $ceil_int quantum 2000
filter add dev eth1 parent 1:0 protocol ip prio $prio u32 match ip dst $ipaddress classid 1:$num
qdisc add dev eth1 parent 1:$num handle $num sfq perturb 10

TCDOWNLOAD;

$num++;
$num2++;

}
}
echo $tc_root;
echo $tc_upload;
echo $tc_download;

$tc=$tc_root.$tc_upload.$tc_download;
?>



Така.
Общо взето.
Взимаш това чудо дето се казва htb.batch.
И се опитваш да разбереш кое какво е.
Като стигнеш до някъде все пак питай пак.

От тук от там ми става ясно макар ,че не толкова разбирам от всичко това. :) Мисля ,обаче че това няма възможност да ограничава конкретно зададени айпита -скороста за сваляне и за качване или съм тръгнал в погрешна посока.filter add dev eth0 parent 1:0 protocol ip prio 200 handle $i fw classid 1:$y

filter add dev eth1 parent 1:0 protocol ip prio $prio u32 match ip dst $ipaddress classid 1:$num

тези два филтъра ако си забелязъл имат променливи на единиа пише fw classid 1:$y което по мое скормно мнение се съобразява с маркировката на един ИП адрес.

Другото има променлива $ipaddress т.е. ..това нещо -  целия скрипт, изпълнява заявка към mysql. Прочита каквото му е нужно и изплюва много на брой команди за tc.

Друго да не ти е ясно.?

Маркировката изглезда горе долу така:
....
-A POSTROUTING -s 192.168.1.2  -o eth0 -j MARK --set-mark 0x2
-A POSTROUTING -s 192.168.1.8  -o eth0 -j MARK --set-mark 0x8
-A POSTROUTING -s 192.168.1.9 -o eth0 -j MARK --set-mark 0x9
-A POSTROUTING -s 192.168.1.10 -o eth0 -j MARK --set-mark 0xa
-A POSTROUTING -s 192.168.1.11 -o eth0 -j MARK --set-mark 0xb
-A POSTROUTING -s 192.168.1.12 -o eth0 -j MARK --set-mark 0xc
-A POSTROUTING -s 192.168.1.13 -o eth0 -j MARK --set-mark 0xd

....


Титла: рутер+шейпър
Публикувано от: h7d8 в Sep 14, 2007, 12:58
Цитат (edmon @ Сеп. 14 2007,00:25)
Цитат на: h7d8,Сеп. 13 2007,04:46
Цитат на: edmon,Сеп. 13 2007,02:53
htb:

Примерен код

#!/bin/bash

/root/manage/htb/htb.batch $1 > /tmp/shaper
/sbin/tc -force -batch /tmp/shaper



тва e:
htb.batch

 
Примерен код

#!/usr/bin/php -q
<?php
#qdisc add dev eth0 parent 1:1000 handle 1000 sfq perturb 10
#qdisc add dev eth1 parent 1:1000 handle 1000 sfq perturb 10
#qdisc add dev eth1 parent 1:2000 handle 2000 sfq perturb 10
#qdisc add dev eth1 parent 1:6000 handle 6000 sfq perturb 10


$tc_root =<<<TCROOT
qdisc del dev eth0 root
qdisc add dev eth0 root handle 1 htb default 1000 r2q 3
class add dev eth0 parent 1: classid 1:1000 htb rate 100Mbit ceil 100Mbit quantum 2000
qdisc add dev eth0 parent 1:1000 handle 1000 sfq perturb 10

qdisc del dev eth1 root
qdisc add dev eth1 root handle 1 htb default 1000 r2q 3
class add dev eth1 parent 1: classid 1:1000 htb rate 100Mbit ceil 100Mbit quantum 2000
qdisc add dev eth1 parent 1:1000 handle 1000 sfq perturb 10

class add dev eth1 parent 1: classid 1:2000 htb rate 11Mbit ceil 11Mbit quantum 2000

class add dev eth1 parent 1: classid 1:6000 htb rate 50Mbit ceil 50Mbit quantum 2000

class add dev eth0 parent 1: classid 1:6000 htb rate 11Mbit ceil 11Mbit quantum 2000


TCROOT;

#upload
for($i=2;$i<501;$i++){
$y=2000+$i;
$tc_upload .=<<<TCUPLOAD
class add dev eth0 parent 1: classid 1:$y htb rate 512kbit
qdisc add dev eth0 parent 1:$y handle $y sfq perturb 10
filter add dev eth0 parent 1:0 protocol ip prio 200 handle $i fw classid 1:$y

TCUPLOAD;
}

$MYSQL_SERVER="localhost:3306";
$MYSQL_USER="root";
$MYSQL_PASS="";
$MYSQL_BASE="accounting";

$db = mysql_connect ($MYSQL_SERVER,$MYSQL_USER,$MYSQL_PASS);
mysql_select_db($MYSQL_BASE,$db);

$sql="select distinct clients.id as client,clients.ipaddr as ipaddr,tarifs.* from tarifs,clients where clients.tarifa=tarifs.name";
$sql_q=mysql_query($sql);

$num=2001;
$num1=2001;
$num2=6001;
while($arr=mysql_fetch_array($sql_q)){
$coef=$argv[1];
if($coef<1) $coef=0;


$rate_int=$arr[int_in_rate];
$ceil_int=$ceil_int."Kbit";


if($ipaddress!=""){

#qdisc add dev eth1 parent 1:$num handle $num sfq perturb 10
#qdisc add dev eth1 parent 1:$num2 handle $num2 sfq perturb 10


$tc_download .=<<<TCDOWNLOAD

class add dev eth1 parent 1:2000 classid 1:$num htb rate $rate_int ceil $ceil_int quantum 2000
filter add dev eth1 parent 1:0 protocol ip prio $prio u32 match ip dst $ipaddress classid 1:$num
qdisc add dev eth1 parent 1:$num handle $num sfq perturb 10

TCDOWNLOAD;

$num++;
$num2++;

}
}
echo $tc_root;
echo $tc_upload;
echo $tc_download;

$tc=$tc_root.$tc_upload.$tc_download;
?>



Така.
Общо взето.
Взимаш това чудо дето се казва htb.batch.
И се опитваш да разбереш кое какво е.
Като стигнеш до някъде все пак питай пак.

Цитат
От тук от там ми става ясно макар ,че не толкова разбирам от всичко това. :) Мисля ,обаче че това няма възможност да ограничава конкретно зададени айпита -скороста за сваляне и за качване или съм тръгнал в погрешна посока.

Цитат
filter add dev eth0 parent 1:0 protocol ip prio 200 handle $i fw classid 1:$y

filter add dev eth1 parent 1:0 protocol ip prio $prio u32 match ip dst $ipaddress classid 1:$num

тези два филтъра ако си забелязъл имат променливи на единиа пише fw classid 1:$y което по мое скормно мнение се съобразява с маркировката на един ИП адрес.

Другото има променлива $ipaddress т.е. ..това нещо -  целия скрипт, изпълнява заявка към mysql. Прочита каквото му е нужно и изплюва много на брой команди за tc.

Друго да не ти е ясно.?

Маркировката изглезда горе долу така:
....
-A POSTROUTING -s 192.168.1.2  -o eth0 -j MARK --set-mark 0x2
-A POSTROUTING -s 192.168.1.8  -o eth0 -j MARK --set-mark 0x8
-A POSTROUTING -s 192.168.1.9 -o eth0 -j MARK --set-mark 0x9
-A POSTROUTING -s 192.168.1.10 -o eth0 -j MARK --set-mark 0xa
-A POSTROUTING -s 192.168.1.11 -o eth0 -j MARK --set-mark 0xb
-A POSTROUTING -s 192.168.1.12 -o eth0 -j MARK --set-mark 0xc
-A POSTROUTING -s 192.168.1.13 -o eth0 -j MARK --set-mark 0xd

....

Нека започнем с разположението ,зареждането ,отделянето на конкретни айпита за конкретно ограничаване.Освен ограничаване на download ограничаване и на upload.Досадно е особенно с торентите,ако може да се ограничи upload на 0,0001 проблема се решава до някъде.  ???


Титла: рутер+шейпър
Публикувано от: Dean79 в Sep 15, 2007, 16:48
Една малка поправка - маркировката на пакети е добре да се направи в mangle:

iptables -t mangle -A FORWARD -s $ip -o $iface -j MARK --set-mark $mark





Титла: рутер+шейпър
Публикувано от: VladSun в Sep 15, 2007, 16:53
IPMARK, IPCLASSIFY са по-добрите варианти на MARK в такива случаи ;)


Титла: рутер+шейпър
Публикувано от: edmon в Sep 15, 2007, 22:25
Цитат (Dean79 @ Сеп. 15 2007,17:48)
Една малка поправка - маркировката на пакети е добре да се направи в mangle:

iptables -t mangle -A FORWARD -s $ip -o $iface -j MARK --set-mark $mark

какво значи по-добре.. питам си за да знам не че нещо.
иначе както виждаш не е дадено каде се прави защото командата е една и съща и се изпълнява от другаде.
не знам в -т нат можели да правиш МАРК :)))


Титла: рутер+шейпър
Публикувано от: edmon в Sep 15, 2007, 22:28
Цитат (bnight @ Сеп. 14 2007,01:19)
Цитат (arda_kj @ Сеп. 14 2007,00:36)
Цитат
Учи на лоши навици с тази си пакетна система и етц.

Ако Дебиана учи на лоши навици... ще отида да се застрелям някъде :).

По добре деиствай че дебиан наистина учи на много лоши навици. Като например да не може да се компилира от сорс. Други са че повечето хора и идея си нямат кое къде отива след инсталацията от пакет а и не си правят труда да проверяват. И все пак Дебиан си е Дебиан.

до сега не съм виждал сорс без инструкция за инсталирането му. т.е. тоя проблем отпада.
ако имаш предвид компилиране на кърнел....
опитите в генто продължават и там някои хора вече  сами не си вярват, че постигат нещо.
ако се съмняваш пробвай гугл!


Титла: рутер+шейпър
Публикувано от: bnight в Sep 16, 2007, 19:57
Цитат (edmon @ Сеп. 15 2007,23:28)
Цитат (bnight @ Сеп. 14 2007,01:19)
Цитат на: arda_kj,Сеп. 14 2007,00:36
Цитат
Учи на лоши навици с тази си пакетна система и етц.

Ако Дебиана учи на лоши навици... ще отида да се застрелям някъде :).

По добре деиствай че дебиан наистина учи на много лоши навици. Като например да не може да се компилира от сорс. Други са че повечето хора и идея си нямат кое къде отива след инсталацията от пакет а и не си правят труда да проверяват. И все пак Дебиан си е Дебиан.до сега не съм виждал сорс без инструкция за инсталирането му. т.е. тоя проблем отпада.
ако имаш предвид компилиране на кърнел....
опитите в генто продължават и там някои хора вече  сами не си вярват, че постигат нещо.
ако се съмняваш пробвай гугл!

Абе те инструкции хубаво ама ./configure понякога има една дузина и повече опции. И ако не си наистина запознат какво се опитваш да направиш смятай че със сигурност ще пропуснеш нещо. Както и да е. Иначе апсолютно съм фен на Дебиан и си го ползвам с кеф.


Титла: рутер+шейпър
Публикувано от: h7d8 в Oct 01, 2007, 14:21
Отново проблеми със скриптовете :) който има време и може да помогна да пише.По бързо ще стане ,обаче с icq или skype.


Титла: рутер+шейпър
Публикувано от: h7d8 в Nov 05, 2007, 18:33
Със скрипта по-доло имам проблем.Така изглеждащ е направен за рутери от точно определен модел.Имайки в предвид ,че са базирани на линукс кернел би трябвало да трагнат без проблем.Момента в който започвам да сменям "br0" с "eth0" и "eth1" нещо не се получава.В момента е закован на 60KB/s download (480kbps) и 4KB/s upload (32kbps) ,ограничение важащо за определено ИП и определен МАК адрес.Незная дали така направен за ИП и МАК адрес би сработил.

Примерен код

TCA="tc class add dev br0"
TFA="tc filter add dev br0"
tc qdisc del dev br0 root
tc qdisc add dev br0 root handle 1: htb
tc class add dev br0 parent 1: classid 1:1 htb rate 3000kbit
$TCA parent 1:1 classid 1:10 htb rate 480kbit ceil 480kbit prio 2
$TFA parent 1:0 protocol ip prio 2 u32 match u16 0x0800 0xFFFF at -2 match u32 0x00000000 0xFFFFFFFF at -12 match u16 0x0000 0xFFFF at -14 flowid 1:10
tc qdisc add dev br0 ingress
$TFA parent ffff: protocol ip handle 50 fw police rate 32kbit mtu 12k burst 10k drop
iptables -t mangle -A POSTROUTING -d 192.168.2.233 -j MARK --set-mark 10
iptables -t mangle -A PREROUTING -m mac --mac-source 00:4F:4C:F3:50:00 -j MARK --set-mark 50



Искам също да разбера дали може да се корегира и да се раздели на няколко групи с различна скорост на ъплоад и доунлоад,също отделени за ИП и МАК.Добра е идеята да се чете от отделни файлове ,но понеже немога да я реализирам пасувам :) Благодаря и чакам мненията ви по темата.  :ok: