Титла: HTB ograni4enie na trafik Публикувано от: kirtaka1 в Dec 09, 2004, 16:11 Значи имам eth0, който е свързан към LAN доставчика ми.
eth1, който е свързан към вътрешната ми локална мрежа. ppp0 се явява VPN през който ползвам internet от LAN доставчика. Направил съм NAT за ppp0 i eth0, но искам и да разпределя скоростта равномерно(почти:)), между всички от вътрешната мрежа. HTB i MARK, съм ги компилирал статично в кернела, защото иначе има проблем с зареждането на MARK. Правя следното: Маркирам пакетите идващи от VPN-a, като за всяко dest IP давам различен mark. iptables -t mangle -A FORWARD -i ppp0 -o eth1 -d 192.168.0.1 -j MARK --set-mark 0x1 iptables -t mangle -A FORWARD -i ppp0 -o eth1 -d 192.168.0.2 -j MARK --set-mark 0x2 iptables -t mangle -A FORWARD -i ppp0 -o eth1 -d 192.168.0.3 -j MARK --set-mark 0x3 iptables -t mangle -A FORWARD -i ppp0 -o eth1 -d 192.168.0.5 -j MARK --set-mark 0x5 Правя си родителски клас за скорост от 5kpbs. Толкова ми е скоростта на VPN-а. tc qdisc add dev eth1 root handle 1: htb default 60 tc class add dev eth1 parent 1: classid 1:1 htb rate 5kbps ceil 6kbps Добавям, подкласове за всеки един потребител, и съответната скорост. tc class add dev eth1 parent 1:1 classid 1:10 htb prio 0 rate 1kbps ceil 6kbps tc class add dev eth1 parent 1:1 classid 1:20 htb prio 1 rate 1kbps ceil 6kbps tc class add dev eth1 parent 1:1 classid 1:30 htb prio 2 rate 1kbps ceil 5kbps tc class add dev eth1 parent 1:1 classid 1:50 htb prio 4 rate 1kbps ceil 5kbps tc class add dev eth1 parent 1:1 classid 1:60 htb prio 10 rate 0kbps ceil 6kbps Насочвам маркираните пакети да минават през дадените по горе класове. tc filter add dev eth1 parent 1:0 prio 0 protocol ip handle 1 fw flowid 1:10 tc filter add dev eth1 parent 1:0 prio 1 protocol ip handle 2 fw flowid 1:20 tc filter add dev eth1 parent 1:0 prio 2 protocol ip handle 3 fw flowid 1:30 tc filter add dev eth1 parent 1:0 prio 4 protocol ip handle 5 fw flowid 1:50 Според мен тове нещо по горе трябва да работи. Проблема е че не работи. Все едно че въобще не съм го слагал. Някой ако има идея, или повече опит от мен в HTB, да удари едно рамо. Ще съм много благодарен на всяка идея. Edit: Използвам SlackWare 9.1 с ядро 2.4.20. tc инструмента съм го изтеглил от нета с подръжка на HTB. Като ваведа горните редове и ништо не става. Няма разпределение на трафика. Всеки от мрежата дърпа с колкото може. Титла: HTB ograni4enie na trafik Публикувано от: в Dec 09, 2004, 18:50 /offtopic
а аз да питам можеш ли да ме насочиш към свястна документация за трафик шейпинг-а , в детайли командите и синтезирано както трябва като и по възможност да е обяснено какво ми трябва и не за това..... а по темата. Мисля че разбиращите ще искат да им кажеш ядрото ти , дистрото ти и какво става ако не това което искаш ? Титла: HTB ograni4enie na trafik Публикувано от: the_real_maniac в Dec 10, 2004, 00:33 /offtopic:
search -> forum / статии в linux-bg.org също global search -> google ![]() Е днеска мернах един линк в CEG, който преди не бях виждал: http://www.knowplace.org/shaper/ Титла: HTB ograni4enie na trafik Публикувано от: VladSun в Dec 14, 2004, 18:08 1.Защо не пробваш с htb.init? Мисля, че е доста по-humanreadable
![]() 2. Нещо не ми стана много ясно с НАТ-а, който правиш, но не би ли трябвало тогава да е: iptables -t mangle -A FORWARD -i eth0 -o eth1 -d 192.168.0.1 -j MARK --set-mark 0x1 Даже пробвай направо: iptables -t mangle -A FORWARD -d 192.168.0.1 -j MARK --set-mark 0x1 3. И още нещо не ми е ясно - защо използваш различно PRIO
(А и може да се лъжа, но май максималната стойност е 5) 4. Доколкото си спомням класовете не извършват шейпинг, трябва qdisc:
Титла: HTB ograni4enie na trafik Публикувано от: kirtaka1 в Dec 18, 2004, 12:21 Значи, идеята е следната, трябва да мога да огранича трафика само който минава през VPN-a. Локалната мрежа на доставчика ми трябва да остане на пълната скорост. Затова не мога да направя iptables -t mangle -A FORWARD -d 192.168.0.1 -j MARK --set-mark 0x1 и т.н.
А това за qdisc ще го прегледам. Благодаря все пак за отговора. Ако някой може да даде още някоя идея ще съм благодарен. Титла: HTB ograni4enie na trafik Публикувано от: VladSun в Dec 18, 2004, 12:48
Ок, ама предполагам, че локалната мрежа на доставчика ти е някаква локална мрежа (примерно 192.168.2.0). Тогава слагаш следните редове преди маркирането: iptables -t mangle -A FORWARD -s 192.168.2.0/24 -d 192.168.1.0/24 -j ACCEPT iptables -t mangle -A FORWARD -s 192.168.1.0/24 -d 192.168.2.0/24 -j ACCEPT и готово ![]() Когато пакета не е маркиран, няма критерий по-който да се шейпне, така че не се шейпва. Титла: HTB ograni4enie na trafik Публикувано от: kirtaka1 в Dec 20, 2004, 15:39 Така. Тъй като тепърва се уча на HTB, VladSun ще хвърлиш ли един поглед на това.Благодаря ти предварително.
Вътрешната мрежа на доставчика ми е 192.168.х.х, и от скоро всичко минава през VPN-a, но на по-голяма скорост. Затова се наложи да направя следните промени по-долу. iptables -t mangle -A FORWARD -i ppp0 -o eth1 -s ! 192.168.0.0/16 -d 192.168.0.1 -j MARK --set-mark 0x1 iptables -t mangle -A FORWARD -i ppp0 -o eth1 -s ! 192.168.0.0/16 -d 192.168.0.2 -j MARK --set-mark 0x2 iptables -t mangle -A FORWARD -i ppp0 -o eth1 -s ! 192.168.0.0/16 -d 192.168.0.3 -j MARK --set-mark 0x3 iptables -t mangle -A FORWARD -i ppp0 -o eth1 -s ! 192.168.0.0/16 -d 192.168.0.4 -j MARK --set-mark 0x4 iptables -t mangle -A FORWARD -i ppp0 -o eth1 -s ! 192.168.0.0/16 -d 192.168.0.5 -j MARK --set-mark 0x5 tc qdisc add dev eth1 root handle 1: htb default 60 tc class add dev eth1 parent 1: classid 1:1 htb rate 5kbps ceil 6kbps tc class add dev eth1 parent 1:1 classid 1:10 htb prio 0 rate 1kbps ceil 6kbps tc class add dev eth1 parent 1:1 classid 1:20 htb prio 0 rate 1kbps ceil 6kbps tc class add dev eth1 parent 1:1 classid 1:30 htb prio 1 rate 1kbps ceil 5kbps tc class add dev eth1 parent 1:1 classid 1:40 htb prio 2 rate 1kbit ceil 5kbps tc class add dev eth1 parent 1:1 classid 1:50 htb prio 1 rate 1kbps ceil 5kbps tc class add dev eth1 parent 1:1 classid 1:60 htb prio 10 rate 1kbit ceil 6kbps tc qdisc add dev eth1 parent 1:10 handle 110: sfq perturb 10 tc qdisc add dev eth1 parent 1:20 handle 120: sfq perturb 10 tc qdisc add dev eth1 parent 1:30 handle 130: sfq perturb 10 tc qdisc add dev eth1 parent 1:40 handle 140: sfq perturb 10 tc qdisc add dev eth1 parent 1:50 handle 150: sfq perturb 10 tc qdisc add dev eth1 parent 1:60 handle 160: sfq perturb 10 tc filter add dev eth1 parent 1:0 prio 0 protocol ip handle 1 fw classid 1:10 tc filter add dev eth1 parent 1:0 prio 0 protocol ip handle 2 fw classid 1:20 tc filter add dev eth1 parent 1:0 prio 1 protocol ip handle 3 fw classid 1:30 tc filter add dev eth1 parent 1:0 prio 2 protocol ip handle 4 fw classid 1:40 tc filter add dev eth1 parent 1:0 prio 1 protocol ip handle 5 fw classid 1:50 Титла: HTB ograni4enie na trafik Публикувано от: VladSun в Dec 22, 2004, 11:08 Пак ти казвам - ползвай htb.init - само с хелп-а даден в самия сорс ще се оправиш самичък.
Иначе - това 1:1 не ми харесва, смени го примерно на 1:2. Успех ! ПС: М/у другото с тези правила в iptables и tc ще шейпваш само доунлоад-а - не забравяй спецификата на TCP/IP протокола. Най-добре е да шейпнеш и ъплоада. Титла: HTB ograni4enie na trafik Публикувано от: в Dec 24, 2004, 16:11
az ne sam gi kompiliral stati4no i nqmam problemi.
Spored men ozna4ava, 4e 192.168.0.1 6te ima po-golqm prioritet ot drugite. Ideqta na HTB e da razpredelq izhodq6tiq trafik t.e. tezi paketi koito ve4e si polu4il ot ISP. A kakvo toj ti e izpratil ... i za kogo e to e ve4e drug vapros. Ta kakvo moga da ti preporazam: 1. da ne izpolzva6 prio 0 2. da ne izpolzva6 ceil 6 za leaf clasovete 3. da organi4i6 i prioritizira6 izhodq6tiq kam ISP trafik(ppp0) 4. eventualno da namali6 MTU na eth1 i eth0 Uspeh Титла: HTB ograni4enie na trafik Публикувано от: в Dec 25, 2004, 01:13 A we a load balancing kak da stane ?
Титла: HTB ograni4enie na trafik Публикувано от: kmakaron в Dec 28, 2004, 12:33 Така.
Първо това с prio 0 е умишлено. Второ трябва да се махне default class-а, заштото се лимитира и трафика от самата машина. Всичко останало остава. Не разбирам защо трябва да намаля MTU на eth0 i eth1, и защо да огранича изходящия трафик, като той ми е поне 2 пъти по-бърз от входящия, който всъщност е лимитиран. Благодяря. Титла: HTB ograni4enie na trafik Публикувано от: VladSun в Dec 28, 2004, 22:47 Една полезна статия:
HTB Ограничаването на изходящия трафик се прави с цел да не ти се задръсти канала за обратна връзка и така да забавиш (а може би и да губиш) обратните ACK пакети за download-а а оттам и самия него ... TCP/IP !!! В горната статия има интересни подходи за приоритезирането на различните видове пакети - не съм виждал другаде да го дават като съвет ![]() |