Privilégier le trafic VoIP

Le
geo cherchetout
Bonjour,

J'utilise pour téléphoner des softphones comme Twinkle, Ekiga, Wengophone.
Ma connexion adsl autorise un débit de 1024 kb/s dans le sens descendant et
seulement 128 kb/s dans le sens montant alors que les flux de données VoIP
entrant et sortant atteignent 64 kb/s avec mes codecs préférés. Lors d'une
communication, il n'est pas rare que d'autres trafics viennent concurrencer
la transmission de la voix et la mienne parvient à mes interlocuteurs avec
des trous très désagréables. Pour les concurrents que je maîtrise, je sais
que je pourrais déconnecter mon courrieleur, arrêter bittorrent et mon petit
serveur ftp mais ce n'est pas pratique et, de plus, je ne maîtrise pas tous
les échanges de données entre mon pc (sous Mandriva 2007.1) et l'extérieur.
D'où l'idée de mettre en place une gestion élémentaire des flux.

J'ai donc appliqué avec d'infimes modifications la méthode indiquée dans ce
document pas très récent :
http://okki666.free.fr/docmaster/articles/linux133.html
ce qui se traduit par l'ajout des lignes suivantes dans mon fichier
/etc/rc.d/rc.local :

# Definir une file d'attente racine pour le peripherique eth0
tc qdisc add dev eth0 root handle 10: cbq bandwidth 100Mbit avpkt 1000 mpu 64

# Marquer les paquets courts et les paquets longs
iptables -t mangle -A OUTPUT -m length --length 0:500 -j MARK --set-mark 3
iptables -t mangle -A OUTPUT -m length --length 500:1500 -j MARK --set-mark 4

# Definir deux classes, une pour chaque type de trafic
tc class add dev eth0 parent 10:0 classid 10:1 cbq bandwidth 100Mbit rate
64Kbit allot 1514 prio 1 maxburst 10 avpkt 100 isolated
tc class add dev eth0 parent 10:0 classid 10:2 cbq bandwidth 100Mbit rate
64Kbit allot 1514 prio 8 maxburst 2 avpkt 1500 bounded

# Indiquer quelle classe utiliser pour chaque type de trafic
tc filter add dev eth0 parent 10:0 protocol ip handle 3 fw flowid 10:1
tc filter add dev eth0 parent 10:0 protocol ip handle 4 fw flowid 10:2

Ces commandes sont bien exécutées puisque :

# service iptables status
Table : mangle
Chain PREROUTING (policy ACCEPT)
target prot opt source destination

Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
MARK all -- anywhere anywhere length 0:500 0x3
MARK all -- anywhere anywhere length 500:1500
MARK set 0x4

# tc qdisc show dev eth0
qdisc cbq 10: rate 100000Kbit (bounded,isolated) prio no-transmit

# tc class show dev eth0
class cbq 10: root rate 100000Kbit (bounded,isolated) prio no-transmit
class cbq 10:1 parent 10: rate 64000bit (isolated) prio 1
class cbq 10:2 parent 10: rate 64000bit (bounded) prio no-transmit

Mais je n'observe aucune amélioration dans mes communications téléphoniques.
Il suffit qu'un transfert de fichier par FTP soit en cours pour que la voix
soit hachée comme si je n'avais rien fait.

J'ai sûrement fait des erreurs dans mes choix car je ne connais pas
grand-chose en matière de réseaux (comme dans tant d'autres domaines), après
quelques heures consacrées à la lecture des pages de man de tc et iptables
et de quelques documents qui me semblent assez complets mais indigestes. Si
ça peut vous aider à m'aider, je ne peux me retenir de vous indiquer
celui-ci, en français et récent :
http://www.linux-france.org/prj/inetdoc/telechargement/iptables-tutorial.pdf

Merci de me montrer mes erreurs et de me proposer une solution, si c'est
possible.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
sebas22
Le #1912534
On Tue, 05 Feb 2008 17:57:50 +0100, geo cherchetout

Bonjour,
Salut


J'utilise pour téléphoner des softphones comme Twinkle, Ekiga, Wengophone.
Ma connexion adsl autorise un débit de 1024 kb/s dans le sens descendant et
seulement 128 kb/s dans le sens montant alors que les flux de données VoIP
entrant et sortant atteignent 64 kb/s avec mes codecs préférés. Lors d'une
communication, il n'est pas rare que d'autres trafics viennent concurrencer
la transmission de la voix et la mienne parvient à mes interlocuteurs avec
des trous très désagréables. Pour les concurrents que je maîtrise, je sais
que je pourrais déconnecter mon courrieleur, arrêter bittorrent et mon petit
serveur ftp mais ce n'est pas pratique et, de plus, je ne maîtrise pas tous
les échanges de données entre mon pc (sous Mandriva 2007.1) et l'extérieur.
D'où l'idée de mettre en place une gestion élémentaire des flux.


Fais une recherche avec QoS
(QoS = Quality of Service, ça te permet d'attribuer de la bande à
chaque programme)

Par exemple : http://www.voip-info.org/wiki/view/QoS , mais tu vas
surement trouver des liens meilleurs

--
Ciao,
Sebas

geo cherchetout
Le #1912533
Le 05.02.2008 18:54, *sebas22* a écrit fort à propos :

Fais une recherche avec QoS
(QoS = Quality of Service, ça te permet d'attribuer de la bande à
chaque programme)


Merci, c'est par là que j'ai commencé mais je n'ai peut-être pas pris la
bonne voie ensuite...

Par exemple : http://www.voip-info.org/wiki/view/QoS , mais tu vas
surement trouver des liens meilleurs


Publicité
Poster une réponse
Anonyme