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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2007-02-22 23:35:21

  szewczyk - Stary wyjadacz :P

szewczyk
Stary wyjadacz :P
Zarejestrowany: 2006-12-03

HTB dla 4 interfesów sieciowych

witam
mam małą siec złozoną z serwera posiadającego 4 karty sieciowe
eth0 - dsl
eth1 - switch x 4 kolega
eth2 - kolega + Ja
eth3 - Ap ( 2 kolegów )
wiec stworzyłem taki HTB narazie dla jednej karty sieciowej :

Kod:

# gwarantowany oraz max DOWNLOAD i UPLOAD w kbit
GD=128    # gwarantowany download
MD=128    # maxymalny downloadu
GU=16     # gwarantowany upload
MU=24     # maxymalny upload

# przepustowosc karty sieciowej(K) oraz max download(M) 
K=99000
M=99000

# Podaj przepustowosc lacza (D)-Download (U)-Upload w kbit #
D=512
U=160

### Ponizej podaj network sieci bez ostatniej cyferki np: ###
LAN=192.168.0
### Ponizej podaj IP karty wewnetrznej dla sieci np: ###
HOST1=192.168.0.1
### Teraz adresy IP ktore HTB ma wlaczyc do podzialu ###
HOST2=${LAN}.2
HOST3=${LAN}.3
HOST4=${LAN}.4
HOST5=${LAN}.5
HOST6=${LAN}.6
HOST7=${LAN}.7
HOST8=${LAN}.8
HOST9=${LAN}.9
HOST10=${LAN}.10


if [ "$1" == "stop" ]
then
echo "HTB dla eth + imq zostalo zatrzymane"
tc qdisc del root dev imq0 2>/dev/null
tc qdisc del root dev imq1 2>/dev/null

iptables -t mangle -D POSTROUTING -o imq1 -j HTB-OUT 2>/dev/null
iptables -t mangle -F HTB-OUT 2>/dev/null
iptables -t mangle -X HTB-OUT 2>/dev/null
exit
fi
if [ "$1" == "start" ]
then
echo "HTB dla eth + imq  zostalo wlaczone"
tc qdisc del root dev imq1 2>/dev/null
tc qdisc del root dev imq0 2>/dev/null

iptables -t mangle -D POSTROUTING -o imq1 -j HTB-OUT 2>/dev/null
iptables -t mangle -F HTB-OUT 2>/dev/null
iptables -t mangle -X HTB-OUT 2>/dev/null

ip link set dev imq0 up
iptables -t mangle -A POSTROUTING -o eth1 -j IMQ --todev 0
iptables -t mangle -A POSTROUTING -o eth2 -j IMQ --todev 0
iptables -t mangle -A POSTROUTING -o eth3 -j IMQ --todev 0

ip link set dev imq1 up
iptables -t mangle -A PREROUTING -i eth1 -j IMQ --todev 1
iptables -t mangle -A PREROUTING -i eth2 -j IMQ --todev 1
iptables -t mangle -A PREROUTING -i eth3 -j IMQ --todev 1

########################################## DOWNLOAD #####################################################                            
tc qdisc add dev imq0 root handle 1:0 htb

tc class add dev imq0 parent 1:0 classid 1:1 htb rate ${K}kbit ceil ${K}kbit
tc class add dev imq0 parent 1:1 classid 1:2 htb rate ${D}kbit ceil ${D}kbit quantum 1500
tc class add dev imq0 parent 1:1 classid 1:3 htb rate ${K}kbit ceil ${K}kbit quantum 1500

# tutaj ustalamy porty ktore maja miec wyzszy lub nizszy priorytet eth1
tc filter add dev imq0 protocol ip parent 1:0 prio 1 u32 match ip sport 139 0xffff flowid 1:2
tc filter add dev imq0 protocol ip parent 1:0 prio 1 u32 match ip sport 135 0xffff flowid 1:2
tc filter add dev imq0 protocol ip parent 1:0 prio 1 u32 match ip sport 110 0xffff flowid 1:2
tc filter add dev imq0 protocol ip parent 1:0 prio 1 u32 match ip sport 25 0xffff flowid 1:2
tc filter add dev imq0 protocol ip parent 1:0 prio 1 u32 match ip sport 23 0xffff flowid 1:2

