ユニキャスト RPF(ルーター)について
IPv4 または IPv6 トラフィックを転送するインターフェイスの場合、RPF(ユニキャスト リバース パス フォワーディング)を設定することで、サービス拒否(DoS)攻撃の影響を軽減できます。ユニキャスト RPF は、攻撃の送信元を判断するのに役立ち、ユニキャスト RPF が有効になっているインターフェイス上の、予期しないソース アドレスからのパケットを拒否します。
ネットワークを保護するには、ネットワークのエッジ(顧客対応インターフェイス上)にユニキャスト RPF チェック機能を適用します。ISP 環境では、これはネットワークに影響を与え、拡張された設定を行う可能性があります。ネットワークのエッジを既に保護している場合、スプーフィングされた IP 送信元アドレスを持つパケットは、コアに面したインターフェイスにさえ表示されません。この場合、ユニキャスト RPF チェックは必要ありません。ユニキャスト RPF 機能を有効にすると、パフォーマンスにコントロール プレーン影響を与える可能性があります。したがって、必要な場所で使用します。そのため、ネットワーク コア(内部)インターフェイスでこの機能を有効にしない方が強く推奨されます。
ユニキャスト RPF とデフォルト ルート
ルート内のルートからアクティブ ルートを選択できないルーティング テーブルルーターがデフォルト ルートを選択します。デフォルト ルートは、0.0.0.0/0 の IP アドレスに相当します。デフォルト ルートを設定し、デフォルト ルートが使用するインターフェイスでユニキャスト RPF を設定すると、ユニキャスト RPF の動作はそれ以外の場合とは異なります。デフォルト ルートの設定について、詳しくは ルーティング デバイス用のJunos OS プロトコル ライブラリ を参照してください。
デフォルト ルートがインターフェイスを使用するかどうかを確認するには、 コマンドを入力 show route
します。
user@host> show route address
address
は、設定されたデフォルト ルートのネクストホップ アドレスです。デフォルト ルートは、 コマンドの出力に表示されるインターフェイスを使用 show route
します。
次のセクションでは、デフォルト ルートがインターフェースを使用し、デフォルト ルートがインターフェイスを使用しない場合のユニキャスト RPF の動作について説明します。
デフォルト ルートでのユニキャスト RPF 動作
MPC と MX80 ルーターを除くすべてのルーターで、ユニキャスト RPF で設定されたインターフェイスを使用するデフォルト ルートを設定すると、ユニキャスト RPF は次のように動作します。
ルーズ モード — すべてのパケットが自動的に受け入れされます。このため、デフォルト ルートが使用するインターフェイスでは、ユニキャスト RPF ルーズ モードを設定することをお勧めします。
厳しいモード — パケットの送信元アドレスが、インターフェイスから到達可能なルート(デフォルトまたは学習された)のいずれかと一致する場合、パケットが受け入れされます。ルートに関連付けられた複数の宛先がある場合があります。そのため、ある宛先がパケットの受信インターフェースと一致する場合、パケットは受け入れされます。
MPC と MX80 ルーターを持つすべてのルーターで、ユニキャスト RPF で設定されたインターフェイスを使用するデフォルト ルートを設定すると、ユニキャスト RPF は次のように動作します。
ルーズ モード — デフォルト ルートから送信元が学習されたパケットを除くすべてのパケットが受け入れされます。送信元がデフォルト ルートから学習したパケットはすべて、パケットのルートでパケット転送エンジン。デフォルト ルートは、そのルートが存在しない場合として扱われる。
厳しいモード — パケットの送信元アドレスが、インターフェイスから到達可能なルート(デフォルトまたは学習された)のいずれかと一致する場合、パケットが受け入れされます。ルートに関連付けられた複数の宛先がある場合があります。そのため、ある宛先がパケットの受信インターフェースと一致する場合、パケットは受け入れされます。
すべてのルーターで、以下のいずれかを満たした場合、パケットは受け入れされません。
パケットの送信元アドレスは、パケットの送信元アドレスと一致ルーティング テーブル。
インターフェイスは、この送信元アドレス プレフィックスを持つパケットを受信するとは思されません。
デフォルト ルートを使用しないユニキャスト RPF の動作
デフォルト ルートを設定しない場合、またはデフォルト ルートがユニキャスト RPF で設定されたインターフェイスを使用していない場合は、「 ユニキャスト RPF ス テ厳モードの設定 」 および「ユニキャスト RPFルーズ モードの設定 」に記載されているとおり、ユニキャスト RPF が動作します。要約すると、デフォルト ルートを持つユニキャスト RPF は次のように動作します。
厳しいモード — 以下のいずれかの条件が満たされた場合、パケットは受け入れされません。
パケットの送信元アドレスは、パケット のプレフィックスと一致ルーティング テーブル。
インターフェイスは、この送信元アドレス プレフィックスを持つパケットを受信するとは思されません。
ルーズ モード — パケットがパケットの送信元アドレスがパケットのプレフィックスと一致しない場合、パケットはルーティング テーブル。
ルーティングの Asymmetry を使用したユニキャスト RPF
一般的に、ネットワーク内部のインターフェイスでは、内部インターフェイスにルーティングの無効性が設定される可能性が高いので、ネットワークに対してユニキャスト RPF を有効にすることをお 勧めします。ルーティングの一部として、パケットの送信パスとリターン パスが異なっています。ネットワークのコアのルーターは、顧客またはプロバイダ エッジのルーターよりも、非対称リバース パスを持つ可能性が高い。 図 1 は 、ルーティングの Asymmetry を使用する環境のユニキャスト RPF を示しています。

