[index] CentreCOM AR450S コマンドリファレンス 2.9

IPv6/IPv6フィルター


  - 基本動作
   - フィルターの構成
   - フィルター処理の流れ
    - 概要
    - 詳細
  - 設定手順
   - フィルタリング条件の指定
   - 処理内容の指定
   - マッチしたパケットの記録
   - インターフェースへの適用
   - フィルターの削除
  - トラフィックフィルターの設定例
  - プライオリティーフィルターの設定例
  - その他


IPv6フィルターは、送受信インターフェースにおいてIPv6パケットのフィルタリングを行う機能です。

ここでのフィルタリングとは、IPv6および上位プロトコルヘッダーの情報に基づいてパケットをふるいわけ、一定の条件を満たしたパケットに対して何らかの処理を行うことを意味します。

IPv6フィルターの機能は、ふるいわけ後の処理内容によって次の2つに分類できます。

表 1
種類
フィルター番号
機能
トラフィックフィルター 0〜99 受信パケットのヘッダー情報に基づき、パケットを破棄または許可する。不正アクセスを防ぐなど、おもにセキュリティーを高めるために使用する
プライオリティーフィルター 200〜299 送信パケットのヘッダー情報に基づき、出力時の絶対優先度を設定する。特定のアプリケーショントラフィックを最優先で出力するような設定ができる(プライオリティールーティング)


Note - 経路制御用のポリシーフィルター(100〜199)は、現在IPv6フィルターでは使用できません。

 

基本動作

IPv6フィルターの基本動作について説明します。

 

フィルターの構成

IPv6フィルターは、複数のフィルターエントリーで構成されるリストです。各フィルターはフィルター番号で、フィルター内の各エントリーはエントリー番号で識別します。

また、フィルター番号はフィルターの種類(トラフィックフィルター、プライオリティーフィルター)によって使用できる範囲が決まっています。

個々のフィルターエントリーでは、パケットをふるいわけるための条件と、マッチ時のアクションを指定します。アクションはフィルターの種類によって異なります。


作成可能なフィルター数は次のとおりです。

各フィルターに追加できるエントリー数(エントリー番号1〜)は空きメモリー容量により変化します。

作成したフィルターは、IPv6インターフェースに適用して初めて効果を発揮します。フィルターの条件チェック(ふるいわけ)は、トラフィックフィルターは受信インターフェース、プライオリティーフィルターは送信インターフェースで行われます。

一方、フィルターの効果は、トラフィックフィルターでは受信直後(破棄・許可)、プライオリティーフィルターでは出力時(優先度の高いものから出力)に現れます。

IPv6インターフェースには、トラフィックフィルター、プライオリティーフィルターをそれぞれ1つずつ適用できます。同じフィルターを複数のインターフェースに割り当ててもかまいません。

 

フィルター処理の流れ


 

概要

IPv6フィルターの処理内容は、次の2段階に大きく分けられます。

  1. 受信(入力)IPv6インターフェース(トラフィックフィルター)または送信(出力)IPv6インターフェースにおいて、ヘッダー情報(IPv6アドレス、ポート番号など)に基づきパケットをふるいわける(フィルタリング)

  2. 選別されたパケットに対してなんらかの処理(破棄、優先度設定など)を実行する

トラフィックフィルターとプライオリティーフィルターは2の処理内容が異なるだけであり、パケットを選別するプロセスは共通です。

 

詳細

IPv6フィルターの詳細な処理順序について説明します。

