Red Hat Training

A Red Hat training course is available for RHEL 8

第28章 Linux トラフィックの制御

Linux は、パケットの送信を管理および操作するためのツールを提供します。Linux Traffic Control (TC) サブシステムは、ネットワークトラフィックの規制、分類、成熟、およびスケジューリングに役立ちます。また、TC はフィルターとアクションを使用して分類中にパケットコンテンツをマスリングします。TC サブシステムは、TC アーキテクチャーの基本要素であるキューイング規則(qdisc)を使用してこれを実現します。

スケジューリングメカニズムは、異なるキューに入るか、終了する前にパケットを設定または再編成します。最も一般的なスケジューラーは First-In-First-Out (FIFO) スケジューラーです。qdiscs 操作は、tc ユーティリティーを使用して一時的に、NetworkManager を使用して永続的に実行できます。

Red Hat Enterprise Linux では、デフォルトのキューの規則をさまざまな方法で設定して、ネットワークインターフェイスのトラフィックを管理できます。

28.1. キュー規則の概要

グルーピング規則 (qdiscs) は、ネットワークインターフェイスによるトラフィックのスケジューリング、後でキューに役に立ちます。qdisc には 2 つの操作があります。

  • パケットを後送信用にキューに入れるできるようにするキュー要求。
  • キューに置かれたパケットのいずれかを即時に送信できるように要求を解除します。

qdisc には、ハンドル と呼ばれる 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 と比較してカスタマイズが少なくなります。通常、インターフェイスに割り当てるだけで十分です。

関連情報

  • tc(8) の man ページ
  • tc-actions(8) の man ページ