Ein Meter verfolgt die Übertragungsrate von Datenströmen auf Paketbasis. Der Meter bestimmt, ob das Paket den konfigurierten Parametern entspricht. Das Metermodul bestimmt die nächste Aktion für ein Paket aus einer Reihe von Aktionen. Diese Aktion hängt von der Paketgröße, den konfigurierten Parametern und der Datenflussrate ab.
Der Meter besteht aus Metermodulen, tokenmt und tswtclmt, die Sie in der IPQoS-Konfigurationsdatei definieren. Sie können entweder ein Modul oder beide für eine Klasse konfigurieren.
Bei der Konfiguration eines Metermoduls können Sie zwei Parameter für die Rate definieren:
committed-rate – Definiert die akzeptable Übertragungsrate in Bit pro Sekunde für Pakete einer bestimmten Klasse
peak-rate – Definiert die maximale Übertragungsrate im Bit pro Sekunde, die für Pakete einer bestimmten Klasse zulässig ist
Eine Messaktion an einem Paket kann zu einem von drei möglichen Ergebnissen führen:
grün – Das Paket führt dazu, dass der Datenfluss innerhalb der committed rate bleibt.
gelb – Das Paket führt dazu, dass der Datenfluss die committed rate übersteigt, aber unter der peak rate bleibt.
rot – Das Paket führt dazu, dass der Datenfluss die peak rate übersteigt.
Sie können jedes Ergebnis mit anderen Aktionen in der IPQoS-Konfigurationsdatei konfigurieren. Committed rate und peak rate werden im folgenden Abschnitt erklärt.
Das tokenmt-Modul verwendet token buckets, um die Übertragungsrate eines Datenflusses zu messen. Sie können tokenmt als Single-Rate- oder Two-Rate-Meter konfigurieren. Eine tokenmt-Aktionsinstanz verwaltet zwei Token Buckets, die feststellen, ob der Verkehrswert den konfigurierten Parametern entspricht.
Wie IPQoS das Token Meter-Paradigma umsetzt wird in der Manpage tokenmt(7ipp) beschrieben. Allgemeine Informationen zu Token Buckets finden Sie in Kalevi Kilkki's Differentiated Services for the Internet und auf verschiedenen anderen Websites.
Die Konfigurationsparameter für tokenmt sind:
committed_rate – Legt die committed rate für den Datenfluss in Bit pro Sekunde fest.
committed_burst – Legt die committed burst-Größe in Bit fest. Der committed_burst-Parameter legt fest, wie viele abgehende Pakete einer bestimmten Klasse bei committed rate in das Netzwerk passieren können.
peak_rate – Legt die peak rate in Bit pro Sekunde fest.
peak_burst – Legt die peak oder excess burst-Größe in Bit fest. Der peak_burst-Parameter gewährt einer Verkehrsklasse eine peak-burst-Größe, die die committed rate übersteigt.
color_aware – Aktiviert den Erkennungsmodus für tokenmt.
color_map – Definiert ein Array mit ganzen Zahlen, das DSCP-Werte den Farben grün, gelb und rot zuordnet.
Um tokenmt als einen Single-Rate Meter zu konfigurieren, geben Sie keinen peak_rate-Parameter für tokenmt in der IPQoS-Konfigurationsdatei an. Damit eine Single-Rate tokenmt-Instanz das Ergebnis rot, grün oder gelb liefert, müssen Sie den peak_burst-Parameter angeben. Wenn Sie den peak_burst-Parameter nicht verwenden, kann tokenmt als Ergebnis nur rot oder grün liefern. Ein Beispiel für eine Single-Rate tokenmt mit zwei Ergebnissen finden Sie in Beispiel 34–3.
Wenn tokenmt als Single-Rate Meter eingesetzt wird, ist der peak_burst-Parameter tatsächlich die excess burst-Größe. committed_rate und entweder committed_burst oder peak_burst müssen positive ganze Zahlen ungleich Null sein.
Um tokenmt als einen Two-Rate Meter zu konfigurieren, geben Sie einen peak_rate-Parameter für tokenmt in der IPQoS-Konfigurationsdatei an. Eine Two-Rate tokenmt-Instanz hat immer drei mögliche Ergebnisse: rot, gelb und grün. Die Parameter committed_rate, committed_burst und peak_burst müssen positive ganze Zahlen ungleich Null sein.
Damit eine Two-Rate tokenmt-Instanz Farben erkennen kann, müssen Sie zwei Parameter für die „Farberkennung„ spezifisch hinzufügen. Im Folgenden finden Sie ein Beispiel für eine action-Anweisung, die tokenmt zur Erkennung von Farben konfiguriert.
action { module tokenmt name meter1 params { committed_rate 4000000 peak_rate 8000000 committed_burst 4000000 peak_burst 8000000 global_stats true red_action_name continue yellow_action_name continue green_action_name continue color_aware true color_map {0-20,22:GREEN;21,23-42:RED;43-63:YELLOW} } }
Sie aktivieren die Farberkennung, indem Sie den color_aware-Parameter auf true setzen. Als farbempfindliches Metermodul geht tokenmt davon aus, dass das Paket bereits in einer früheren tokenmt-Aktion mit rot, gelb oder grün markiert wurde. Ein farbbewusstes tokenmt-Modul wertet ein Paket aus, indem es den DSCP im Paket-Header zusätzlich zu den Parameter für ein Two-Rate Meter verwendet.
Der color_map-Parameter enthält ein Array, in dem der DSCP im Paket-Header zugeordnet ist. Betrachten Sie das folgende color_map-Array:
color_map {0-20,22:GREEN;21,23-42:RED;43-63:YELLOW}
Pakete mit einem DSCP zwischen 0 und 20 sowie 22 werden „grün“ zugeordnet. Pakete mit einem DSCP von 21 und zwischen 23 und 42 sind „rot“ zugeordnet. Pakete mit einem DSCP zwischen 43 und 63 sind„gelb“ zugeordnet. tokenmt unterhält eine Standard-Farbkarte. Sie können die Standardeinstellungen jedoch Ihren Anforderungen entsprechend mit den color_map-Parameter anpassen.
In den color_action_name-Parameter können Sie continue angeben, um die Verarbeitung des Pakets abzuschließen. Oder Sie fügen ein Argument hinzu, um das Paket an eine Marker-Aktion zu senden, beispielsweise an yellow_action_name mark22.
Das Metermodul tswtclmt schätzt die durchschnittliche Bandbreite einer Verkehrsklasse mithilfe eines Zeit-basierten Rate Estimator. tswtclmt wird immer als Three-Outcome Meter eingesetzt. Der Rate Estimator bietet eine Schätzung des eingehenden Datenverkehrs. Diese Rate muss etwa der laufenden durchschnittlichen Bandbreite des Datenflusses über eine bestimmte Zeit, dem Zeitfenster entsprechen. Der Rate Estimation-Algorithmus stammt aus RFC 2859, A Time Sliding Window Three Colour Marker.
Zur Konfiguration von tswtclmt verwenden Sie die folgenden Parameter:
committed_rate – Legt die Committed Rate in Bit pro Sekunde fest
peak_rate – Legt die Peak Rate in Bit pro Sekunde fest
window – Definiert das Zeitfenster in Millisekunden, über das der Verlauf der durchschnittlichen Bandbreite erfasst wird
Technische Informationen zu tswtclmt finden Sie in der Manpage tswtclmt(7ipp) Allgemeine Information zu Rate Shapern, die ähnlich zu tswtclmt sind, finden Sie unter RFC 2963, A Rate Adaptive Shaper for Differentiated Services.