Quality of Service

!=Begriffstutzig

Notwendigkeiten

Grundgedanken

Umsetzung

Pakete Sortieren

Warteschlangen konfigurieren

kurz & fertig

UPLINK=120 DOWNLINK=980 OUTDEV=eth0 }}}

  1. bisherige Warteschlangen loeschen

    tc qdisc del dev $OUTDEV root    &>/dev/null
    tc qdisc del dev $OUTDEV ingress &>/dev/null
  2. neu anlegen

    tc qdisc add dev $OUTDEV root handle 1: htb default 14
  3. die Gesamtwarteschlange verhindert, dass die Queue des ISP voll wird

    tc class add dev $OUTDEV parent 1: classid 1:1 htb rate ${UPLINK}kbit burst 6k
  4. Warteschlangen erzeugen

    tc class add dev $OUTDEV parent 1:1 classid 1:11 htb rate ${UPLINK}kbit burst 6k prio 1
  5. fuer die wichtigen Pakete (ssh und ack)

    tc class add dev $OUTDEV parent 1:1 classid 1:12 htb rate $[UPLINK*19/20]kbit burst 6k prio 2
  6. das Labor-Netz

    tc class add dev $OUTDEV parent 1:1 classid 1:13 htb rate $[UPLINK*19/20]kbit burst 6k prio 3
  7. das WG-Netz

    tc class add dev $OUTDEV parent 1:1 classid 1:14 htb rate $[UPLINK*19/20]kbit burst 6k prio 4
  8. alle anderen da draussen
  9. stochastische Fairness aktivieren, damit alle Sitzungen in einer Schlange "gut" durchkommen

    tc qdisc add dev $OUTDEV parent 1:11 handle 11: sfq perturb 10
    tc qdisc add dev $OUTDEV parent 1:12 handle 12: sfq perturb 10
    tc qdisc add dev $OUTDEV parent 1:13 handle 13: sfq perturb 10
    tc qdisc add dev $OUTDEV parent 1:14 handle 14: sfq perturb 10
  10. die iptables-Markierungen zum Filtern verwenden

    tc filter add dev $OUTDEV parent 1: protocol ip handle 1 fw flowid 1:11
    tc filter add dev $OUTDEV parent 1: protocol ip handle 2 fw flowid 1:12
    tc filter add dev $OUTDEV parent 1: protocol ip handle 3 fw flowid 1:13
    tc filter add dev $OUTDEV parent 1: protocol ip handle 4 fw flowid 1:14
  11. etwas verlangsamen, um die Queue beim ISP nicht zu fuellen

    tc qdisc add dev $OUTDEV handle ffff: ingress
    tc filter add dev $OUTDEV parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate $[DOWNLINK/2]kbit burst 1
    0k drop flowid :1

Quellen


Creative Commons Lizenzvertrag
This page is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.