tc class add dev imq0 parent 1:3 classid 1:101 htb rate 800kbit ceil ${M}kbit quantum 1500
tc class add dev imq0 parent 1:2 classid 1:102 htb rate ${GD}kbit ceil ${MD}kbit quantum 1500
tc class add dev imq0 parent 1:2 classid 1:103 htb rate ${GD}kbit ceil ${MD}kbit quantum 1500
tc class add dev imq0 parent 1:2 classid 1:104 htb rate ${GD}kbit ceil ${MD}kbit quantum 1500
tc class add dev imq0 parent 1:2 classid 1:105 htb rate ${GD}kbit ceil ${MD}kbit quantum 1500
tc class add dev imq0 parent 1:2 classid 1:106 htb rate ${GD}kbit ceil ${MD}kbit quantum 1500
tc class add dev imq0 parent 1:2 classid 1:107 htb rate ${GD}kbit ceil ${MD}kbit quantum 1500
tc class add dev imq0 parent 1:2 classid 1:108 htb rate ${GD}kbit ceil ${MD}kbit quantum 1500
tc class add dev imq0 parent 1:2 classid 1:109 htb rate ${GD}kbit ceil ${MD}kbit quantum 1500
tc class add dev imq0 parent 1:2 classid 1:110 htb rate ${GD}kbit ceil ${MD}kbit quantum 1500

tc filter add dev imq0 protocol ip preference 1 parent 1:0 u32 match ip src $HOST1 flowid 1:101
tc filter add dev imq0 protocol ip preference 2 parent 1:0 u32 match ip dst $HOST2 flowid 1:102 
tc filter add dev imq0 protocol ip preference 2 parent 1:0 u32 match ip dst $HOST3 flowid 1:103
tc filter add dev imq0 protocol ip preference 2 parent 1:0 u32 match ip dst $HOST4 flowid 1:104
tc filter add dev imq0 protocol ip preference 2 parent 1:0 u32 match ip dst $HOST5 flowid 1:105 
tc filter add dev imq0 protocol ip preference 2 parent 1:0 u32 match ip dst $HOST6 flowid 1:106
tc filter add dev imq0 protocol ip preference 2 parent 1:0 u32 match ip dst $HOST7 flowid 1:107
tc filter add dev imq0 protocol ip preference 2 parent 1:0 u32 match ip dst $HOST8 flowid 1:108 
tc filter add dev imq0 protocol ip preference 2 parent 1:0 u32 match ip dst $HOST9 flowid 1:109
tc filter add dev imq0 protocol ip preference 2 parent 1:0 u32 match ip dst $HOST10 flowid 1:110 

tc qdisc add dev imq0 parent 1:101 handle 301:0 sfq perturb 10
tc qdisc add dev imq0 parent 1:102 handle 302:0 sfq perturb 10
tc qdisc add dev imq0 parent 1:103 handle 303:0 sfq perturb 10
tc qdisc add dev imq0 parent 1:104 handle 304:0 sfq perturb 10
tc qdisc add dev imq0 parent 1:105 handle 305:0 sfq perturb 10
tc qdisc add dev imq0 parent 1:106 handle 306:0 sfq perturb 10
tc qdisc add dev imq0 parent 1:107 handle 307:0 sfq perturb 10
tc qdisc add dev imq0 parent 1:108 handle 308:0 sfq perturb 10
tc qdisc add dev imq0 parent 1:109 handle 309:0 sfq perturb 10
tc qdisc add dev imq0 parent 1:110 handle 310:0 sfq perturb 10

##################################### UPLOAD #########################################

tc qdisc add dev imq1 root handle 1:0 htb
tc class add dev imq1 parent 1:0 classid 1:1 htb rate ${U}kbit ceil ${U}kbit quantum 576

tc class add dev imq1 parent 1:1 classid 1:102 htb rate ${GU}kbit ceil ${MU}kbit quantum 576
tc class add dev imq1 parent 1:1 classid 1:103 htb rate ${GU}kbit ceil ${MU}kbit quantum 576
tc class add dev imq1 parent 1:1 classid 1:104 htb rate ${GU}kbit ceil ${MU}kbit quantum 576
tc class add dev imq1 parent 1:1 classid 1:105 htb rate ${GU}kbit ceil ${MU}kbit quantum 576
tc class add dev imq1 parent 1:1 classid 1:106 htb rate ${GU}kbit ceil ${MU}kbit quantum 576
tc class add dev imq1 parent 1:1 classid 1:107 htb rate ${GU}kbit ceil ${MU}kbit quantum 576
tc class add dev imq1 parent 1:1 classid 1:108 htb rate ${GU}kbit ceil ${MU}kbit quantum 576
tc class add dev imq1 parent 1:1 classid 1:109 htb rate ${GU}kbit ceil ${MU}kbit quantum 576
tc class add dev imq1 parent 1:1 classid 1:110 htb rate ${GU}kbit ceil ${MU}kbit quantum 576

