[index] CentreCOM 8700SLシリーズ コマンドリファレンス 2.9

# ADD IP FILTER

カテゴリー：IP / ソフトウェアIPフィルター

`ADD IP FILTER=filter-id SOURCE=ipadd {ACTION={INCLUDE|EXCLUDE}|POLICY=0..15} [SMASK=ipadd] [SPORT={port-name|[port]:[port]}] [DESTINATION=ipadd [DMASK=ipadd]] [DPORT={port-name|[port]:[port]}] [ICMPCODE={icmp-code-name|icmp-code-id}] [ICMPTYPE={icmp-type-name|icmp-type-id}] [LOG={4..1600|DUMP|HEADER|NONE}] [OPTIONS={YES|NO}] [PROTOCOL={protocol|ANY|ICMP|OSPF|TCP|UDP}] [SESSION={ANY|ESTABLISHED|START}] [SIZE=size] [ENTRY=entry-id]`

filter-id: フィルター番号（0〜399）
ipadd: IPアドレスまたはネットマスク
port-name: サービス名
port: TCP/UDPポート番号（0〜65535）
icmp-code-name: ICMPコード名
icmp-code-id: ICMPコード番号（0〜65535）
icmp-type-name: ICMPメッセージ名
icmp-type-id: ICMPメッセージ番号（0〜65535）
protocol: IPプロトコル番号（0〜255）
size: データグラム長
entry-id: エントリー番号（1〜3071）

ソフトウェアIPフィルターにエントリー（ルール）を追加する。
ソフトウェアIPフィルターには、受信パケットを許可・破棄するトラフィックフィルター（ACTIONパラメーターで動作を指定）、受信パケットに内部的な経路選択ポリシー（サービスタイプ）を割り当て、経路選択時の動作に影響を与えるポリシーフィルター（POLICYパラメーターで動作を指定）、BGP-4の経路交換やOSPFへのBGP-4経路取り込み動作を制御するプレフィックスフィルター（ACTIONパラメーターで動作を指定）の3種類がある。
トラフィックフィルターとポリシーフィルターは、動作指定が異なるだけで、パケットを選別するパラメーターは共通。一方、プレフィックスフィルターで使用できるパラメーターは、SOURCE、SMASK、ENTRY、ACTIONだけに限定されている。
各IPインターフェースには、トラフィックフィルターとポリシーフィルターをそれぞれ1つずつ適用できる。同じフィルターを複数のインターフェースに適用することも可能。作成したフィルターは、パケットの受信インターフェースに適用して初めて効果を発揮する。インターフェースへの適用は、ADD IP INTERFACEコマンド、SET IP INTERFACEコマンドで行う。
また、BGP-4でプレフィックスフィルターを使用するには、ADD BGP PEERコマンド、SET BGP PEERコマンドのINFILTER、OUTFILTERパラメーターでフィルター番号を指定する。
OSPFに取り込むBGP-4経路を取捨選択する目的でプレフィックスフィルターを使用する場合は、SET OSPFコマンドのBGPFILTERパラメーターでフィルター番号を指定する。

パラメーター

FILTER: フィルター番号。0〜99はトラフィックフィルター、100〜199はポリシーフィルター、300〜399はプレフィックスフィルター。200〜299は使用不可。

SOURCE: 始点IPアドレスまたはネットワークプレフィックス。0.0.0.0はすべてのアドレスを意味する。必須パラメーター

ACTION: トラフィックフィルター（フィルター番号0〜99）、プレフィックスフィルター（フィルター番号300〜399）の動作を指定する。INCLUDEはマッチしたパケット、プレフィックスを通過させる。EXCLUDEはマッチしたパケット、プレフィックスを破棄する。POLICY、PRIORITYとは同時に指定できない

POLICY: ポリシーフィルター（フィルター番号100〜199）において、マッチしたパケットに割り当てる経路選択ポリシー（サービスタイプ）を指定する。経路選択ポリシーの範囲は0〜7だが、POLICYパラメーターには0〜15の範囲を指定することができる。0〜7を指定した場合は、指定値がそのまま経路選択ポリシー値となる。8〜15を指定した場合は、経路選択ポリシーとして「POLICY - 8」を割り当て、さらに、パケットのTOSビット（D、T、R）を「POLICY - 8」に書き換える。詳細は別表を参照。経路表を検索するときは、本フィルターによって割り当てられた経路選択ポリシー値と経路エントリーのサービスタイプがつきあわされ、一致する経路が最優先で使用される。ACTIONとは同時に指定できない。

SMASK: SOURCEに対応するマスク値。トラフィックフィルターの場合は、SOURCEと組み合わせてホストアドレス/ネットワークアドレスの区別を指定する。SOURCEで指定したIPアドレスがネットワークアドレスなら適切な長さのネットマスクを、ホストアドレスなら255.255.255.255を指定する。また、プレフィックスフィルターの場合は、SOURCEパラメーターの指定値とプレフィックスを比較するときに、どの部分（ビット）を比較するかを指定する（経路エントリーの「プレフィックス長」と比較するのではないことに注意）。なお、SOURCEに0.0.0.0（ANY）を指定した場合は0.0.0.0を指定する（省略可）。

SPORT: 始点TCP/UDPポートあるいは定義済みのサービス名。本パラメーター指定時はPROTOCOLパラメーターにTCPかUDPを指定する必要がある。low:highの形式でlow〜highの範囲指定も可能。「low:」はlow〜65535の意味、「:high」は0〜highの意味になる。デフォルトはANY（すべてのポート）。

DESTINATION: 終点IPアドレス。デフォルトは0.0.0.0（すべて）

DMASK: 終点IPアドレスに対応するマスク値。DESTINATIONと組み合わせてホストアドレスまたはネットワークアドレスを指定する。省略時は255.255.255.255（ホストマスク）とみなされる。

DPORT: 終点TCP/UDPポートあるいは定義済みのサービス名。本パラメーター指定時はPROTOCOLパラメーターにTCPかUDPを指定する必要がある。low:highの形式でlow〜highの範囲指定も可能。「low:」はlow〜65535の意味、「:high」は0〜highの意味になる。デフォルトはANY（すべてのポート）。

ICMPCODE: ICMPコード番号または定義済みのコード名。PROCOTOL=ICMPの場合のみ有効

ICMPTYPE: ICMPメッセージ番号または定義済みのメッセージ名。PROCOTOL=ICMPの場合のみ有効

LOG: このエントリーにマッチしたパケットの情報をログに記録するかどうか、記録する場合はどの情報を記録するかを指定する。NONEはログに記録しないことを意味する。4〜1600の数値を指定した場合は、フィルター番号、エントリー番号、IPヘッダー情報（IPアドレス、プロトコル、ポート番号、サイズ）が「IPFIL/PASS」（INCLUDEアクションの場合）または「IPFIL/FAIL」（EXCLUDEアクションの場合）タイプのメッセージとして記録される。これに加え、TCP、UDP、ICMPの場合はデータ部分の先頭4〜1600バイトが、その他プロトコルの場合はIPデータの先頭4〜1600バイトが、「IPFIL/DUMP」タイプのメッセージとして記録される。DUMPはLOG=32と同じ動作となる。HEADERを指定した場合は、フィルター番号、エントリー番号、IPヘッダー情報のみが記録される。デフォルトはNONE（記録しない）。

OPTIONS: パケットがIPオプション付きかどうか。

PROTOCOL: IPプロトコル番号または定義済みのプロトコル名。DPORT、SPORTを指定するときは、PROTOCOLにTCPかUDPを指定する必要がある。また、ICMPCODE、ICMPTYPE指定時はICMPを指定する。

SESSION: TCPのセッション制御情報。ANYはすべてのTCPパケット、STARTは接続開始パケット（SYN=1、ACK=0）、ESTABLISHEDは接続済みパケット（ACK=1）を意味する。

SIZE: 再構成後のデータグラムサイズ。パケット（フラグメント）ごとにlength + offset * 8 <= SIZEがチェックされ、真ならマッチし、偽ならマッチしない。lengthとoffsetは、それぞれIPヘッダーのLengthフィールドとFragment Offsetフィールドを示す。

ENTRY: エントリー番号。省略時は現在最後尾のエントリーの後に追加される（最後尾のエントリー番号を「n」とすると、新規エントリーは「n+1」になる）。「n+1」より大きなエントリー番号を指定した場合は、指定した番号で追加される。既存エントリーと同じ番号を指定した場合は、既存エントリーの位置に新規エントリーが挿入され、既存エントリー以降は番号が1つずつ後ろにずれる。なお、エントリー番号は1〜3071の範囲で指定できるが、1フィルター当たりの推奨エントリー数は255個以内なので注意

表 1：POLICYパラメーターの指定値とその効果
POLICYに指定した値 | パケットに割り当てる経路選択ポリシー | TOSビットの書き換え
0 | 0 | しない
1 | 1 | しない
2 | 2 | しない
3 | 3 | しない
4 | 4 | しない
5 | 5 | しない
6 | 6 | しない
7 | 7 | しない
8 | 0（8 - 8） | 0（D=0, T=0, M=0）
9 | 1（9 - 8） | 1（D=0, T=0, M=1）
10 | 2（10 - 8） | 2（D=0, T=1, M=0）
11 | 3（11 - 8） | 3（D=0, T=1, M=1）
12 | 4（12 - 8） | 4（D=1, T=0, M=0）
13 | 5（13 - 8） | 5（D=1, T=0, M=1）
14 | 6（14 - 8） | 6（D=1, T=1, M=0）
15 | 7（15 - 8） | 7（D=1, T=1, M=1）

表 2：定義済みのサービス名一覧
サービス名 | 該当サービス/アプリケーション（ポート/プロトコル）
ANY | すべてのポート
BOOTPC | BOOTPクライアント（68/udp）
BOOTPS | BOOTPサーバー（67/udp）
DOMAIN | DNSサーバー（53/tcp、53/udp）
FINGER | Finger（79/tcp）
FTP | FTPコントロールセッション（21/tcp）
FTPDATA | FTPデータセッション（20/tcp）
GOPHER | Gopher（70/tcp）
HOSTNAME | NIC Host Name Server（101/tcp、101/udp）
IPX | IPX（213/tcp、213/udp）
KERBEROS | Kerberos（88/udp）
LOGIN | Login（49/udp）
MSGICP | MSG ICP（29/tcp、29/udp）
NAMESERVER | Host Name Server（42/udp）
NEWS | NewS（144/tcp）
NNTP | NNTPサーバー（119/tcp）
NTP | NTPサーバー（123/tcp）
RTELNET | Remote Telnet（107/tcp、107/udp）
SFTP | Simple FTP（115/tcp、115/udp）
SMTP | SMTPサーバー（25/tcp）
SNMP | SNMP（161/udp）
SNMPTRAP | SNMPトラップ（162/udp）
SYSTAT | Active Users（11/tcp）
TELNET | Telnet（23/tcp）
TFTP | TFTP（69/udp）
TIME | Time（37/tcp、37/udp）
UUCP | uucpd（540/tcp）
UUCPRLOGIN | uucp-rlogin（541/tcp、541/udp）
WWWHTTP | 80/TCP（World Wide Web HTTP）
XNSTIME | XNS Time Protocol（52/tcp、52/udp）

表 3：定義済みのICMPメッセージタイプ名一覧
メッセージタイプ名 | タイプ番号 | サブコードあり？ | 説明
ECHORPLY | 0 | なし | エコー応答（Echo Reply）
UNREACHABLE | 3 | あり | 宛先到達不可能（Unreachable）
QUENCH | 4 | なし | 送信抑制要求（Source Quench）
REDIRECT | 5 | あり | 経路変更要求（Redirect）
ECHO | 8 | なし | エコー要求（Echo Request）
ADVERTISEMENT | 9 | なし | ルーター広告（Router Advertisement）
SOLICITATION | 10 | なし | ルーター要請（Router Solicitation）
TIMEEXCEED | 11 | あり | 時間超過（Time Exceeded）
PARAMETER | 12 | あり | パラメーター異常（Parameter Problem）
TSTAMP | 13 | なし | タイムスタンプ要求（Timestamp Request）
TSTAMPRPLY | 14 | なし | タイムスタンプ応答（Timestamp Reply）
INFOREQ | 15 | なし | 情報要求（Information Request）
INFOREP | 16 | なし | 情報応答（Information Reply）
ADDRREQ | 17 | なし | アドレスマスク要求
ADDRREP | 18 | なし | アドレスマスク応答

表 4：定義済みのICMPコード名一覧（最後の数字は「タイプ:コード」の形式）
コード名 | コード番号 | 説明
ANY |  | すべて
UNREACHABLE（Type=3）
NETUNREACH | 0 | ネットワーク到達不可能
HOSTUNREACH | 1 | ホスト到達不可能
PROTUNREACH | 2 | プロトコル到達不可能
PORTUNREACH | 3 | ポート到達不可能
FRAGMENT | 4 | フラグメント化不可能
SOURCEROUTE | 5 | 始点経路制御失敗
NETUNKNOWN | 6 | 宛先ネットワーク不明
HOSTUNKNOWN | 7 | 宛先ホスト不明
HOSTISOLATED | 8 | 始点ホスト隔離
NETCOMM | 9 | 宛先ネットワークとの通信が禁止されている
HOSTCOMM | 10 | 宛先ホストとの通信が禁止されている
NETTOS | 11 | 指定のサービスタイプでは宛先ネットワークに到達不可能
HOSTTOS | 12 | 指定のサービスタイプでは宛先ホストに到達不可能
FILTER | 13 | フィルタリングにより通信が禁止されている
HOSTPREC | 14 | ホスト優先度違反
PRECEDENT | 15 | 優先度制限
REDIRECT（Type=5）
NETREDIRECT | 0 | ネットワーク経路変更要求
HOSTREDIRECT | 1 | ホスト経路変更要求
NETRTOS | 2 | 指定サービスタイプのネットワーク経路変更要求
HOSTRTOS | 3 | 指定サービスタイプのホスト経路変更要求
TIMEEXCEEDED（Type=11）
TTL | 0 | 生存時間超過
FRAGREASSM | 1 | フラグメント再構成時間超過
PARAMETER（Type=12）
PTRPROBLEM | 0 | ポインターフィールドの値がエラーのあった箇所を示す
NOPTR | 1 | ポインターなし

