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  2008-08-28 21:05:01

  yakubek - Użytkownik

yakubek
Użytkownik
Skąd: Łasin
Zarejestrowany: 2007-05-14
Serwis

imq jak przekierować ruch na iptables

Witam.

Mam na serwerku jajko 2.6.25.15 z obsługą imq, l7 itd. Używam do kontroli ruchu htb.
Chcaiłbym teraz uzywać do kontroli w sieci zacząć uzywać htb na interfejsach omq i markować ruch za pomocą l7.

Moje htb:

Kod:

#!/bin/sh
# shaper.sh -- prosty i łatwy skrypt do zarz±dzania pasmem
if [ "$1" == "stop" ]
then
    echo "Zatrzymujemy shapera"
    tc qdisc del root dev eth1 2>/dev/null
    tc qdisc del root dev ppp0 2>/dev/null
    iptables -t mangle -D POSTROUTING -o ppp0 -j MYSHAPER-OUT 2>/dev/null
    iptables -t mangle -F MYSHAPER-OUT 2>/dev/null
    iptables -t mangle -X MYSHAPER-OUT 2>/dev/null
    exit
fi
if [ "$1" == "start" ]
then
# To co było wcze¶niej -- do pieca! :)
    echo "Uruchamiamy shapera"
    tc qdisc del root dev eth1 2>/dev/null
    tc qdisc del root dev ppp0 2>/dev/null
    iptables -t mangle -D POSTROUTING -o ppp0 -j MYSHAPER-OUT 2>/dev/null
    iptables -t mangle -F MYSHAPER-OUT 2>/dev/null
    iptables -t mangle -X MYSHAPER-OUT 2>/dev/null

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


######### DOWNLOAD
######### Teraz przydział pasma na kolejkę
######### quantum liczy sie : rate*1024/8/1600
    tc class add dev eth1 parent 1:0 classid 1:1 htb rate 99000kbit ceil 99000kbit quantum 1500
    tc class add dev eth1 parent 1:1 classid 1:2 htb rate 1000kbit ceil 1100kbit quantum 1500
    tc class add dev eth1 parent 1:1 classid 1:3 htb rate 98000kbit ceil 98000kbit quantum 1500

    tc class add dev eth1 parent 1:2 classid 1:4 htb rate 125kbit ceil 800kbit quantum 1500 #Yakub 
    tc class add dev eth1 parent 1:2 classid 1:5 htb rate 125kbit ceil 300kbit quantum 1500 #Michal 
    tc class add dev eth1 parent 1:2 classid 1:6 htb rate 125kbit ceil 300kbit quantum 1500 #Marek 
    tc class add dev eth1 parent 1:2 classid 1:7 htb rate 125kbit ceil 300kbit quantum 1500 #Mazur 
    tc class add dev eth1 parent 1:2 classid 1:8 htb rate 125kbit ceil 300kbit quantum 1500 #Wojtek
    tc class add dev eth1 parent 1:2 classid 1:9 htb rate 125kbit ceil 300kbit quantum 1500 #Kalinowska
    tc class add dev eth1 parent 1:2 classid 1:10 htb rate 125kbit ceil 300kbit quantum 1500 #Przemek
    tc class add dev eth1 parent 1:2 classid 1:11 htb rate 125kbit ceil 800kbit quantum 1500 #Etch
    tc class add dev eth1 parent 1:2 classid 1:12 htb rate 125kbit ceil 800kbit quantum 1500 #Ewelina

    tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip src 192.168.2.1 flowid 1:3 
    tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.2 flowid 1:4 
    tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.3 flowid 1:5 
    tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.4 flowid 1:6 
    tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.5 flowid 1:7
    tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.6 flowid 1:8
    tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.7 flowid 1:9
    tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.8 flowid 1:10
    tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.9 flowid 1:11
    tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.10 flowid 1:12


    tc qdisc add dev eth1 parent 1:3 handle 3:0 sfq perturb 10 
    tc qdisc add dev eth1 parent 1:4 handle 4:0 sfq perturb 10 
    tc qdisc add dev eth1 parent 1:5 handle 5:0 sfq perturb 10 
    tc qdisc add dev eth1 parent 1:6 handle 6:0 sfq perturb 10 
    tc qdisc add dev eth1 parent 1:7 handle 7:0 sfq perturb 10 
    tc qdisc add dev eth1 parent 1:8 handle 8:0 sfq perturb 10
    tc qdisc add dev eth1 parent 1:9 handle 9:0 sfq perturb 10
    tc qdisc add dev eth1 parent 1:10 handle 10:0 sfq perturb 10
    tc qdisc add dev eth1 parent 1:11 handle 11:0 sfq perturb 10
    tc qdisc add dev eth1 parent 1:12 handle 12:0 sfq perturb 10

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

    tc qdisc add dev ppp0 root handle 1:0 htb  # default 21
    tc class add dev ppp0 parent 1:0 classid 1:1 htb rate 260kbit ceil 260kbit #glowna kolejka
#### PODZIAL KOLEJKI NA KILKA PREDKOSCI
         #### IBM
tc class add dev ppp0 parent 1:1 classid 1:2 htb rate 20kbit ceil 60kbit quantum 1500 # RESZTA IBM
tc class add dev ppp0 parent 1:1 classid 1:20 htb rate 20kbit ceil 30kbit quantum 1500 # WWW IBM
            ### MICHAL
