例:論理システムでのフィルターベース転送の設定
この例では、論理システム内でフィルターベース転送を設定する方法を示します。フィルターはパケットを分類して、イングレス ルーティング デバイス内での転送パスを決定します。
要件
この例では、デバイスの初期化以上の特別な設定は必要ありません。
概要
フィルターベースの転送は、IP バージョン 4(IPv4)および IP バージョン 6(IPv6)でサポートされています。
顧客が、異なるISPから提供されるインターネット接続を持ちながら、共通のアクセスレイヤーを共有している場合、サービスプロバイダーの選択にフィルターベースの転送を使用します。共有メディア(ケーブル モデムなど)を使用する場合、共通アクセス レイヤー上のメカニズムがレイヤー 2 またはレイヤー 3 アドレスを調べて、顧客を区別します。レイヤー 2 スイッチと単一ルーターの組み合わせを使用して共通アクセスレイヤーが実装されている場合、フィルターベースの転送を使用できます。
フィルターベースの転送では、インターフェイスで受信したすべてのパケットが考慮されます。各パケットは、一致条件を持つフィルターを通過します。フィルターの一致条件が満たされ、ルーティングインスタンスを作成した場合、フィルターベースの転送がパケットに適用されます。パケットは、ルーティング インスタンスで指定されたネクスト ホップに基づいて転送されます。スタティック ルートの場合、ネクスト ホップは特定の LSP にすることができます。
ソースクラス使用フィルターマッチングとユニキャストリバースパス転送チェックは、フィルターベース転送(FBF)が設定されたインターフェイスではサポートされません。
フィルターベースの転送を設定するには、以下のタスクを実行します。
イングレス ルーターまたはスイッチに一致フィルターを作成します。一致フィルターを指定するには、
[edit firewall]
階層レベルでfilter filter-name
ステートメントを含めます。フィルターを通過したパケットは、一連のルールと比較して分類され、一連のルール内のメンバーシップが決定されます。分類されると、パケットはフィルター記述言語の accept アクションで指定されたルーティングテーブルに転送されます。次に、ルーティング テーブルは、テーブル内の宛先アドレス エントリに対応するネクスト ホップにパケットを転送します。パケットの転送先のルーティングテーブルと、
[edit routing-instances]
階層レベルまたは[edit logical-systems logical-system-name routing-instances]
階層レベルでパケットの転送先を指定するルーティングインスタンスを作成します。たとえば、以下のように表示されます。[edit] routing-instances { routing-table-name1 { instance-type forwarding; routing-options { static { route 0.0.0.0/0 nexthop 10.0.0.1; } } } routing-table-name2 { instance-type forwarding; routing-options { static { route 0.0.0.0/0 nexthop 10.0.0.2; } } } }
FBF(フィルターベース転送)で使用される転送ルーティングインスタンスおよびデフォルトのルーティングインスタンス
inet.0
にインターフェイスルートを追加するルーティングテーブルグループを作成します。設定のこの部分では、ルーティング インスタンスにインストールされたルートを、そのインターフェイス上で直接接続されたネクスト ホップに解決します。[edit routing-options]
階層レベルまたは[edit logical-systems logical-system-name routing-options]
階層レベルでルーティングテーブルグループを作成します。
インターフェイスルートがインポートされるルーティングインスタンスの1つとして、 inet.0
を指定します。デフォルトのインスタンス inet.0
が指定されていない場合、インターフェイスルートはデフォルトのルーティングインスタンスにインポートされません。
この例では、パケットの送信元アドレスに基づいて、顧客トラフィックをドメインSP 1またはSP 2のネクストホップルーターに転送するパケットフィルタを示しています。
パケットに送信元アドレスが SP 1 のカスタマーに割り当てられた場合、宛先ベースの転送は sp1-route-table.inet.0 ルーティング テーブルを使用して行われます。パケットに SP 2 カスタマーに割り当てられた送信元アドレスがある場合、宛先ベースの転送は sp2-route-table.inet.0 ルーティング テーブルを使用して行われます。パケットがこれらの条件のいずれにも一致しない場合、フィルターはパケットを受け入れ、標準のinet.0ルーティングテーブルを使用して宛先ベースの転送が行われます。
論理システム内でフィルターベースの転送を機能させる 1 つの方法は、パケットを受信する論理システムでファイアウォール フィルターを設定することです。別の方法は、メインルーターでファイアウォールフィルターを設定し、ファイアウォールフィルターで論理システムを参照することです。この例では、2 番目の方法を使用します。特定のルーティングインスタンスは、論理システム内で構成されます。各ルーティングインスタンスには独自のルーティングテーブルがあるため、ファイアウォールフィルター内のルーティングインスタンスも参照する必要があります。構文は次のようになります。
[edit firewall filter filter-name term term-name] user@host# set then logical-system logical-system-name routing-instance routing-instance-name
トポロジー
図 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 にルーティングされます。
![フィルタベース転送を使用する論理システム](../../images/g041191.gif)
接続を確立するには、すべてのインターフェイスに OSPF を設定します。デモンストレーションのために、ループバック インターフェイス アドレスがルーティング デバイスに設定され、クラウド内のネットワークを表します。
CLIクイック構成セクションには、トポロジー内のすべてのデバイスの設定全体が表示されます。論理システムP1でのルーティングインスタンスの設定 および メインルーターでのファイアウォールフィルターの設定 セクションでは、イングレス ルーティング デバイスである論理システム P1 の設定を順を追って説明します。
設定
CLIクイック構成
この例をすばやく設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、[edit]階層レベルのCLIにコマンドをコピー&ペーストしてください。
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 logical-system P1 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 logical-system P1 routing-instance sp2-route-table set firewall filter classify-customers term default then accept set logical-systems P1 interfaces lt-1/2/0 unit 10 encapsulation ethernet set logical-systems P1 interfaces lt-1/2/0 unit 10 peer-unit 9 set logical-systems P1 interfaces lt-1/2/0 unit 10 family inet filter input classify-customers set logical-systems P1 interfaces lt-1/2/0 unit 10 family inet address 172.16.0.10/30 set logical-systems P1 interfaces lt-1/2/0 unit 13 encapsulation ethernet set logical-systems P1 interfaces lt-1/2/0 unit 13 peer-unit 14 set logical-systems P1 interfaces lt-1/2/0 unit 13 family inet address 172.16.0.13/30 set logical-systems P1 interfaces lt-1/2/0 unit 17 encapsulation ethernet set logical-systems P1 interfaces lt-1/2/0 unit 17 peer-unit 18 set logical-systems P1 interfaces lt-1/2/0 unit 17 family inet address 172.16.0.17/30 set logical-systems P1 protocols ospf rib-group fbf-group set logical-systems P1 protocols ospf area 0.0.0.0 interface all set logical-systems P1 protocols ospf area 0.0.0.0 interface fxp0.0 disable set logical-systems P1 routing-instances sp1-route-table instance-type forwarding set logical-systems P1 routing-instances sp1-route-table routing-options static route 0.0.0.0/0 next-hop 172.16.0.13 set logical-systems P1 routing-instances sp2-route-table instance-type forwarding set logical-systems P1 routing-instances sp2-route-table routing-options static route 0.0.0.0/0 next-hop 172.16.0.17 set logical-systems P1 routing-options rib-groups fbf-group import-rib inet.0 set logical-systems P1 routing-options rib-groups fbf-group import-rib sp1-route-table.inet.0 set logical-systems P1 routing-options rib-groups fbf-group import-rib sp2-route-table.inet.0 set logical-systems P2 interfaces lt-1/2/0 unit 2 encapsulation ethernet set logical-systems P2 interfaces lt-1/2/0 unit 2 peer-unit 1 set logical-systems P2 interfaces lt-1/2/0 unit 2 family inet address 172.16.0.2/30 set logical-systems P2 interfaces lt-1/2/0 unit 6 encapsulation ethernet set logical-systems P2 interfaces lt-1/2/0 unit 6 peer-unit 5 set logical-systems P2 interfaces lt-1/2/0 unit 6 family inet address 172.16.0.6/30 set logical-systems P2 interfaces lt-1/2/0 unit 9 encapsulation ethernet set logical-systems P2 interfaces lt-1/2/0 unit 9 peer-unit 10 set logical-systems P2 interfaces lt-1/2/0 unit 9 family inet address 172.16.0.9/30 set logical-systems P2 protocols ospf area 0.0.0.0 interface all set logical-systems P2 protocols ospf area 0.0.0.0 interface fxp0.0 disable set logical-systems PE1 interfaces lt-1/2/0 unit 14 encapsulation ethernet set logical-systems PE1 interfaces lt-1/2/0 unit 14 peer-unit 13 set logical-systems PE1 interfaces lt-1/2/0 unit 14 family inet address 172.16.0.14/30 set logical-systems PE1 interfaces lo0 unit 3 family inet address 172.16.1.1/32 set logical-systems PE1 protocols ospf area 0.0.0.0 interface all set logical-systems PE1 protocols ospf area 0.0.0.0 interface fxp0.0 disable set logical-systems PE2 interfaces lt-1/2/0 unit 18 encapsulation ethernet set logical-systems PE2 interfaces lt-1/2/0 unit 18 peer-unit 17 set logical-systems PE2 interfaces lt-1/2/0 unit 18 family inet address 172.16.0.18/30 set logical-systems PE2 interfaces lo0 unit 4 family inet address 172.16.2.2/32 set logical-systems PE2 protocols ospf area 0.0.0.0 interface all set logical-systems PE2 protocols ospf area 0.0.0.0 interface fxp0.0 disable set logical-systems PE3 interfaces lt-1/2/0 unit 1 encapsulation ethernet set logical-systems PE3 interfaces lt-1/2/0 unit 1 peer-unit 2 set logical-systems PE3 interfaces lt-1/2/0 unit 1 family inet address 172.16.0.1/30 set logical-systems PE3 interfaces lo0 unit 1 family inet address 10.1.1.1/32 set logical-systems PE3 interfaces lo0 unit 1 family inet address 10.1.2.1/32 set logical-systems PE3 protocols ospf area 0.0.0.0 interface all set logical-systems PE3 protocols ospf area 0.0.0.0 interface fxp0.0 disable set logical-systems PE4 interfaces lt-1/2/0 unit 5 encapsulation ethernet set logical-systems PE4 interfaces lt-1/2/0 unit 5 peer-unit 6 set logical-systems PE4 interfaces lt-1/2/0 unit 5 family inet address 172.16.0.5/30 set logical-systems PE4 interfaces lo0 unit 2 family inet address 10.2.1.1/32 set logical-systems PE4 interfaces lo0 unit 2 family inet address 10.2.2.1/32 set logical-systems PE4 protocols ospf area 0.0.0.0 interface all set logical-systems PE4 protocols ospf area 0.0.0.0 interface fxp0.0 disable
メインルーターでのファイアウォールフィルターの設定
ステップバイステップでの手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。CLI のナビゲーションについては、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
指定された送信元アドレスのパケットを受信したときに実行するアクションを設定します。
ファイアウォールフィルターのアクションを追跡するために、ログアクションが設定されます。論理システム P1 の sp1-route-table.inet.0 ルーティング テーブルは、パケットをルーティングします。
[edit firewall filter classify-customers term sp1-customers] user@host# set then log user@host# set then logical-system P1 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
指定された送信元アドレスのパケットを受信したときに実行するアクションを設定します。
ファイアウォールフィルターのアクションを追跡するために、ログアクションが設定されます。論理システム P1 の sp2-route-table.inet.0 ルーティング テーブルは、パケットをルーティングします。
[edit firewall filter classify-customers term sp2-customers] user@host# set then log user@host# set then logical-system P1 routing-instance sp2-route-table
他の送信元アドレスからパケットを受信したときに実行するアクションを設定します。
これらのパケットはすべて単純に受け入れられ、デフォルトのIPv4ユニキャストルーティングテーブルinet.0を使用してルーティングされます。
[edit firewall filter classify-customers term default] user@host# set then accept
論理システムP1でのルーティングインスタンスの設定
ステップバイステップでの手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。CLI のナビゲーションについては、CLIユーザー・ガイド の コンフィギュレーション・モードでのCLIエディタの使用を参照してください。
論理システム上にルーティングインスタンスを設定するには:
論理システム上のインターフェイスを設定します。
[edit logical-systems P1 interfaces lt-1/2/0] user@host# set unit 10 encapsulation ethernet user@host# set unit 10 peer-unit 9 user@host# set unit 10 family inet address 172.16.0.10/30 user@host# set unit 13 encapsulation ethernet user@host# set unit 13 peer-unit 14 user@host# set unit 13 family inet address 172.16.0.13/30 user@host# set unit 17 encapsulation ethernet user@host# set unit 17 peer-unit 18 user@host# set unit 17 family inet address 172.16.0.17/30
classify-customers
ファイアウォールフィルターを入力パケットフィルターとしてルーターインターフェイスlt-1/2/0.10に割り当てます。[edit logical-systems P1 interfaces lt-1/2/0] user@host# set unit 10 family inet filter input classify-customers
ルーティングプロトコルまたはスタティックルーティングを使用して、接続を構成します。
ベスト プラクティスとして、管理インターフェイスでルーティングを無効にします。
[edit logical-systems P1 protocols ospf area 0.0.0.0] user@host# set interface all user@host# set interface fxp0.0 disable
ルーティングインスタンスを作成します。
これらのルーティング インスタンスは、
classify-customers
ファイアウォール フィルターで参照されます。転送インスタンスタイプは、インターフェイスがインスタンスに関連付けられないフィルターベースの転送をサポートします。すべてのインターフェイスは、デフォルトのインスタンス(この場合は論理システム P1)に属します。
[edit logical-systems P1 routing-instances] user@host# set sp1-route-table instance-type forwarding user@host# set sp2-route-table instance-type forwarding
ルーティングインスタンスにインストールされているルートを直接接続されたネクストホップに解決します。
[edit logical-systems P1 routing-instances] user@host# set sp1-route-table routing-options static route 0.0.0.0/0 next-hop 172.16.0.13 user@host# set sp2-route-table routing-options static route 0.0.0.0/0 next-hop 172.16.0.17
ルーティングテーブルをグループ化して、ルーティングテーブルグループを形成します。
最初のルーティングテーブルinet.0はプライマリルーティングテーブルで、追加のルーティングテーブルはセカンダリルーティングテーブルです。
プライマリルーティングテーブルは、ルーティングテーブルグループのアドレスファミリー(この場合はIPv4)を決定します。
[edit logical-systems P1 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に適用します。
これにより、OSPF ルートがグループ内のすべてのルーティング テーブルにインストールされます。
[edit logical-systems P1 protocols ospf] user@host# set rib-group fbf-group
デバイスの設定が完了したら、設定をコミットします。
[edit] user@host# commit
結果
show firewall
コマンドと show logical-systems P1
コマンドを発行して、設定を確認します。
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; logical-system P1 routing-instance sp1-route-table; } } term sp2-customers { from { source-address { 10.2.1.0/24; 10.2.2.0/24; } } then { log; logical-system P1 routing-instance sp2-route-table; } } term default { then accept; } }
user@host# show logical-systems P1 interfaces { lt-1/2/0 { unit 10 { encapsulation ethernet; peer-unit 9; family inet { filter { input classify-customers; } address 172.16.0.10/30; } } unit 13 { encapsulation ethernet; peer-unit 14; family inet { address 172.16.0.13/30; } } unit 17 { encapsulation ethernet; peer-unit 18; family inet { address 172.16.0.17/30; } } } } protocols { ospf { rib-group fbf-group; area 0.0.0.0 { interface all; interface fxp0.0 { disable; } } } } routing-instances { sp1-route-table { instance-type forwarding; routing-options { static { route 0.0.0.0/0 next-hop 172.16.0.13; } } } sp2-route-table { instance-type forwarding; routing-options { static { route 0.0.0.0/0 next-hop 172.16.0.17; } } } } routing-options { rib-groups { fbf-group { import-rib [ inet.0 sp1-route-table.inet.0 sp2-route-table.inet.0 ]; } } }
検証
設定が正常に機能していることを確認します。
指定された送信元アドレスでの ping
目的
ネットワークを介していくつかのICMPパケットを送信し、ファイアウォールフィルターをテストします。
アクション
論理システム PE3 にログインします。
user@host> set cli logical-system PE3 Logical system: PE3
論理システム PE1 の lo0.3 インターフェイスに ping を実行して、
ping
コマンドを実行します。このインターフェイスで設定されているアドレスは172.16.1.1です。
論理システム PE3 の lo0.1 インターフェイスで設定されたアドレスである送信元アドレス 10.1.2.1 を指定します。
user@host: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
論理システム PE4 にログインします。
user@host:PE3> set cli logical-system PE4 Logical system: PE4
論理システム PE2 の lo0.4 インターフェイスに ping を実行して、
ping
コマンドを実行します。このインターフェイスで設定されているアドレスは172.16.2.2です。
論理システム PE4 の lo0.2 インターフェイスで設定されたアドレスである送信元アドレス 10.2.1.1 を指定します。
user@host: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を送信すると、ファイアウォールフィルターアクションがアクティブになります。
ファイアウォールフィルターの検証
目的
ファイアウォールフィルターアクションが有効になっていることを確認します。
アクション
論理システム P1 にログインします。
user@host> set cli logical-system P1 Logical system: P1
論理システム P1 で
show firewall log
コマンドを実行します。user@host:P1> show firewall log Log : Time Filter Action Interface Protocol Src Addr Dest Addr 13:52:20 pfe A lt-1/2/0.10 ICMP 10.2.1.1 172.16.2.2 13:52:19 pfe A lt-1/2/0.10 ICMP 10.2.1.1 172.16.2.2 13:51:53 pfe A lt-1/2/0.10 ICMP 10.1.2.1 172.16.1.1 13:51:52 pfe A lt-1/2/0.10 ICMP 10.1.2.1 172.16.1.1