Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2006-06-16 21:51:05

  djlinux1992 - Użytkownik

djlinux1992
Użytkownik
Skąd: Zamość
Zarejestrowany: 2005-05-22

Czy ten skrypt jest dobrze napisany ?

Sprawdźcie mi poprawność działania kolejek wygenerowanych przez ten skrypt (narazie drukuje je na ekran) :

Kod:

#!/usr/bin/perl
use warnings;
print "Podaj interfejs od połączenia z Internetemn";
chomp($net=<STDIN>);
print "Podaj interfejs do swojej sieci LANn";
chomp($lan=<STDIN>);
print "Podaj prędkość łącza(DOWNLOAD) w kbpsn";
chomp($snet=<STDIN>);
print "Podaj prędkość łącza(UPLOAD)w kbpsn";
chomp($unet=<STDIN>);
print "Podaj prędkość sieci lokalnej w kbpsn";
chomp($slan=<STDIN>);

print "Podaj liczbę użytkownikówn";
chomp($user=<STDIN>);
print "Podaj minimalną prędkość(DOWNLOAD) dla użytkownika w kbpsn";
chomp($min=<STDIN>);
print "Podaj maksymalną prędkość(DOWNLOAD) dla użytkownika w kbpsn";
chomp($max=<STDIN>);
print "Podaj minimalną prędkość(UPLOAD) dla użytkownika w kbpsn";
chomp($gup=<STDIN>);
print "Podaj maksymalną prędkość(UPLOAD) dla użytkownika w kbpsn";
chomp($mup=<STDIN>);
# Czyszczenie
print "tc qdisc del root dev $lan 2>/dev/nulln";
print "tc qdisc del root dev $net 2>/dev/nulln";
print "iptables -t mangle -D POSTROUTING -o $net -j upload 2>/dev/nulln";
print "iptables -t mangle -F upload 2>/dev/nulln";
print "iptables -t mangle -X upload 2>/dev/nulln";

# Główna kolejka
print "tc qdisc add dev $lan root handle 1:0 htbn";
print "tc class add dev $lan parent 1:0 classid 1:1 htb rate " . $slan . "kbit ceil " . $slan . "kbitn";
print "tc class add dev $lan parent 1:1 classid 1:2 htb rate " . $snet . "kbit ceil " . $snet . "kbitn";
print "tc class add dev $lan parent 1:1 classid 1:3 htb rate " . $slan . "kbit ceil " . $slan . "kbitn";

print "tc qdisc add dev $net root handle 1:0 htbn";
print "tc class add dev $net parent 1:0 classid 1:1 htb rate " . $unet . "kbit ceil " . $unet . "kbitn";
 
# Kolejki dla userów :)
$ip="2";
$id="4";
$p="3";
$handle="24";
print "tc filter add dev $lan protocol ip preference 2 parent 1:0 u32 match ip src 192.168.1.1 flowid 1:3n";
for ($ile="0"; $ile<$user;++$ile){
print "tc class a dev $lan parent 1:2 classid 1:" . $id . " htb rate " . $min . "kbit ceil " . $max . "kbitn";
print "tc filter add dev $lan protocol ip preference 2 parent 1:0 u32 match ip dst 192.168.1." . $ip . " flowid 1:" . $id ."n";
print "tc qdisc add dev $lan parent 1:" . $id . " handle " . $id . ":0 sfq perturb 10n";
print "tc class add dev $net parent 1:1 classid 1:" . $p . " htb rate " . $gup . "kbit ceil " . $mup . "kbitn"; 
print "tc qdisc add dev $net parent 1:" . $p . " handle " .$p . ":0 sfq perturb 10n";
print "tc filter add dev $net protocol ip preference 2 parent 1:0 handle $handle fw flowid 1:" . $p . "n";
++$id;
++$ip;
++$p;
++$handle;
}
print "iptables -t mangle -N uploadn";
print "iptables -t mangle -I POSTROUTING -o $net -j uploadn";

$ip2="2";
$mark="25";
for ($ile2="0"; $ile2<$user;++$ile2){
print "iptables -t mangle -A upload -s 192.168.1." . $ip2 . " -j MARK --set-mark $markn";
++$mark;
++$ip2;
}
print "iptables -t mangle -A upload -m mark --mark 0 -j MARK --set-mark 24n";

Offline

 

#2  2006-06-17 00:35:11

  zlyZwierz - Moderator

zlyZwierz
Moderator
Zarejestrowany: 2005-02-18
Serwis

Re: Czy ten skrypt jest dobrze napisany ?

Pierwsze spostrzeżenia ... rate to sobie przekalkuluj na podstawie szybkości łącza i ilości userów , inaczej będziesz miał kłopoty.

//edit

Sprawia wrażenie działającego


PS gratuluję podejścia , więcej osób powinno zaczynac od pisania własnych skryptów, zamiast dopieszczać padalsko napisane gotowce .

Offline

 

#3  2006-06-17 08:04:49

  djlinux1992 - Użytkownik

djlinux1992
Użytkownik
Skąd: Zamość
Zarejestrowany: 2005-05-22

Re: Czy ten skrypt jest dobrze napisany ?

Dzięki za odpowiedź i za przetestowanie, a z tym rate to chyba zrobie tak : rate łącza/liczbe userów
Pozdro

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)