tc class add dev ppp0 parent 1:1 classid 1:22 htb rate 20kbit ceil 30kbit quantum 1500 # RESZTA MICHAL
tc class add dev ppp0 parent 1:1 classid 1:202 htb rate 20kbit ceil 30kbit quantum 1500 # WWW MICHAL
            ### MAREK
tc class add dev ppp0 parent 1:1 classid 1:3 htb rate 20kbit ceil 50kbit quantum 1500 # RESZTA MAREK
tc class add dev ppp0 parent 1:1 classid 1:30 htb rate 20kbit ceil 30kbit quantum 1500 # WWW MAREK
            ### MAZUR
tc class add dev ppp0 parent 1:1 classid 1:4 htb rate 20kbit ceil 50kbit quantum 1500 # RESZTA MAZUR
tc class add dev ppp0 parent 1:1 classid 1:40 htb rate 20kbit ceil 30kbit quantum 1500 # WWW MAZUR
            ### WOJTEK
tc class add dev ppp0 parent 1:1 classid 1:5 htb rate 20kbit ceil 30kbit quantum 1500 # RESZTA WOJTEK
tc class add dev ppp0 parent 1:1 classid 1:50 htb rate 20kbit ceil 30kbit quantum 1500 # WWW WOJTEK
            ### KALINOWSKA
tc class add dev ppp0 parent 1:1 classid 1:6 htb rate 20kbit ceil 20kbit quantum 1500 # RESZTA KALINOWSKA
tc class add dev ppp0 parent 1:1 classid 1:60 htb rate 20kbit ceil 20kbit quantum 1500 # WWW KALINOWSKA
            ### PRZEMEK
tc class add dev ppp0 parent 1:1 classid 1:7 htb rate 20kbit ceil 30kbit quantum 1500 # RESZTA PRZEMEK
tc class add dev ppp0 parent 1:1 classid 1:70 htb rate 20kbit ceil 30kbit quantum 1500 # WWW PRZEMEK
         ### YAKUB
tc class add dev ppp0 parent 1:1 classid 1:8 htb rate 20kbit ceil 60kbit quantum 1500 # RESZTA YAKUB
tc class add dev ppp0 parent 1:1 classid 1:80 htb rate 20kbit ceil 30kbit quantum 1500 # WWW YAKUB
               ### EWELINA
tc class add dev ppp0 parent 1:1 classid 1:9 htb rate 20kbit ceil 60kbit quantum 1500 # RESZTA EWELINA
tc class add dev ppp0 parent 1:1 classid 1:90 htb rate 20kbit ceil 30kbit quantum 1500 # WWW EWELINA

###P2P
tc class add dev ppp0 parent 1:1 classid 1:100 htb rate 5kbit ceil 10kbit quantum 1500 # P2P


#####################################################################
### IBM
tc qdisc add dev ppp0 parent 1:2 handle 2:0 sfq perturb 10 #IBM
tc qdisc add dev ppp0 parent 1:20 handle 20:0 sfq perturb 10 #IBM
### MICHAL
tc qdisc add dev ppp0 parent 1:22 handle 22:0 sfq perturb 10 #MICHAL
tc qdisc add dev ppp0 parent 1:202 handle 202:0 sfq perturb 10 #MICHAL
### MAREK
tc qdisc add dev ppp0 parent 1:3 handle 3:0 sfq perturb 10 #MAREK
tc qdisc add dev ppp0 parent 1:30 handle 30:0 sfq perturb 10 #MAREK
### MAZUR
tc qdisc add dev ppp0 parent 1:4 handle 4:0 sfq perturb 10 #MAZUR
tc qdisc add dev ppp0 parent 1:40 handle 40:0 sfq perturb 10 #MAZUR
### WOJTEK
tc qdisc add dev ppp0 parent 1:5 handle 5:0 sfq perturb 10 #WOJTEK
tc qdisc add dev ppp0 parent 1:50 handle 50:0 sfq perturb 10 #WOJTEK
### KALINOWSKA
tc qdisc add dev ppp0 parent 1:6 handle 6:0 sfq perturb 10 #KALINOWSKA
tc qdisc add dev ppp0 parent 1:60 handle 60:0 sfq perturb 10 #KALINOWSKA
### PRZEMEK
tc qdisc add dev ppp0 parent 1:7 handle 7:0 sfq perturb 10 #PRZEMEK
tc qdisc add dev ppp0 parent 1:70 handle 70:0 sfq perturb 10 #PRZEMEK
### YAKUB
tc qdisc add dev ppp0 parent 1:8 handle 8:0 sfq perturb 10 #YAKUB
tc qdisc add dev ppp0 parent 1:80 handle 80:0 sfq perturb 10 #YAKUB
### EWELINA
tc qdisc add dev ppp0 parent 1:9 handle 9:0 sfq perturb 10 #EWELINA
tc qdisc add dev ppp0 parent 1:90 handle 90:0 sfq perturb 10 #EWELINA


### P2P
tc qdisc add dev ppp0 parent 1:100 handle 100:0 sfq perturb 10 #P2P

