TwojePC.pl © 2001 - 2025
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
ograniczanie lacza pod linuxem / htb , Birdman 12/04/05 01:47 potrzebuje ograniczyc wysyl dwom kompm z mojej sieci; napisalem prosty skrypt htb ( http://phpfi.com/57578 na podstawie: http://linio.terramail.pl/htb.pdf ) , odpala sie on bez bledow jednak nie dziala; moze mi ktos z tym pomoc?ping? - .:. , Shneider 12/04/05 01:55
#!/bin/bash
IPTABLES=/usr/sbin/iptables
HTB="/sbin/tc"
tc qdisc del dev eth0 root
tc qdisc add dev eth0 root handle 2:0 htb default 20
tc class add dev eth0 parent 2:0 classid 2:20 htb rate 100Mbit ceil 100Mbit burst 15kbit
# komp
$HTB class add dev eth0 parent 2:2 classid 2:33 htb rate 588kbit ceil 588kbit prio 2 quantum 1500
$HTB filter add dev eth0 protocol ip prio 5 parent 2:0 u32 match ip dst 192.168.1.2 flowid 2:33
$HTB qdisc add dev eth0 parent 2:33 esfq perturb 10
u mnie cus takiego jest
do tego
#!/bin/bash
DEV=ppp0
TC=/sbin/tc
IPTABLES="/usr/sbin/iptables"
/etc/rc.d/rc.imq restart
$TC class add dev $DEV parent 1:1 classid 1:33 htb rate 96kbit ceil 96kbit prio 3
$TC qdisc add dev $DEV parent 1:33 handle 33: esfq perturb 10
$TC filter add dev $DEV parent 1:0 prio 3 protocol ip handle 33 fw flowid 1:33
$IPTABLES -t mangle -D POSTROUTING -p tcp -s 192.168.1.x -j MARK --set-mark 33
$IPTABLES -t mangle -I POSTROUTING -p tcp -s 192.168.1.x -j MARK --set-mark 33
i jeszcze pare innnych bzdetow ktorych nie rozumiem :).:: Live at Trance Energy ::. - no chyba nie ten interfejs albo .. nie wiem , Babek 12/04/05 08:15
jeśli tylko wysyłanie to coś w tym stylu
UPLINK= # tutaj szybkość wysyłania mniej niz maks koło 85-90%
$TC qdisc add dev $DEV root handle 1: htb default 30 # ustalasz główną kolejkę root , i standardową kolejkę do której będzie ruch nieprzydzielony nigdzie indziej tutaj 30
$TC class add dev $DEV parent 1: classid 1:1 htb rate ${UPLINK}kbit # tutaj prędkość łącza wysyłanie dla wszystkich klas
$TC class add dev $DEV parent 1:1 classid 1:10 htb rate $[34*$UPLINK/100]kbit ceil ${UPLINK}kbit
$TC class add dev $DEV parent 1:1 classid 1:20 htb rate $[34*$UPLINK/100]kbit ceil ${UPLINK}kbit
$TC class add dev $DEV parent 1:1 classid 1:30 htb rate $[32*$UPLINK/100]kbit ceil ${UPLINK}kbit #prękość dla klasy 30 gwarantowana to rate czyli 32 % z UPLINKU jak żadna z klas nie używa to będzie dochodzić do wartości UPLINK.
$TC class add dev $DEV parent 1:10 handle 10: sfq perturb 10 #dla sprawiedliwego podziału dostępu do łącza dla programów
$TC class add dev $DEV parent 1:20 handle 10: sfq perturb 10
$TC class add dev $DEV parent 1:30 handle 10: sfq perturb 10
$TC filter add dev $DEV parent 1: protocol ip u32 match ip src $HOST1 flowid 1:10
$TC filter add dev $DEV parent 1: protocol ip u32 match ip src $HOST2 flowid 1:20
# HOST1 / 2 to host dla którego chcesz pryzdzielić do klasy 1:10, definiujesz Numer IP i powinien przydzielać do kolejki IP hostów do 10, i 20 ,, a resztę nie pasującą do 30
mozesz na stałę ustawić uulpad robiąć rate taki sam jak ceil -- ale nie ma to sensu
Polecam np http://www.opalsoft.net/qos/DS-28.htm
http://lukasz.bromirski.net/...rtc-pl.html#AEN2384
http://www.inet.one.pl/...hp?id=about&op=about
POWODZENIA :)- ... , Babek 12/04/05 08:17
znaczy chodzi mi ze na ppp0 prawdopodonie masz wysyłanie a nie na eth0 bo zrozumiałęm ze połączyłęś to wszyskto prawdopodonie na eth0 masz ściąganie
Tutaj też fajny link ten na początek raczej
http://www.debianusers.pl/...hp?aid=54&top10=1- no to jest dokladnie tak: , Birdman 12/04/05 12:55
do routera jest neo na usb (ppp0) i sieciowko (eth0); chce miec skrypt ktory po odpaleniu obetnie wszystkim kompom (po za moim)z mojej sieci transfery tak, aby w sumiewszystkie kompy mialy do dyspozycji 32/32kbity;ping?
- masz tu moje htb , Yoghurt 12/04/05 14:01
http://www.yoghurt.pl/stuff/htb
jak poswiecisz mu 10 minut to ladnie powinien dopasowac sie do twoje konfiguracji. jest w zasadzie parametryzowalny (pierwszych kilka linijek) jesli chodzi o predkosci lacza. regulki dla poszczegolnych userow musisz sobie sam dodac/usunac jesli moja ilosc ci nie spasuje. musisz pamietac o tym, ze aby ograniczyc wysyl z LAN'u musisz markowac pakiety na wejsciu (eth0) aby mozna bylo je przycinac (na podstawie mark'ow) na wyjsciu (ppp0). jesli cos tam bedzie niejasne dla ciebie to pisz na mailaroot is a state of mind - no ja to odpalielm , Birdman 12/04/05 15:38
po drobnych przerobkach, to wogole netu nie ma :]ping? - ];> , Yoghurt 12/04/05 16:22
a ja wlasnie uzyskalem prawa superusera u ciebie ;)
a tak powaznie - pokaz te twoje przerobki... aha, jeszcze jedna wazna rzecz. tak jest esfq, jesli nie masz patchowanego kernela na obsluge esfq to zmien sobie to na sfq.root is a state of mind - no wlasnie miedzy innymi , Birdman 12/04/05 16:43
w tym miejscu pojawial sie blad... zaraz poprawie; a moje przerobki ogranizcyly sie do wywalenia laptopa zuzy ;)ping? - jak jej powiem , Yoghurt 12/04/05 16:52
to pewnie sie wkurzy ;) bo ostatnio czesto korzysta z sieciroot is a state of mind
- po tej przererobce , Birdman 12/04/05 17:08
nie podoba mu sie skladnia: nie wie co to hash jestping? - hmm , Birdman 12/04/05 17:10
$TC qdisc add dev eth0 parent 1:20 sfq perturb 10
to przechodzi... bedzie dzialac?? :>ping? - no dobra , Birdman 12/04/05 17:28
wywala errory ale ograniczyl sciaganie; jednak nie ogranicza wysylu...ping? - a markujesz pakiety , Yoghurt 13/04/05 00:09
???root is a state of mind - mow mi , Birdman 13/04/05 00:58
jeszcze :]ping? - htb dziala w ten sposob , Yoghurt 13/04/05 10:14
ze tworzysz klasy i do tych klas przy pomocy filtrow wrzucasz poszczegolne pakiety (w duzym uproszczeniu). o ile ograniczenie downstream'u per user jest proste bo limity zaklada sie na interfejsie do ktorego podlaczony jest LAN a filtr ma konstrukcje na przyklad:
# tc filter add dev eth0 protocol ip parent 1:0 u32 match ip dst 192.168.1.2 flowid 1:21
co oznacza ze wszystko co jest przeznaczone do 192.168.1.1 ma poleciec do klasy 1:21 (ta klase musisz sobie wczesnie zdefiniowac), o tyle w przypadku upstream'u sprawa sie lekko komplikuje - limity nakladasz na swoim interfejsie WAN'owym i tutaj w przypadku routera NAT'ujecego nie mozesz sie posluzyc wpisem analogicznym (ze zmiana dst na src) jak przedstawiony przeze mnie powyzej
# tc filter add dev ppp0 protocol ip parent 2:0 u32 match ip src 192.168.1.2 flowid 2:21
dlaczego? a no dlatego, ze skoro router jest NAT'ujacy to na ppp0 nigdy nie pojawi sie zaden pakiet z nieroutowalnym adresem zrodlowym. taki filtr po prostu niczego nie wychwyci. w takim przypadku trzeba zrobic maly myk i skorzystac z targetu MARK w tablicy mangle dla iptables. jesli teraz zapytasz "o so hozi?" pare slow wytlumaczenia. a no chodzi o to, zeby zlapac kazdy pakiet z twojego LAN'u w momencie gdy dochodzi on do routera i nadac mu odpowiedniego marka w zaleznosci od adresu zrodlowego z ktorego ow pakiet pochodzi. pakiet taki przejdzie caly proces routingu (zostanie na nim dokonany NAT) i podczas opuszczania twojego routera przez ppp0 filtr wylapie go na podstawie owego wczesniej nadanego marka i wrzuci do odpowiedniej klasy. jeszcze dorzuce po przykladowej linijce jak markowac pakiety i jak ma wyglada konstrukcja filtra dla tc
iptables -t mangle -A PREROUTING -i eth0 -s 192.168.1.2 -j MARK --set-mark 2
(pod eth0 masz podpiety LAN i wszystko co przyjdzie z 192.168.1.2 na eth0 zostanie zmarkowane dwojeczka). a pozniej tc:
tc filter add dev ppp0 parent 2:0 protocol ip handle 0x2 fw flowid 2:21
zrozumial?root is a state of mind - tak mi sie wydaje , Birdman 13/04/05 20:02
okaze sie jak sie za to wezme (co nastapi pewno w przyszly weekend...)ping?
- jeśłi czegoś brakuje w kernelu , Babek 12/04/05 22:27
nie wiem co tam masz ale mozesz spróbować zrobić tak jak w podanych przeze mnie linkach - jeśli chodzi o kernela albo jak tutaj
http://alfa.tailor.com.pl/....4.26/imq_htb_pl.html
z tak przygotowanego kernelka nie powino być błędów przy tym skrypcie nawet możesz pominąć niektóre opcje, ale pewno za kilka dni przyjdzie ci ochota usprawnić swoje HTB :) każdy do swoich potrzeb robi , ja Swoje cały czas ulepszam nowymi opcjami :) tylko ze głónie podzieliłem upload na usługi kilku użytkowników więc nie trzeba inaczej , chodziło mi o dobre pingi .. i dalej trzeba poprawiać :) |
|
|
|
|
All rights reserved ® Copyright and Design 2001-2025, TwojePC.PL |
|
|
|
|