Forum Linux.général Traffic FTP et QoS

Posté par  .
Étiquettes : aucune
0
21
avr.
2009
Bonjour à tous,
En surfant sur la toile j'ai pris ici et là des informations pour créer mon petit script de QoS.
Il s'applique sur une machine qui n'a qu'une seule carte réseau et elle est sur le même LAN que les clients. Donc pas de routage.
Les flux sont marqués avec iptables.

J'ai réparti la QoS en 5 classes de la plus prioritaire à la moins prioritaire :
10-TeamSpeak
11-SSH
12-FTP
13-HTTP
20-Le reste

Lorsque je crée du trafic TeamSpeak,SSH et HTTP, les flux sont bien pris en compte dans leur classe respective. Je le vois bien avec la commande "tc -s -d class ls dev eth0".

Par contre lorsque je crée du trafic FTP il passe toujours dans la classe non prioritaire (numéro 20).
Voici le code :


#!/bin/sh
DEV="eth0"
# Vitesse max de la connexion locale en Kbit/s
MAX_UPLOAD="100000"

HTTP="1024"
FTP="4096"
SSH="128"
TS="256"
NONPRIO="512"

TC="/sbin/tc"
IPTABLES="/sbin/iptables"
echo "TC: ${TC}"

# Remise a zero
${TC} qdisc del dev ${DEV} root 2> /dev/null
${IPTABLES} -t mangle -F
${IPTABLES} -t mangle -Z

# Creation de la classe parente
${TC} qdisc add dev ${DEV} root handle 1: htb default 20
${TC} class add dev ${DEV} parent 1: classid 1:1 htb rate ${MAX_UPLOAD}kbit

${TC} class add dev ${DEV} parent 1:1 classid 1:10 htb rate ${TS}kbit prio 10
${TC} class add dev ${DEV} parent 1:1 classid 1:11 htb rate ${SSH}kbit prio 11
${TC} class add dev ${DEV} parent 1:1 classid 1:12 htb rate ${FTP}kbit prio 12
${TC} class add dev ${DEV} parent 1:1 classid 1:13 htb rate ${HTTP}kbit ceil 2048kbit prio 13
${TC} class add dev ${DEV} parent 1:1 classid 1:20 htb rate ${NONPRIO}kbit prio 20

${TC} qdisc add dev ${DEV} parent 1:10 handle 10: sfq perturb 10
${TC} qdisc add dev ${DEV} parent 1:11 handle 11: sfq perturb 10
${TC} qdisc add dev ${DEV} parent 1:12 handle 12: sfq perturb 10
${TC} qdisc add dev ${DEV} parent 1:13 handle 13: sfq perturb 10
${TC} qdisc add dev ${DEV} parent 1:20 handle 20: sfq perturb 10

${TC} filter add dev ${DEV} parent 1:0 prio 10 protocol ip handle 10 fw flowid 1:10
${TC} filter add dev ${DEV} parent 1:0 prio 11 protocol ip handle 11 fw flowid 1:11
${TC} filter add dev ${DEV} parent 1:0 prio 12 protocol ip handle 12 fw flowid 1:12
${TC} filter add dev ${DEV} parent 1:0 prio 13 protocol ip handle 13 fw flowid 1:13
${TC} filter add dev ${DEV} parent 1:0 prio 20 protocol ip handle 20 fw flowid 1:20

${IPTABLES} -t mangle -A OUTPUT -p udp --sport 8767 -j MARK --set-mark 10
${IPTABLES} -t mangle -A OUTPUT -p udp --dport 8767 -j MARK --set-mark 10
${IPTABLES} -t mangle -A OUTPUT -p tcp --sport ssh -j MARK --set-mark 11
${IPTABLES} -t mangle -A OUTPUT -p tcp --dport ssh -j MARK --set-mark 11
${IPTABLES} -t mangle -A OUTPUT -p tcp --sport 20 -j MARK --set-mark 12
${IPTABLES} -t mangle -A OUTPUT -p tcp --dport 20 -j MARK --set-mark 12
${IPTABLES} -t mangle -A OUTPUT -p tcp --sport ftp -j MARK --set-mark 12
${IPTABLES} -t mangle -A OUTPUT -p tcp --dport ftp -j MARK --set-mark 12
${IPTABLES} -t mangle -A OUTPUT -p tcp --sport http -j MARK --set-mark 13
${IPTABLES} -t mangle -A OUTPUT -p tcp --dport http -j MARK --set-mark 13
${IPTABLES} -t mangle -A OUTPUT -m mark --mark 0 -j MARK --set-mark 20


Pouvez-vous m'éclairer svp ?
Merci d'avance :)
  • # teamspeak ? pourquoi pas mumble ?

    Posté par  (site web personnel) . Évalué à 4.

    Pourquoi ne pas utiliser Mumble qui est libre plutôt que Teamspeak, proprio ?

    Sinon, pour le ftp as-tu bien pris en compte qu'il y a au moins 2 ports concernés ? (celui négocié pour le transfert de données : ports 20 et 21 utilisés en FTP passif, 21 et n'importe lequel en FTP actif).
    • [^] # Re: teamspeak ? pourquoi pas mumble ?

      Posté par  . Évalué à 2.

      Pour TeamSpeak c'est juste pour avoir une appli de test qui se lance directement, pas besoin de l'installer.

      Pour le FTP oui les 2 ports sont bien pris en compte, 20 et 21.
      Je viens de résoudre mon problème...Enfin... J'ai juste changé de serveur FTP.
      Je faisai mes test avec vsftpd et je suis passé sur pure-ftpd et la miracle mon flux est correctement classé (et priorisé of course).

      Merci pour la réponse baud123 je ne connaissai pas Mumble :)

      Sujet clos.
      • [^] # Re: teamspeak ? pourquoi pas mumble ?

        Posté par  . Évalué à 3.

        Ton problème résolu comme ça sent la différence FTP passif/actif. En actif, les ports sont dynamiques, c'est pour ça qu'il faut utiliser conntrack. Là, pure-ftpd doit faire du passif par défaut.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.