tc qdisc add dev imq1 parent 1:102 handle 302:0 sfq perturb 10
tc qdisc add dev imq1 parent 1:103 handle 303:0 sfq perturb 10
tc qdisc add dev imq1 parent 1:104 handle 304:0 sfq perturb 10
tc qdisc add dev imq1 parent 1:105 handle 305:0 sfq perturb 10
tc qdisc add dev imq1 parent 1:106 handle 306:0 sfq perturb 10
tc qdisc add dev imq1 parent 1:107 handle 307:0 sfq perturb 10
tc qdisc add dev imq1 parent 1:108 handle 308:0 sfq perturb 10
tc qdisc add dev imq1 parent 1:109 handle 309:0 sfq perturb 10
tc qdisc add dev imq1 parent 1:110 handle 310:0 sfq perturb 10

tc filter add dev imq1 protocol ip preference 1 parent 1:0 handle 2 fw flowid 1:102
tc filter add dev imq1 protocol ip preference 1 parent 1:0 handle 3 fw flowid 1:103
tc filter add dev imq1 protocol ip preference 1 parent 1:0 handle 4 fw flowid 1:104
tc filter add dev imq1 protocol ip preference 1 parent 1:0 handle 5 fw flowid 1:105
tc filter add dev imq1 protocol ip preference 1 parent 1:0 handle 6 fw flowid 1:106
tc filter add dev imq1 protocol ip preference 1 parent 1:0 handle 7 fw flowid 1:107
tc filter add dev imq1 protocol ip preference 1 parent 1:0 handle 8 fw flowid 1:108
tc filter add dev imq1 protocol ip preference 1 parent 1:0 handle 9 fw flowid 1:109
tc filter add dev imq1 protocol ip preference 1 parent 1:0 handle 10 fw flowid 1:110

iptables -t mangle -N HTB-OUT
iptables -t mangle -I POSTROUTING -o imq1 -j HTB-OUT
iptables -t mangle -A HTB-OUT -s $HOST2 -j MARK --set-mark 2
iptables -t mangle -A HTB-OUT -s $HOST3 -j MARK --set-mark 3
iptables -t mangle -A HTB-OUT -s $HOST4 -j MARK --set-mark 4
iptables -t mangle -A HTB-OUT -s $HOST5 -j MARK --set-mark 5
iptables -t mangle -A HTB-OUT -s $HOST6 -j MARK --set-mark 6
iptables -t mangle -A HTB-OUT -s $HOST7 -j MARK --set-mark 7
iptables -t mangle -A HTB-OUT -s $HOST8 -j MARK --set-mark 8
iptables -t mangle -A HTB-OUT -s $HOST9 -j MARK --set-mark 9
iptables -t mangle -A HTB-OUT -s $HOST10 -j MARK --set-mark 10

exit
fi
echo "$0 start|stop"

problem juz mam na samym wstępie ,wstepnie robie kolejki dla ip z eth1 i nieogranicza mi donwloadu  :( za tym niewiem w jaki sposób przetworzyć ten skrypt htb dla 4 kart sieciowych (eth0 -dsl ,eth1,eth2,eth3 -siec)

Offline

 

#2  2007-02-23 14:37:00

  xanax - Członek DUG

xanax
Członek DUG
Skąd: Kraków
Zarejestrowany: 2005-12-27

Re: HTB dla 4 interfesów sieciowych

Nieczytałem tego Twojego skryptu bo aktualnie niemam czasu go analizować ale powiem Ci jak to działa tak  mniej więcej.

przy pomocy -j IMQ przeżucasz pakiety do wirtualnego interfejsu zanim wyjdą prawdziwym albo jak wpadają prawdziwym. Czyli dla jednego interfejsu żeby kontrolować downoad robisz jedną i drugą żeby upload kontrolować. Dla jednej sieci lokalnej na dwóch akrtach wydaje mi się że powinny wystarczyć dwa imq. Czyli wedłuk mnie conajmniej niepowinieneś mieć
iptables -t mangle -A POSTROUTING -o eth0 -j IMQ --todev 1
iptables -t mangle -A PREROUTING -o eth0 -j IMQ --todev 1
gdzie eth0 to dsl :)
Ekspertem nie jestem w tej dziedzinie....
Wszystko co idzie do sieci kierujsze do jednego imq
A wszystko co idzie do kart LAN do drugiego imq.

Offline

 