######################################################################
#### IBM
tc filter add dev ppp0 protocol ip preference 1 parent 1:0 handle 21 fw flowid 1:2 #IBM
tc filter add dev ppp0 protocol ip preference 1 parent 1:0 handle 200 fw flowid 1:20 #IBM
#### MICHAL
tc filter add dev ppp0 protocol ip preference 1 parent 1:0 handle 31 fw flowid 1:22 #MICHAL
tc filter add dev ppp0 protocol ip preference 1 parent 1:0 handle 300 fw flowid 1:202 #MICHAL  
#### MAREK
tc filter add dev ppp0 protocol ip preference 1 parent 1:0 handle 41 fw flowid 1:3 #MAREK
tc filter add dev ppp0 protocol ip preference 1 parent 1:0 handle 400 fw flowid 1:30 #MAREK
#### MAZUR
tc filter add dev ppp0 protocol ip preference 1 parent 1:0 handle 51 fw flowid 1:4 #MAZUR
tc filter add dev ppp0 protocol ip preference 1 parent 1:0 handle 500 fw flowid 1:40 #MAZUR  
#### WOJTEK
tc filter add dev ppp0 protocol ip preference 1 parent 1:0 handle 61 fw flowid 1:5 #WOJTEK
tc filter add dev ppp0 protocol ip preference 1 parent 1:0 handle 600 fw flowid 1:50 #WOJTEK  
#### KALINOWSKA
tc filter add dev ppp0 protocol ip preference 1 parent 1:0 handle 71 fw flowid 1:6 #KALINOWSKA
tc filter add dev ppp0 protocol ip preference 1 parent 1:0 handle 700 fw flowid 1:60 #KALINOWSKA  
#### PRZEMEK
tc filter add dev ppp0 protocol ip preference 1 parent 1:0 handle 81 fw flowid 1:7 #PRZEMEK
tc filter add dev ppp0 protocol ip preference 1 parent 1:0 handle 800 fw flowid 1:70 #PRZEMEK
#### YAKUB
tc filter add dev ppp0 protocol ip preference 1 parent 1:0 handle 91 fw flowid 1:8 #YAKUB
tc filter add dev ppp0 protocol ip preference 1 parent 1:0 handle 900 fw flowid 1:80 #YAKUB
#### EWELINA
tc filter add dev ppp0 protocol ip preference 1 parent 1:0 handle 101 fw flowid 1:9 #EWELINA
tc filter add dev ppp0 protocol ip preference 1 parent 1:0 handle 1000 fw flowid 1:90 #EWELINA  
  
###P2P RESZTA

################################# ZNAKOWANIE PAKIETOW ###############
#zamarkuj np www markiem 200
#zamarkuj cos innego markie 201
# filtry: www i ftp

    iptables -t mangle -N MYSHAPER-OUT
    iptables -t mangle -I POSTROUTING -o ppp0 -j MYSHAPER-OUT
    
    ### YAKUBEK
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.9 --sport 80 -j MARK --set-mark 200 # mark www IBM
    
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.9 -j MARK --set-mark 21 # reszta ruchu IBM



    ### MICHAL
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.3 --sport 80 -j MARK --set-mark 300 # mark www dla MICHAL
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.3 -j MARK --set-mark 31 # reszta ruchu MICHAL
    ### MAREK
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.4 --sport 80 -j MARK --set-mark 400 # mark www dla MAREK
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.4 -j MARK --set-mark 41 # reszta ruchu MAREK
    ### MAZUR
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.5 --sport 80 -j MARK --set-mark 500 # mark www dla MAZUR
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.5 -j MARK --set-mark 51 # reszta ruchu MAZUR
    ### WOJTEK
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.6 --sport 80 -j MARK --set-mark 600 # mark www dla WOJTEK
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.6 -j MARK --set-mark 61 # reszta ruchu WOJTEK
    ### KALINOWSKA
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.7 --sport 80 -j MARK --set-mark 700 # mark www dla KALINOWSKA
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.7 -j MARK --set-mark 71 # reszta ruchu KALINOWSKA
    ### PRZEMEK
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.8 --sport 80 -j MARK --set-mark 800 # mark www dla PRZEMEK
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.8 -j MARK --set-mark 81 # reszta ruchu PRZEMEK
    ### YAKUB
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.2 --sport 80 -j MARK --set-mark 900 # mark www dla YAKUB
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.2 -j MARK --set-mark 91 # reszta ruchu YAKUB
    ### EWELINA
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.10 --sport 80 -j MARK --set-mark 1000 # mark www dla EWELINA
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.10 -j MARK --set-mark 101 # reszta ruchu EWELINA

    
    exit
fi
if [ "$1" == "status" ]
then
    echo "eth1: "
    tc -s qdisc show dev eth1
    echo "ppp0: "
    tc -s qdisc show dev ppp0
    exit
fi
echo "$0 start|stop|status"

## KONIECc

Mam wiec pytanie w jaki sposób przenieść ruch z eth i ppp0 na imq.

Podnoszenie interfejsów działa mi, jednak nie bardzo rozumiem jakie zastosować regóły iptables żeby przekierować ruch na imq.

Znalazłem takie reguły, ale nie rozumiem tego


Kod:

ip link set imq0 up
ip link set imq1 up


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

po zastosowaniu tego ruch nie idzie przez imq tylko nadal przez eth i ppp0

Offline

 

#2  2008-08-28 21:19:15

  urug - Członek DUG

urug
Członek DUG
Skąd: Częstochowa
Zarejestrowany: 2008-04-22
Serwis

Re: imq jak przekierować ruch na iptables


Pozdrawiam, Tomek

Offline

 

#3  2008-08-28 21:46:24

  yakubek - Użytkownik

yakubek
Użytkownik
Skąd: Łasin
Zarejestrowany: 2007-05-14
Serwis

Re: imq jak przekierować ruch na iptables

