加入者インターフェイスの動的プロファイルでのユニキャスト RPF
加入者インターフェイスの動的プロファイルでのユニキャスト RPF
RPF(ユニキャスト リバース パス フォワーディング)は、IPv4 および IPv6 インターフェイスに対するサービス拒否(DoS)攻撃や分散型サービス拒否(DDoS)攻撃の影響を軽減する方法を提供します。インターフェイスにユニキャスト RPF を設定すると、パケット送信元アドレスがチェックされます。チェックに合格したパケットが転送されます。チェックに失敗したパケットはドロップされるか、失敗フィルターが設定されている場合は、さらなる評価のためにフィルターに渡されます。
ユニキャスト RPF には、 ストリクト と ルーズの 2 つの動作モードがあります。ダイナミック プロファイルでユニキャスト RPF を設定する場合、strict モードがデフォルトになります。厳密モードでは、ユニキャスト RPF は、着信パケットの送信元アドレスがルーティング テーブルのプレフィックスと一致するかどうか、およびインターフェイスがこの送信元アドレス プレフィックスを持つパケットを受信することを期待しているかどうかを確認します。ルーズ モードでは、ユニキャスト RPF はルーティング テーブルで送信元アドレスが一致しているかどうかのみをチェックします。インターフェイスが特定の送信元アドレスからのパケットを受信することを期待しているかどうかはチェックされません。
どちらのモードでも、着信パケットがユニキャスト RPF チェックに失敗すると、そのパケットはインターフェイスで受け入れられません。代わりに、ユニキャスト RPF はパケットをカウントし、オプションのフェイル フィルター(存在する場合)に送信します。失敗フィルターは、パケットに対して今後どのようなアクションが実行されるかを決定します。フェイル フィルターがない場合、パケットは警告なしに破棄されます。
Junos OS リリース 19.1R1 以降、インターフェイスで rpf-check
または rpf-check mode loose
が有効になっている場合、動的論理インターフェイスの show interfaces statistics logical-interface-name detail
コマンドはユニキャスト RPF 統計を表示します。インターフェイスで rpf-check fail-filter filter-name
が設定されている場合、追加の統計情報は表示されません。clear interfaces statistics logical-interface-name
コマンドは、RPF 統計をクリアします。
加入者インターフェイスの動的プロファイルでのユニキャスト RPF の設定
ユニキャスト RPF は、ルーティング テーブルに対して送信元 IP アドレスを確認することにより、IPv4 および IPv6 インターフェイスに対するサービス拒否攻撃の影響を軽減する方法を提供します。オプションのフェイルフィルターが設定されていない限り、一致しないパケットは警告なしに破棄されます。fail フィルターは追加のチェックを実行し、特定のパケットに対して何らかのアクションの実行を指示します。一般的なアクションには、パケットのロギングや、RPF チェックに失敗した場合でもパケットをパスすることなどがあります。
失敗フィルターは技術的にはオプションですが、DHCP 環境の動的プロファイルの場合、DHCP パケットを渡すようにフィルターを構成する必要があります。デフォルトでは、RPF チェックは、RPF チェックによって保護されたインターフェイスで DHCP パケットが受け入れられないようにします。フェイルフィルターはDHCPパケットを識別して渡します。
ダイナミック プロファイルでユニキャスト RPF チェックを設定するには:
加入者インターフェイスの動的プロファイルにおけるユニキャスト RPF の失敗フィルターの設定
このトピックでは、MX シリーズ ルーターの動的プロファイルの加入者インターフェイスにユニキャスト RPF がオプションで適用できる、 [edit firewall]
階層レベルで失敗フィルターを設定する方法について説明します。
静的に設定された失敗フィルターとは対照的に、動的プロファイルで使用される RPF-check 失敗フィルターは、特定のインターフェースに固有を持つことはできません。
ファイアウォールフェイルフィルターを設定するには:
例:MX シリーズ ルーターの動的プロファイルでのユニキャスト RPF の設定
この例では、カスタマーエッジインターフェイスでユニキャストリバースパスフォワーディング(RPF)を設定し、受信トラフィックをフィルタリングすることで、ルーターイングレスインターフェイスをサービス拒否(DoS)および分散型サービス拒否(DDoS)攻撃から保護する方法を示します。ユニキャスト RPF は、ユニキャスト RPF が有効になっているイングレス インターフェイスに到着する各パケットのユニキャスト送信元アドレスを検証します。検証に失敗したパケットは、フェイルフィルターが他のアクションを実行しない限り、警告なしに破棄されます。
必要条件
この例では、以下のソフトウェアおよびハードウェアコンポーネントを使用しています:
MXシリーズ5Gユニバーサルルーティングプラットフォーム
始める前に:
RPF チェックの適用に使用する動的プロファイルを設定します。
基本的な動的プロファイルの設定を参照してください。
概要
大量の不正トラフィック(サービス拒否(DoS)攻撃で偽のサービスリクエストでネットワークを溢れさせようとする試みなど)は、ネットワークリソースを消費し、正当なユーザーへのサービスを拒否する可能性があります。DoS 攻撃や分散型サービス拒否 (DDoS) 攻撃を防ぐ方法の 1 つは、受信トラフィックが正当なネットワーク ソースから発信されていることを確認することです。
ユニキャスト RPF は、インターフェイスに到着する各パケットの送信元アドレスを送信元アドレスの転送テーブル エントリと比較することによって、トラフィック送信元が正当(許可)であることを確認するのに役立ちます。パケットが到着したのと同じインターフェイスを使用してパケットの送信元に応答する場合、パケットが許可された送信元から発信されたことを確認し、ルーターはパケットを転送します。パケットがパケットの送信元への応答にパケットが到着したものと同じインターフェイスをルーターが使用しない場合、パケットは不正な送信元から発信された可能性があり、ルーターはパケットを破棄するか、フェイルフィルターに渡します。
フェイル フィルタを使用すると、デフォルトでドロップされる DHCP パケットなど、RPF チェックに失敗した場合でも合格させたいパケットの基準を設定できます。
MX シリーズ ルーターでは、動的プロファイルでユニキャスト RPF を構成し、その構成を 1 つ以上の加入者インターフェイスに適用できます。MX シリーズ ルーター上のユニキャスト RPF の動作と制限の詳細については、 ユニキャスト RPF(ルーター)について を参照してください。
この例では、動的に作成された VLAN demux インターフェイスに到着する IPv4 パケットを介して行われるインターネットからの潜在的な DoS および DDoS 攻撃から保護するようにルーターを設定します。動的プロファイル vlan-demux-prof は、加入者向けに VLAN demux インターフェイスが自動的に作成されることを確立します。ユニキャスト RPF は、rpf-check 条件によって動的インターフェイス上で有効になります。
デフォルトでは、ユニキャスト RPF は、DHCP(動的ホスト構成プロトコル)パケットが適用されるインターフェイスで受け入れられないようにします。DHCP パケットが廃棄されると、動的プロファイルで新しいサブスクライバーを作成できなくなります。インターフェイスがDHCPパケットを受け入れるようにするには、チェックに失敗したパケットを適切にソートしてDHCPパケットを識別する失敗フィルターを適用する必要があります。この例では、フィルター rpf-pass-dhcp
でallow-dhcp
項を設定します。この条件は、DHCP ポートと任意のアドレス宛ての IPv4 パケットを照合、カウント、および受け入れます。default term
は、RPF チェックに失敗した他のすべてのパケットをドロップします。
この例では、考えられるすべての設定の選択肢が示されているわけではありません。
位相幾何学
構成
動的プロファイルで失敗フィルター付きのユニキャスト RPF を有効にするには、次のタスクを実行します。
ダイナミックVLAN デモックスインターフェイスにRPFチェックを適用するための動的プロファイルの設定
CLIクイック構成
動的に作成された VLAN demux インターフェイスにユニキャスト RPF を適用する動的プロファイルをすばやく構成するには、次のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除してから、コマンドをコピーして CLI に貼り付けます。
edit dynamic-profiles vlan-demux-prof interfaces demux0 edit unit $junos-interface-unit set demux-options underlying-interface $junos-interface-ifd-name set vlan-id $junos-vlan-id edit family inet set unnumbered-address lo0.0 set rpf-check fail-filter rpf-pass-dhcp
手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。その方法の詳細については、 設定モードでのCLIエディターの使用を参照してください。
ルーターでユニキャスト RPF を設定するには、次の手順に従います。
動的プロファイルを作成します。
[edit] user@host# edit dynamic-profiles vlan-demux-prof
動的 VLAN プロファイルが demux インターフェイスを使用することを指定します。
[edit dynamic-profiles vlan-demux-prof] user@host# edit interfaces demux0
動的プロファイルが demux インターフェイス ユニット値を動的 VLAN に適用することを指定します。
[edit dynamic-profiles vlan-demux-prof interfaces demux0] user@host# edit unit $junos-interface-unit
動的VLANの論理的基盤となるインターフェイスを指定します。
[edit dynamic-profiles vlan-demux-prof interfaces demux0 unit $junos-interface-unit] user@host# set demux-options underlying-interface $junos-interface-ifd-name
VLAN ID が動的に作成される変数を設定します。
[edit dynamic-profiles vlan-demux-prof interfaces demux0 unit $junos-interface-unit] user@host# set vlan-id $junos-vlan-id
demux インターフェイスの IPv4 アドレス ファミリーを設定します。
[edit dynamic-profiles vlan-demux-prof interfaces demux0 unit $junos-interface-unit] user@host# edit family inet
ファミリーの番号なしアドレスを設定します。
[edit dynamic-profiles vlan-demux-prof interfaces demux0 unit $junos-interface-unit family inet] user@host# set unnumbered-address lo0.0
ユニキャスト RPF を設定し、チェックに合格しなかった着信パケットに適用される失敗フィルターを指定します。
[edit dynamic-profiles vlan-demux-prof interfaces demux0 unit $junos-interface-unit family inet] user@host# set fail-filter fail-filter rpf-pass-dhcp
RPFチェック失敗フィルターの設定
CLIクイック構成
ユニキャスト RPF-Check 失敗フィルターをすばやく構成するには、次のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除してから、コマンドをコピーして CLI に貼り付けます。
edit firewall family inet filter rpf-pass-dhcp edit term allow-dhcp set from destination-port dhcp set from destination-address 255.255.255.255/32 set then count rpf-dhcp-traffic set then accept up edit term default set then discard
手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。その方法の詳細については、 設定モードでのCLIエディターの使用を参照してください。
RPFチェック失敗フィルターを設定するには:
失敗フィルターを作成します。
[edit firewall] user@host# edit family inet filter rpf-pass-dhcp
DHCP宛先ポートに基づいてDHCPパケットを識別し、パケットをカウントして渡すフィルター条件を定義します。
[edit firewall family inet filter rpf-pass-dhcp] user@host# edit term allow-dhcp user@host# set from destination-port dhcp user@host# set from destination-address 255.255.255.255/32 user@host# set then count rpf-dhcp-traffic user@host# set then accept
他のすべての失敗したパケットをドロップするフィルター条件を定義します。
[edit firewall filter rpf-pass-dhcp] user@host# edit term default user@host# set then discard
業績
設定モードから、 show dynamic-profiles
コマンドを入力してユニキャスト RPF の設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の設定手順を繰り返して設定を修正します。
[edit] user@host# show dynamic-profiles vlan-demux-prof { interfaces { demux0 { unit "$junos-interface-unit" { vlan-id "$junos-vlan-id"; demux-options { underlying-interface "$junos-interface-ifd-name"; } family inet { unnumbered-address lo0.0;rpf-check {
fail-filter rpf-pass-dhcp;
}
} } } } }
設定モードから、 show firewall
コマンドを入力して、フェイル フィルターの設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の設定手順を繰り返して設定を修正します。
[edit] user@host# show firewall family inet { filter rpf-pass-dhcp { term allow-dhcp { from { destination-address { 255.255.255.255/32; } destination-port dhcp; } then { count rpf-dhcp-traffic; accept; } } term default { then { discard; } } } }
デバイスの設定が完了したら、設定モードから commit
を入力します。
検証
構成が正しいことを確認するために、以下のタスクを実行します。
ユニキャスト RPF がルーターで有効になっていることを確認する
目的
ユニキャスト RPF が有効になっていることを確認します。
アクション
show subscribers extensive
コマンドを使用して、ユニキャスト RPF が有効になっていることを確認します。
user@host> show subscribers extensive
Type: VLAN
Logical System: default
Routing Instance: default
Interface: ae0.1073741824
Interface type: Dynamic
Dynamic Profile Name: vlan-demux-prof
State: Active
Session ID: 9
VLAN Id: 100
Login Time: 2011-08-26 08:17:00 PDT
IPv4 rpf-check Fail Filter Name: rpf-pass-dhcp
意味
IPv4 rpf-check Fail Filter Nameフィールドには、RPF チェックに失敗した IPv4 パケットの動的プロファイルによって適用される失敗フィルターの名前である rpf-pass-dhcp
が表示されます。
変更履歴テーブル
機能のサポートは、使用しているプラットフォームとリリースによって決まります。 機能エクスプローラー を使用して、機能がプラットフォームでサポートされているかどうかを判断します。
rpf-check
または
rpf-check mode loose
が有効になっている場合、
show interfaces statistics logical-interface-name detail
コマンドは動的論理インターフェイスのユニキャスト RPF 統計を表示します。