#3  2007-02-24 12:19:05

  szewczyk - Stary wyjadacz :P

szewczyk
Stary wyjadacz :P
Zarejestrowany: 2006-12-03

Re: HTB dla 4 interfesów sieciowych

Czyli wedłuk mnie conajmniej niepowinieneś mieć
iptables -t mangle -A POSTROUTING -o eth0 -j IMQ --todev 1
iptables -t mangle -A PREROUTING -o eth0 -j IMQ --todev 1
gdzie eth0 to dsl :)

jesli juz to:

Kod:

iptables -t mangle -A POSTROUTING -o eth0 -j IMQ --todev 0  
iptables -t mangle -A PREROUTING -i eth0 -j IMQ --todev 1 

;)
ok po cięzkich bojach skrypt bez zmian działa ,powód ?? squiq transparent
teraz czeka mnie konfiguracja delay pools :)

Offline

 

#4  2007-02-24 14:29:30

  achlk7149 - Użytkownik

achlk7149
Użytkownik
Zarejestrowany: 2007-01-16

Re: HTB dla 4 interfesów sieciowych

ok po cięzkich bojach skrypt bez zmian działa ,powód ?? squiq transparent
teraz czeka mnie konfiguracja delay pools :)

A nie lepiej przyciac squida poprzez htb :) ??

Offline

 

#5  2007-02-24 20:00:16

  xanax - Członek DUG

xanax
Członek DUG
Skąd: Kraków
Zarejestrowany: 2005-12-27

Re: HTB dla 4 interfesów sieciowych

Czyli wedłuk mnie conajmniej niepowinieneś mieć
iptables -t mangle -A POSTROUTING -o eth0 -j IMQ --todev 1
iptables -t mangle -A PREROUTING -o eth0 -j IMQ --todev 1
gdzie eth0 to dsl :)

jesli juz to:

Kod:

iptables -t mangle -A POSTROUTING -o eth0 -j IMQ --todev 0  
iptables -t mangle -A PREROUTING -i eth0 -j IMQ --todev 1 

;)
ok po cięzkich bojach skrypt bez zmian działa ,powód ?? squiq transparent
teraz czeka mnie konfiguracja delay pools :)

ok mój błąd ale ja napisałem że niepowinieneś tego mieć :)
Jeśli będziesz ograniczał interfejsy lokalne czyli Lanowe a nie interfejs dsl'a to nie będziesz nic musiał robić ze squidem bo będzie przycinany. Wiem bo sam ostatnio pisałem skrypty żeby squid wpadał w kolejki.

Offline

 

#6  2007-02-25 10:24:22

  szewczyk - Stary wyjadacz :P

szewczyk
Stary wyjadacz :P
Zarejestrowany: 2006-12-03

Re: HTB dla 4 interfesów sieciowych

skrypcik który jest na początku tematu przezuca ruch z lanu do imq
ale podrzuciłeś mi pomysł ,co myslisz o taki HTB ?

Kod:

tc class add dev eth1 parent 1:2 classid 1:102 htb rate ${GD}kbit ceil ${MD}kbit quantum 1500 
tc class add dev eth2 parent 1:2 classid 1:103 htb rate ${GD}kbit ceil ${MD}kbit quantum 1500 
tc class add dev eth3 parent 1:2 classid 1:104 htb rate ${GD}kbit ceil ${MD}kbit quantum 1500 

Offline

 

#7  2007-02-25 16:42:14

  xanax - Członek DUG

xanax
Członek DUG
Skąd: Kraków
Zarejestrowany: 2005-12-27

Re: HTB dla 4 interfesów sieciowych

No ok ale po co to :)
Jeśli chcesz tylko mieć kontrole nad lanem to dwa IMQ Ci wystarczą, ruch ze squida też limitujesz.
Jeśli np. chciałbym nielimitować HITów ze squida to jest na to jakiś stosowny patch, niewiem nieużywam aktualnie.
Jeśli chciałbym limitować dodatkowo ruch serwera (jeśli masz na nim jakieś usługi dla świata) to dodajesz kolejne dwa imq na down i up dla zewnętrzego eth i dzielisz go na usługi i reszte ruchu. Przynajmniej ja to tak rozumiem.

Offline

 

#8  2007-03-01 17:50:41

  szewczyk - Stary wyjadacz :P

szewczyk
Stary wyjadacz :P
Zarejestrowany: 2006-12-03

Re: HTB dla 4 interfesów sieciowych

pomogło patch na squid z ZPH i działa cacy z imq ;)

dzieki za pomoc !!!

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)