[Frage] QoS: DSCP/TOS=EF oder C5 möglich?

Nebelkater

Neuer User
Mitglied seit
22 Mai 2006
Beiträge
64
Punkte für Reaktionen
0
Punkte
0
Mal eine QoS-Frage heute, vermutlich wird das Ganze wieder mal auf die Fragestellung hinauslaufen, aber welcher Asterisk-Version das geht.

Ich würde eigentlich in der sip.conf den tos-Parameter sehr gerne auf

Expedited Forwarding (EF), sprich tos=0xb8 bzw. 184
oder auf
Class Selector 5 (CS5), sprich tos=0xa0 bzw. 160

einstellen, das funktioniert zumindest hier vor Ort gerade (mit * 1.0.7) aber leider nicht, obwohl man solche Konfigs auch finden kann via google.

"WARNING[8331]: rtp.c:920 ast_rtp_settos: Unable to set TOS to 184"

Die TOS- bzw. DSCP-Definition auf Assured Forwarding zu setzen, beispielweise AF11 (DSCP 10), funktioniert dagegen einwandfrei, tos=0x28 für das genannte Beispiel.

Also vermute ich mal, dass EF und eventuell auch CS5 erst im 1.2er Zweig unterstützt werden?


Eine andere Frage in dem Zusammenhang, imho sehr spärlich dokumentiert (im voip-info.org Wiki scheinbar gar nicht erwähnt), ist die Verwendung von tos_audio und tos_sip (und ggf. tos_video) anstelle des "gesammelten" tos.

Beispiel:
tos_sip=cs3
tos_audio=ef
tos_video=af41

Auch hier die Frage: kann jemand sagen, ab wann diese Unterscheidung in Sprach/Video (RTP)- und Signalisierungsprotokollpakete definitiv möglich ist? Bei 1.0.7 geht's offensichtlich nicht (hier logischerweise mit tos_audio=0x28 getestet) und ich möchte es nicht unbedingt auf jedem System mit unterschiedlicher Asterisk-Version erst extra ausprobieren, wenn sich das vermeiden lässt :rolleyes:
 
Zuletzt bearbeitet:
Hat Asterisk überhaupt die Rechte um das gewünschte TOS zu setzen, sicher nicht, wer lässt Asterisk schon als root laufen.

Klar macht es Sinn Audio Pakete höher als die SIP-Protokolldaten zu gewichten.


Am besten machst Du das in der mangle table, da gibt es dann auch keine Rechteprobleme.
 
Ob es Sinn macht, war ja nicht die Frage ;)

Ausgeführt wird es unter user asterisk, aber die RTP-Pakete werden durchaus entsprechend gekennzeichnet, das kann man mit einem Network Sniffer (in dem Fall Wireshark) ja relativ leicht überprüfen.
 
Nur root kann die high-bits von TOS setzen.

Schau mal hier, da gibt es einen würg-around dazu.
http://bugs.digium.com/view.php?id=7047

Ich sehe trotzdem keinen Grund das zu verwenden. Ein Programm sollte nicht mehr Rechte als notwendig haben und in der mangle table kann man das wunderbar konfigurieren.
 
Uff, gut dass diese Nacht eine Stunde mehr hat, die hab' ich mindestens gebraucht um diese Lösung zu finden :crazy:.
Danke an Thomas007 für den Tip mit der mangle-Table.

Die folgende Zeile setzt DSCP auf EF für alle Pakete, die mit einem TOS 0x10 (low delay) daherkommen. Das setze ich im Asterisk. Da der auf dem Router läuft, kann ich die OUTPUT-Regeln verwenden. (Sonst müsste man wohl FORWARD oder POSTROUTING nehmen).
Code:
iptables -t mangle -A OUTPUT -m tos --tos 0x10 -j DSCP --set-dscp-class EF
Vorher hatte ich im Asterisk alles Mögliche versucht, aber der kann das wirklich nicht (unabhängig von den Root-Rechten). Habe das hier kommentiert: http://www.voip-info.org/wiki/view/DiffServ

Nun kommt aber der Hammer :blonk:: Das DSCP-Flag wird (höchstwahrscheinlich) von unserem Broadnet-Router weggeworfen! :mad: (ein Speedtouch SDSL-Router).

Ich habe eine Verbindung zwischen zwei Asterisk und kontrolliere auf beiden Enden mit Wireshark die Pakete. Als ich noch ohne DSCP nur mit dem TOS 0x10 gearbeitet habe, kamen die SIP- und IAX-Pakete auch mit dem 0x10-Flag am jeweils anderen Asterisk an. Jetzt ist das Byte 0x00, und zwar in beiden Richtungen.

Wenn jemand einen Asterisk und einen Linux-Router hat, würde ich mich freuen wenn das jemand mal mit mir testen mag, ob das DSCP-Flag übers Internet durchkommt.

Udo

Edit 30.10.06: Das der Router das Flag selber ändert oder setzt ist nach RFC offenbar OK. (Naja, sonst würde jeder sagen, dass sein Traffic natürlich der wichtigste der Welt ist).
PS: Wie kann man hier eigentlich Text durchstreichen?
 
Habe heute den ganzen Tag versucht zu verstehen wie das QoS auf dem Speedtouch 516 funktioniert um die IAX2 Packete einzutüten. Der hat eine RealTimeQueue, in die kommen u.a. alle DSCP "EF" markierten Pakete. Daraufhin vergeblich versucht das TOS feld in iax.conf zu setzen. Dann auf die o.g. iptable -t mangle Regel verfallen. Jetzt, wo es funktioniert, habe ich den Beitrag erst gefunden :rolleyes:
Na ja, jedenfalls geht es jetzt . :)
Bin mir nur nicht sicher, ob das so bis Provider durchgereicht wird.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.