[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: QoS



As-tu trouvé la solution ?

Une piste :

tc qdisc add dev eth1 root handle 1: htb default 100

signifie que tout paquet non marqué ira dans la classe 1:100

Hors je ne vois pas de classe 1:100 dans ton script.

Samuel.


Le 09/01/2015 14:25, BERTRAND Joël a écrit :
Bonjour à tous,

Considérons un serveur connecté à deux interfaces WAN (eth1 et eth2, le LAN est sur eth0).

        Les adresses IP sont les suivantes :
        eth1 : 192.168.254.1
        eth1:1 : 192.168.254.81
        ...
        eth1:6 : 192.168.254.86

        eth2 : 192.168.253.1

Tourne sur cette machine un proxy qui tire au hasard une adresse entre eth1:1 et eth1:6 pour se connecter sur les serveurs distants. Ça fonctionne.

Je veux rajouter une QoS sur cette machine. Pour cela, j'ai tagué les différents paquets comme suit :

[0:0] -A POSTROUTING -p icmp -o eth1 -j MARK --set-mark 10
[0:0] -A POSTROUTING -p icmp -o eth2 -j MARK --set-mark 10
[0:0] -A POSTROUTING -p udp --dport domain -o eth1 -j MARK --set-mark 20
[0:0] -A POSTROUTING -p udp --sport domain -o eth1 -j MARK --set-mark 20
[0:0] -A POSTROUTING -p udp --sport domain -o eth2 -j MARK --set-mark 20
[0:0] -A POSTROUTING -p udp --dport ntp -o eth1 -j MARK --set-mark 20
[0:0] -A POSTROUTING -p udp --sport ntp -o eth1 -j MARK --set-mark 20
[0:0] -A POSTROUTING -p udp --sport ntp -o eth2 -j MARK --set-mark 20
[0:0] -A POSTROUTING -p tcp --sport 3128 -o eth2 -j MARK --set-mark 30
[0:0] -A POSTROUTING -p tcp --sport ssh -o eth1 -j MARK --set-mark 40
[0:0] -A POSTROUTING -p tcp --sport ssh -o eth2 -j MARK --set-mark 40

tc qdisc add dev eth1 root handle 1: htb default 100
tc qdisc add dev eth2 root handle 2: htb default 100

tc class add dev eth1 parent 1:0 classid 1:1 htb \
        rate 1100kbit mtu 1500
tc class add dev eth2 parent 2:0 classid 2:1 htb \
        rate 3mbit mtu 1500

tc class add dev eth1 parent 1:1 classid 1:10 htb \
        rate 10kbit ceil 1100kbit prio 1
tc class add dev eth1 parent 1:1 classid 1:20 htb \
        rate 200kbit ceil 1100kbit prio 2
tc class add dev eth1 parent 1:1 classid 1:40 htb \
        rate 500kbit ceil 1100kbit prio 4
tc class add dev eth2 parent 2:1 classid 2:10 htb \
        rate 10kbit ceil 3mbit prio 1
tc class add dev eth2 parent 2:1 classid 2:20 htb \
        rate 200kbit ceil 3mbit prio 2
tc class add dev eth2 parent 2:1 classid 2:30 htb \
        rate 1mbit ceil 2mbit prio 3
tc class add dev eth2 parent 2:1 classid 2:40 htb rate \
        500kbit ceil 3mbit prio 4

tc filter add dev eth1 parent 1: protocol ip prio 1 handle 10 \
        fw flowid 1:10
tc filter add dev eth1 parent 1: protocol ip prio 2 handle 20 \
        fw flowid 1:20
tc filter add dev eth1 parent 1: protocol ip prio 4 handle 40 \
        fw flowid 1:40
tc filter add dev eth2 parent 2: protocol ip prio 1 handle 10 \
        fw flowid 2:10
tc filter add dev eth2 parent 2: protocol ip prio 2 handle 20 \
        fw flowid 2:20
tc filter add dev eth2 parent 2: protocol ip prio 3 handle 30 \
        fw flowid 2:30
tc filter add dev eth2 parent 2: protocol ip prio 4 handle 40 \
        fw flowid 2:40

        J'aimerais avec cela que les l'ICMP, le ssh et certains autres
protocoles aient un débit minimal réservé et que le reste utilise la
bande passante restante. Visiblement, j'ai raté quelque chose
puisque cela ne fonctionne pas. Une requête sur le serveur apache
est capable de monopoliser toute la bande disponible au détriment
des autres protocoles.

        Une idée ?

        Cordialement,

        JKB



Reply to: