[index] CentreCOM 8316XL/8324XL コマンドリファレンス 2.7

IPv6/IPv6フィルター


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


IPv6トラフィックフィルター(以下、IPv6フィルター)は、受信したIPv6パケットのヘッダー情報に基づいて、パケットを破棄または許可する機能です。

Note - フィルタリングは本体宛てのパケットのみに有効です。

 

基本動作

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

 

フィルターの構成

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

個々のフィルターエントリーでは、パケットをふるいわけるための条件と、マッチ時のアクション(許可または破棄)を指定します。


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

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

IPv6インターフェースには、フィルターを1つだけ適用できます。同じフィルターを複数のインターフェースに割り当ててもかまいません。

 

フィルター処理の流れ


 

概要

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

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

  2. 選別されたパケットに対して指定された処理(許可または破棄)を実行する

 

詳細

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


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

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

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

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

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

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

  3. 通常のパケット処理(自分宛てのパケットは上位層に引き渡し、自分宛てでないパケットは転送)を行います。

 

設定手順

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

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

  2. インターフェースへの適用
    作成したフィルターをIPv6インターフェース(受信インターフェース)に適用します。フィルターを作成しただけではフィルタリングが行われないので注意してください。フィルターの適用はADD IPV6 INTERFACEコマンド/SET IPV6 INTERFACEコマンドで行います。

    IPインターフェースには、フィルターを1つだけ適用できます。1つのフィルターを複数のインターフェースに割り当ててもかまいません。

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

 

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

パケットをふるいわけるためのパラメーターとしては、以下のものがあります。

表 1:IPv6フィルターの条件パラメーター
パラメーター
説明
SOURCE 始点IPv6アドレス。アドレスの後にスラッシュに続けてプレフィックス長を指定する。必須パラメーター。
DESTINATION 終点IPv6アドレス。アドレスの後にスラッシュに続けてプレフィックス長を指定する。フィルタリングは本体宛て通信のみ有効であるので、指定の必要はない。
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の省略形)のように指定します。また、SOURCEに有効なアドレス(::/0以外)を指定するときは、アドレスの先頭何ビットを比較対象とするかを示すプレフィックス長(0〜128)を必ず指定してください。プレフィックス長は、スラッシュ記法を使ってSOURCEパラメーターで指定します。

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


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


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

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


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


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


■ すべてのIPパケット


■ すべてのTCPパケット


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


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


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


 

アクションの指定

マッチ時の処理内容(アクション)は、ACTIONパラメーターで指定します。マッチしたパケットを許可するならINCLUDEを、破棄するならEXCLUDEを指定します。

トラフィックフィルターのエントリーリストの末尾には、「すべてを破棄」する暗黙のエントリーが存在しています。そのため、「デフォルト拒否」のフィルターを作成するときは、例外的に許可するエントリーだけを記述します。

一方、「デフォルト許可」のフィルターを作成するときは、拒否するトラフィックのルールを列挙した上で、リストの最後に「すべて許可」のエントリーを作成する必要があります。「すべて許可」のエントリーを作成しないと、暗黙の「すべて破棄」エントリーによってすべてのトラフィックが拒否されてしまいます。

以下、条件指定の例と処理内容の例を組み合わせた、完全なコマンド行の例を示します。

■ ネットワーク3ffe:b80:3c:20::/64からのパケットを破棄するトラフィックフィルターを作成する。


■ Telnetトラフィックを許可する。


 

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

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

表 2
ログタイプ/サブタイプ
記録される情報
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インターフェースに適用して初めて効果を発揮します。

インターフェースの作成と同時にフィルターを適用するにはADD IPV6 INTERFACEコマンドを、すでに存在するインターフェースにフィルターを割り当てるときはSET IPV6 INTERFACEコマンドを使います。フィルター番号はFILTERパラメーターで指定します。

IPv6インターフェースには、トラフィックフィルターを1つだけ適用できます。1つのフィルターを複数のインターフェースに割り当ててもかまいません。

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


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


 

フィルターの削除

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


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

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


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


 

設定例

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

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


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

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


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

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


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


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

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


 

その他

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

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

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


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








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

PN: J613-M0249-11 Rev.J