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/.
Chcialem ja sobie rozkminic HTB no i jak narazie wymodzilem cos takiego na lan dwukompowy i rozdzielam 160 kbit/s na te dwa kompy.Uploadu narazie nie ruszam.
Czy takie coś oblecie:
#! /bin/sh case "$1" in start) echo "START HTB" # czyszczenie tc qdisc del dev eth1 root handle 1:0 htb #reszta tc qdisc add dev eth1 root handle 1:0 htb tc class add dev eth1 parent 1:0 classid 1:1 htb rate 90000kbit ceil 90000kbit tc class add dev eth1 parent 1:1 classid 1:2 htb rate 150kbit ceil 150kbit tc class add dev eth1 parent 1:1 classid 1:3 htb rate 8500kbit ceil 8500kbit #Userzy tc class a dev eth1 parent 1:2 classid 1:4 htb rate 75kbit ceil 150kbit tc class a dev eth1 parent 1:2 classid 1:5 htb rate 75kbit ceil 150kbit #Filtry tc filter add dev eth1 protocol ip preference 2 parent 1:0 u32 match ip dst 192.168.1.2 flowid 1:4 tc filter add dev eth1 protocol ip preference 2 parent 1:0 u32 match ip dst 192.168.1.3 flowid 1:5 #rowny podzial tc qdisc add dev eth1 parent 1:4 handle 4:0 sfq perturb 10 tc qdisc add dev eth1 parent 1:5 handle 5:0 sfq perturb 10 ;; stop) echo "STOP HTB" # czyszczenie tc qdisc del dev eth1 root handle 1:0 htb ;; restart) echo "RESTART HTB" $0 stop $0 start ;; esac
Spotkalem sie tez z takim czyszczeniem ale nie kumam co to znaczy i po oc ten manewr:)
tc qdisc del root dev eth1 2>/dev/null
Cyz moze ktos ewentualnie poprwic mojego skrypta?
W ktorym momencie powinienem to wystartowac:przed firewallem ktory robi maskarade czy po?
Z gory dziex.
Offline
Zrob po maskaradzie :)
Offline
Dzieki:)
A czy cos jest nie teges z tym skryptem czy trzebabyloby cos w nim poprawic?
Offline
regolki sa ok, beda dzialac tak jak zalozyles,
zmienil bym tylko zatrzymywanie htb na
tc qdisc del root dev eth1 2>/dev/null
tc qdisc del ingress dev eth1 2>/dev/null
(co usuwa wszytkiw koleji przyczepione do interfejsu)
pozdraiwm
Offline
Dziex, a co oznacza samo 2>/dev/null ?
Offline
Przekierowuje wyjscie bledu do wyjscia null czyli jak jakis blad wystapi to i tak oo tym sie nie dowiesz ;D
Offline
Ok niech bedzie ze zrozumialem :D
Jest kłopot przesledzilem uruchamianie calego skryptu i juz ta linijka:
tc qdisc del dev eth1 root handle 1:0 htb
daje efekt:
RTNETLINK answers: Invalid argument
Jade na dystrybucyjnym jajku i wszystko do htb jest wnim (tak mi sie wydaje pozachaczane.
Jezeli zapodam komende:
tc qdisc show
wywala cos takiego(czy tak ma być?)
qdisc pfifo_fast 0: dev eth0 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1 qdisc pfifo_fast 0: dev eth1 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
Offline
Wydaje mi sie ze jesli pierwszy raz wlaczasz ten skrypt to ma prawo sie rzucic bo usuwasz kolejke ktorej nie ma, sproboj wykonac pod rzad dwa razy ten skkrypt i czy wypisze ten blad na drugim razem ?
Offline
Heh:)Miales racje:
debian:/etc/init.d# ./htb start START HTB RTNETLINK answers: Invalid argument debian:/etc/init.d# tc qdisc del dev eth1 root handle 1:0 htb debian:/etc/init.d# tc qdisc del dev eth1 root handle 1:0 htb RTNETLINK answers: Invalid argument
Czy na starcie skryptu tez zapodać:
tc qdisc del root dev eth1 2>/dev/null tc qdisc del ingress dev eth1 2>/dev/null
zamiast
tc qdisc del dev eth1 root handle 1:0 htb
Dodam ze po zapodaniu
tc qdisc del dev eth1 root handle 1:0 htb 2>/dev/null
tak jak pisales nie wyrzuca bledu:)
Offline
W sumie
ta linijke
tc qdisc del ingress dev eth1 2>/dev/null
podaj tylko podczas zatrzymywania htb
ale ja czegos takiego nie uzywam i chodzi dobrze ;)
Offline
Ostatecznie jeszcze pobłądziłem po necie i zostawwiam cos takiego:
na starcie i na stopie
tc qdisc del root dev eth1 2>/dev/null
Dzieki za pomoc:)
Ale to jeszce nei konic bo zaraz zajme sie uploadem:D
Offline
No i wymodzilem :D
#! /bin/sh case "$1" in start) echo "START HTB" ################## DOWNLOAD # czyszczenie tc qdisc del root dev eth1 2>/dev/null tc qdisc del root dev eth0 2>/dev/null iptables -t mangle -D POSTROUTING -o eth0 -j upload 2>/dev/null iptables -t mangle -F upload 2>/dev/null iptables -t mangle -X upload 2>/dev/null #reszta tc qdisc add dev eth1 root handle 1:0 htb tc class add dev eth1 parent 1:0 classid 1:1 htb rate 90000kbit ceil 90000kbit tc class add dev eth1 parent 1:1 classid 1:2 htb rate 150kbit ceil 150kbit tc class add dev eth1 parent 1:1 classid 1:3 htb rate 8500kbit ceil 8500kbit #Userzy tc class a dev eth1 parent 1:2 classid 1:4 htb rate 50kbit ceil 150kbit tc class a dev eth1 parent 1:2 classid 1:5 htb rate 50kbit ceil 150kbit #Filtry tc filter add dev eth1 protocol ip preference 2 parent 1:0 u32 match ip src 192.168.1.1 flowid 1:3 tc filter add dev eth1 protocol ip preference 2 parent 1:0 u32 match ip dst 192.168.1.2 flowid 1:4 tc filter add dev eth1 protocol ip preference 2 parent 1:0 u32 match ip dst 192.168.1.3 flowid 1:5 #rowny podzial tc qdisc add dev eth1 parent 1:3 handle 3:0 sfq perturb 10 tc qdisc add dev eth1 parent 1:4 handle 4:0 sfq perturb 10 tc qdisc add dev eth1 parent 1:5 handle 5:0 sfq perturb 10 ################### UPLOAD tc qdisc add dev eth0 root handle 1:0 htb tc class add dev eth0 parent 1:0 classid 1:1 htb rate 60kbit ceil 60kbit #userzy tc class add dev eth0 parent 1:1 classid 1:3 htb rate 20kbit ceil 60kbit tc class add dev eth0 parent 1:1 classid 1:4 htb rate 20kbit ceil 60kbit tc class add dev eth0 parent 1:1 classid 1:5 htb rate 20kbit ceil 60kbit #rowny podzial tc qdisc add dev eth0 parent 1:3 handle 3:0 sfq perturb 10 tc qdisc add dev eth0 parent 1:4 handle 4:0 sfq perturb 10 tc qdisc add dev eth0 parent 1:5 handle 5:0 sfq perturb 10 tc filter add dev eth0 protocol ip preference 2 parent 1:0 handle 24 fw flowid 1:3 tc filter add dev eth0 protocol ip preference 2 parent 1:0 handle 25 fw flowid 1:4 tc filter add dev eth0 protocol ip preference 2 parent 1:0 handle 26 fw flowid 1:5 #iptables iptables -t mangle -N upload iptables -t mangle -I POSTROUTING -o eth0 -j upload iptables -t mangle -A upload -s 192.168.1.2 -j MARK --set-mark 25 iptables -t mangle -A upload -s 192.168.1.3 -j MARK --set-mark 26 iptables -t mangle -A upload -m mark --mark 0 -j MARK --set-mark 24 ;; stop) echo "STOP HTB" # czyszczenie tc qdisc del root dev eth1 2>/dev/null tc qdisc del root dev eth0 2>/dev/null iptables -t mangle -D POSTROUTING -o eth0 -j upload 2>/dev/null iptables -t mangle -F upload 2>/dev/null iptables -t mangle -X upload 2>/dev/null ;; restart) echo "RESTART HTB" $0 stop $0 start ;; esac
Jak narazie sprawdzilem czy przy zmianie uploadu z serwera w net idzie z zamierzonym transferem i o dziwo idzie z dobrym a z reszta chyba nie sprawdze bo nimam kompów :/
Dlaczego przy uploadzie trzeba czarowac z iptables a nie mozna zapodac podobnie jak w downloadzie (tc filter add dev eth1 protocol ip preference 2 parent 1:0 u32 match ip dst 192.168.1.2 flowid 1:4) tylko zamiast dst dac src oraz odpowiednie podklasy?
Offline
No niestety tak wyszlo ze trzeba robic markowanie inaczej nie dziala, podow jest taki: "zasada jest tu troche inna ze wzgledu ze server za nasz nie moze okreslic do kogo ma trafic pakiet to musimy sobie te pakiety oznaczac najprostsza metoda to markowanie pakietow za pomoca iptables" - cyctat pochodzi z [url=http://www.dug.net.pl/texty/htb.php]tego[/url] artykulu :)
Offline
W tym niby moim skrypcie jeste jedna regolka przy downloadzie gdzie jednak uzyte było "src" ktorym to serwe okreslił sam siebie wiec pomyslalem ze moze iinych tez da rade po przeciez pakiety te maja jakies naglowki:
tc filter add dev eth1 protocol ip preference 2 parent 1:0 u32 match ip src 192.168.1.1 flowid 1:3
Jeszcze cos takiego:
Pakiet najpierw wędruje przez netfiltera a dopiero pozniej trafia do htb?
Offline
Moim skromnym zdaniem najpier przechodzi przez iptables a pozniej htb sie za niego bierze
Offline
No ja tez tak mysle :) bo najpierw jest znakowany przez iptables a potem a potem htb na podstawie tego ooznakowania go kolejkuje.
Kolejne pytania:
Tutaj http://www.debianusers.pl/article.php?aid=54&top10=1
jest min. taka reguła:
tc class add dev ppp0 parent 1:0 classid 1:1 htb rate 120kbit ceil 120kbit quantum 16
Ja wyczytałem ze quantum oblicza sie ze wzoru przykladowo
rate w_kilobitach*1024/8/1500 ale nijak w mi to nie wychodzi 16 :/ jak to trzeba w koncu liczyc?
Tak samo tutaj http://dug.net.pl/texty/htb.php
tc class add dev eth1 parent 1:1 classid 1:2 htb rate 480kbit ceil 480kbit quantum 768
[/quote]
Offline
Jezli chodzi quantum liczylem sam ale jakies pierdoly mi wychodzily wpisalem tez z tego artykuly o htb i chodzi wszystko dobrze :)
Offline
Hmm no ale Biexi podała wzór wg ktorego zle policzyła?Nigdzie w necie nie znalazlem wartosci ktora bylaby policzona z tego wzoru.
Offline
Moge prosic o dowolny przyklad liczbowy :) ?
Offline
masz wzor
$quantum = $rate*1024/8/1500;
$quantum = int($quantum+0.5);
za rate podstawiasz minimalny gwarantowany transfer i wychodzi Ci wartosc qunatum
Offline
Przyklad z artykułu http://dug.net.pl/texty/htb.php
tc class add dev eth1 parent 1:1 classid 1:2 htb rate 480kbit ceil 480kbit quantum 768
480*1024/8/1500=40,96
40,96+05= 41,46
Czy tez chodzi o co innego?Bez kitu naprawde nie kumam:)
Offline
Time (s) | Query |
---|---|
0.00009 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00095 | 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.145.155.202' WHERE u.id=1 |
0.00074 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.145.155.202', 1738324504) |
0.00054 | SELECT * FROM punbb_online WHERE logged<1738324204 |
0.00036 | SELECT topic_id FROM punbb_posts WHERE id=16863 |
0.00005 | SELECT id FROM punbb_posts WHERE topic_id=2066 ORDER BY posted |
0.00052 | 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=2066 AND t.moved_to IS NULL |
0.00015 | SELECT search_for, replace_with FROM punbb_censoring |
0.00090 | 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=2066 ORDER BY p.id LIMIT 0,25 |
0.00101 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=2066 |
Total query time: 0.00535 s |