ルーターの基本動作をパケット受信、経路選択(転送先決定)、送信の3ステップに分けた場合、トラフィックフィルターのチェックはパケット受信時、プライオリティーフィルターのチェックはパケット送信時に行われます。


  1. IPv6パケットを受信すると、受信インターフェースにトラフィックフィルターが適用されているかどうかを調べます。

  2. 受信インターフェースにトラフィックフィルターが適用されている場合、フィルター内の各エントリーをエントリー番号の若い順にチェックし、受信パケットのヘッダー情報と一致するものがあるかどうかを調べていきます。

    受信インターフェースにトラフィックフィルターが適用されていない場合は、受信インターフェースにおけるIPv6フィルター処理を完了し、通常のパケット処理(転送先決定など)に移ります。

    1. マッチするエントリーが見つかった場合は、該当エントリーのACTIONパラメーターで指定されている処理(アクション)を実行します。トラフィックフィルターでは、最初にマッチしたエントリーが適用されます。

      • EXCLUDE(破棄)の場合はパケットを破棄し、該当パケットの処理を完了します。
      • INCLUDE(許可)の場合は受信インターフェースにおけるIPv6フィルター処理を完了し、通常のパケット処理(転送先決定など)に移ります。

    2. すべてのエントリーをチェックしてもマッチするエントリーが見つからなかった場合は、パケットを破棄して該当パケットの処理を完了します。このように、トラフィックフィルターの末尾には「すべてを破棄する」暗黙のエントリーが存在するので、フィルター作成時には注意が必要です。

  3. パケットの最終宛先がルーター自身でない場合、経路表を検索して転送先(送信インターフェースとネクストホップアドレス)を決定します。転送先が決定すると、パケット送信のための処理に移ります。

  4. 送信インターフェースにプライオリティーフィルターが適用されている場合、フィルター内の各エントリーをエントリー番号の若い順にチェックし、受信パケットのヘッダー情報と一致するものがあるかどうかを調べていきます。

    送信インターフェースにプライオリティーフィルターが適用されていない場合は、通常の優先度でパケットを出力し、IPv6層の出力処理を完了します。

    1. マッチするエントリーが見つかった場合は、該当エントリーのPRIORITYパラメーターで指定されている優先度をパケットに割り当てます。パケットの出力は、つねに優先度の高いパケットから順に行われます。より高い優先度を持つパケットがある場合、下位のパケットは送信されません。これにより、特定のパケット(たとえばUDPのビデオストリーム)を最優先で送信するような設定が可能です。プライオリティーフィルターでは、最初にマッチしたエントリーが適用されます。

    2. すべてのエントリーをチェックしてもマッチするエントリーが見つからなかった場合は、送信インターフェースにおけるIPv6フィルター処理を完了し、通常の優先度でパケットを出力します。

 

設定手順

IPv6フィルターの設定は、次の流れで行います。

  1. フィルターの作成
    パケットのフィルタリング条件を指定し、マッチしたときのアクション(トラフィックフィルター)、優先度(プライオリティーフィルター)を指定します。フィルターはADD IPV6 FILTERコマンド/SET IPV6 FILTERコマンドで作成・編集します。

  2. インターフェースへの適用
    作成したフィルターをIPv6インターフェースに適用します。フィルターを作成しただけではフィルタリングが行われないので注意してください。フィルターの条件チェック(ふるいわけ)は、トラフィックフィルターは受信インターフェース、プライオリティーフィルターは送信インターフェースで行われます。一方、フィルターの効果がいつ現れるかはフィルターの種類によって異なります。フィルターの適用はADD IPV6 INTERFACEコマンド/SET IPV6 INTERFACEコマンドで行います。

    IPインターフェースには、トラフィックフィルターとプライオリティーフィルターをそれぞれ1つずつ適用できます。1つのフィルターを複数のインターフェースに割り当ててもかまいません。

以下、各手順について詳しく解説します。

 

フィルタリング条件の指定

パケットをふるいわけるためのパラメーターとしては、以下のものがあります。これらはフィルターの種類に関係なく共通です。

