Reverse path forwarding

リバースパスフォワーディング(RPF)とは



リバースパスフォワーディング(Reverse Path Forwarding, RPF)は、IPネットワークにおいて、主にマルチキャストパケットを効率的に転送するためのアルゴリズムです。RPFは、マルチキャストルーティングにおけるルーティングループの発生を防ぎ、またユニキャストルーティングにおいては、IPアドレススプーフィングを検知し、その対策を講じる役割を担います。

RPFの基本原理



RPFの基本的な考え方は、パケットの転送を決定する際に、パケットが来た「逆経路」をチェックすることです。具体的には、ルーターが受信したパケットの送信元アドレスを、自身のルーティングテーブルと照合します。送信元アドレスがルーティングテーブルに存在する場合、パケットは転送されます。一方、ルーティングテーブルにない場合は、パケットは破棄されます。このプロセスを「RPFチェック」と呼びます。

マルチキャストRPF



マルチキャストRPFは、マルチキャストルーティングプロトコル(例えば、MSDPやPIM-SM)と共に利用され、マルチキャストパケットの転送を効率化します。マルチキャストルーティングでは、パケットの転送判断は送信元アドレスに基づき行われ、これは宛先アドレスに基づいて判断するユニキャストルーティングとは対照的です。

マルチキャストパケットルーターに届くと、ルーターは受信したインタフェースから到達可能なネットワークのリストを検索します。そして、パケットの送信元IPアドレスが自身のルーティングテーブルに存在する場合に限り、そのパケットはマルチキャストグループに参加している他のインタフェースに転送されます。ルーティングテーブルに送信元IPアドレスが存在しない場合はパケットは破棄されます。

RPFチェックは、特に冗長構成のマルチキャストトポロジーにおいて、同一のパケットが複数のインタフェースに届く状況で、ルーティングループを防止するために不可欠です。もしRPFチェックがなければ、パケットは無限に転送され続け、ネットワークの速度低下を引き起こす可能性があります。

RPFチェックの前提条件



RPFチェックが正常に機能するためには、以下の2つの前提条件を満たす必要があります。

1. ユニキャストルーティングテーブルが正確かつ収束していること:RPFチェックはユニキャストルーティングテーブルに依存しているため、このテーブルが正確で最新の状態であることが重要です。
2. 送信者への経路(フォワードパス)と送信者からの経路(リバースパス)が対称であること:送信者からルーターまでの最短経路上のトラフィックが、RPFチェックによって拒否されないように、経路が対称であることが理想的です。しかし、経路が非対称である場合、マルチキャストツリーが最適状態にならないことがあります。

ユニキャストRPF(uRPF)



ユニキャストRPF(uRPF)は、RFC 3704で定義されており、「無効なネットワークからのトラフィックは受け付けない」という考え方に基づいています。これは、例えば、プライベートアドレスを送信元とするトラフィックをブロックすることで、IPアドレススプーフィングによる攻撃を防御する目的があります。

uRPFは、ルーターが自身のルーティング情報(RIBまたはFIB)を使用して、受信したパケットの送信元アドレスを厳しく制限することで、パケットの送信元が有効なホストであるかを検証します。送信元アドレスからルーターへの最適な経路を通ってパケットが届いた場合にのみ、そのパケットは転送されます。これにより、設定ミスや悪意のある送信元からのパケットを効果的にブロックできます。

しかし、ルーティングが非対称な環境では、uRPFを実装する際に注意が必要です。なぜなら、正当なトラフィックが誤ってフィルタリングされる可能性があるからです。

uRPFのモード



uRPFには、その動作モードによって以下の3つのタイプがあります。

Strictモード(厳密なリバースパスフォワーディング):受信したパケットが到達したインタフェースが、送信元アドレスへの最適なリバースパスでない場合、パケットは破棄されます。最も厳格なモードです。
Feasibleモード:FIBが送信元アドレスへの複数のオルタネートルートを保持している場合、受信したインタフェースがそのいずれかと一致すればパケットは転送されます。Strictモードよりも緩やかな設定です。
* Looseモード:受信したパケットの送信元アドレスがFIBと照合され、ルーター上のどのインタフェースからも送信元アドレスに到達できない場合にのみパケットは破棄されます。最も緩やかなモードです。

uRPFの誤解



uRPFをReverse Path Filtering(フィルタリング)と誤解するケースがありますが、これは正しくありません。uRPFの目的は、パケットの転送可否を決定することであり、RFC 3704に示されるように、正しくは「RPFチェックを通過すればトラフィックがForwarding(転送)される」と理解する必要があります。

まとめ



リバースパスフォワーディング(RPF)は、ネットワークの安定性とセキュリティを向上させるために重要な技術です。特に、マルチキャストルーティングにおけるルーティングループの防止や、ユニキャストルーティングにおけるIPアドレススプーフィング対策に有効です。uRPFを実装する際には、ネットワーク環境やルーティングの特性を十分に理解し、適切なモードを選択することが重要となります。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。