Nie bardzo wiem o co chodzi w tym opisie, może i ja tez nie do końca opisałem wszystko.
więc ...
serwer ma 2 karty sieciowe eth0 i eth1, eth0 (ppp0) jest podłączona do router tepsowego który pracuje jako BRIDGE, serwer sam nawiązuje polaczenie z netem, więc on jest routerem.
Download kontroluję na eth1 (lan) upload kontroluję na ppp0 (eth0)
Teraz jakie imq ma być na jakiej karcie eth (ppp0) i jakie regułki zastosować na przekierowanie ruchu?

Offline

 

#4  2008-08-28 23:03:35

  siarka2107 - Użyszkodnik DUG

siarka2107
Użyszkodnik DUG
Skąd: Warszawa
Zarejestrowany: 2006-04-05

Re: imq jak przekierować ruch na iptables

dla najprostszej konfiguracji powinno to wyglądać mniej więcej tak

Kod:

modprobe imq numdevs=2

#download
iptables -t mangle -A POSTROUTING -i ppp0 -j IMQ --todev 0

#upload
iptables -t mangle -A POSTROUTING -i eth1 -j IMQ --todev 1

ip link set imq0 up
ip link set imq1 up

#download
tc qdisc del root dev imq0
tc qdisc add dev imq0 root handle 1:0 htb
tc class add dev imq0 parent 1:0 classid 1:1 htb rate 2mbit ceil 2mbit
tc class add dev imq0 parent 1:1 classid 1:2 htb rate 250kbit ceil 500kbit
...
tc filter add dev imq0 protocol ip parent 1:0 u32 match ip dst 192.168.1.20 flowid 1:2

# i tak samo upload tylko zmieniasz nazwę interfejsu

masz tu jeszcze linka do opisu imq po polskiemu klik

Ostatnio edytowany przez siarka2107 (2008-08-28 23:04:54)

Offline

 

#5  2008-08-29 22:16:21

  yakubek - Użytkownik

yakubek
Użytkownik
Skąd: Łasin
Zarejestrowany: 2007-05-14
Serwis

Re: imq jak przekierować ruch na iptables

Kod:

modprobe imq numdevs=2

#download
iptables -t mangle -A POSTROUTING -i ppp0 -j IMQ --todev 0

#upload
iptables -t mangle -A POSTROUTING -i eth1 -j IMQ --todev 1

ip link set imq0 up
ip link set imq1 up

#download
tc qdisc del root dev imq0
tc qdisc add dev imq0 root handle 1:0 htb
tc class add dev imq0 parent 1:0 classid 1:1 htb rate 500kbit ceil 1mbit #glowna kolejka
tc class add dev imq0 parent 1:1 classid 1:2 htb rate 125kbit ceil 300kbit #DL IBM
tc class add dev imq0 parent 1:1 classid 1:3 htb rate 125kbit ceil 300kbit #DL MICHAL
tc class add dev imq0 parent 1:1 classid 1:4 htb rate 125kbit ceil 300kbit #DL MAREK
tc class add dev imq0 parent 1:1 classid 1:5 htb rate 125kbit ceil 300kbit #DL MAZUR
tc class add dev imq0 parent 1:1 classid 1:6 htb rate 125kbit ceil 300kbit #DL WOJTEK
tc class add dev imq0 parent 1:1 classid 1:7 htb rate 125kbit ceil 300kbit #DL KALINOWSKA
tc class add dev imq0 parent 1:1 classid 1:8 htb rate 125kbit ceil 300kbit #DL PRZEMEK
tc class add dev imq0 parent 1:1 classid 1:9 htb rate 125kbit ceil 300kbit #DL ETCH
tc class add dev imq0 parent 1:1 classid 1:10 htb rate 125kbit ceil 300kbit #DL EWELINA


tc filter add dev imq0 protocol ip parent 1:0 u32 match ip dst 192.168.2.2 flowid 1:2 # IBM
tc filter add dev imq0 protocol ip parent 1:0 u32 match ip dst 192.168.2.3 flowid 1:3 # MICHAL
tc filter add dev imq0 protocol ip parent 1:0 u32 match ip dst 192.168.2.4 flowid 1:4 # MAREK
tc filter add dev imq0 protocol ip parent 1:0 u32 match ip dst 192.168.2.5 flowid 1:5 # MAZUR
tc filter add dev imq0 protocol ip parent 1:0 u32 match ip dst 192.168.2.6 flowid 1:6 # WOJTEK
tc filter add dev imq0 protocol ip parent 1:0 u32 match ip dst 192.168.2.7 flowid 1:7 # KALINOWSKA
tc filter add dev imq0 protocol ip parent 1:0 u32 match ip dst 192.168.2.8 flowid 1:8 # PRZEMEK
tc filter add dev imq0 protocol ip parent 1:0 u32 match ip dst 192.168.2.9 flowid 1:9 # ETCH
tc filter add dev imq0 protocol ip parent 1:0 u32 match ip dst 192.168.2.10 flowid 1:10 # EWELINA

