例:フィルターベースの転送の設定
ポリシーベースルーティング(PBR)とも呼ばれるフィルターベースフォワーディング(FBF)は、レイヤー3またはレイヤー4パラメーターに基づいてIPトラフィックを異なるインターフェイスにルーティングするシンプルかつ強力な方法を提供します。
FBFは、ファイアウォールフィルターの一致条件を使用して特定のトラフィックを選択し、目的のネクストホップを指す特定のルーティングインスタンスにそれを誘導することで機能します。ネクストホップを解決可能にするために、メインルーティングテーブルからのインターフェイスルートは、ルーティングインスタンスで指定されたルーティングテーブルとRIBグループを介して共有されます。
一致条件には、送信元または宛先IPアドレス、送信元または宛先ポート、IPプロトコル、DSCP値、TCPフラグ、ICMPタイプ、パケット長が含まれます。
要件
この例では、以下のハードウェアおよびソフトウェア要件があります。
ファイアウォールフィルターが設定された、サポートされているルーティングデバイス。
ファイアウォールフィルターが設定されたルーティングデバイスで実行されているサポートされているJunos OSリリース。
概要
この例では、単一のデバイスでフィルターベースの転送を設定するために必要な構成設定を示しています。 図1 は、ルーターのイングレスおよびエグレスインターフェイスを示し、パケットがデバイスを通過する際のイベントの論理的なフローを示しています。
webFilterと呼ばれるファイアウォールフィルターがイングレスインターフェイスfe-0/0/0にアタッチされています。インターフェイスを介して到着するパケットは、フィルターで指定された一致条件に照らし合わせて評価され、そのロジックは、HTTPおよびHTTPSトラフィックをwebtrafficと呼ばれるルーティングインスタンスに誘導します。このルーティングインスタンスは、3つのことを実現します。第1に、webtraffic.inet.0と呼ばれるルーティングテーブルを確立すること、2つ目は静的ルートとネクストホップを定義できること、そして3つ目は、ネクストホップ(ここでは、インターフェイスfe-0/0/1の192.0.2.2)にトラフィックを転送するためのインスタンスを構成できることです。
ファイアウォールフィルターの条件2の then acceptは、一致しないすべてのトラフィックが異なるパスを取ることを指定します。ネクストホップが 203.0.113.2 の静的ルートを定義して、このトラフィックが fe-0/0/2 経由でデバイスから出るようにします。ルートは、マスタールーティングテーブル、 inet.0に自動的にインストールされます。
FBFを設定する際の最後の(論理的な)ステップは、両方のルートが解決可能であることを確認することです。RIBグループ(この例ではFBF-rib )により、 inet.0 からのインターフェイスルートを webtraffic.inet.0と共有できます。
特定のユースケースやマルチデバイストポロジーに焦点を当てた例については、関連トピックを参照してください。
設定
手順
CLIクイックコンフィグレーション
単一のデバイスでフィルターベースの転送を作成するためのコピー&ペーストと手順の両方を提供します。
この例をすばやく設定するには、以下のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更してから、コマンドを [edit] 階層レベルのCLIにコピー&ペーストします。
フィルターベースの転送用にデバイスを設定する
set interfaces fe-0/0/0 unit 0 family inet address 198.51.100.1/24 set interfaces fe-0/0/0 unit 0 family inet filter input webFilter set interfaces fe-0/0/1 unit 0 family inet address 192.0.2.1/24 set interfaces fe-0/0/2 unit 0 family inet address 203.0.113.1/24 set firewall family inet filter webFilter term 1 from destination-port http set firewall family inet filter webFilter term 1 from destination-port https set firewall family inet filter webFilter term 1 then routing-instance webtraffic set firewall family inet filter webFilter term 2 then accept set routing-instances webtraffic routing-options static route 0.0.0.0/0 next-hop 192.0.2.2 set routing-instances webtraffic instance-type forwarding set routing-options static route 0.0.0.0/0 next-hop 203.0.113.2 set routing-options rib-groups FBF-rib import-rib inet.0 set routing-options rib-groups FBF-rib import-rib webtraffic.inet.0 set routing-options interface-routes rib-group inet FBF-rib
ステップバイステップの手順
次の例では、設定階層のさまざまなレベルに移動する必要があります。CLIのナビゲーションについては、『Junos OS CLIユーザーガイド』の「設定モードでのCLIエディターの使用」を参照してください。
デバイスを設定するには:
インバウンドインターフェイスを設定し、 webFilter ファイアウォールフィルターをアタッチします。
[edit interfaces fe-0/0/0 unit 0 family inet] user@device# set filter input webFilter user@device# set address 198.51.100.1/24
アウトバウンドインターフェイスを構成します。1つはWebトラフィック用、もう1つは他のすべてのトラフィック用です。
[edit interfaces] user@device# set fe-0/0/1 unit 0 family inet address 192.0.2.1/24 user@device# set fe-0/0/2 unit 0 family inet address 203.0.113.1/24
Webトラフィックを webtraffic ルーティングインスタンスに、その他のすべてのトラフィックを 203.0.113.1に渡すようにファイアウォールフィルターを設定します。
[edit firewall family inet filter webFilter] user@device# set term 1 from destination-port http user@device# set term 1 from destination-port https user@device# set term 1 then routing-instance webtraffic user@device# set term 2 then accept
オプション: カウンターを追加して、ファイアウォールフィルターのトラフィック処理を監視します>
[edit interfaces fe-0/0/0 unit 0 family inet] user@device# set firewall family inet filter webFilter term 1 then count webtraffic-count
webtrafficルーティングインスタンスを作成し、Webトラフィックをfe-0/0/1に転送するように設定します。
[edit routing-instances webtraffic] user@device# set routing-options static route 0.0.0.0/0 next-hop 192.0.2.2 user@device# set instance-type forwarding
Web以外のトラフィックのルートを作成します(ルートは inet.0 ルーティングテーブルに自動的にインストールされます)。
[edit routing-options] user@device# set static route 0.0.0.0/0 next-hop 203.0.113.2
FBF-ribと呼ばれるRIBグループを作成し、inet.0がwebtraffic.inet.0とインターフェイスルートを共有するように設定し、ルーティングテーブルグループをルーティングデバイスのインターフェイスに関連付け、インターフェイスルートがインポートされるルーティングテーブルグループを指定します。
[edit routing-options] user@device# set rib-groups FBF-rib import-rib inet.0 user@device# set rib-groups FBF-rib import-rib webtraffic.inet.0
ルーティングテーブルグループをルーティングデバイスのインターフェイスに関連付け、インターフェイスルートがインポートされるルーティングテーブルグループを指定します。
[edit routing-options] user@device# set interface-routes rib-group inet FBF-rib
結果
設定モードから、 show firewall、 show routing-instances、 show routing-options、 show interfaces コマンドを入力して設定を確認します。出力に意図した設定が表示されない場合は、この例の設定手順を繰り返して修正します。
デバイスの設定が完了したら、設定モードから commit を入力します。
user@device#show interfaces fe-0/0/0unit 0 { family inet { filter { input webFilter; } address 198.51.100.1/24; } } user@device#show interfaces fe-0/0/1unit 0 { family inet { address 192.0.2.1/24; } } user@device#show interfaces fe-0/0/2unit 0 { family inet { address 203.0.113.1/24; } } user@device#show firewallfamily inet { filter webFilter { term 1 { from { destination-port [ http https ]; } then { routing-instance webtraffic; } } term 2 { then accept; } } }
user@device# show routing-options
interface-routes {
rib-group inet FBF-rib;
}
static {
route 0.0.0.0/0 next-hop 203.0.113.2;
}
rib-groups {
FBF-rib {
import-rib [ inet.0 webtraffic.inet.0 ];
}
}
user@device# show routing-instances
webtraffic {
instance-type forwarding;
routing-options {
static {
route 0.0.0.0/0 next-hop 192.0.2.2;
}
}
}