Random Early Drop(RED)は、Random Early Detectionとも呼ばれ、ネットワークインターフェース上の平均キュー長を追跡し、キューが完全に満杯になる前に確率的にパケットをドロップし始める輻輳回避技術である。これにより、送信側に対して、ハードな一括テールドロップが発生するのを待つのではなく、早期に送信速度を落とすよう促す。
主なポイント
- REDは、キューが満杯になる前に、パケットを一度にすべてではなく、確率的にドロップします。
- これにより、単純なテールドロップ・キューイングで生じる、突発的で同期したデータ損失を防ぐことができます。
- 2つの閾値の間では、平均待ち行列長が増加するにつれてドロップ確率が上昇する。
- Versa のDoS/フラッドプロファイルにおいて、REDは「許可」と「ハードドロップ」の中間に位置するアクションです。
- 加重RED(WRED)は、トラフィッククラスごとに異なるドロップ閾値を適用します。
このページの内容: その重要性仕組み種類RED &Versaよくある質問
REDはなぜ重要なのでしょうか?
REDのような技術がない場合、単純なテールドロップキューイングを採用している混雑したインターフェースは、バッファがいっぱいになるまで待機し、空きができるまで到着するパケットをすべて破棄します。そのリンクを共有する多くのTCPフローは、一斉にパケットを損失し、一斉に速度が低下した後、再び一斉に速度を回復します。これは「グローバル同期」と呼ばれる現象であり、スループットの変動を引き起こし、容量を無駄にするパターンです。
REDが重要なのは、より早期かつ公平に介入できるからです。キューが満杯になるずっと前に、キューが膨れ始めた段階で、ランダムに抽出した少数のパケットを破棄することで、影響を受けるフローは、一斉ではなく異なるタイミングでバックオフすることになります。これにより、バーストトラフィックを吸収しつつ、平均キュー深度と遅延を低く抑えることができ、通信事業者には、突然の「すべてか無か」という遮断ではなく、早期の警告信号が提供されます。
REDとは何ですか?
REDは、2つの設定済み閾値と、平均キュー長の計算(通常は瞬時深度ではなく、指数加重移動平均)に基づいて動作します。そのため、短時間のパケット集中そのものは反応を引き起こしません。 最小閾値以下では、パケットは一切ドロップされません。最小閾値と最大閾値の間では、ドロップ確率は最大値に向かって上昇します。つまり、キューがオーバーフローする前にTCP送信側にバックオフを促すため、初期段階で少数のパケットが犠牲にされます。平均値が最大値に達すると、REDは到着するすべてのパケットをドロップし、通常のテールドロップと同様の挙動を示します。また、初期段階でのドロップは事実上ランダムに選択されるため、シグナルは、バッファがすでに満杯の状態で到着した特定のフローに集中することなく、多くの接続に分散して伝播します。
REDの種類
基本アルゴリズムを拡張したいくつかのバリエーションが存在する。重み付きRED(WRED)は、トラフィッククラスごとに異なる閾値とドロップ確率を適用する(通常はDSCPやIP優先度マーキングに基づいて決定される)。これにより、同じキューを共有する遅延や損失に敏感なクラスに比べて、優先度の低いトラフィックがより早くドロップされる。RED with In/Out(RIO)は、DiffServ向けのバリエーションであり、プロファイル内パケットとプロファイル外パケットに対して別々のドロップ曲線を維持する。Adaptive REDは、平均キュー長を目標値付近に維持するように最大ドロップ確率を自動的に調整するため、特定のリンクに対してパラメータを手動で微調整する必要性を低減します。
これらはすべて、REDの中核となるメカニズム――平均キュー長に基づく、確率的かつ閾値制限付きのドロップ――を維持しており、主な違いは、維持するドロップカーブの数にあります。
RED &Versa
Versa Titan で管理されるSASE ゲートウェイにおいて、RED は DoS 保護プロファイル内で設定可能なアクションであり、ゾーン、アドレス、およびプロトコルに基づいてトラフィックを照合するDoS 保護ポリシーから参照されます。各プロファイルでは、ICMP、ICMPv6、TCP、UDP、SCTP、およびその他の IP トラフィックといったプロトコルごとに、アラームレート、アクティベートレート、およびハードな最大レート(パケット/秒単位)を含むフラッド閾値が設定されます。
アクティベートレートを超過すると、[アクション] フィールドで、管理者は「ランダム早期ドロップ」または「SYNクッキー」(セッション状態を確定せずに接続を承認するTCP固有の防御機能)のいずれかを選択できます。デフォルトは「SYNクッキー」です。最大レートを超えるトラフィックは、アクションの設定にかかわらず即座に破棄されます。REDは、その間の帯域のみを制御します。管理者は、Titan ポータル(Versa)のコンソールにある [セキュリティ] タブから、SASE ゲートウェイブランチデバイス用のこれらのプロファイルを作成します。
これと関連しつつも異なる仕組みとして、VersaのNPUベースのQoSトラフィックポリシングが挙げられます。この仕組みでは、ポリサーがCIR/CBS/PIR/PBSのしきい値に基づいてパケットに緑、黄、赤のマークを付けます。これはREDの確率的なドロップとは異なり、決定論的なマーキングです。
よくある質問
REDとテールドロップの違いは何ですか?
テールドロップでは、キューが完全に満たされるまで待機させ、その後、空き容量ができるまですべてのパケットを破棄します。これにより、リンク上のすべてのフローに対して、突然かつ同期したパケット損失が発生します。一方、REDでは、それより早い段階でランダムな割合のパケットを破棄するため、1回の急激なバーストではなく、信号が分散されます。
REDはなぜ、決まったルールに従うのではなく、ランダムにパケットをドロップするのでしょうか?
ランダムな選択を行うことで、特定のフローに不釣り合いな負担がかかることを回避できます。固定のルールを適用すると、トラフィック量の多い単一のフローが損失の大部分を負担し、他のフローは影響を受けずに通過してしまう可能性があります。ランダム化を行うことで、各フローのトラフィックシェアにほぼ比例して負荷が分散されます。
REDは、TCP独自の輻輳制御に取って代わるのでしょうか?
いいえ。REDはTCPと連携して動作します。パケットを早期にドロップすると、TCPの既存の輻輳制御応答がトリガーされます。つまり、送信側はパケット損失を「送信速度を落とす」というシグナルとして認識します。これは、遅延のあるテールドロップによる損失が引き起こす反応と同じですが、より早く、より緩やかに発生するだけです。
REDは、現代の高速ネットワークにおいても依然として有用なのでしょうか?
はい。ただし、その後、IETFのガイダンスでは、REDの固定パラメータではリンク速度の変化に応じて微調整を行うことが難しいため、推奨範囲がREDから、より一般的なアクティブ・キュー・マネジメント(AQM)へと拡大されました。その根底にある原則、すなわち「早期かつ確率的にパケットをドロップする」という点は、依然として標準となっています。
Versa は、SYNクッキーの代わりにランダム・アーリー・ドロップをいつ使用するのでしょうか?
これらはいずれも、DoSプロファイルのフラッド設定における代替アクションであり、プロトコルの「アクティベートレート」が超過した際に適用されます。SYNクッキーは特にTCP SYNフラッドを防御するもので、デフォルト設定となっています。一方、「ランダム・アーリー・ドロップ」は、選択された場合、フラッド対策が適用されるあらゆるプロトコルに対してより広範囲に適用されます。
REDの詳細
さらに詳しく知りたい場合は、私たちが信頼している情報源を以下にご紹介します。
| IETF RFC 2309: キュー管理に関する推奨事項 | IETF RFC 7567:アクティブ・キュー・マネジメント |
|---|---|
| 1998年のIETF勧告により、REDは輻輳状態にあるインターネットルーターのデフォルトのアクティブ・キュー管理メカニズムとして広く普及した。 | 2015年の更新では、REDの調整が困難である点を理由に、IETFのガイダンスの対象範囲をREDから、より一般的なアクティブ・キュー管理へと拡大した。 |
関連用語
REDについて読んでいるなら、次はこれらもチェックしてみる価値があります。
| ゾーン | SD-WAN | 支店 |
|---|---|---|
| Versa のセキュリティ構成要素であり、インターフェースとネットワークをグループ化したもので、REDが適用されるDoSおよびフラッド防止ポリシーにおいて、一致条件として使用されます。 | 支店、クラウド、データセンター間のリンクにまたがるトラフィック制御型オーバーレイにより、フラッド防止とREDに基づくドロップ処理によって、共有容量が保護されます。 | VOSデバイスを稼働させているサイトでは、ゾーンベースのDoS防御プロファイル(およびその中に含まれるREDアクション)によって、フラッド型攻撃から防御されています。 |