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";

[url=http://www.djlinux.xt.pl]Wojciech Stępniak[/url]

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 .


[url=http://www.netfix.pro]www.netfix.pro[/url]

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


[url=http://www.djlinux.xt.pl]Wojciech Stępniak[/url]

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)

[ Generated in 0.013 seconds, 10 queries executed ]

Informacje debugowania

Time (s) Query
0.00012 SET CHARSET latin2
0.00004 SET NAMES latin2
0.00116 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.148.108.244' WHERE u.id=1
0.00133 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.148.108.244', 1738396127)
0.00082 SELECT * FROM punbb_online WHERE logged<1738395827
0.00359 DELETE FROM punbb_online WHERE ident='66.249.70.162'
0.00095 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=4122 AND t.moved_to IS NULL
0.00009 SELECT search_for, replace_with FROM punbb_censoring
0.00159 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=4122 ORDER BY p.id LIMIT 0,25
0.00138 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=4122
Total query time: 0.01107 s