例

``■ 200.100.10.100からのパケットだけを通過させるトラフィックフィルター「0」をVLAN redに適用する。
`ADD IP FILTER=0 SOURCE=200.100.10.100 SMASK=255.255.255.255 ACTION=INCLUDE
SET IP INT=vlan-red FILTER=0
` ■ 10.1.1.10から10.2.2.12へのトラフィックに経路選択ポリシー4を設定するポリシーフィルター「100」を作成してVLAN orangeに適用。
`ADD IP FILTER=100 SOURCE=10.1.1.10 SMASK=255.255.255.255 DEST=10.2.2.12 POLICY=4
SET IP INT=vlan-orange POLICYFILTER=100
` ■ UPDATEメッセージのNLRIフィールドから、先頭が「172.20」のプレフィックス以外を除去するプレフィックスフィルター「300」を作成する。暗黙の拒否エントリーにより、先頭が「172.20」でないプレフィックスは自動的に破棄される。
`ADD IP FILTER=300 SOURCE=172.20.0.0 SMASK=255.255.0.0 ACTION=INCLUDE
` ■ UPDATEメッセージのNLRIフィールドから、先頭が「172.16」のプレフィックスだけを除去するプレフィックスフィルター「301」を作成する。特定のプレフィックスだけを破棄するときは、必ず末尾に「すべて許可」のエントリーを作成すること。
`ADD IP FILTER=301 SOURCE=172.16.0.0 SMASK=255.255.0.0 ACTION=EXCLUDE
ADD IP FILTER=301 SOURCE=0.0.0.0 ACTION=INCLUDE`

備考・注意事項

次の条件をすべて満たすエントリー（ルール）はSpecific Filterと呼ばれ、その他のエントリー（General Filter）とは区別される。
・始点IPアドレス（SOURCE/SMASK）、終点IPアドレス（DESTINATION/DMASK）の両方にホストアドレス（32ビットマスクのアドレス指定）を指定
・プロトコル（PROTOCOL）にTCPかUDPを指定
・始点ポート（SPORT）、終点ポート（DPORT）の両方に具体的な値（ANY以外）を指定
同一フィルター番号内において、Specific FilterはGeneral Filterよりも前に記述しなくてはならないというルールがある。本コマンドでSpecific Filterを追加するとき、エントリー番号（ENTRY）を省略すると、先頭のGeneral Filterの前に挿入される。エントリー番号（ENTRY）を指定するときは、General Filterよりも前の番号を指定しないとエラーになるので注意が必要。
プレフィックスフィルターは、経路エントリーの「プレフィックス長」には関知しない。経路エントリー「prefix」、「prefixlen」に対して、プレフィックスフィルター「SOURCE」、「SMASK」が存在する場合、(prefix & SMASK) == (SOURCE & SMASK) が真のときにマッチとなる（ここで「&」はビットごとのAND演算、「==」は等号を示す）。たとえば、SOURCE=192.168.10.0 SMASK=255.255.255.0のプレフィックスフィルターは、192.168.10.0/24、192.168.10.0/28、192.168.10.128/25のいずれにもマッチする。
経路エントリーの「プレフィックス長」を意識したフィルタリングを行うには、プレフィックスリスト（ADD IP PREFIXLISTコマンド）とルートマップ（ADD IP ROUTEMAPコマンド）を組み合わせて使用する。
プレフィックスフィルターの末尾には、すべてのプレフィックスを破棄する暗黙のエントリーが存在するので注意。

関連コマンド

ADD BGP PEER
ADD IP INTERFACE
DELETE IP FILTER
SET BGP PEER
SET IP FILTER
SET IP INTERFACE
SET OSPF
SHOW IP FILTER
SHOW OSPF

参考

RFC768, User Datagram Protocol
RFC791, INTERNET PROTOCOL
RFC792, INTERNET CONTROL MESSAGE PROTOCOL
RFC793, TRANSMISSION CONTROL PROTOCOL
RFC950, Internet Standard Subnetting Procedure
RFC1771, A Border Gateway Protocol 4 (BGP-4)
RFC1772, Application of the Border Gateway Protocol in the Internet

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

PN: J613-M0019-01 Rev.P