#UPLOAD
# i tak samo upload tylko zmieniasz nazwę interfejsu
tc qdisc del root dev imq1
tc qdisc add dev imq1 root handle 1:0 htb
tc class add dev imq1 parent 1:0 classid 1:1 htb rate 260kbit ceil 260kbit #glowna kolejka
tc class add dev imq1 parent 1:1 classid 1:2 htb rate 20kbit ceil 60kbit #DL IBM
tc class add dev imq1 parent 1:1 classid 1:3 htb rate 20kbit ceil 60kbit #DL MICHAL
tc class add dev imq1 parent 1:1 classid 1:4 htb rate 20kbit ceil 60kbit #DL MAREK
tc class add dev imq1 parent 1:1 classid 1:5 htb rate 20kbit ceil 60kbit #DL MAZUR
tc class add dev imq1 parent 1:1 classid 1:6 htb rate 20kbit ceil 60kbit #DL WOJTEK
tc class add dev imq1 parent 1:1 classid 1:7 htb rate 20kbit ceil 60kbit #DL KALINOWSKA
tc class add dev imq1 parent 1:1 classid 1:8 htb rate 20kbit ceil 60kbit #DL PRZEMEK
tc class add dev imq1 parent 1:1 classid 1:9 htb rate 20kbit ceil 60kbit #DL ETCH
tc class add dev imq1 parent 1:1 classid 1:10 htb rate 20kbit ceil 60kbit #DL EWELINA


tc filter add dev imq1 protocol ip parent 1:0 u32 match ip dst 192.168.2.2 flowid 1:2 # IBM
tc filter add dev imq1 protocol ip parent 1:0 u32 match ip dst 192.168.2.3 flowid 1:3 # MICHAL
tc filter add dev imq1 protocol ip parent 1:0 u32 match ip dst 192.168.2.4 flowid 1:4 # MAREK
tc filter add dev imq1 protocol ip parent 1:0 u32 match ip dst 192.168.2.5 flowid 1:5 # MAZUR
tc filter add dev imq1 protocol ip parent 1:0 u32 match ip dst 192.168.2.6 flowid 1:6 # WOJTEK
tc filter add dev imq1 protocol ip parent 1:0 u32 match ip dst 192.168.2.7 flowid 1:7 # KALINOWSKA
tc filter add dev imq1 protocol ip parent 1:0 u32 match ip dst 192.168.2.8 flowid 1:8 # PRZEMEK
tc filter add dev imq1 protocol ip parent 1:0 u32 match ip dst 192.168.2.9 flowid 1:9 # ETCH
tc filter add dev imq1 protocol ip parent 1:0 u32 match ip dst 192.168.2.10 flowid 1:10 # EWELINA

uruchamiam skrypt htb i dostaje taki komunikat :

Kod:

iptables v1.4.0: Can't use -i with POSTROUTING

Try `iptables -h' or 'iptables --help' for more information.
iptables v1.4.0: Can't use -i with POSTROUTING

Try `iptables -h' or 'iptables --help' for more information.

Offline

 

#6  2008-08-29 22:29:04

  urug - Członek DUG

urug
Członek DUG
Skąd: Częstochowa
Zarejestrowany: 2008-04-22
Serwis

Re: imq jak przekierować ruch na iptables

s/-i/-o/


Pozdrawiam, Tomek

Offline

 

#7  2008-08-29 22:42:20

  yakubek - Użytkownik

yakubek
Użytkownik
Skąd: Łasin
Zarejestrowany: 2007-05-14
Serwis

Re: imq jak przekierować ruch na iptables

W skrypcie htb zmieniłem na próbę

Kod:

modprobe imq numdevs=2

#download
iptables -t mangle -A POSTROUTING -i ppp0 -j IMQ --todev 0

#upload
iptables -t mangle -A POSTROUTING -i eth1 -j IMQ --todev 1

na

Kod:

modprobe imq numdevs=2

#download
iptables -t mangle -A PREROUTING -i ppp0 -j IMQ --todev 0

#upload
iptables -t mangle -A PREROUTING -i eth1 -j IMQ --todev 1

i po uruchomieniu skryptu nie wywalilo mi błędów.

polecenie

ifconfig

Kod:

serwer:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:02:44:7B:B5:AF
          inet6 addr: fe80::202:44ff:fe7b:b5af/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:927499 errors:0 dropped:0 overruns:0 frame:0
          TX packets:784175 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:972541848 (927.4 MiB)  TX bytes:162060866 (154.5 MiB)
          Interrupt:12 Base address:0x6800

eth1      Link encap:Ethernet  HWaddr 00:02:44:7C:8A:D8
          inet addr:192.168.2.1  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::202:44ff:fe7c:8ad8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:768955 errors:0 dropped:0 overruns:0 frame:0
          TX packets:875747 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:119136788 (113.6 MiB)  TX bytes:961246227 (916.7 MiB)
          Interrupt:11 Base address:0x6c00

imq0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          UP RUNNING NOARP  MTU:16000  Metric:1
          RX packets:10277 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10277 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:11000
          RX bytes:9147571 (8.7 MiB)  TX bytes:9147571 (8.7 MiB)