表 2:IPv6フィルターの条件パラメーター
パラメーター
説明
SOURCE 始点IPv6アドレス。アドレスの後にスラッシュに続けてプレフィックス長を指定することもできる。その場合はSPLENは必要ない。必須パラメーター
SPLEN 始点プレフィックス長(0〜128)。SOURCEで指定したアドレスの先頭何ビットを比較対象とするかを指定する。SOURCEパラメーターにおいて、スラッシュ記法でプレフィックス長を指定した場合は不要
DESTINATION 終点IPv6アドレス。アドレスの後にスラッシュに続けてプレフィックス長を指定することもできる。その場合はDPLENは必要ない
DPLEN 終点プレフィックス長(0〜128)。DESTINATIONで指定したアドレスの先頭何ビットを比較対象とするかを指定する。DESTINATIONパラメーターにおいて、スラッシュ記法でプレフィックス長を指定した場合は不要
PROTOCOL IPv6の上位プロトコル
OPTIONS IPv6パケットに拡張ヘッダーによるオプションが含まれるかどうか
SIZE フラグメント再構成後の最大データグラムサイズ
SPORT 始点TCP/UDPポート
DPORT 終点TCP/UDPポート
ICMPTYPE ICMPv6メッセージタイプ
ICMPCODE ICMPv6サブコード
SESSION TCPセッションの方向。すべて、接続開始(Syn=1、Ack=0)、接続済み(Ack=1)から選択する


以下、条件指定の部分だけの例を挙げます。

SOURCEパラメーター(始点アドレス)は必須です。任意の始点アドレスを対象とするときは、SOURCE=::/0(0:0:0:0:0:0:0:0/0の省略形)のように指定します。また、SOURCEに有効なアドレス(::/0以外)を指定するときは、アドレスの先頭何ビットを比較対象とするかを示すプレフィックス長(0〜128)を必ず指定してください。プレフィックス長は、スラッシュ記法を使ってSOURCEパラメーターで指定する方法と、SPLENパラメーターで別個に指定する方法があります。

■ ホスト3ffe:b80:3c:10::1からのIPv6パケット(スラッシュ記法)


■ ホスト3ffe:b80:3c:10::1からのIPv6パケット(SPLENパラメーターを使用)


■ ホスト3ffe:b80:3c:20::1宛てのIPv6パケット(スラッシュ記法)


■ ホスト3ffe:b80:3c:20::1宛てのIPv6パケット(DPLENパラメーターを使用)


Note - DESTINATIONのプレフィックス長を省略したときは、128ビット(/128)プレフィックス(ホスト)と見なされます。

■ ネットワーク3ffe:b80:3c:10::/64からのパケット(スラッシュ記法)


■ ネットワーク3ffe:b80:3c:10::/64からのパケット(SPLENパラメーターを使用)


■ ネットワーク3ffe:b80:3c:20::/64宛てのパケット(スラッシュ記法)


■ ネットワーク3ffe:b80:3c:20::/64宛てのパケット(DPLENパラメーターを使用)


■ 先頭32ビットが「3ffe:b80」のアドレス宛てのパケット(スラッシュ記法)


■ 先頭32ビットが「3ffe:b80」のアドレス宛てのパケット(DPLENパラメーターを使用)


■ すべてのIPパケット


■ すべてのTCPパケット


■ すべてのPing(ICMPv6 Echo Request)パケット


■ Webサーバー3ffe:b80:3c:10::5からの接続済みHTTPパケット


■ 3ffe:b80:3c:100::2宛てのPing(ICMPv6 Echo Request)パケット


 

処理内容の指定

処理内容の指定方法は、フィルターの種類によって異なります。

表 3:IPv6フィルターの処理内容パラメーター
フィルターの種類
パラメーター
指定内容
トラフィックフィルター(0〜99) ACTION EXCLUDE(パケットを破棄する)かINCLUDE(通過させる)を選択する。トラフィックフィルターは、エントリーリストの末尾に「すべてを破棄」する暗黙のエントリーが存在するので、「デフォルト拒否」のフィルターを作成するときは、例外的に許可するルールだけを記述すればよい。一方、「デフォルト許可」のフィルターを作成するときは、拒否するトラフィックのルールを列挙した上で、リストの最後に「すべて許可」のルールを必ず作成すること。そうでないと、暗黙の「すべて破棄」ルールによってすべてのトラフィックが拒否されてしまう。トラフィックフィルターは受信インターフェースで条件のチェックが行われ、マッチした場合はただちにアクションが実行される
プライオリティーフィルター(200〜299) PRIORITY パケット送信時の絶対優先度をP0(最高)〜P7(最低)で指定する。パケットの送信は、つねに優先度の高いパケットから順に行われる。上位のパケットがある限り、下位のパケットは送信されない。プライオリティーフィルターは送信インターフェースで条件のチェックが行われ、マッチした場合はフィルターが設定した優先度に基づいてパケット送信順序が決められる


