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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Ściągnąłem sobie UPIERDALACZA_ETH0 BiExi, przerobiłem go sobie i jak to zwykle bywa nie działa jak powinien :( (czytaj wogule nie przycina pasma). Dostaje:
# ./kolejka ------------------------------------------------------ KOLEKLOWANIE ETH0 ------------------------------------------------------ iptables: Chain already exists
i wraz mogę korzystać z całego pasma.
oto przerobiony przezemnie skrypt BiExi:
eth0 - interface na lan
eth1 - interface na świat
#!/usr/bin/perl # # Kolejkowanie ver 0.000000000001 beta # create by BiExi # # $debugowanie = 0; $cid = 5; $handl = 320; $zrodlo = 600; open (PLIK_SHIT, "/etc/upierdalacz/upierdalacz.list")or die "open $alert_file: $!\n"; { sleep 1; if (seek(PLIK_SHIT,0,1)) { print "--------------------------------------------- \n"; print " KOLEJKOWANIE ETH0 \n"; print "--------------------------------------------- \n"; # - -- ---[ ruch przychodzacy ]--- -- - system "tc qdisc del dev eth0 root handle 1:0 htb"; system "tc qdisc add dev eth0 root handle 1:0 htb"; system "tc class add dev eth0 parent 1:0 classid 1:1 htb rate 100mbit ceil 110mbit quantum 8448"; system "tc class add dev eth0 parent 1:1 classid 1:2 htb rate 6120kbit ceil 6144kbit quantum 522"; system "tc class add dev eth0 parent 1:1 classid 1:3 htb rate 99mbit ceil 99mbit quantum 8448"; system "tc filter add dev eth0 protocol ip preference 1 parent 1:0 u32 match ip src 192.168.1.254 flowid 1:3"; system "tc qdisc add dev eth0 parent 1:3 handle 299:0 sfq perturb 10"; # - -- ---[ ruch wychodzacy ]--- -- - system "tc qdisc del dev eth1 root handle 1:0 htb"; system "tc qdisc add dev eth1 root handle 1:0 htb"; system "tc class add dev eth1 parent 1:0 classid 1:1 htb rate 100mbit ceil 110mbit quantum 768"; system "tc class add dev eth1 parent 1:1 classid 1:2 htb rate 500kbit ceil 512kbit quantum 43"; system "tc qdisc add dev eth1 parent 1:2 handle 2:0 sfq perturb 10"; system "tc filter add dev eth1 protocol ip preference 1 parent 1:0 handle 2000 fw flowid 1:2"; system "iptables -t mangle -N UPIERDALACZ_ETH1"; system "iptables -t mangle -D POSTROUTING -o eth1 -j UPIERDALACZ_ETH1"; system "iptables -t mangle -I POSTROUTING -o eth1 -j UPIERDALACZ_ETH1"; while (<PLIK_SHIT>) { chop; next if (/^\s*$/); # wyjazd z pustymi liniami next if (/^#/); # wyjazd z # if (/(\d+\.\d+\.\d+\.\d+) \; (\d+) \; (\d+) \; (\d+) \; (\d+) \; (\S+)/) { print "| Kolejka na eth0 RUCH PRZYCHODZACY dla IP:$1 rate: $2kbit cail: $3kbit\n"; system "tc class add dev eth0 parent 1:2 classid 1:$cid htb rate $2kbit ceil $3kbit quantum 3 burst 3k"; system "tc filter add dev eth0 protocol ip preference 2 parent 1:0 u32 match ip dst $1 flowid 1:$cid"; system "tc qdisc add dev eth0 parent 1:$cid handle $handl:0 sfq perturb 10"; print "| Kolejka na eth1 RUCH WYCHODZACY dla IP:$1 rate: $4kbit cail: $5kbit\n"; system "tc class add dev eth1 parent 1:2 classid 1:$cid htb rate $4kbit ceil $5kbit quantum 3 burst 3k"; system "tc qdisc add dev eth1 parent 1:$cid handle $handl:0 sfq perturb 10"; system "tc filter add dev eth1 protocol ip preference 2 parent 1:0 handle $zrodlo fw flowid 1:$cid"; system "iptables -t mangle -D UPIERDALACZ_ETH1 -p tcp -s $1 -j MARK --set-mark $zrodlo >>/dev/null"; system "iptables -t mangle -A UPIERDALACZ_ETH1 -p tcp -s $1 -j MARK --set-mark $zrodlo"; $cid = $cid + 1; $handl = $handl + 1; $zrodlo = $zrodlo + 1; } } # end while } # end if seek } # end for close PLIK_SHIT; system "iptables -t mangle -A UPIERDALACZ_ETH1 -m mark --mark 0 -j MARK --set-mark 2000";
Oto wycinek upierdalacz.list
# Configuration uperdalacz.list for eth0 # ::::::::::::::::::::::::::::::::::::::::::::::::: # | IP | GW D | MAX D | GW U | MAX U | Opis # ::::::::::::::::::::::::::::::::::::::::::::::::: 192.168.1.1 ; 6 ; 6 ; 5 ; 5 ; Marek
Ostatnio edytowany przez Marek_boss (2008-03-11 15:50:04)
Offline
chyba tu
192.168.1.1 ; 6 ; 6 ; 5 ; 5 ; Marek
za duzo jedna spacja, powinno byc
192.168.1.1 ; 6 ; 6 ; 5 ; 5 ; Marek
Hyba bede musiala napisac nowa wersja tego skrypta bo to byly moje poczatki :P ale jak komus sie sprawdza to ok
Offline
Ja tez bym poprosil o nowy skrypt bo ten po przerobieniu u mnie nie dziala.Pozdrawiam
Offline
Również będę wdzięczny za nową wersję :)
Po usunięciu spacji już działa :)
Ostatnio edytowany przez Marek_boss (2008-03-11 21:30:02)
Offline
To ja tez poprosze o nowsza wersje :) Jak bedzie nas wiecej to moze szybciej powstanie. A moze zrobimy jakis ogolny dug-owy skrypt do shapingu?
Offline
@BiExi
Czy ta linijka nie powinna być gdzieś na początku skryptu? Bo mi to dopiero działa po jego drugim uruchomieniu.
system "iptables -t mangle -A UPIERDALACZ_ETH1 -m mark --mark 0 -j MARK --set-mark 2000";
Offline
co do nowszej wersji to troche moze to portwac bo sprawa jest taka ze jestem zaladowana praca, + projekty na studia i juz nastepuje powoli zmeczenie materialu :]
Offline
@BiExi :) to jest zrozumiale :) ale mi bardziej chodzilo, ze moze bysmy jakas wspolna inicjatywe zrobili i stworzyli wlasny skrypt. Wiele razy szukalem na necie dobrego gotowego skryptu do shapingu i zawsze konczylo sie na tym, ze musialem sam go pisac. Pewnie wielu z nas pisalo swoj wlasny skrypt - a co za tym idzie maja w tym dowsiadczenie :) Wiec moze stworzymy jako Dug skrypt? Co wy na to?
Offline
pierwsze co musimy zrobić to wyznaczyć dokładnie co ma robić ten skrypt, a dokładnie jakie funkcje posiadac. ja proponuje możliwość podpinania wielu łączy? bajery takie jak wybór esfq/sfq, htb/hsfc? dorzuciłbym jeszcze connlimit, priorytety i przydzielanie transferu dla p2p
Offline
Tak wiem w szczegolnosci sam algorytm kolejkowania trza by bylo zminic bo HTB jest z lekka przestarzale :P jak narazie HFSC jest moim najlepszym kadydatem tam przynajmniej nic nie cieknie
Offline
hehe :) oczywiscie :) ale musi sie ktos podiac tego :) albo mozna sie wziasc za robote w momencie gdy beda sprecyzowane zalozenia ...
Offline
ja dałem propozycje co może zawierać skrypt, BiExi niech zadecyduje
Offline
to może jeszcze patent na to ?
Offline
@Bodzio na co patent? bo zbytnio nie rozumie o co biega...
Offline
@Bodzio: wyczulem lekki sarkazm z twojej strony ... nie chodzi o to zeby stowrzyc skrypt do sprzedania czy tez cos podobnego, chodzi o to aby stworzyc skrypt ktory bedzie wykozystywany przez ludzi z DUG-a :) przez nowych userow ktorzy co jakis czas rozpoczynaja kolejne watki na temat shapingu na tym badz innym forum. Skoro google latwo znajduje HTB skrypt BiExi, to czemu nie miala by znajdowac nowego dobreg/lepszego/szybszego skryptu stworzonego przez nas i dla nas?
Pozdrawiam,
Offline
Popieram ale sam skrypt nie wystarczy. Przecierz w standardowym kernelu nic nie ma trzeba by jeszcze zrobic naszego kernela i dorzucić nasze pakiety. A to juz powoli zakrawa pod nową dystybucje. Typu fresco itp.
Offline
[url]dimax.pl[/url] coś mojego autorstwa, imq jest, esfq jest, routes, wrr, pom, layer7, ipp2p
Offline
siarka2107 - ladny komplecik udalo CI sie nadzaiabac :] :]
jak dla mnie prace moga sie rozpoczac tylko iwylacznie na wkacjach bo teraz to ja losuje z sloiczka projekty za ktore mam sie zabrac a ani jednego jeszcze nie skonczylam.... a jeszcze prace in. cza pisac :P
Bo sam pomysl prostego systemu kolejkowania na mele sieci jest moim zdaniem dobry nie koniecznie zeby byl komercyjny :P
Offline
@BiExi: skoro ty jestes zajeta, to moze ktos inny podejmie sie tego zadania? Ja powiem szczerze nie mam doswiadczenia z HFSC :( jedynie htb/cbq/imq. Ale z checia pomoge :)
Offline
z tego co się orientuje to zlyZwierz jest jest opykany w tej sprawie :D , ma też przerobionego lms, którym również nie chce się podzielić :D
Ostatnio edytowany przez siarka2107 (2008-03-19 14:50:38)
Offline
ja osobiscie mam napisyany skrypt (tylko musze znalezc pena :P a to juz wieczorkiem) z wykorzystaniem skryptu Biexi dodajacy uzytkownikow sieci . z tym ze przerobiony delikatnie , zreszta jak podesle to zobaczycie o co chodzi i niepowiem chcialem dodac do tego cos do podzialu lacza i bylby komplecik :P heheh a teraz dodaje userkow przez skrypt , a HTB mecze sam :P a mysle ze morzna by to zautomatyzowac , ale jak do tej pory nieznalazlem czasu na bawienie sie w wyliczenia w bashu :P ale jak ktos obeznany w temacie to pewnie bedzie to w stanie ciekawie przerobic dorobic :P
pozdrawiam aki :D
Offline
Time (s) | Query |
---|---|
0.00011 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00122 | 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='13.59.111.183' WHERE u.id=1 |
0.00108 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '13.59.111.183', 1732383619) |
0.00036 | SELECT * FROM punbb_online WHERE logged<1732383319 |
0.00074 | SELECT topic_id FROM punbb_posts WHERE id=85391 |
0.00005 | SELECT id FROM punbb_posts WHERE topic_id=10843 ORDER BY posted |
0.00051 | 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=10843 AND t.moved_to IS NULL |
0.00005 | SELECT search_for, replace_with FROM punbb_censoring |
0.00339 | 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=10843 ORDER BY p.id LIMIT 0,25 |
0.00083 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=10843 |
Total query time: 0.00838 s |