[technique] Partage de bande passante sur ligne ADSL

Adrien van den Bossche adrien at mandelfi.net
Mer 7 Déc 11:52:12 CET 2011


Merci Laurent pour tous ces tests.

Tu as bien entendu mon encouragement pour tester ce que tu veux sur 
Monès via gate.

Adrien

Le 07/12/2011 11:26, Laurent GUERBY a écrit :
> On Tue, 2011-12-06 at 19:23 +0100, Cyril wrote:
>> Ok Drien,
>>
>> Et du coup le QoS est appliqué au niveau des IP privées ou des IP
>> publiques ?
>
> Salut Cyril,
>
> La QoS est appliquée sur les IP publiques et qui sortent sur l'interface
> tapstg (qui n'a que des IP publiques de toutes façons). A priori le
> traffic local entre membres ne devrait pas etre affecté (a valider par
> un test de transfert a l'occasion).
>
> Par contre en relisant la doc et mon script je pense que j'ai fait
> deux erreurs :
>
> - Il faut preciser un rate et un ceil sur les regles
> par IP sinon ca ne marche pas et le rate de la classe parente
> est dépassé par la somme des rate des classes filles. Avec un ceil le
> rate peut etre minuscule car la regle est automatiquement de prendre de
> la ressource jusqu'au ceil disponible, j'ai donc mis 1kbit de rate.
>
> - le "parent" a mettre sur les regles par IP n'est pas bon, il faut
> mettre "1:1" et pas "1:" sinon on a pas de ceil global cumulé qui
> s'applique.
>
> Ce qui donne :
>
> function do_qos {
>    tc qdisc add dev $DEV root handle 1: htb default 1
>    tc class add dev $DEV parent 1: classid 1:1 htb rate $RATE
>    for IP in $IP_LIST; do
>      tc class add dev $DEV parent 1:1 classid 1:$IP htb rate 1kbit ceil $RATE
>      tc filter add dev $DEV protocol ip parent 1:0 prio 1 u32 match ip $DIR 91.224.148.$IP flowid 1:$IP
>    done
> }
>
> Comme mes premiers tests ne s'appliquaient qu'a une IP je n'ai pas vu
> le soucis.
>
> Sur Mones j'ai testé en simultané :
>
> scp -o BindAddress=91.224.148.114 test5M monserveur:/dev/null
> scp -o BindAddress=91.224.148.115 test5M monserveur:/dev/null
>
> On arrive bien a ne pas depasser le ceil 96 kbits d'upload de Mones
> et les deux flux sont bien equilibrés. De plus quand on
> rajoute un troisieme scp simultané sur une IP :
>
> scp -o BindAddress=91.224.148.115 test5M monserveur:/dev/null
>
> L'IP avec deux flux n'est pas privilégiée et obtient toujours
> 48 kbps total, ce qu'on veut donc.
>
> J'ai appliqué le nouveau script sur gw pour tapmon et tapstg et a Mones,
> je te laisse faire l'edit sur la VM Saint-Gaudens et le reboot (au
> passage je pense qu'il vaut mieux enlever la regle specifique que tu as
> ajouté pour 91.224.148.7 avec la correction en place et laisser
> uniformement 700kbit partout).
>
> Merci pour vos tests, en esperant que ça marche bien cette fois :).
>
> Sincerement,
>
> Laurent
>
>> Merci :)
>> Cyril
>>
>> Le 06/12/2011 18:59, Adrien van den Bossche a écrit :
>>> Le 06/12/2011 16:45, Cyril a écrit :
>>>> Hello Adrien,
>>>>
>>>> Comment tu attribue tes IP de ton côté ?
>>>> Tu as des IP privées + NAT 1:1 avec les IP publiques ou tu attribue
>>>> directement les IP publiques sur les routeurs ?
>>>
>>> Bonjour,
>>>
>>> sur Monès, c'est IP privées + NAT 1:1 avec les IP publiques sur le
>>> routeur qui tunnelise sur TTNN.
>>>
>>> Drien
>>>
>>>
>>>>
>>>> Merci
>>>> Cyril
>>>>
>>>> Le 06/12/2011 13:32, Adrien van den Bossche a écrit :
>>>>> Hello à tous,
>>>>>
>>>>> pour ma part, les flux ont l'air bien mieux régulés depuis
>>>>> l'application du script. A confirmer sur la durée.
>>>>>
>>>>> Merci Laurent !
>>>>>
>>>>> Adrien
>>>>>
>>>>>
>>>>>
>>>>> Le 06/12/2011 13:18, Cyril a écrit :
>>>>>> Hello !
>>>>>>
>>>>>> Après une petite journée de test en prod, je remarque dans le iftop
>>>>>> que
>>>>>> le débit en upload ne semble pas limité.
>>>>>> De plus, le ping continue à atteindre des seuils importants.
>>>>>>
>>>>>> Dans le script, je fais des appels de ce type :
>>>>>> qos_by_ip_add_ip $ID_IP_QOS $ip_public 'src' 'tapstg' '700kbit'
>>>>>> (rappel des fonctions en fin de mail)
>>>>>>
>>>>>> Si je ne me suis pas trompé en modifiant le script, la règle QoS est
>>>>>> appliquée à tous le trafic provenant le l'IP publique, vers tapstg.
>>>>>>
>>>>>> Néanmoins, un NAT 1:1 est en place entre les IP privées
>>>>>> (172.16.X.X) et
>>>>>> les IP publiques.
>>>>>> Est-ce que je ne devrais pas plutôt appliquer la QoS sur les IP
>>>>>> privées
>>>>>> ? Ou c'est pareil ?
>>>>>>
>>>>>> Merci :)
>>>>>> Cyril
>>>>>>
>>>>>> function qos_by_ip_init {
>>>>>> local dev=$1
>>>>>> local rate=$2
>>>>>>
>>>>>> tc qdisc add dev $dev root handle 1: htb default 1
>>>>>> tc class add dev $dev parent 1: classid 1:1 htb rate $rate
>>>>>> }
>>>>>>
>>>>>> function qos_by_ip_add_ip {
>>>>>> local id_host=$1
>>>>>> local ip=$2
>>>>>> local dir=$3
>>>>>> local dev=$4
>>>>>> local rate=$5
>>>>>>
>>>>>> echo "QoS IP $ip (id : $id_host) : $rate sur $dev";
>>>>>> tc class add dev $dev parent 1: classid 1:$id_host htb rate $rate
>>>>>> tc filter add dev $dev protocol ip parent 1:0 prio 1 u32 match ip $dir
>>>>>> $ip flowid 1:$id_host
>>>>>> }
>>>>>>
>>>>>>
>>>>>> Le 05/12/2011 11:50, Laurent GUERBY a écrit :
>>>>>>> On Mon, 2011-12-05 at 10:52 +0100, Cyril wrote:
>>>>>>>> Bonjour Laurent,
>>>>>>> Bonjour Cyril,
>>>>>>>
>>>>>>>> Merci pour ton travail.
>>>>>>>>
>>>>>>>> Si je comprend bien :
>>>>>>>> * La QoS sur le débit descendant est en place sur Paris car
>>>>>>>> c'est le routeur Parisien qui collecte le flux et le renvoi
>>>>>>>> par le biais du tunnel VPN ?
>>>>>>> Je n'ai pas activé les regles mais oui c'est l'idée. Je vais
>>>>>>> activer sur gw pour tapstg d'ici quelques minutes.
>>>>>>>
>>>>>>>> * La QoS sur le débit descendant n'est pas encore gérée et doit
>>>>>>>> être placée sur le serveur de routage local qui envoi le flux
>>>>>>>> de données sur le GW à Paris ?
>>>>>>> Oui.
>>>>>>>
>>>>>>>> Dans le cas de St Gaudens, j'ai adapté un chouilla la syntaxe du
>>>>>>>> script pour garder une cohérence avec ceux déjà en place.
>>>>>>>> Je le met en fin de mail, pour toutes fins utiles.
>>>>>>> Je pense qu'il faut mettre dans le script :
>>>>>>>
>>>>>>> ID_IP_QOS=2
>>>>>>>
>>>>>>> (plutot que =1)
>>>>>>>
>>>>>>> La classid 1:1 est definie dans qos_by_ip_init les regles
>>>>>>> users doivent commencer a 1:2 sinon le premier user
>>>>>>> va partager le classid 1:1 avec le traffic non identifié.
>>>>>>>
>>>>>>> Pour le '700kbit' je n'ai pas mesuré j'ai mis au pif,
>>>>>>> l'idée est de se placer plutot en dessous (par tatonnement) : si ça
>>>>>>> marche on devrait avoir un ping qui redevient normal même
>>>>>>> en charge.
>>>>>>>
>>>>>>>> Sinon, est-t-il possible de flusher toutes les règles TC ?
>>>>>>>> Ce serait intéressant pour mon script.
>>>>>>> Pour voir les regles dans le detail :
>>>>>>>
>>>>>>> tc -s -d qdisc show dev $DEV
>>>>>>> tc -s -d class show dev $DEV
>>>>>>> tc -s -d filter show dev $DEV
>>>>>>>
>>>>>>> Pour supprimer :
>>>>>>>
>>>>>>> tc qdisc del dev $DEV root
>>>>>>>
>>>>>>>> Petite remarque :
>>>>>>>> Pour tapstg tu as mis "RATE=11000kbit" et pour les autres
>>>>>>>> "DOWN=5500kbit", sans doute une erreur ?
>>>>>>> Oui j'ai changé "DOWN" en "RATE" quand je me suis aperçu
>>>>>>> que les regles etaient les memes pour Paris et en local.
>>>>>>>
>>>>>>> Merci pour ta revue !
>>>>>>>
>>>>>>> Laurent
>>>>>>>
>>>>>>>
>>>>>> _______________________________________________
>>>>>> technique mailing list
>>>>>> technique at lists.tetaneutral.net
>>>>>> http://lists.tetaneutral.net/listinfo/technique
>>>>>
>
>




Plus d'informations sur la liste de diffusion technique