第25章 Linux トラフィックの制御
Linux Traffic Control (TC) は、ネットワークトラフィックのポリシング、分類、シェーピング、およびスケジューリングを支援します。キューイング規則 (qdisc) とフィルターを使用して、パケットコンテンツの書き換えを含め、パケット転送を管理および操作します。
スケジューリングメカニズムは、異なるキューに入るか、終了する前にパケットを設定または再編成します。最も一般的なスケジューラーは First-In-First-Out (FIFO) スケジューラーです。qdiscs 操作は、tc ユーティリティーを使用して一時的に、NetworkManager を使用して永続的に実行できます。
Red Hat Enterprise Linux では、デフォルトのキューの規則をさまざまな方法で設定して、ネットワークインターフェイスのトラフィックを管理できます。
25.1. キュー規則の概要 リンクのコピーリンクがクリップボードにコピーされました!
グルーピング規則 (qdiscs) は、ネットワークインターフェイスによるトラフィックのスケジューリング、後でキューに役に立ちます。
qdisc には 2 つの操作があります。
- パケットを後送信用にキューに入れるできるようにするキュー要求。
- キューに置かれたパケットのいずれかを即時に送信できるように要求を解除します。
各 qdisc には、handle と呼ばれる 16 ビットの 16 進数の識別番号があります。この番号にはコロンが付いています (例: 1: または abcd:)。この番号は qdisc メジャー番号と呼ばれます。qdisc にクラスがある場合、識別子はマイナー番号 (<major>:<minor>) の前にメジャー番号を持つ 2 つの数字のペア (abcd:1) として形成されます。マイナー番号の番号設定スキームは、qdisc タイプによって異なります。1 つ目のクラスには ID <major>:1、2 つ目の <major>:2 などが含まれる場合があります。一部の qdiscs では、クラスの作成時にクラスマイナー番号を任意に設定することができます。
- 分類的な
qdiscs ネットワークインターフェイスへのパケット転送には、さまざまな
qdiscsがあり、そのタイプの qdiscs が存在します。root、親、または子クラスを使用してqdiscsを設定できます。子を割り当て可能なポイントはクラスと呼ばれます。qdiscのクラスは柔軟性があり、常に複数の子クラス、または 1 つの子qdiscを含めることができます。これは、クラスフルなqdisc自体を含むクラスに対して禁止がないため、複雑なトラフィック制御シナリオが容易になります。分類的な
qdiscsはパケットを格納しません。代わりに、qdisc固有の基準に従って、子のいずれかに対してキューをキューに入れ、デキューします。最終的にこの再帰パケットが渡される場所は、パケットが格納される場所 (またはデキューの場合はから取得) となります。- クラスレス
qdiscs -
一部の
qdiscsには子クラスがなく、クラスレスqdiscsと呼ばれます。クラスレスqdiscsは、クラスフルqdiscsと比較してカスタマイズが少なくなります。通常、インターフェイスに割り当てるだけで十分です。