例:送信元アドレスでのフィルターベースの転送の設定
この例では、ポリシーベースルーティング(PBR)とも呼ばれるフィルターベース転送(FBF)を設定する方法を示しています。フィルターは、パケットを分類して、イングレスルーティングデバイス内の転送パスを決定します。
フィルターベースの転送は、IPv4(IP バージョン 4)と IPv6(IP バージョン 6)でサポートされています。
要件
この例では、デバイス初期化以外の特別な設定は必要ありません。
概要
この例では、顧客が異なる ISP によって提供されるインターネット接続を持ち、共通のアクセス レイヤーを共有している場合、サービス プロバイダの選択に FBF を使用します。共有メディア(ケーブル モデムなど)を使用すると、共通アクセス レイヤー上のメカニズムがレイヤー 2 またはレイヤー 3 のアドレスを確認し、顧客間の識別を行います。レイヤー 2 スイッチと単一ルーターの組み合わせを使用して共通アクセス レイヤーを実装する場合、フィルターベースの転送を使用できます。
FBFでは、インターフェイスで受信されたすべてのパケットが考慮されます。各パケットは、一致条件を持つフィルターを通過します。フィルターの一致条件に一致し、ルーティングインスタンスを作成した場合、FBFがパケットに適用されます。パケットは、ルーティングインスタンスで指定されたネクストホップに基づいて転送されます。静的ルートの場合、ネクストホップは特定のLSPにすることができます。
FBF に設定されたインターフェイスでは、ソースクラス使用フィルターの照会とユニキャストリバースパス転送チェックはサポートされていません。
FBFを設定するには、以下のタスクを実行します。
イングレスデバイスで一致フィルターを作成します。一致フィルターを指定するには、 階層レベルに
filter filter-name
ステートメントを[edit firewall]
含めます。フィルターを通過するパケットは、一連のルールと比較して分類し、セット内のメンバーシップを決定します。パケットは、分類されると、フィルター記述言語の accept アクションで指定されたルーティング テーブルに転送されます。ルーティングテーブルは、次に、テーブル内の宛先アドレスエントリーに対応するネクストホップにパケットを転送します。パケットを転送するルーティング テーブルと、 階層レベルでパケットを転送する宛先を指定するルーティング インスタンスを
[edit routing-instances]
作成します。次がその例です。[edit] routing-instances { routing-table-name1 { instance-type forwarding; routing-options { static { route 0.0.0.0/0 next-hop 172.16.0.14; } } } routing-table-name2 { instance-type forwarding; routing-options { static { route 0.0.0.0/0 next-hop 172.16.0.18; } } } }
フィルターベース転送(FBF)で使用される転送ルーティング インスタンスとインターフェイス ルートを共有する RIB グループを作成します。設定のこの部分は、ルーティングインスタンスにインストールされたルートを、そのインターフェイス上の直接接続されたネクストホップに解決します。階層レベルでルーティング テーブル グループを
[edit routing-options]
作成します。[edit] routing-options { interface-routes { rib-group; inet { int-routes; } } } } routing-options { rib-groups { int-routes { import-rib { inet.0; webtraffic.inet.0; } } } }
この例では、パケットの送信元アドレスに基づいて、顧客のトラフィックをドメイン(SP1 または SP2)のネクストホップ ルーターに誘導するパケット フィルターを示しています。
パケットに SP1 カスタマーに割り当てられた送信元アドレスがある場合、sp1-route-table.inet.0 ルーティング テーブルを使用して宛先ベースの転送が発生します。パケットに SP2 カスタマーに割り当てられた送信元アドレスがある場合、sp2-route-table.inet.0 ルーティング テーブルを使用して宛先ベースの転送が行われます。パケットがこれらの条件のいずれにも一致しない場合、フィルターはパケットを受け入れ、標準のinet.0ルーティングテーブルを使用して宛先ベースの転送が行われます。
トポロジ
図 1 は、この例で使用されているトポロジーを示しています。
デバイス P1 では、入力フィルターがデバイス PE3 およびデバイス PE4 から受信したパケットを分類します。パケットは送信元アドレスに基づいてルーティングされます。10.1.1.0/24 および 10.1.2.0/24 ネットワークに送信元アドレスを持つパケットは、デバイス PE1 にルーティングされます。10.2.1.0/24 および 10.2.2.0/24 ネットワークに送信元アドレスを持つパケットは、デバイス PE2 にルーティングされます。