以下、条件指定の例と処理内容の例を組み合わせた、完全なコマンド行の例を示します。
■ ネットワーク3ffe:b80:3c:20::/64からのパケットを破棄するトラフィックフィルターを作成する。


■ Telnetトラフィックを最優先で転送する。


 

マッチしたパケットの記録

トラフィックフィルターでは、マッチしたパケットをログに記録するよう設定することもできます。これには、ADD IPV6 FILTERコマンドのLOGオプションを使います。LOGパラメーターを指定しなかった場合は、ログには記録されません。

表 4
ログタイプ/サブタイプ
記録される情報
NONE   記録しない(デフォルト)
4〜1950 「IPFIL/PASS」(INCLUDE時)、「IPFIL/FAIL」(EXCLUDE時) フィルター番号、エントリー番号、IPv6ヘッダー情報(IPv6アドレス、プロトコル)
「IPFIL/DUMP」 TCP/UDP/ICMPの場合はデータ部分の先頭4〜1950バイト。その他プロトコルの場合はIPv6データの先頭4〜1950バイト
DUMP 「IPFIL/PASS」(INCLUDE時)、「IPFIL/FAIL」(EXCLUDE時) フィルター番号、エントリー番号、IPv6ヘッダー情報(IPv6アドレス、プロトコル)
「IPFIL/DUMP」 TCP/UDP/ICMPの場合はデータ部分の先頭32バイト。その他プロトコルの場合はIPv6データの先頭32バイト。「LOG=32」と指定した場合と同じ
HEADER 「IPFIL/PASS」(INCLUDE時)、「IPFIL/FAIL」(EXCLUDE時) フィルター番号、エントリー番号、IPv6ヘッダー情報(IPv6アドレス、プロトコル)


■ フィルター「0」のエントリー「1」(0/1)により破棄(Fail)。IPv6アドレスは始点が3ffe:b80:3c:10:290:99ff:fe42:f2で、終点が3ffe:b80:3c:20::2。プロトコルはICMP。ICMPタイプ128(Echo)、ICMPコード0。パケットサイズは548バイト。


このログは次のフィルターエントリーにマッチしたときのものです。


■ フィルター「0」のエントリー「2」(0/2)により拒否(Fail)。IPアドレスは始点が3ffe:b80:3c:10:290:99ff:fe42:f2で、終点が3ffe:b80:3c:20::1。プロトコルはTCP。始点ポート49220、終点ポート23(Telnet)。TCPセッションの開始(Syn)セグメント。パケットサイズは80バイト。


このログは次のフィルターエントリーにマッチしたときのものです。


 

インターフェースへの適用

作成したフィルターはIPv6インターフェースに適用して初めて効果を発揮します。トラフィックフィルターは受信インターフェースに、プライオリティーフィルターは送信インターフェースに適用してください。すでに存在するインターフェースにフィルターを割り当てるときはSET IPV6 INTERFACEコマンドを使います。

IPv6インターフェースには、トラフィックフィルターとプライオリティーフィルターをそれぞれ1つずつ適用できます。1つのフィルターを複数のインターフェースに割り当ててもかまいません。

■ トラフィックフィルター「0」をvlan1に割り当て。


■ プライオリティーフィルター「200」をvlan1に割り当て。


■ フィルターの適用をとりやめるには、フィルター番号の代わりにキーワードNONEを指定します。


基本は以上です。各フィルタータイプの詳細設定については、以下の各節をご覧ください。

 

フィルターの削除

■ IPv6フィルターから特定のエントリーを削除するには、DELETE IPV6 FILTERコマンドを使います。エントリー番号は可変なので、削除時には必ずSHOW IPV6 FILTERコマンドで希望するエントリーの番号を調べてから指定してください。


Note - エントリーを削除しても、他のエントリーの番号は変わりません。

■ フィルター内の全エントリーを削除するには、ALLを指定します。


