Also, FreeBSD bietet zwei Trafficshaper und beide werden über die Paketfilter angesprochen. Prinzipiell routet der Paketfilter die Pakete in den Trafficshaper, der sie entsprechend behandelt. Was du willst, ist mit beiden Lösungen absolut problemlos möglich.
Option 1 ist "dummynet". Dummynet wurde speziell für FreeBSD geschrieben, war Mitte der 90er einer der ersten für die breite Masse verfügbaren Trafficshaper und integriert ausschließlich in ipfw2. Dummynet ist in Sachen Features praktisch ungeschlagen, er kann Bandbreiten begrenzen, Pakete priorisieren, Pakete verlangsamen, Paketverlust simulieren (lustig um WOW-Spieler zu ärgern) und noch einiges mehr. Dazu bietet er verschiedene Algorithmen zur Paketgewichtung. Dummynet wird außerdem in einer ganzen Reihe professioneller Netzwerkprodukte eingesetzt, u.a. Anwendungen von Cisco, Juniper, Isilon und Netapp integrieren ihn. Auch im ISP-Bereich ist Dummynet beliebt. Grund ist neben den vielfältigen Möglichkeiten vor allem die hohe Geschwindigkeit und der geringe Overhead. Nachteilig ist, dass Dummynet recht komplex ist und nicht gerade eingänglich. Was auch für das benötigte ipfw2 gilt. Auch findet man im Netz nur wenige, gute Anleitungen. Dummynet kann als Modul geladen werden und benötigt keinen angepassten Kernel.
Option 2 ist ALTQ. ALTQ wurde ursprünglich losgelöst von BSDs entwickelt, aber irgendwann von OpenBSD in pf integeriert. ALTQ kann man unter FreeBSD mit ipfw2 und pf nutzen, je nach dem was man bevorzugt. ALTQ benötigt Unterstützung durch die Netzwerkkarte, aber praktisch alle relevanten sind unterstützt. Außerdem muss man einen angepassten Kernel bauen. Der große Vorteil von ALTQ ist, dass es einfach ist und gut dokumentiert. Einen Filter mit ALTQ zu bauen ist merklich einfacher als mit Dummynet, dafür kann ALTQ aber weniger. Zum Beispiel keine Pakete verzögern. Auch sind die SMP-Fähigkeiten von ALTQ begrenzt.
Jetzt endlich hängt es halt von den persönlichen Präferenzen ab. Ein wirkliches "besser" und "schlechter" gibt es zwischen beiden eigentlich nicht. Im Zweifel würde ich zu ALTQ raten, da es einfach deutlich einfacher einzurichten ist, als Dummynet.
Zum Lesen:
Die Manpage zu ipfw enthält auch gleich die Doku zu Dummynet:
http://www.freebsd.org/cgi/man.cgi?...ion=0&manpath=FreeBSD+7.2-RELEASE&format=html
ALTQ:
http://www.freebsd.org/cgi/man.cgi?...ion=0&manpath=FreeBSD+7.2-RELEASE&format=html
ALTQ in der OpenBSD FAQ:
http://www.openbsd.org/faq/pf/queueing.html#altq