接続を確立するために、すべてのインターフェイスにOSPFが設定されています。デモ用に、ループバック インターフェイス アドレスは、クラウド内のネットワークを表すようにルーティング デバイス上で設定されます。
このセクションでは CLI クイックコンフィギュレーション 、トポロジー内のすべてのデバイスの設定全体を示しています。セクションは デバイスP1でのフィルターベースの転送の設定 、イングレスルーティングデバイスであるデバイスP1の設定をステップバイステップで示しています。
設定
CLI クイックコンフィギュレーション
この例を迅速に設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に合わせて必要な詳細を変更し、コマンドを 階層レベルの CLI [edit]
にコピー アンド ペーストします。
デバイスP1
set firewall filter classify-customers term sp1-customers from source-address 10.1.1.0/24 set firewall filter classify-customers term sp1-customers from source-address 10.1.2.0/24 set firewall filter classify-customers term sp1-customers then log set firewall filter classify-customers term sp1-customers then routing-instance sp1-route-table set firewall filter classify-customers term sp2-customers from source-address 10.2.1.0/24 set firewall filter classify-customers term sp2-customers from source-address 10.2.2.0/24 set firewall filter classify-customers term sp2-customers then log set firewall filter classify-customers term sp2-customers then routing-instance sp2-route-table set firewall filter classify-customers term default then accept set interfaces fe-1/2/0 unit 0 family inet filter input classify-customers set interfaces fe-1/2/0 unit 0 family inet address 172.16.0.10/30 set interfaces fe-1/2/1 unit 0 family inet address 172.16.0.13/30 set interfaces fe-1/2/2 unit 0 family inet address 172.16.0.17/30 set protocols ospf rib-group fbf-group set protocols ospf area 0.0.0.0 interface all set protocols ospf area 0.0.0.0 interface fxp0.0 disable set routing-instances sp1-route-table instance-type forwarding set routing-instances sp1-route-table routing-options static route 0.0.0.0/0 next-hop 172.16.0.14 set routing-instances sp2-route-table instance-type forwarding set routing-instances sp2-route-table routing-options static route 0.0.0.0/0 next-hop 172.16.0.18 set routing-options interface-routes rib-group fbf-group set routing-options rib-groups fbf-group import-rib inet.0 set routing-options rib-groups fbf-group import-rib sp1-route-table.inet.0 set routing-options rib-groups fbf-group import-rib sp2-route-table.inet.0
デバイスP2
set interfaces fe-1/2/0 unit 0 family inet address 172.16.0.2/30 set interfaces fe-1/2/1 unit 0 family inet address 172.16.0.6/30 set interfaces fe-1/2/2 unit 0 family inet address 172.16.0.9/30 set protocols ospf area 0.0.0.0 interface all set protocols ospf area 0.0.0.0 interface fxp0.0 disable
デバイスPE1
set interfaces fe-1/2/0 unit 0 family inet address 172.16.0.14/30 set interfaces lo0 unit 0 family inet address 172.16.1.1/32 set protocols ospf area 0.0.0.0 interface all set protocols ospf area 0.0.0.0 interface fxp0.0 disable
デバイスPE2
set interfaces fe-1/2/0 unit 0 family inet address 172.16.0.18/30 set interfaces lo0 unit 0 family inet address 172.16.2.2/32 set protocols ospf area 0.0.0.0 interface all set protocols ospf area 0.0.0.0 interface fxp0.0 disable
デバイスPE3
set interfaces fe-1/2/0 unit 0 family inet address 172.16.0.1/30 set interfaces lo0 unit 0 family inet address 10.1.1.1/32 set interfaces lo0 unit 0 family inet address 10.1.2.1/32 set protocols ospf area 0.0.0.0 interface all set protocols ospf area 0.0.0.0 interface fxp0.0 disable
デバイスPE4
set interfaces fe-1/2/0 unit 0 family inet address 172.16.0.5/30 set interfaces lo0 unit 0 family inet address 10.2.1.1/32 set interfaces lo0 unit 0 family inet address 10.2.2.1/32 set protocols ospf area 0.0.0.0 interface all set protocols ospf area 0.0.0.0 interface fxp0.0 disable
P1 でのファイアウォール フィルターの設定
手順
次の例では、設定階層内のさまざまなレベルに移動する必要があります。CLIのナビゲーションについては、 Junos OS CLIユーザーガイドの設定モードでのCLIエディターの使用を参照してください。
メインルーターまたはスイッチでファイアウォールフィルターを設定するには:
SP1 顧客の送信元アドレスを設定します。
[edit firewall filter classify-customers term sp1-customers] user@host# set from source-address 10.1.1.0/24 user@host# set from source-address 10.1.2.0/24
指定された送信元アドレスを持つパケットを受信したときに実行されるアクションを設定します。彼らはログに記録され、sp1-route-table.inet.0ルーティングテーブルを介してルーティングするためにsp1-route-tableルーティングインスタンスに渡されます。
[edit firewall filter classify-customers term sp1-customers] user@host# set then log user@host# set then routing-instance sp1-route-table
SP2 顧客の送信元アドレスを設定します。
[edit firewall filter classify-customers term sp2-customers] user@host# set from source-address 10.2.1.0/24 user@host# set from source-address 10.2.2.0/24
指定された送信元アドレスを持つパケットを受信したときに実行されるアクションを設定します。彼らはログに記録され、sp2-route-table.inet.0ルーティングテーブルを介してルーティングするためにsp2-route-tableルーティングインスタンスに渡されます。
[edit firewall filter classify-customers term sp2-customers] user@host# set then log user@host# set then routing-instance sp2-route-table
他の送信元アドレスからパケットを受信したときに実行するアクションを設定します。デフォルトの IPv4 ユニキャスト ルーティング テーブル inet.0 を使用して受け入れられ、ルーティングされます。
[edit firewall filter classify-customers term default] user@host# set then accept
デバイスP1でのフィルターベースの転送の設定
手順
次の例では、設定階層内のさまざまなレベルに移動する必要があります。CLIのナビゲーションについては、 Junos OS CLIユーザーガイドの設定モードでのCLIエディターの使用を参照してください。
ルーティングインスタンスを設定するには:
インターフェイスを設定します。
[edit interfaces fe-1/2/0] user@host# set unit 0 family inet address 172.16.0.10/30 [edit interfaces fe-1/2/1] user@host# set unit 0 family inet address 172.16.0.13/30 [edit interfaces fe-1/2/2] user@host# set unit 0 family inet address 172.16.0.17/30
classify-customers
入力パケット フィルターとして、ルーター インターフェイス fe-1/2/0.0 にファイアウォール フィルターを割り当てます。[edit interfaces fe-1/2/0] user@host# set unit 0 family inet filter input classify-customers
ルーティング プロトコルまたはスタティック ルーティングのいずれかを使用して接続を設定します。
ベストプラクティスとして、管理インターフェイスでルーティングを無効にします。
[edit protocols ospf area 0.0.0.0] user@host# set interface all user@host# set interface fxp0.0 disable
ファイアウォールフィルターで参照されるルーティングインスタンスを
classify-customers
作成します。転送インスタンス タイプは、インターフェイスがインスタンスに関連付けられていないフィルターベースの転送をサポートします。[edit routing-instances] user@host# set sp1-route-table instance-type forwarding user@host# set sp2-route-table instance-type forwarding
ルーティング インスタンスごとに、指定されたネクスト ホップ(この例では PE1 と PE2)にトラフィックを転送するデフォルト ルートを定義します。
[edit routing-instances ] user@host# set sp1-route-table routing-options static route 0.0.0.0/0 next-hop 172.16.0.14 user@host# set sp2-route-table routing-options static route 0.0.0.0/0 next-hop 172.16.0.18
ルーティングテーブルを関連付けて、ルーティングテーブルグループを形成します。最初のルーティングテーブルinet.0はプライマリルーティングテーブルで、その他はセカンダリルーティングテーブルです。プライマリルーティングテーブルは、ルーティングテーブルグループ(ここではIPv4)のアドレスファミリーを決定します。
[edit routing-options] user@host# set rib-groups fbf-group import-rib inet.0 user@host# set rib-groups fbf-group import-rib sp1-route-table.inet.0 user@host# set rib-groups fbf-group import-rib sp2-route-table.inet.0
OSPF設定内のfbf-groupルーティングテーブルグループを指定して、3つのルーティングテーブルにOSPFルートをインストールします。
[edit protocols ospf] user@host# set rib-group fbf-group
完了したら、設定をコミットします。
[edit] user@host# commit
結果
、 show routing-instances
show firewall
show protocols
、および のコマンドをshow interfaces
発行して、設定をshow routing-options
確認します。
user@host# show interfaces fe-1/2/0 { unit 0 { family inet { filter { input classify-customers; } address 172.16.0.10/30; } } } fe-1/2/1 { unit 0 { family inet { address 172.16.0.13/30; } } } fe-1/2/2 { unit 0 { family inet { address 172.16.0.17/30; } } }
user@host# show firewall filter classify-customers { term sp1-customers { from { source-address { 10.1.1.0/24; 10.1.2.0/24; } } then { log; routing-instance sp1-route-table; } } term sp2-customers { from { source-address { 10.2.1.0/24; 10.2.2.0/24; } } then { log; routing-instance sp2-route-table; } } term default { then accept; } }
user@host# show protocols ospf { rib-group fbf-group; area 0.0.0.0 { interface all; interface fxp0.0 { disable; } } }
user@host# show routing-instances sp1-route-table { instance-type forwarding; routing-options { static { route 0.0.0.0/0 next-hop 172.16.0.14; } } } sp2-route-table { instance-type forwarding; routing-options { static { route 0.0.0.0/0 next-hop 172.16.0.18; } } }
user@host# show routing-options rib-groups { fbf-group { import-rib [ inet.0 sp1-route-table.inet.0 sp2-route-table.inet.0 ]; } }
検証
設定が正しく機能していることを確認します。
指定された送信元アドレスを持つ ping
目的
ファイアウォール フィルターをテストするために、ネットワークを介していくつかの ICMP パケットを送信します。
対処
コマンドを
ping
実行し、デバイスPE1のlo0.0インターフェイスに ping を実行します。このインターフェイスで設定されたアドレスは172.16.1.1です。
デバイスPE3のlo0.0インターフェイスで設定されたアドレスである送信元アドレス10.1.2.1を指定します。
user@PE3> ping 172.16.1.1 source 10.1.2.1 PING 172.16.1.1 (172.16.1.1): 56 data bytes 64 bytes from 172.16.1.1: icmp_seq=0 ttl=62 time=1.444 ms 64 bytes from 172.16.1.1: icmp_seq=1 ttl=62 time=2.094 ms ^C --- 172.16.1.1 ping statistics --- 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max/stddev = 1.444/1.769/2.094/0.325 ms
コマンドを
ping
実行し、デバイスPE2のlo0.0インターフェイスに ping を実行します。このインターフェイスで設定されたアドレスは172.16.2.2です。
デバイス PE4 の lo0.0 インターフェイスで設定されたアドレスである送信元アドレス 10.2.1.1 を指定します。
user@PE4> ping 172.16.2.2 source 10.2.1.1 PING 172.16.2.2 (172.16.2.2): 56 data bytes 64 bytes from 172.16.2.2: icmp_seq=0 ttl=62 time=1.473 ms 64 bytes from 172.16.2.2: icmp_seq=1 ttl=62 time=1.407 ms ^C --- 172.16.2.2 ping statistics --- 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max/stddev = 1.407/1.440/1.473/0.033 ms
意味
これらの ping を送信すると、ファイアウォール フィルター アクションがアクティブになります。
ファイアウォールフィルターの検証
目的
ファイアウォール フィルターのアクションが有効になっていることを確認します。
対処
show firewall log
デバイス P1 で コマンドを実行します。user@P1> show firewall log Log : Time Filter Action Interface Protocol Src Addr Dest Addr 13:52:20 pfe A fe-1/2/0.0 ICMP 10.2.1.1 172.16.2.2 13:52:19 pfe A fe-1/2/0.0 ICMP 10.2.1.1 172.16.2.2 13:51:53 pfe A fe-1/2/0.0 ICMP 10.1.2.1 172.16.1.1 13:51:52 pfe A fe-1/2/0.0 ICMP 10.1.2.1 172.16.1.1