■ インターフェースに設定したフィルターの適用を取りやめるには、SET IPV6 INTERFACEコマンドのFILTER、PRIORITYFILTERパラメーターにNONEを指定します。


 

トラフィックフィルターの設定例

トラフィックフィルターは、受信IPv6インターフェースにおいて、ヘッダー情報に基づきパケットの破棄・通過を決定するフィルターです。トラフィックフィルターにはフィルター番号0〜99番を割り当てます。

■ 3ffe:b80:3c:20::feからのパケットだけをvlan1インターフェースで拒否するには次のようにします。その他のIPトラフィックはすべて許可します。いわゆる「デフォルト許可」の設定になります。


「デフォルト許可」の設定では、拒否するパターンだけを記述します(1行目)。ただし、トラフィックフィルターのエントリーリストの末尾には、「すべて破棄」を意味する暗黙のエントリーが存在しているため、拒否パターンの後に必ず「すべて許可」のエントリーを明示的に作成する必要があります(2行目)。拒否パターンだけを書くとすべてのトラフィックが拒否されてしまいますのでご注意ください。

なお、vlan1側に3ffe:b80:3c:20::/64しかネットワークがない場合は、2行目を次のように書いた方が不正なパケットを遮断できるのでより好ましいかもしれません。


3行目では、作成したフィルター「0」をIPv6インターフェースvlan1に適用しています。フィルターはインターフェースに適用して初めて効果を持ちます。

■ フィルターにかかったパケットをログに記録するには、LOGパラメーターを使います。LOGパラメーターはエントリーごとに設定するものです。つまり、該当エントリーにマッチしたパケットがログに記録されます。トラフィックフィルター「0」の先頭エントリー(エントリー番号「0」)にマッチしたパケットをログに記録するには次のようにします。


■ vlan1では原則すべてのパケットを遮断し、3ffe:b80:3c:20::abcdから3ffe:b80:3c:10::5のTelnetサービスへのパケットだけを通過させるよう設定するには、次のようにします。いわゆる「デフォルト拒否」の設定です。


「デフォルト拒否」の設定では、許可するパターンだけを記述します。トラフィックフィルターのエントリーリスト末尾には、「すべて破棄」を意味する暗黙のエントリーが存在しているため、拒否パターンを明示的に書く必要はありません。明示的に許可しなかったトラフィックは何もしなくても破棄されます。

■ 2つのインターフェースの片側からのみTCPの通信を開始できるようにするには、SESSIONパラメーターを使います。ここでは、vlan1側(3ffe:b80:3c:20::/64)からのみTCPセッションを開始できるように設定します。eth0側(3ffe:b80:3c:10::/64)からのTCPパケットは、すでにセッションが開始されている場合(Ackフラグが立っているとき)に限って許可します。


 

プライオリティーフィルターの設定例

プライオリティーフィルターは、送信パケットのヘッダー情報に基づき、パケット送信時の絶対優先度を設定するフィルターです。特定のトラフィックを最優先で送信するよう設定できます。プライオリティーフィルターには、フィルター番号200〜299番を割り当てます。

■ ネットワーク3ffe:b80:3c:20::/64側のSSHクライアントとSSHサーバー(3ffe:b80:3c:10::5)の間のトラフィックを最優先(P0)で送信し、その他のIPv6トラフィックは最低の優先度(P7)で送信するプライオリティーフィルターを設定するには次のようにします。


 

その他

■ IPv6フィルターはパラメーターが多く、コマンドが長くなりがちです。コマンドラインの入力文字数制限により入力できない場合は、コマンドの省略形を使って入力するか、コマンドを複数行に分割するなどして対処してください。詳細は「運用・管理」/「コマンドプロセッサー」をご覧ください。

■ コマンドパラメーターの詳細についてはコマンドリファレンス編をご覧ください。

■ IPv6フィルターの設定状況を確認するにはSHOW IPV6 FILTERコマンドを使います。


■ どのIPv6インターフェースにどのフィルターが適用されているかを確認するにはSHOW IPV6 INTERFACEコマンドを使います。








(C) 2003 - 2009 アライドテレシスホールディングス株式会社

PN: J613-M3069-03 Rev.L