Blockieren oder Weiterleiten von Paketen als Zugangspunkt

1

Ich habe meinen Pi 2 nach diesem Tutorial als WLAN-Zugangspunkt eingerichtet .

Ich möchte eine rudimentäre QoS entsprechend dem DSCP-Feld im Header jedes Pakets implementieren. Dies bedeutet, dass Pakete mit Diensten niedriger Priorität blockiert werden (für verbundene Hosts, die z. B. E-Mails senden) und Pakete mit Diensten hoher Priorität weitergeleitet werden (für verbundene Hosts, die z. B. VoIP verwenden).

Ich weiß nicht, wo ich anfangen soll: Wie kann ich Wartepakete einreichen und sie dann senden oder sie weiterleiten, wenn sie dringend sind?

Technisch gesehen muss ich auf meinem WiFi-Dongle ( wlan0) nach Paketen suchen , das DSCP-Feld jedes Pakets sehen und sie dann über das Ethernet-Kabel ( eth0) senden oder warten.

Ich habe keine Ahnung, wo ich anfangen soll.

EDIT 1 : Laut meinem Professor ist die Überprüfung des DSCP-Feldes nicht zuverlässig, da es nicht immer mit etwas gefüllt ist. Ich schaue mir also einfach die Adresse an und überprüfe anhand der Adresse der Site, von welchem ​​Dienst Pakete gesendet wurden.

elmazzun
quelle
Haben Sie untersucht, ob iptableses für diesen Zweck geeignet ist?
Goldlöckchen
Ich habe diese Manpage manpages.ubuntu.com/manpages/utopic/man8/… gelesen , sie scheint voller interessanter Dinge zu sein. Danke, ich werde es versuchen.
elmazzun
Sieht so aus, als könnten Sie auf dem DSCP-Feld übereinstimmen. Iptables haben möglicherweise eine gewisse anfängliche Lernkurve, wenn Sie sie noch nicht verwendet haben, aber Sie möchten auf jeden Fall, wenn Sie einen AP einrichten. Ich fand dieses Geekstuff-Tutorial eine gute Einführung, und danach gibt es die erschöpfende, endlos unterhaltsame Iptables-Info- Site. Wenn Sie das schaffen, hinterlassen Sie bitte eine eigene Antwort!
Goldlöckchen
Das Problem ist: Dies ist ein universitäres Projekt. Daher würde ich gerne weniger vorhandene Bibliotheken (z. B. libiptc) oder Frameworks verwenden ... natürlich, wenn möglich.
Elmazzun
Ich glaube nicht, dass ich das alleine machen kann, ich brauche wirklich einige Bibliotheken. Dennoch konnte ich nicht herausfinden, wie ich Pakete mit niedriger Priorität in Wartestellung bringen und nach Paketen mit hoher Priorität weiterleiten sollte.
Elmazzun

Antworten:

0

Die Bibliothek libnetfilter_queue aus dem Netfilter-Projekt scheint übrigens: von netfilter.org:

libnetfilter_queue ist eine Userspace-Bibliothek, die eine API für Pakete bereitstellt, die vom Kernel-Paketfilter in die Warteschlange gestellt wurden. Es ist Teil eines Systems, das den alten ip_queue / libipq-Mechanismus nicht mehr unterstützt.

Ich stelle Pakete in eine Warteschlange mit:

sudo iptables -I FORWARD (parameters) -j NFQUEUE --queue-num x

und mit libnetfilter_queue kann ich auf Pakete zugreifen, die in der obigen Warteschlange gespeichert sind.

elmazzun
quelle