図 1では、インターフェイス上でユニキャストRPFを有効にした場合、ルーター A 宛 so-0/0/0
のトラフィックは拒否されません。インターフェイス上でユニキャスト RPF を有効にした場合 so-1/0/1
、ルーター A からのトラフィックは拒否されます。
非対称ルーティング環境でユニキャスト RPF を有効にする必要がある場合、フェイル フィルタを使用して、特定のパスに到着することが分かっている受信パケットをルーターが受け入れできます。特定の送信元および宛先アドレスを持つパケットを受信する障害フィルターの例については、「 ユニキャスト RPF の設定 」 を参照してください。
ユニキャスト RPF ス厳モードの設定
スキャスト モードでは、ユニキャスト RPF は、受信パケットに ルーティング テーブル のプレフィックスと一致する送信元アドレスを持っているかどうか、およびインターフェイスが送信元アドレス プレフィックスを持つパケットを受信すると期待するかどうかをチェックします。
受信パケットがユニキャスト RPF チェックに失敗した場合、パケットはインターフェイスで受け入れされません。インターフェイスでパケットが受け入れされない場合、ユニキャスト RPF はパケットをカウントして、オプションの障害フィルターに送信します。障害フィルターが設定されていない場合、デフォルトのアクションはパケットを無音で破棄します。
オプションの fail フィルタを使用すると、ユニキャスト RPF チェックで失敗したパケットにフィルタを適用できます。fail フィルタを定義して、受け入れ、拒否、ロギング、サンプリング、ポリシー実行などの任意のフィルター操作を実行できます。
インターフェイスでユニキャスト RPF が有効になっている場合、BOOTP(ブートストラップ プロトコル)パケットと DHCP(動的ホスト構成プロトコル)パケットは、インターフェイスでは受け入れされません。インターフェイスが BOOTP パケットおよび DHCP パケットを受け入れるには、設定例の送信元アドレスおよび宛先アドレスを持つすべてのパケットを受け入れる障害フィルターを適用する必要があります。 設定例については、 ユニキャスト 0.0.0.0
255.255.255.255.
RPFの設定 を参照してください。
ユニキャスト RPF の詳細については、「 ルーティング デバイス用 の Junos OS プロトコル ライブラリ 」を参照してください。フェイル フィルターの定義の詳細については、「 ルーティング ポリシー、ファイアウォール フィルター、トラフィック ポリサー ユーザー ガイド 」 を参照してください。
ユニキャスト 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 チェックは実行されません。
ACXおよびMX シリーズでは、次の方法が必要です。
- uRPF 失敗フィルタは、イングレス ポート チェック(スギト モード)で失敗したパケットを満たしません。
- uRPF 障害フィルターはパケットの送信元 IP ルックアップに失敗したパケットを一致できますが、入力インターフェイス チェックに失敗したパケットを一致することはできません(ス厳モード)。
- uRPF 失敗フィルタは、ファイアウォール フィルターのインターフェイス固有のインスタンスにのみ適用されます。
- uRPF 失敗フィルタは、リジェクト アクションとルーティング インスタンス アクションをサポートしていない。
ユニキャスト RPF ス厳モードを設定し、インターフェイスが BOOTP パケットと DHCP パケットを受け入れる障害フィルターを適用します。このフィルターは、 の送信元アドレスおよび . の宛先アドレスを持 0.0.0.0
つすべてのパケットを受信 255.255.255.255
します。
ス厳モードでユニキャスト RPF を設定するには、次の手順に従います。
ユニキャスト RPF ルーズ モードの設定
デフォルトでは、ユニキャスト RPF はスキャスト モードを使用します。ユニキャスト RPF ルーズ モードはユニキャスト RPF ス厳モードに似ていて、同じ設定制限があります。ルーズ モードでの唯一のチェックは、パケットにパケットに対応するプレフィックスを持つ送信元アドレスがパケットのルーティング テーブル。ルーズ モードは、インターフェイスが特定の送信元アドレス プレフィックスを持つパケットを受信するかどうかを確認しません。対応するプレフィックスが見つからなかった場合、ユニキャスト RPF ルーズ モードはパケットを受け入れしません。スゲスト モードでは、ルーズ モードでは障害が発生したパケットをカウントし、必要に応じて障害フィルターに転送します。失敗したパケットは、パケットを受け入れ、拒否、ログ、サンプル、またはポリシーを適用します。
ユニキャスト RPF ルーズ モードを設定するには、以下を含にします mode
。
パケットを破棄する機能を使用したユニキャスト RPF ルーズ モードの設定
Junos OS リリース 12.1 から、ユニキャスト RPF ルーズ モードは、送信元アドレスが破棄インターフェイスを指してパケットを破棄する機能を備えています。この機能は、MX シリーズ ルーター、タイプ 1FPC、タイプ 2FPC、タイプ 3FPC を備えた T Series ルーターでサポートされています。ユニキャスト RPF ルーズ モードと、リモート トリガー Null ルート フィルタリングを使用して、既知の攻撃ソースから送信されるパケットを破棄する効率的な方法を提供します。BGPポリシーを適用することで、信頼できないソース アドレスを持つパケットは、ネクスト ホップで破棄ルートに設定されます。パケットが信頼できないソース アドレスを持つルーターに到着すると、ユニキャスト RPF は送信元アドレスのルート ルックアップを実行します。送信元アドレス ルートは破棄されたネクスト ホップをポイントのため、パケットは破棄され、カウンターが増加します。この機能は、IPv4(inet)とIPv6(inet6)の両方のアドレス ファミリーでサポートされています。
パケットを破棄する機能を使用してユニキャスト RPF ルーズ モードを設定するには、ステートメントを階層 rpf-loose-mode-discard family inet
レベルに [edit forwarding-options]
含める:
rpf-loose-mode-discard { family { inet; } }
この例では、デバイス初期化以外の特別な設定は必要ありません。
ユニキャスト RPF ルーズ モードを設定し、インターフェイスが BOOTP パケットと DHCP パケットを受信できる障害フィルターを適用します。このフィルターは、 の送信元アドレスおよび . の宛先アドレスを持 0.0.0.0
つすべてのパケットを受信 255.255.255.255
します。
パケットを破棄する機能を使用してユニキャスト RPF ルーズ モードを設定するには、次の手順に示します。
VPN でのユニキャスト RPF の設定
インターフェイス上でユニキャスト RPF を有効にし、階層レベルで ステートメントを含めて、VPN インターフェイスでユニキャスト RPF interface
を [edit routing-instances routing-instance-name]
設定できます。
ユニキャスト RPF は、ルーティング インスタンスで指定したインターフェイスでのみ設定できます。これは、以下の意味を意味します。
レイヤー 3 VPN の場合、ユニキャスト RPF は複数のCEでサポートされています。
ユニキャスト RPF は、コア側インターフェイスではサポートされていません。
仮想ルーター ルーティング インスタンスでは、ルーティング インスタンスで指定したすべてのインターフェイスでユニキャスト RPF がサポートされています。
入力フィルターがルーティング インスタンス以外の場所からパケットを転送する場合、入力インターフェイスは設定されていません。ユニキャスト RPF チェックは実行されません。
VPN および仮想ルーター ルーティング インスタンスの詳細については、「 ルーティング デバイス 」の「Junos OS VPN ライブラリ」を参照してください。FBF の詳細については、「 ルーティング デバイス用Junos OS プロトコル ライブラリ 」を参照してください。
レイヤー 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; } } } }