ユニキャストRPF(ルーター)について
IPv4またはIPv6トラフィックを伝送するインターフェイスの場合、ユニキャストリバースパスフォワーディング(RPF)を設定することで、サービス拒否(DoS)攻撃の影響を軽減できます。ユニキャストRPFは、攻撃のソースを特定し、ユニキャストRPFが有効になっているインターフェイス上で予期しない送信元アドレスからのパケットを拒否するのに役立ちます。
ネットワークのエッジ(顧客向けのインターフェイス上)にユニキャストRPFチェック機能を適用することで、ネットワークを保護できます。ISP環境では、これがネットワークに影響を与え、拡張されたセットアップを課す可能性があります。すでにネットワークのエッジを保護している場合、なりすましIP送信元アドレスを持つパケットは、コアに面したインターフェイスにさえ表示されません。この場合、ユニキャスト RPF チェックは必要ありません。ユニキャストRPF機能を有効にすると、コントロールプレーンのパフォーマンスに影響を与える可能性があるため、必要な場所で使用してください。そのため、ネットワークコア(内部)インターフェイスでこの機能を有効にしないことを強くお勧めします。
現在、PTXプラットフォームでは、BGPフロー仕様(flowspec)を設定すると、VRFインスタンスを設定するための暗黙的なフィルターが作成されます。PTXプラットフォームでは、フィルタールックアップが送信元/宛先IPルックアップに先行します。そのため、送信元と宛先のIPルックアップはVRFインスタンスのコンテキスト内で行われます。
現在、PTXプラットフォームでは、ユニキャストリバースパスフォワーディング(uRPF)とフィルターベースフォワーディング(FBF)がインターフェイスに設定されている場合、デフォルトの動作としては、着信パケットの送信元IPアドレス検索はインターフェイスが指すルーティングインスタンスでuRPFによって実行され、宛先IPアドレス検索はFBFフィルターで指定されたルーティングインスタンスで実行されます。 set forwarding-options no-rpf-fbf-handling を使用してこのデフォルトの動作を上書きすることができ、この設定を適用すると、FBFフィルターで指定されたルーティングインスタンスで、着信パケットの送信元IPアドレス検索がuRPFによって実行されます。
ユニキャストRPFとデフォルトルート
ルーティングテーブル内のルートからアクティブなルートを選択できない場合、ルーターはデフォルトルートを選択します。デフォルトルートは、0.0.0.0/0のIPアドレスに相当します。デフォルトルートを設定し、デフォルトルートが使用するインターフェイスでユニキャストRPFを設定すると、ユニキャストRPFの動作はそれ以外の場合とは異なります。
デフォルト ルートがインターフェイスを使用するかどうかを確認するには、 show route コマンドを入力します。
user@host> show route address
address は、設定されたデフォルトルートのネクストホップアドレスです。デフォルトのルートでは、 show route コマンドの出力に示されているインターフェイスを使用します。
次のセクションでは、デフォルトルートがインターフェイスを使用する場合と、デフォルトルートがインターフェイスを使用しない場合に、ユニキャストRPFがどのように動作するかについて説明します。
デフォルトルートでのユニキャストRPFの動作
MPCとMX80ルーターを持つルーターを除くすべてのルーターで、RPFで設定されたインターフェイスを使用するデフォルトルートを設定すると、RPFユニキャストユニキャスト以下のように動作します。
ルーズモード—すべてのパケットが自動的に受け入れられます。このため、デフォルトルートが使用するインターフェイスには、ユニキャストRPFルーズモードを設定しないことをお勧めします。
ストリクトモード—パケットの送信元アドレスが、インターフェイスを介して到達可能なルート(デフォルトまたは学習済み)のいずれかに一致する場合、パケットが受け入れられます。ルートには複数の宛先を関連付けることができることに注意してください。そのため、宛先の1つがパケットの着信インターフェイスと一致する場合、パケットは受け入れられます。
MPCとMX80ルーターを搭載したすべてのルーターで、ユニキャストRPFで設定されたインターフェイスを使用するデフォルトルートを設定すると、ユニキャストRPFは以下のように動作します。
ルーズモード—デフォルトルートからソースが学習されたパケットを除くすべてのパケットが受け入れられます。デフォルトルートから送信元が学習されたすべてのパケットは、パケット転送エンジンで破棄されます。デフォルトのルートは、ルートが存在しないかのように扱われます。
ストリクトモード—パケットの送信元アドレスが、インターフェイスを介して到達可能なルート(デフォルトまたは学習済み)のいずれかに一致する場合、パケットが受け入れられます。ルートには複数の宛先を関連付けることができることに注意してください。そのため、宛先の1つがパケットの着信インターフェイスと一致する場合、パケットは受け入れられます。
すべてのルーターで、次のいずれかに該当する場合、パケットは受け入れられません。
パケットの送信元アドレスがルーティングテーブルのプレフィックスと一致しません。
インターフェイスは、この送信元アドレスプレフィックスのパケットを受信することを想定していません。
デフォルトルートを使用しないユニキャストRPFの動作
デフォルトルートを設定しない場合、またはデフォルトルートがユニキャスト RPF で設定されたインターフェイスを使用しない場合、ユニキャスト RPF はユニキャスト RPF ストリクト モードの設定 および ユニキャスト RPF ルーズ モードの設定で説明したように動作します。要約すると、デフォルトルートのないユニキャストRPFは、以下のように動作します。
ストリクトモード—次のいずれかに該当する場合、パケットは受け入れられません。
パケットの送信元アドレスがルーティングテーブルのプレフィックスと一致しません。
インターフェイスは、この送信元アドレスプレフィックスのパケットを受信することを想定していません。
ルーズモード—パケットの送信元アドレスがルーティングテーブルのプレフィックスに一致しない場合、パケットは受け入れられません。
ルーティング非対称性を持つユニキャストRPF
一般に、内部インターフェイスにはルーティング の非対称性がある可能性があるため、ネットワーク内部のインターフェイスではユニキャスト RPF を有効にしないことをお勧めします。ルーティングの非対称性とは、パケットの発信パスと戻りパスが異なることを意味します。ネットワークのコアにあるルーターは、カスタマーエッジやプロバイダエッジのルーターよりも、非対称のリバースパスを持つ可能性が高くなります。 図1 は、ルーティング非対称性のある環境でのユニキャストRPFを示しています。
を使用したユニキャストRPF
図1では、インターフェイスso-0/0/0でユニキャストRPFを有効にすると、ルーターA宛てのトラフィックは拒否されません。インターフェイスso-1/0/1でRPFユニキャスト有効にすると、ルーターAからのトラフィックは拒否されます。
非対称ルーティング環境でユニキャスト RPF を有効にする必要がある場合、フェイル フィルターを使用して、特定のパスによって到着することがわかっている着信パケットをルーターが受け入れるようにすることができます。特定の送信元アドレスと宛先アドレスを持つパケットを受け入れるフェイル フィルターの例については、 ユニキャスト RPF の設定を参照してください。
ユニキャスト RPF ストリクト モードの設定
ストリクトモードでは、ユニキャストRPFは、着信パケットにルーティングテーブルのプレフィックスと一致する送信元アドレスがあるかどうか、およびインターフェイスがこの送信元アドレスプレフィックスのパケットを受信することを期待しているかどうかを確認します。
アクティブパスモードが設定されている場合、アクティブルートのみの発信インターフェイスリストが作成されます。これらのインターフェイスで着信するパケットはすべて有効なものと見なされ、処理されます。
着信パケットがユニキャスト RPF チェックに失敗した場合、パケットはインターフェイスで受け入れられません。インターフェイスでパケットが受け入れられない場合、ユニキャスト RPF はパケットをカウントし、オプションのフェイル フィルターに送信します。フェイル フィルターが設定されていない場合、デフォルトのアクションはパケットをサイレントに破棄することです。
オプションのフェイル フィルターを使用すると、ユニキャスト RPF チェックに失敗したパケットにフィルターを適用できます。フェイル フィルターを定義することで、受け入れ、拒否、ログ記録、サンプリング、ポリシングなど、あらゆるフィルター操作を実行できます。
インターフェイスでユニキャスト RPF が有効になっている場合、ブートストラップ プロトコル(BOOTP)パケットとダイナミック ホスト構成プロトコル(DHCP)パケットはインターフェイスで受け入れられません。インターフェイスがBOOTPパケットとDHCPパケットを受け入れるようにするには、送信元アドレスが 0.0.0.0 、宛先アドレスが 255.255.255.255. のすべてのパケットを受け入れるフェイルフィルターを適用する必要があります。 設定例については、 ユニキャスト RPF の設定を参照してください。
フェイルフィルターの定義については、 ルーティングポリシー、ファイアウォールフィルター、およびトラフィックポリサーユーザーガイドを参照してください。
RPFを設定するにはユニキャスト rpf-check ステートメントを含めます。
rpf-check <fail-filter filter-name>;
以下の階層レベルでこのステートメントを含めることができます。
[edit interfaces interface-name unit logical-unit-number family (inet | inet6)][edit logical-systems logical-system-name interfaces interface-name unit logical-unit-number family (inet | inet6)]
ユニキャスト RPF を使用すると、トラフィック フィルターで実装すると、いくつかの結果が生じる可能性があります。
RPF 障害フィルタは、入力フィルタの後、出力フィルタの前に評価されます。
入力フィルターでドロップされたパケットのフィルターカウンターを設定し、ドロップされたパケットの合計数を知りたい場合は、RPFチェックでドロップされたパケットのフィルターカウンターも設定する必要があります。
RPF チェックに失敗し、RPF 失敗フィルターで受け入れられたパケットをカウントするには、フィルター カウンターを設定する必要があります。
入力フィルターがinet.0またはinet6.0ルーティングテーブル以外の場所にパケットを転送する場合、ユニキャストRPFチェックは実行されません。
入力フィルターが、入力インターフェイスが設定されているルーティングインスタンス以外の場所にパケットを転送する場合、ユニキャストRPFチェックは実行されません。
前述の箇条書きでは、MXプラットフォームではファイアウォールフィルターの実行前にuRPFが処理されるため、1番目、最後から2番目、最後のポイントはMXプラットフォームには適用されません。静的および動的インターフェイスに対してFBF(フィルターベースフォワーディング)アクションを有効にする前に、送信元アドレスチェックのためのuRPFチェックが処理されます。これは、IPv4 と IPv6 の両方のファミリーに適用されます。
ACXおよびMXシリーズルーターの場合:
uRPF フェイル フィルターは、ACX1000、ACX2000、ACX4000、ACX500、ACX5048、ACX5096 でサポートされています。このフィルターは、ACX5448、ACX710、ACX7100-32C、ACX7100-48、ACX7509、およびACX7000シリーズのすべてのルーターではサポートされていません。
- uRPF フェイル フィルタは、イングレス ポート チェック(ストリクト モード)で失敗したパケットを一致させることはできません。
- uRPF 障害フィルターは、送信元 IP ルックアップに失敗したパケットには一致できますが、入力インターフェイス チェック(ストリクト モード)に失敗したパケットには一致できません。
- uRPF フェイル フィルターは、ファイアウォール フィルターのインターフェイス固有のインスタンスにのみ適用されます。
- uRPF フェイル フィルターは、拒否およびルーティング インスタンス アクションをサポートしていません。
- オプションfeasible-pathsは、ACX7000シリーズではサポートされていません。
ユニキャスト RPF ストリクト モードを設定し、フェイル フィルターを適用して、インターフェイスが BOOTP パケットと DHCP パケットを受け入れられるようにします。このフィルターは、送信元アドレスが 0.0.0.0 、宛先アドレスが 255.255.255.255のすべてのパケットを受け入れます。
ユニキャスト RPF を厳密モードで設定するには:
ユニキャストRPFルーズモードの設定
デフォルトでは、ユニキャストRPFはストリクトモードを使用します。ユニキャスト RPF ルーズ モードは、ユニキャスト RPF ストリクト モードと類似しており、同じ設定制限があります。ルーズモードでの唯一のチェックは、パケットがルーティングテーブルに対応するプレフィックスを持つ送信元アドレスを持っているかどうかです。ルーズモードでは、インターフェイスが特定の送信元アドレスプレフィックスを持つパケットを受信することを想定しているかどうかはチェックされません。対応するプレフィックスが見つからない場合、ユニキャスト RPF ルーズ モードはパケットを受け付けません。ストリクトモードと同様に、ルーズモードでは失敗したパケットをカウントし、オプションでパケットを受け入れる、拒否する、ログに記録する、サンプリングする、またはポリシーを適用するフェイルフィルタに転送します。
feasible-pathsモードが設定されている場合、アクティブおよび非アクティブなルートの発信インターフェイスリストが作成されます。これらのインターフェイスで着信するパケットはすべて有効なものと見なされ、処理されます。
RPF ルーズ モードを設定するにはユニキャスト modeを含めます。
パケットを破棄する機能を備えたユニキャストRPFルーズモードの設定
ユニキャストRPFルーズモードには、破棄インターフェイスを指す送信元アドレスを持つパケットを破棄する機能があります。ユニキャストRPFルーズモードとリモートトリガーNullルートフィルタリングを併用することで、既知の攻撃ソースからのパケットを効率的に破棄できます。エッジルーターのBGPポリシーは、信頼できない送信元アドレスを持つパケットのネクストホップを破棄ルートに設定できるようにします。信頼できない送信元アドレスを持つパケットがルーターに到着すると、ユニキャスト RPF は送信元アドレスのルート ルックアップを実行します。送信元アドレスのルートは破棄ネクストホップを指しているため、パケットはドロップされ、カウンターがインクリメントされます。この機能は、IPv4(inet)アドレス ファミリーと IPv6(inet6)アドレス ファミリーの両方でサポートされています。
パケットユニキャスト破棄機能を備えたRPFルーズモードを設定するには、[edit forwarding-options]階層レベルでrpf-loose-mode-discard family (inet | inet6)ステートメントを含めます。
rpf-loose-mode-discard {
family {
inet;
}
}
この例では、デバイスの初期化以上の特別な設定は必要ありません。
ユニキャスト RPF ルーズ モードを設定し、インターフェイスが BOOTP パケットと DHCP パケットを受け入れられるようにフェイル フィルターを適用します。このフィルターは、送信元アドレスが 0.0.0.0 、宛先アドレスが 255.255.255.255のすべてのパケットを受け入れます。
パケットを破棄する機能を備えたユニキャストRPFルーズモードを設定するには:
VPN でのユニキャスト RPF の設定
VPNインターフェイスでRPFを有効にするユニキャストユニキャスト[edit routing-instances routing-instance-name]階層レベルでinterfaceステートメントを含めることで、VPNインターフェイスでRPFを設定できます。
ユニキャストRPFは、ルーティングインスタンスで指定したインターフェイスでのみ設定できます。これは次のことを意味します。
レイヤー 3 VPN では、CE ルーター インターフェイスでユニキャスト RPF がサポートされています。
ユニキャストRPFは、コアに面するインターフェイスではサポートされていません。
仮想ルーターのルーティングインスタンスの場合、ルーティングインスタンスで指定するすべてのインターフェイスでユニキャストRPFがサポートされます。
入力フィルターが、入力インターフェイスが設定されているルーティングインスタンス以外の場所にパケットを転送する場合、ユニキャストRPFチェックは実行されません。
レイヤー 3 VPN インターフェイスでユニキャスト RPF を設定します。
[edit interfaces]
so-0/0/0 {
unit 0 {
family inet {
rpf-check;
}
}
}
[edit routing-instance]
VPN-A {
interface so-0/0/0.0;
}
ユニキャストRPFの設定
ユニキャスト RPF ストリクト モードを設定し、フェイル フィルターを適用して、インターフェイスが BOOTP パケットと DHCP パケットを受け入れられるようにします。このフィルターは、送信元アドレスが 0.0.0.0 、宛先アドレスが 255.255.255.255のすべてのパケットを受け入れます。
[edit firewall]
filter rpf-special-case-dhcp-bootp {
term allow-dhcp-bootp {
from {
source-address {
0.0.0.0/32;
}
address {
255.255.255.255/32;
}
}
then {
count rpf-dhcp-bootp-traffic;
accept;
}
}
term default {
then {
log;
reject;
}
}
}
[edit]
interfaces {
so-0/0/0 {
unit 0 {
family inet {
rpf-check fail-filter rpf-special-case-dhcp-bootp;
}
}
}
}
関連項目
プラットフォーム固有の動作
機能エクスプローラーを使用して、特定の機能のプラットフォームとリリースのサポートを確認します。
お使いのプラットフォームに固有の動作を確認するには、以下の表を使用して下さい:
プラットフォーム |
違い |
|---|---|
Junos OS Evolved上のACXシリーズルーター |
送信元 IP が ECMP グループを介して解決されると、RPF はパケットが入力されたインターフェイスの厳密な uRPF 設定を上書きすることで、ルーズモードで動作します。 |