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/.
Dzień dobry.
Mam mały problem z ograniczaniem transferu. Topologia wygląda tak :
sieć 192.168.1.0/24 ---- eth0 - router z tc - ath0 ---- internet
Robię tak :
# tc qdisc del dev eth0 root tc qdisc add dev eth0 root handle 1: htb default 11 tc class add dev eth0 parent 1: classid 1:1 htb rate 5mbit burst 0k tc class add dev eth0 parent 1:1 classid 1:11 htb rate 4mbit ceil 5mbit burst 0k tc class add dev eth0 parent 1:1 classid 1:90 htb rate 1mbit ceil 1mbit burst 0k tc qdisc add dev eth0 parent 1:11 handle 11: sfq perturb 10 tc qdisc add dev eth0 parent 1:90 handle 90: sfq perturb 10 tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dst "192.168.1.90" flowid 1:90
Działa to tak że do dyspozycji jest 5mbit transferu jednak gdy pobieranie włącza 192.168.1.90 to co by się nie działo on ma gwarantowane 1mbit pobierania a cała reszta dostaje 4mbit do podziału.
Takie założenie działa problem jest z uploadem, są w sieci skrypty które niby to robią, wszyscy karzą zmienić match ip dst na match ip src i niby ma to działać, ale jak dla mnie upload nie jest cięty może coś jeszcze robię źle.
Zacząłem szukać i natrafiłem na informację o polisach wygląda to tak :
tc qdisc add dev eth0 handle ffff: ingress tc filter add dev eth0 parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate 256kbit burst 10k drop flowid :1 tc qdisc add dev eth0 root tbf rate 256kbit latency 25ms burst 10k
i nawet działa tylko nie bardzo wiem jak dodać to tego taką fajną funkcjonalność jak powyżej czyli nie tnie dostępnej prędkości dopóki 192.168.1.90 nie zacznie wysyłać danych.
Czy jest możliwość żeby taką funkcjonalność w ogóle osiągnąć bez używania imq?
Ostatnio edytowany przez piroaa (2014-11-04 22:16:18)
Offline
Dzień dobry.
Tylko że tam jest wykorzystane imq a ja nie mam możliwości żeby go użyć.
Offline
Dzięki za pomoc działa :)
Jak by ktoś potrzebował zrobiłem tak :
#DOWNLOAD tc qdisc add dev eth0 root handle 1: htb default 111 tc class add dev eth0 parent 1: classid 1:1 htb rate 3mbit burst 0k tc class add dev eth0 parent 1:1 classid 1:111 htb rate 2mbit ceil 3mbit burst 0k tc class add dev eth0 parent 1:1 classid 1:190 htb rate 512kbit ceil 512kbit burst 0k tc qdisc add dev eth0 parent 1:11 handle 111: sfq perturb 10 tc qdisc add dev eth0 parent 1:90 handle 190: sfq perturb 10 tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dst "192.168.1.90" flowid 1:90 #UPLOAD tc qdisc add dev ath0 root handle 1: htb default 211 tc class add dev ath0 parent 1: classid 1:1 htb rate 1mbit burst 0k tc class add dev ath0 parent 1:1 classid 1:211 htb rate 515kbit ceil 1mbit burst 0k tc class add dev ath0 parent 1:1 classid 1:290 htb rate 512kbit ceil 512kbit burst 0k tc qdisc add dev ath0 parent 1:11 handle 211: sfq perturb 10 tc qdisc add dev ath0 parent 1:90 handle 290: sfq perturb 10 iptables -t mangle -A POSTROUTING -s 192.168.1.90/32 -j CLASSIFY --set-class 1:290
Cały myk polega na tym że download trzeba ciąć na jednym interfejsie natomiast upload na drugim w moim przypadku odpowiednio eth0 i ath0.
Prawdę powiedziawszy od tego zacząłem ale coś nie chciało działać, dziś kombinowałem jeszcze trochę i jest ok.
Offline
Time (s) | Query |
---|---|
0.00011 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00096 | 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='18.221.27.56' WHERE u.id=1 |
0.00223 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.221.27.56', 1732815264) |
0.00068 | SELECT * FROM punbb_online WHERE logged<1732814964 |
0.00098 | SELECT topic_id FROM punbb_posts WHERE id=278474 |
0.00006 | SELECT id FROM punbb_posts WHERE topic_id=26653 ORDER BY posted |
0.00062 | 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=26653 AND t.moved_to IS NULL |
0.00006 | SELECT search_for, replace_with FROM punbb_censoring |
0.00170 | 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=26653 ORDER BY p.id LIMIT 0,25 |
0.00082 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=26653 |
Total query time: 0.00826 s |