imq1      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          UP RUNNING NOARP  MTU:16000  Metric:1
          RX packets:8681 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8681 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:11000
          RX bytes:2155747 (2.0 MiB)  TX bytes:2155747 (2.0 MiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:56 errors:0 dropped:0 overruns:0 frame:0
          TX packets:56 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:3184 (3.1 KiB)  TX bytes:3184 (3.1 KiB)

ppp0      Link encap:Point-to-Point Protocol
          inet addr:83.8.170.196  P-t-P:213.25.2.172  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:329635 errors:0 dropped:0 overruns:0 frame:0
          TX packets:226047 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:434088679 (413.9 MiB)  TX bytes:33565382 (32.0 MiB)

serwer:~#

Offline

 

#8  2008-08-30 00:45:02

  urug - Członek DUG

urug
Członek DUG
Skąd: Częstochowa
Zarejestrowany: 2008-04-22
Serwis

Re: imq jak przekierować ruch na iptables

I w tym momencie masz to samo co na starcie, tylko że z innymi interfejsami ;-P Counterki na imq1/imq0 śmigają, więc chyba jest ok?


Pozdrawiam, Tomek

Offline

 

#9  2008-08-30 16:48:40

  yakubek - Użytkownik

yakubek
Użytkownik
Skąd: Łasin
Zarejestrowany: 2007-05-14
Serwis

Re: imq jak przekierować ruch na iptables

Czyli wg. ciebie tak może zostać?
Nie napisałem też jeszcze jednej rzeczy,chodzi o firewalla i maskaradę sieci
mam tak zrobione:

Kod:

#!/bin/sh
############ REGOLA WLACZAJACA FORWARD SIECI ################### 
echo 1 > /proc/sys/net/ipv4/ip_forward
########################### CZYSZCZENIE STARYCH REGOL ##########
iptables -F
iptables -X
iptables -t nat -X
iptables -t nat -F
# ustawienie polityki dzialania
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A FORWARD -o lo -j ACCEPT
iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED

################### DHCP ###################################
### udostepniaie internetu w sieci lokalnej
### Dla wlaczonego dhcp
# Komputer IBM
iptables -t nat -A POSTROUTING -s 192.168.2.2 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:0d:60:b1:38:ee -j ACCEPT
# Michal
iptables -t nat -A POSTROUTING -s 192.168.2.3 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:e0:7d:a1:94:d5 -j ACCEPT
# Marek
iptables -t nat -A POSTROUTING -s 192.168.2.4 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:40:05:3c:7c:a0 -j ACCEPT
# Mazur
iptables -t nat -A POSTROUTING -s 192.168.2.5 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:1d:7d:e5:8c:3f -j ACCEPT
# Wojtek
iptables -t nat -A POSTROUTING -s 192.168.2.6 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:4f:4e:60:8b:6b -j ACCEPT
# Kalinowska
iptables -t nat -A POSTROUTING -s 192.168.2.7 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:0a:e6:cc:21:ed -j ACCEPT
# Przemek
iptables -t nat -A POSTROUTING -s 192.168.2.8 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:1d:7d:94:f2:f4 -j ACCEPT
# Etch
iptables -t nat -A POSTROUTING -s 192.168.2.9 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:05:4e:45:c7:0b -j ACCEPT
# Ewelina
iptables -t nat -A POSTROUTING -s 192.168.2.10 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:50:8d:68:d6:e1 -j ACCEPT

to oczywiście tylko część firewalla

Offline

 

#10  2008-08-30 18:37:22

  siarka2107 - Użyszkodnik DUG

siarka2107
Użyszkodnik DUG
Skąd: Warszawa
Zarejestrowany: 2006-04-05

Re: imq jak przekierować ruch na iptables

no może, jak masz dużo klientów w sieci i puszczasz tylko określone mac to lepiej jest użyć ipset, przykład jego użycia masz tutaj

Offline

 

#11  2008-09-07 21:03:16

  yakubek - Użytkownik

yakubek
Użytkownik
Skąd: Łasin
Zarejestrowany: 2007-05-14
Serwis

Re: imq jak przekierować ruch na iptables

Witamponownie
Po kilkunastu dniach czytania i testowania różnych konfiguracji htb zmontowałem taki skrypt

Kod:

#!/bin/sh

#!/bin/bash

if [ "$1" == "stop" ]
then
    echo "Zatrzymujemy shapera"
    tc qdisc del root dev imq0 2>/dev/null
    tc qdisc del root dev imq1 2>/dev/null
    exit
fi
if [ "$1" == "start" ]
then

# To co bylo wczesniej -- do pieca! :)
    echo "Uruchamiamy shapera"
    echo "Podnoszwenie IMQ..." 
    
    modprobe imq 
    ip link set imq0 up 
    ip link set imq1 up
    
    echo "Przekierowanie do IMQ"




lan="eth1"
#ifc_zew="eth0"
ifc_zew="ppp0" # 
# max_upload="200kbit"
# up_others="5kbit"
# up_ssh="5kbit"
# up_http="40kbit"
# up_p2p="10kbit"

#max_download="800kbit"
#down_others="10kbit"
#down_ssh="40kbit"
#down_http="400kbit"
#down_ftp="100kbit"

ip link set imq0 up
ip link set imq1 up

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

tc qdisc del root dev imq0 2>/dev/null
tc qdisc del root dev imq1 2>/dev/null

########## DOWNLOAD
    tc qdisc add dev imq1 root handle 1:0 htb
    tc class add dev imq1 parent 1:0 classid 1:1 htb rate 90000kbit ceil 90000kbit #glowna kolejka
    tc class add dev imq1 parent 1:1 classid 1:2 htb rate 1000kbit ceil 1000kbit #wan
    tc class add dev imq1 parent 1:1 classid 1:3 htb rate 85000kbit ceil 85000kbit #lan
    tc class add dev imq1 parent 1:2 classid 1:4 htb rate 100kbit ceil 400kbit quantum 1600
    tc class add dev imq1 parent 1:2 classid 1:5 htb rate 100kbit ceil 400kbit quantum 1600
    tc class add dev imq1 parent 1:2 classid 1:6 htb rate 100kbit ceil 400kbit quantum 1600
    tc class add dev imq1 parent 1:2 classid 1:7 htb rate 100kbit ceil 400kbit quantum 1600
    tc class add dev imq1 parent 1:2 classid 1:8 htb rate 100kbit ceil 400kbit quantum 1600
    tc class add dev imq1 parent 1:2 classid 1:9 htb rate 100kbit ceil 400kbit quantum 1600
    tc class add dev imq1 parent 1:2 classid 1:10 htb rate 100kbit ceil 400kbit quantum 1600
    tc class add dev imq1 parent 1:2 classid 1:11 htb rate 100kbit ceil 700kbit quantum 1600
    tc class add dev imq1 parent 1:2 classid 1:12 htb rate 100kbit ceil 400kbit quantum 1600
    

    tc filter add dev imq1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.2 flowid 1:4
    tc filter add dev imq1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.3 flowid 1:5
    tc filter add dev imq1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.4 flowid 1:6
    tc filter add dev imq1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.5 flowid 1:7
    tc filter add dev imq1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.6 flowid 1:8
    tc filter add dev imq1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.1.7 flowid 1:9
    tc filter add dev imq1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.8 flowid 1:10
    tc filter add dev imq1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.9 flowid 1:11
    tc filter add dev imq1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.10 flowid 1:12
    

    tc qdisc add dev imq1 parent 1:3 handle 3:0 sfq perturb 10
    tc qdisc add dev imq1 parent 1:4 handle 4:0 sfq perturb 10
    tc qdisc add dev imq1 parent 1:5 handle 5:0 sfq perturb 10
    tc qdisc add dev imq1 parent 1:6 handle 6:0 sfq perturb 10
    tc qdisc add dev imq1 parent 1:7 handle 7:0 sfq perturb 10
    tc qdisc add dev imq1 parent 1:8 handle 8:0 sfq perturb 10
    tc qdisc add dev imq1 parent 1:9 handle 9:0 sfq perturb 10
    tc qdisc add dev imq1 parent 1:10 handle 10:0 sfq perturb 10
    tc qdisc add dev imq1 parent 1:11 handle 11:0 sfq perturb 10
    tc qdisc add dev imq1 parent 1:12 handle 12:0 sfq perturb 10



#### Upload ####
    tc qdisc add dev imq0 root handle 1:0 htb default 12
    tc class add dev imq0 parent 1:0 classid 1:1 htb rate 200kbit ceil 260kbit prio 1 #quantum 15
    tc class add dev imq0 parent 1:1 classid 1:12 htb rate 2kbit ceil 5kbit prio 2 #quantum 15 # p2p

    tc class add dev imq0 parent 1:1 classid 1:3 htb rate 20kbit ceil 50kbit quantum 1600
    tc class add dev imq0 parent 1:1 classid 1:4 htb rate 20kbit ceil 50kbit quantum 1600
    tc class add dev imq0 parent 1:1 classid 1:5 htb rate 20kbit ceil 50kbit quantum 1600
    tc class add dev imq0 parent 1:1 classid 1:6 htb rate 20kbit ceil 50kbit quantum 1600
    tc class add dev imq0 parent 1:1 classid 1:7 htb rate 20kbit ceil 50kbit quantum 1600
    tc class add dev imq0 parent 1:1 classid 1:8 htb rate 20kbit ceil 50kbit quantum 1600
    tc class add dev imq0 parent 1:1 classid 1:9 htb rate 20kbit ceil 50kbit quantum 1600
    tc class add dev imq0 parent 1:1 classid 1:10 htb rate 20kbit ceil 50kbit quantum 1600
    tc class add dev imq0 parent 1:1 classid 1:11 htb rate 20kbit ceil 50kbit quantum 1600
  
    tc qdisc add dev imq0 parent 1:3 handle 3:0 sfq perturb 10
    tc qdisc add dev imq0 parent 1:4 handle 4:0 sfq perturb 10
    tc qdisc add dev imq0 parent 1:5 handle 5:0 sfq perturb 10
    tc qdisc add dev imq0 parent 1:6 handle 6:0 sfq perturb 10
    tc qdisc add dev imq0 parent 1:7 handle 7:0 sfq perturb 10
    tc qdisc add dev imq0 parent 1:8 handle 8:0 sfq perturb 10
    tc qdisc add dev imq0 parent 1:9 handle 9:0 sfq perturb 10
    tc qdisc add dev imq0 parent 1:10 handle 10:0 sfq perturb 10
    tc qdisc add dev imq0 parent 1:11 handle 11:0 sfq perturb 10
    


tc qdisc add dev imq0 parent 1:12 handle 12:0 sfq perturb 10 

    tc filter add dev imq0 protocol ip preference 1 parent 1:0 u32 match ip src 192.168.2.2 flowid 1:3
    tc filter add dev imq0 protocol ip preference 1 parent 1:0 u32 match ip src 192.168.2.3 flowid 1:4
    tc filter add dev imq0 protocol ip preference 1 parent 1:0 u32 match ip src 192.168.2.4 flowid 1:5
    tc filter add dev imq0 protocol ip preference 1 parent 1:0 u32 match ip src 192.168.2.5 flowid 1:6
    tc filter add dev imq0 protocol ip preference 1 parent 1:0 u32 match ip src 192.168.2.6 flowid 1:7
    tc filter add dev imq0 protocol ip preference 1 parent 1:0 u32 match ip src 192.168.2.7 flowid 1:8
    tc filter add dev imq0 protocol ip preference 1 parent 1:0 u32 match ip src 192.168.2.8 flowid 1:9
    tc filter add dev imq0 protocol ip preference 1 parent 1:0 u32 match ip src 192.168.2.9 flowid 1:10
    tc filter add dev imq0 protocol ip preference 1 parent 1:0 u32 match ip src 192.168.2.10 flowid 1:11
    #tc filter add dev imq0 parent 1:0 protocol ip prio 2 handle 111 fw flowid 1:10


###Filtry p2p
    tc filter add dev imq0 parent 1:0 protocol ip prio 10 handle 100 fw flowid 1:12 #p2p
    tc filter add dev imq0 parent 1:0 protocol ip prio 10 handle 101 fw flowid 1:12 #p2p
    tc filter add dev imq0 parent 1:0 protocol ip prio 10 handle 102 fw flowid 1:12 #p2p
    tc filter add dev imq0 parent 1:0 protocol ip prio 10 handle 103 fw flowid 1:12 #p2p
    tc filter add dev imq0 parent 1:0 protocol ip prio 10 handle 104 fw flowid 1:12 #p2p
    #tc filter add dev imq0 parent 1:0 protocol ip prio 10 handle 105 fw flowid 1:12 #http l7
    tc filter add dev imq0 parent 1:0 protocol ip prio 10 handle 106 fw flowid 1:12 #p2p
    tc filter add dev imq0 parent 1:0 protocol ip prio 10 handle 107 fw flowid 1:12 #p2p

Co prawda skrypt jest jeszcze powiedzmy w fazie testów, ale trzyma transfery użytkowników.
Pojawił się jednakinny poważny problem, serwer jest też serwerem www i po odpaleniu htb w zasadzie strony bardzo wolno ładują się, jest to spowodowane małą prędkością na wyjściu serwera w świat. Co zrobić aby przydzielić wieksze pasmo wychodzace dla serwera www?

Offline

 

#12  2008-09-07 22:21:38

  urug - Członek DUG

urug
Członek DUG
Skąd: Częstochowa
Zarejestrowany: 2008-04-22
Serwis

Re: imq jak przekierować ruch na iptables

Pobierznie przejrzałem Twój skrypt - w sekcji dotyczącej uploadu, nie zrobiłeś filtra do którego wpadałby Twój serwer - ląduje więc w domyslnej klasie, która ma ograniczneia 2kbit ceil 5kbit


Pozdrawiam, Tomek

Offline

 

#13  2008-09-08 16:01:38

  yakubek - Użytkownik

yakubek
Użytkownik
Skąd: Łasin
Zarejestrowany: 2007-05-14
Serwis

Re: imq jak przekierować ruch na iptables

Faktycznie brakuje filtra, ale dla jakiego adresu lub interfejsu zrobić filtr?

Kod:

tc filter add dev imq0 protocol ip preference 1 parent 1:0 ......................................... flowid 1:13

Offline

 

#14  2008-09-08 16:04:57

  urug - Członek DUG

urug
Członek DUG
Skąd: Częstochowa
Zarejestrowany: 2008-04-22
Serwis

Re: imq jak przekierować ruch na iptables

Dla adresu serwera? Najprościej możesz po prostu wykorzystać fakt że serwer wpada do domyślnej kolejki i ją zwiększyć.

Ostatnio edytowany przez urug (2008-09-08 16:05:19)


Pozdrawiam, Tomek

Offline

 

#15  2008-09-08 19:13:22

  yakubek - Użytkownik

yakubek
Użytkownik
Skąd: Łasin
Zarejestrowany: 2007-05-14
Serwis

Re: imq jak przekierować ruch na iptables

Zwiększyłem przepustowość kolejki i strony z serwera wczytują się szybko, z tym że do tej kolejki mam tez podpięte filtry l7 do filtrowania ruchu p2p na wyjściu w WAN.
Najlepszym rozwiązaniem jest zrobić osobny filtr dla serwera www, ale mam łącze adsl  i nie mam stałego IP żeby przypisać do filtra. Można zamarkować port 80 na firewallu ale mam obawy że większość ruchu szczególnie p2p pójdzie tą kolejką i nie będę miał kontroli nad ruchem p2p na wyjściu, a blokować nie chcę.
Jakie jest wyjście z sytuacji?
I jeszcze jedno, karta sieciowa którą wychodzi wszystko w net (eth0) ma przypisany IP na sztywno, ale ifconfig nie pokazuje adresu IP

Kod:

ifconfig
eth0      Link encap:Ethernet  HWaddr 00:02:44:7B:B5:AF
          inet6 addr: fe80::202:44ff:fe7b:b5af/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1876485 errors:302 dropped:1636 overruns:143 frame:0
          TX packets:1513502 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1957249891 (1.8 GiB)  TX bytes:375074209 (357.6 MiB)
          Interrupt:12 Base address:0x6800

Ostatnio edytowany przez yakubek (2008-09-08 19:20:26)

Offline

 

#16  2008-09-08 19:44:17

  urug - Członek DUG

urug
Członek DUG
Skąd: Częstochowa
Zarejestrowany: 2008-04-22
Serwis

Re: imq jak przekierować ruch na iptables

Może wszystko co ma źródło różne od 192.168.2.0/24 i wychodzi tym interfejsem traktuj jako ruch z serwera?


Pozdrawiam, Tomek

Offline

 

Stopka forum

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