htb.init (traffic shapping)
mam sit.
Citace:
internet-->firewall-->LAN
k FW je jeste pripojen server(smtp)
z fw jde eth0 do internetu
Na FW jsem spustil shaping, pres htb.init. Bohuzel, se mne nedari spravne definovat pravidla.
Chci, aby z jedne IP byl max download x. SMTP server, aby odesilal postu, jen pokud je volne pasmo. Aby byl omezeny upload na FTP. Takhle to mam nastavene.
soubor eth0
Citace:
DEFAULT=9999
R2Q=6
nastaveni odchozi rychlosti linky
soubor eth0-2.root
Citace:
RATE=512Kbit
LEAF=sfq
BURST=10k
nastaveni odchozi rychlosti z jednoho pc
soubor eth0-2:0010.root
Citace:
RATE=64Kbit
CEIL=128Kbit
BURST=2k
LEAF=sfq
RULE=192.168.120.5
nastaveni ochozi rychlosti na smtp server
soubor eth0-2:0020.root
Citace:
RATE=32Kbit
CEIL=128Kbit
BURST=10k
LEAF=sfq
RULE=*:25
PRIO=10
.
.
.
ftp a dalsi protokoly jsou obdobne
Pokud nedefiinuji pravidla shaping funguje normalne, ale ty pravidla to proste nebere, poradi nekdo cim to muze byt? Jde to vubec resit pres htb.init?
Re: htb.init (traffic shapping)
Traffic shaping jsem vyresil takto.
Pro upload
Citace:
tc qdisc del dev eth0 root
###upload
tc qdisc add dev eth0 root handle 1:0 htb default 9999
#nastaveni rychlosti linky
tc class add dev eth0 parent 1:0 classid 1:1 htb rate $RATE
#rozdeleni pro jednotlive usery
#SKUPINA 1 (uctarna + reditel)
tc class add dev eth0 parent 1:1 classid 1:11 htb rate $SKUPINA ceil $CEIL prio 5
#podskupina 1
tc class add dev eth0 parent 1:11 classid 1:111 htb rate $PODSKUPINA1 ceil $CEIL
#naveseni qdiscu
tc qdisc add dev eth0 parent 1:111 handle 111:0 sfq perturb 5
iptables -t mangle -F PREROUTING
#oznaceni podle jednotlivych IP adres SKUPINA 1
iptables -t mangle -A PREROUTING -s 192.168.120.155 -j MARK --set-mark 11
#FTP Port mode
#iptables -t mangle -A PREROUTING -s 192.168.120.5 -p tcp --sport 20 -j MARK --set-mark 52
## Následne filtrujeme pomocí fwmarku (handle 1 = znacka 1, fw = fwmark)
tc filter add dev eth0 parent 1:0 protocol ip handle 11 fw flowid 1:111
Proc htb.init nefunguje jsem nezjistil.
K dispozici jsem dal jen cast skriptu, jelikoz se zbytek opakuje. Vse funguje, ale nedari se mne brzdit ftp upload a smtp. Vi nekdo co tam je spatne? Myslel jsem, ze aspon aktivni ftp to bude brzdit.
Citace:
iptables -t mangle -A PREROUTING -s 192.168.120.5 -p tcp --sport 20 -j MARK --set-mark 52
Pro download to je hodne podobne. Pro zajemce muzu dat kompletni skript.
Ps. Opravte nekde nazev clanku. shapping na shaping (melo by tam byt jedno p)
Re: htb.init (traffic shapping)
Tohle ti nebude fungovat ...
1. potrebujes HTB s IMQ pro RIZENI upload a downlodad ...
2. je to popsane i primo v HTB skriptu:
3. VIZ dole ....
http://www.abclinuxu.cz/clanky/site/...od-do-shapingu
dalsi info tady: # TRIVIAL EXAMPLE
# ---------------
#
# Consider the following example:
# (taken from Linux Advanced Routing & Traffic Control HOWTO)
#
# You have a Linux server with total of 5Mbit available bandwidth. On this
# machine, you want to limit webserver traffic to 5Mbit, SMTP traffic to 3Mbit
# and everything else (unclassified traffic) to 1Kbit. In case there is unused
# bandwidth, you want to share it between SMTP and unclassified traffic.
#
# The "total bandwidth" implies one top-level class with maximum bandwidth
# of 5Mbit. Under the top-level class, there are three child classes.
#
# First, the class for webserver traffic is allowed to use 5Mbit of bandwidth.
#
# Second, the class for SMTP traffic is allowed to use 3Mbit of bandwidth and
# if there is unused bandwidth left, it can use it but must not exceed 5Mbit
# in total.
#
# And finally third, the class for unclassified traffic is allowed to use
# 1Kbit of bandwidth and borrow unused bandwith, but must not exceed 5Mbit.
#
# If there is demand in all classes, each of them gets share of bandwidth
# proportional to its default rate. If there unused is bandwidth left, they
# (again) get share proportional to their default rate.
#
# Configuration files for this scenario:
# ---------------------------------------------------------------------------
# eth0 eth0-2.root eth0-2:10.www eth0-2:20.smtp eth0-2:30.dfl
# ---- ----------- ------------- -------------- -------------
# DEFAULT=30 RATE=5Mbit RATE=5Mbit RATE=3Mbit RATE=1Kbit
# BURST=15k BURST=15k CEIL=5Mbit CEIL=5Mbit
# LEAF=sfq BURST=15k BURST=15k
# RULE=*:80, LEAF=sfq LEAF=sfq
# RULE=*:25
# ---------------------------------------------------------------------------
#
# Remember that you can only control traffic going out of your linux machine.
# If you have a host connected to network and want to control its traffic on
# the gateway in both directions (with respect to the host), you need to setup
# traffic control for that host on both (or all) gateway interfaces.
#
# Enjoy.
#
Re: htb.init (traffic shapping)
Citace:
Původně odeslal
svaca
Tohle ti nebude fungovat ...
1. potrebujes HTB s IMQ pro RIZENI upload a downlodad ...
2. je to popsane i primo v HTB skriptu:
3. VIZ dole ....
#
ad1. shaping pro UPLOAD i DOWNLOAD mne funguje.
ad2. jedine co mne nefunguje je htb.init.
ad3. Jak znacit traffic, abych brzdil provoz uzivatel na FTP?
ad4. Clanek jsem cet a IMQ je potreba pokud chci vytvorit virtualni rozhrani. Napr. pokud mam bridge nebo vice rozhrani. Pochopil jsem to dobre?
Re: htb.init (traffic shapping)
Citace:
Původně odeslal
chinook
ad1. shaping pro UPLOAD i DOWNLOAD mne funguje.
ad2. jedine co mne nefunguje je htb.init.
ad3. Jak znacit traffic, abych brzdil provoz uzivatel na FTP?
ad4. Clanek jsem cet a IMQ je potreba pokud chci vytvorit virtualni rozhrani. Napr. pokud mam bridge nebo vice rozhrani. Pochopil jsem to dobre?
Ted ja, jestli jsem to pochopil :-) :
ad2) takze htb (ze radky OK) ale samotny htb.init nefunguje ?
ad3) pravdepodobne neni mozne, nebot to jedes asi pasivne a FTP zacne komunikovat na 21 ale pak si otevre RUZNE porty a to asi neushapeujes ....
ad4) ano, ale treba samotne CBQ neumi upload shapping, tak proto si pomahas s IMQ ...
ja se pres htb.init taky neprenesl, fungoval mi download, ale upload ne ...
Pripada mi to tezky a zacal jsem to resit pres TOS priority ..
Ale znovu poukazuji co se pise v napovede htb.initu:
# Remember that you can only control traffic going out of your linux machine.
# If you have a host connected to network and want to control its traffic on
# the gateway in both directions (with respect to the host), you need to setup
# traffic control for that host on both (or all) gateway interfaces.
#
Re: htb.init (traffic shapping)
Citace:
Původně odeslal
svaca
Ted ja, jestli jsem to pochopil :-) :
ad2) takze htb (ze radky OK) ale samotny htb.init nefunguje ?
ad3) pravdepodobne neni mozne, nebot to jedes asi pasivne a FTP zacne komunikovat na 21 ale pak si otevre RUZNE porty a to asi neushapeujes ....
ad4) ano, ale treba samotne CBQ neumi upload shapping, tak proto si pomahas s IMQ ...
#
ad2. radky z druheho postu funguji jak pro upload i download. Jestli jsem shaping pochopil, coz i ty zduraznujes lze shapovat jen odchozi traffic. Tudiz z eth0 shapuji odchozi traffic do internetu a z eth1 shapuji odchozi traffic do LAN. Tudiz shapuji UPLOAD i DOWNLOAD. Kazdopadne mne prijde, ze to funguje.
ad3. Neni zpusob jak rozeznat, ze jde o FTP komunikaci?
Aspon aktivni FTP poznat muzu ne? Prece FTP client zacne posilat prikazy na portu 21 a data na port 20. Takze u aktive klient vybere dynamicky port a posle servru na portu 21 aby se k nemu pripojil na ten dynamicky port, ktery se tam pripoji z portu 20.
Takhle aktivni FTP nepoznam? To mne nefunguje.
Citace:
iptables -t mangle -A PREROUTING -s x.x.x.x -p tcp --sport 20 -j MARK --set-mark 52
U passive FTP jsou oba porty nahodne?
Jak je to u SMTP? Chci jeste brzdit postovni server. Kdyz odesila server postu pripojuje se opet na port 25?
Re: htb.init (traffic shapping)
Citace:
Původně odeslal
chinook
ad2. radky z druheho postu funguji jak pro upload i download. Jestli jsem shaping pochopil, coz i ty zduraznujes lze shapovat jen odchozi traffic. Tudiz z eth0 shapuji odchozi traffic do internetu a z eth1 shapuji odchozi traffic do LAN. Tudiz shapuji UPLOAD i DOWNLOAD. Kazdopadne mne prijde, ze to funguje.
ad3. Neni zpusob jak rozeznat, ze jde o FTP komunikaci?
Aspon aktivni FTP poznat muzu ne? Prece FTP client zacne posilat prikazy na portu 21 a data na port 20. Takze u aktive klient vybere dynamicky port a posle servru na portu 21 aby se k nemu pripojil na ten dynamicky port, ktery se tam pripoji z portu 20.
Takhle aktivni FTP nepoznam? To mne nefunguje.
U passive FTP jsou oba porty nahodne?
Jak je to u SMTP? Chci jeste brzdit postovni server. Kdyz odesila server postu pripojuje se opet na port 25?
port 25 je OK. tam ti to pojede, veskera Posta MUSI pres 25 ven (a dal se taky na komunikace oteviraji dalsi porty) aktivni FTP nemuzes pozit kvuli symetrickemu natu .. Mas zaplou maskaradu ne ?
ad2) ano tak to fnguje :-) Ale myslel jsem, ze chces shappeovat jen WAN :-)
Re: htb.init (traffic shapping)
Citace:
Původně odeslal
svaca
port 25 je OK. tam ti to pojede, veskera Posta MUSI pres 25 ven (a dal se taky na komunikace oteviraji dalsi porty) aktivni FTP nemuzes pozit kvuli symetrickemu natu .. Mas zaplou maskaradu ne ?
ad2) ano tak to fnguje :-) Ale myslel jsem, ze chces shappeovat jen WAN :-)
ad1) Takze smtp server, kdyz odesila postu ma zdrojovy port 25?
ad2) Maskarada je zapnuta. Kdyz se nekam pripojuji ze site, tak aktivni FTP funguje. FW pozna, ze se jedna o aktivni ftp. Mohl by jsi to lepe vysvetlit?
Re: htb.init (traffic shapping)
Citace:
Původně odeslal
chinook
ad1) Takze smtp server, kdyz odesila postu ma zdrojovy port 25?
ad2) Maskarada je zapnuta. Kdyz se nekam pripojuji ze site, tak aktivni FTP funguje. FW pozna, ze se jedna o aktivni ftp. Mohl by jsi to lepe vysvetlit?
ad1) ano
ad2) to ano to funguje, ale nefungoval by tvuj FTP server, kdyby byl za natem ... ale kdyz ty se pripojujes, tak je to OK ... :-)
nejlepsi vysvetleni je asi tady:
http://www.root.cz/clanky/stavime-firewall-3/
Re: htb.init (traffic shapping)
Citace:
Původně odeslal
svaca
ad2) to ano to funguje, ale nefungoval by tvuj FTP server, kdyby byl za natem ... ale kdyz ty se pripojujes, tak je to OK ... :-)
Fungovalo by oboje, princip je vlastne uplne stejny. Pokud jsi client za natem a pripojujes se na ftp v aktvnim rezimu a nebo pokud jsi server za natem a nekdo z venku se pripojuje v pasivnim rezimu k tobe, tak u obojiho se datovy kanal sestavuje zvenku na nahodny port, ktery si server-client dohodly v ridicim kanale. Jde jen o to, aby si netfilter tento port odposlechl a prislusne zareagoval.
Re: htb.init (traffic shapping)
Kód:
RATE=64Kbit
CEIL=128Kbit
BURST=2k
LEAF=sfq
RULE=192.168.120.5
toto je samozrejme nesmysl, a proto to nemuze fungovat. Viz dulezity thready a spousty jinych v teto sekci, ze.
zasada c 1. Regulovat lze VZDY POUZE UPLOAD
regulovat download lze tedy vyhradne na iface, na kterem se tvari jako upload => pokud je eth0 do inetu, tak na nem muzu regulovat pouze upload ze site/pripadne lokalniho PC.
Ta zasadni chyba je v tom, ze tato IP urcite do inetu nejde co ? Tudiz ji davat do pravidel = do teto trubky nikdy nic nepotece. Je potreba si pakety omarkovat (iptables -mark) a dat sem MARK misto rule.
Vnitrni IP muzes pouzit pouze na eth1 (pokud se tak menuje rozhrani do LAN) a to pro omezeni odchoziho provozu na tomto rozhrani (neboli download z pohledu LANky). Download routeru neomezis. Jedine ze bys vyrabel dalsi virtualni rozhrani pres ktery by posilal pakety sam sobe, ale vrele nedoporucuju.
htb.init samozrejme funguje, jen se obavam, ze je uz nejakou dobu ve stavu mrtvolnem. Sam sem tam pridaval upravu aby fungovalo i IPv6, ale pochybuju, ze ji nekdo implementoval (mela by byt na webu jako diff vuci naky verzi).
Hmm, jako bych to nerikal : http://sourceforge.net/tracker/?atid...44&func=browse posledni verze z roku 2004.
Re: htb.init (traffic shapping)
Je někde k vidění funkční opatchovaná verze skriptu?
Zkoušel jsem patch proti verzi 0.8.5, kterou používám ale výsledek není životaschopný ;(
1 Příloh-a(y)
Re: htb.init (traffic shapping)
Co presne ti nefunguje ? V Gentoo je funkcni script, dokonce obsahuje i IPv6, ktery na SF zarazeny neni (a bez podpisu :/).
Mas ho v priloze.
Re: htb.init (traffic shapping)
Po opatchovani a spusteni nad stavajicim stromem pravidel mi to vypsalo tohle:
---
janus htb # ./htb.init compile
./htb.init: line 822: syntax error near unexpected token `elif'
./htb.init: line 822: ` elif [ "$LEAF" = "esfq" ]; then'
---
nevylucuju, ze patch vzniknul proti nejak jinak modifikovane verzi skriptu.
V gentoo je verze 0.8.5-r1 coz se patrne zas necim lisi. Pretend emerge vypisuje toto "[ebuild N ] net-misc/htbinit-0.8.5-r1 USE="ipv6 -esfq"". Odnekud mu tudiz vyplyva to "-esfq". Musim se jeste presne podivat odkud ... mozna byl router instalovany v dobe, kdy tehnle USEflag jeste nebyl popsan.
Kdyz se o tom tak bavime - nezkousel jste podobne upravit hfsc.init?
Kazdopadne moc dekuju - doted mi ipv6 behalo v odpadni tride ale poptavka roste ...
Re: htb.init (traffic shapping)
To co sem prikladal uz patchovat netreba - je to vytazeno z gentoo, kde se to pouziva a funguje. Ale je mozne, ze to nebude fungovat vsude, nektery pouzity nastroje muzou uz mit za tu dobu jiny syntax.
Jinak se tu da najit thread, kde je popsano jak nastavit HTB, a to i bez toho scriptu.
Re: htb.init (traffic shapping)
Použil jsem přímo skript z ebuildu gentoo. Souhlasím s tím, že tato verze ipv6 podporuje. Trochu mě zaujalo, že taková změna jako doplnění fukcionality o ipv6 nestála správci ani za zvýšení vedlejšího čísla verze.
Když se na ten skript dívám, myslím (možná naivně ;) ), že přepsat ho pro hfsc místo htb by mělo být poměrně snadné. Osobně v současnosti na linuxech používám htb ale altq v *BSD (hfsc prakticky jeho klon pro linux) má svoje přednosti a bylo by zajímavé je zkusit srovnat ve stejném prostředí ...
Re: htb.init (traffic shapping)
;), kdyz se na to podivas, tak zjistis, ze script na sourceforge ten patch nema, tohle je ciste aktivita nekoho z Gentoo - i tam je to jako patch v ramci portage.
hfsc neznam, takze nevim, obecne je ten script jen takovy zprehlednovadlo, abys nemusel koumat nad syntax tc. Jakmile chces neco slozitejsiho uz to musis stejne udelat jinak/ten script upravovat.