トラフィック制御 / ハードウェアパケットフィルター


基本動作
フィルターの構成
フィルター処理の流れ
設定手順
コマンド例
シーケンス番号を利用した設定例


ハードウェアパケットフィルターは、本製品のスイッチングチップ(ASIC)でパケットフィルタリングを行う機能です。

ハードウェアパケットフィルターの処理は、スイッチングチップのL2入力部で行われます。そのため、ルーティングされないトラフィック(同一VLAN内のトラフィック)に対してもフィルタリングが可能です。

Note
AMFとアクセスリスト/ファイアウォールを併用する場合、以下にご注意ください。
Note
ハードウェアIPv6アクセスリストの全機能を使用する場合は、platform hwfilter-sizeコマンドの設定が「ipv4-full-ipv6」になっている必要があります。初期設定の「ipv4-limited-ipv6」でもハードウェアIPv6アクセスリストは使用できますが、「ipv4-limited-ipv6」では始点・終点IPv6アドレスの指定ができないため、限られた使い方しかできません。ハードウェアIPv6アクセスリストの全機能を使用する場合は、platform hwfilter-sizeコマンドの設定を「ipv4-full-ipv6」に変更し、設定を保存した上で、システムを再起動してください。以下の説明は「ipv4-full-ipv6」で動作していることを前提としています。
Note
同一ポート上において、ハードウェアパケットフィルターとポリシーマップを併用することも可能です。その場合、該当ポートで受信したパケットの処理は、ハードウェアパケットフィルター、ポリシーマップの順に行われます。両方を通過しないとパケットは出力されません。詳細は本解説編の「フィルター処理の流れ」をご覧ください。
Note
ハードウェアパケットフィルターでは、予約済みリンクローカルアドレスのIPマルチキャストパケット(MACアドレス:0100.5e00.00xx、IPアドレス:224.0.0.x)および予約済みIPv6マルチキャストパケットに対してはフィルタリングできません。該当パケットをフィルタリングしたい場合は、ポリシーマップを使用することでフィルタリングが可能です。
Note
ハードウェアパケットフィルターをサポートリミットまで使用したい場合は、boot configにコンフィグが設定された状態で製品を起動してください。boot config未設定の状態で起動した場合、AMFのリカバリー機能により、使用できるハードウェアパケットフィルターの数が通常よりも少なくなります。なお、製品のサポートリミットについては、リリースノートに記載のサポートリミット一覧を参照ください。

パケットのフィルタリング条件には、以下の各項目を使用できます。


Note
ハードウェアパケットフィルターでは、IP/IPv6ヘッダーのDSCP値やTCPヘッダーの制御フラグ値などに基づくフィルタリングはできません。これらの条件でフィルタリングを行いたい場合は、ポリシーマップのフィルタリング機能を利用してください。詳しくは、「トラフィック制御」の「Quality of Service」をご覧ください(「ポリシーマップのフィルタリング機能」他)。

条件に一致したパケットに対しては、以下の処理(アクション)が可能です。アクションは最初に一致したフィルターエントリー(ハードウェアアクセスリスト)で適用されます。どのエントリーにも一致しなかったパケットは通常どおり転送処理されます。

フィルタリング条件と処理内容は、ハードウェアアクセスリストによって定義します。ハードウェアアクセスリストの概要と作成方法については「トラフィック制御」の「アクセスリスト」をご覧ください。

基本動作

ハードウェアパケットフィルターの基本動作について説明します。

フィルターの構成

ハードウェアパケットフィルターは、複数のフィルターエントリーで構成されるリストです。個々のフィルターエントリーは、ハードウェアIPアクセスリストかハードウェアMACアクセスリスト、あるいは、ハードウェアアクセスリスト(シーケンス番号対応)、ハードウェアIPv6アクセスリスト(シーケンス番号対応)内の各エントリーです。

フィルター処理の流れ

ハードウェアパケットフィルターの処理は、おおむね次の手順にしたがって行われます。

Note
以下の説明は、設定上の便宜を最優先して書いたものであり、実際の内部動作を正確に記述したものではありません。あらかじめご了承ください。

  1. 受信スイッチポートにハードウェアパケットフィルターが適用されている場合、受信パケットとアクセスリストの条件を、スイッチポートにアクセスリストを関連付けた順序で照合します。

  2. いずれかのアクセスリストにおいて条件が一致した場合は、その場でアクセスリストのアクション(転送、破棄など)を実行し、ハードウェアパケットフィルターの処理を完了します。

  3. 指定したVLANにハードウェアパケットフィルターが適用されている場合、受信パケットとアクセスリストの条件を、指定したVLANにアクセスリストを関連付けた順序で照合します。

  4. 指定したVLANに一致するアクセスリストがなかった場合はハードウェアパケットフィルターの処理を完了し、通常どおりパケットの転送処理を実行します。また、指定したVLANにハードウェアパケットフィルターが適用されていない場合も同様です。
Note
ハードウェアパケットフィルターは、スイッチ本体から送信されるパケットには適用されません。

次に、ハードウェアパケットフィルター、VLANハードウェアパケットフィルターと、ポリシーマップによるQoS機能の処理順序を示します。


Note
同一ポート上において、ハードウェアパケットフィルターとポリシーマップを併用している場合、該当ポートで受信したパケットの処理はハードウェアパケットフィルター、ポリシーマップの順に行われます。両方を通過しないとパケットは出力されません。

Note
同一ポート上でパケットフィルタリングによる「破棄」とポリシーベースルーティングを併用するとき、どちらの条件にも一致するパケットが含まれる場合は、フィルタリングにハードウェアパケットフィルターを使用せず、QoSのポリシーマップだけでフィルタリングとポリシーベースルーティングを設定してください。

(例) 192.168.10.0/24から192.168.20.0/24宛てのパケットを破棄し、それ以外の宛先へのパケットすべてをポリシーベースルーティングによって192.168.30.1へ転送する場合

使用するアクセスリスト
access-list 3001 deny ip 192.168.10.0/24 192.168.20.0/24
access-list 3002 permit ip 192.168.10.0/24 any

この例では、192.168.10.0/24から192.168.20.0/24宛てのパケットは、アクセスリスト3001にも3002にも該当します。
したがって、このケースではアクセスリスト3001をハードウェアパケットフィルター、アクセスリスト3002をポリシーマップで使用するのではなく、アクセスリスト3001と3002を1つのポリシーマップに集約し、ポリシーマップ内でフィルタリングとポリシーベースルーティングの設定を行う必要があります。
awplus(config)# class-map 3001
awplus(config-cmap)# match access-group 3001
awplus(config-cmap)# exit
awplus(config)# class-map 3002
awplus(config-cmap)# match access-group 3002
awplus(config-cmap)# exit
awplus(config)# policy-map pbr
awplus(config-pmap)# class 3001
awplus(config-pmap-c)# exit
awplus(config-pmap)# class 3002
awplus(config-pmap-c)# set ip next-hop 192.168.30.1

設定手順

ハードウェアパケットフィルターの設定は、次の流れで行います。

  1. ハードウェアアクセスリストを作成。これには下記のコマンドを使います。

    Note
    ハードウェアIPv6アクセスリストの全機能を使用する場合は、platform hwfilter-sizeコマンドの設定が「ipv4-full-ipv6」になっている必要があります。初期設定の「ipv4-limited-ipv6」でもハードウェアIPv6アクセスリストは使用できますが、「ipv4-limited-ipv6」では始点・終点IPv6アドレスの指定ができないため、限られた使い方しかできません。ハードウェアIPv6アクセスリストの全機能を使用する場合は、platform hwfilter-sizeコマンドの設定を「ipv4-full-ipv6」に変更し、設定を保存した上で、システムを再起動してください。以下の説明は「ipv4-full-ipv6」で動作していることを前提としています。

  2. 受信スイッチポートか指定VLANにアクセスリストを追加
    スイッチポートにアクセスリスト(IP、MAC、IP/MAC)を追加するときは、access-groupコマンドを、アクセスリスト(IPv6)を追加するときは、ipv6 traffic-filterコマンドを使います。
    指定したVLANにアクセスリストを追加するときは、VLANアクセスマップモードのmatch access-groupコマンドを使います。

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

ここでは例として、スイッチポート1.0.12において、ホスト192.168.100.38からサーバー192.168.10.5と192.168.10.11宛てのIPパケットと、ネットワーク2001:db8:10:20::/64からのIPv6パケットを遮断するよう設定します。
また、VLAN200のタグポートで受信したパケットのうち、サーバー192.168.10.5宛てのIPパケットを遮断するよう設定します。

  1. ハードウェアIPアクセスリストを作成し、IPパケットの条件とマッチしたときの処理を指定します。これにはaccess-list(hardware ip)コマンドを使います。
    awplus(config)# access-list 3000 deny ip 192.168.100.38/32 192.168.10.5/32
    awplus(config)# access-list 3001 deny ip 192.168.100.38/32 192.168.10.11/32
    awplus(config)# access-list 3002 deny ip any 192.168.10.5/32
    

  2. ハードウェアIPv6アクセスリストを作成し、IPv6パケットの条件とマッチしたときの処理を指定します。これにはipv6 access-list(list)コマンドとipv6 access-list(seq entry)コマンドを使います。
    awplus(config)# ipv6 access-list v6acl1
    awplus(config-ipv6-hw-acl)# deny ipv6 2001:db8:10:20::/64 any
    awplus(config-ipv6-hw-acl)# exit
    

  3. 受信スイッチポートにハードウェアアクセスリストを追加します。interfaceコマンドで対象スイッチポートを指定してインターフェースモードに入り、access-groupコマンドで関連付けるハードウェアIPアクセスリストを指定します。
    また、ipv6 traffic-filterコマンドでハードウェアIPv6アクセスリストを指定します。
    awplus(config)# interface port1.0.12
    awplus(config-if)# access-group 3000
    awplus(config-if)# access-group 3001
    awplus(config-if)# ipv6 traffic-filter v6acl1
    awplus(config-if)# exit
    

  4. VLANインターフェースにハードウェアアクセスリストを追加します。これには、vlan access-mapコマンドでVLANアクセスマップモードに入り、ハードウェアアクセスリストを指定します。そしてvlan filterコマンドによりVLANアクセスマップを適用します。
    awplus(config)# vlan access-map test
    awplus(config-vmap)# match access-group 3002
    awplus(config)# vlan filter test vlan-list 200 input
    

Note
1つのスイッチポートに対して、ハードウェアアクセスリストを複数追加した場合、受信パケットとアクセスリストの照合はアクセスリストの追加順に行われます。受信パケットがどのアクセスリストともマッチしなかった場合、該当パケットは許可されます。

Note
ハードウェアパケットフィルターは、スイッチ本体から送信されるパケットには適用されません。

基本設定は以上です。

■ トランクグループにハードウェアパケットフィルターを適用するときは、次の点にご注意ください。


コマンド例

次に具体的なコマンド例を示します。

■ ポート1.0.1において、192.168.10.100から192.168.20.0/24へのIPパケットを破棄。
awplus(config)# access-list 3010 deny ip 192.168.10.100/32 192.168.20.0/24
awplus(config)# interface port1.0.1
awplus(config-if)# access-group 3010

■ ポート1.0.2~1.0.4において、10.0.0.0/8からのICMPパケットを破棄。
awplus(config)# access-list 3020 deny icmp 10.0.0.0/8 any
awplus(config)# interface port1.0.2-1.0.4
awplus(config-if)# access-group 3020

■ ポート1.0.5において、MACアドレス00-0a-79-34-0b-00~00-0a-79-34-0b-ffからのパケットだけを許可。
awplus(config)# access-list 4010 permit 000a.7934.0b00 0000.0000.00ff any
awplus(config)# access-list 4011 deny any any
awplus(config)# interface port1.0.5
awplus(config-if)# access-group 4010
awplus(config-if)# access-group 4011

■ ポート1.0.8において、192.168.30.100へのtelnetパケットを破棄。
awplus(config)# access-list 3030 deny tcp any 192.168.30.100/32 eq 23
awplus(config)# interface port1.0.8
awplus(config-if)# access-group 3030

■ ハードウェアパケットフィルターは、同一サブネット内のトラフィックに対しても有効です。そのため、「192.168.10.0/24の存在するポート1.0.1~1.0.12において、192.168.10.0/24から他のサブネットへのIP通信を拒否」するつもりで次のような設定を行うと、192.168.10.0/24内でもIP通信ができなくなってしまいます。
awplus(config)# access-list 3041 deny ip 192.168.10.0/24 any
awplus(config)# interface port1.0.1-1.0.12
awplus(config-if)# access-group 3041

このような場合は、次の例のように「始点IPアドレスと終点IPアドレスが同一サブネットなら許可」というアクセスリストを拒否のアクセスリストの前に追加してください。
awplus(config)# access-list 3040 permit ip 192.168.10.0/24 192.168.10.0/24
awplus(config)# access-list 3041 deny ip 192.168.10.0/24 any
awplus(config)# interface port1.0.1-1.0.12
awplus(config-if)# access-group 3040
awplus(config-if)# access-group 3041

Note
ハードウェアパケットフィルターでは、最初にマッチしたアクセスリストのアクションが実行されます。デフォルト拒否の設定を行うには、最初に特定の条件を満たしたパケットを許可するアクセスリストを並べた上で、最後にすべてを破棄するアクセスリストを指定します。また、デフォルト許可に設定する場合は、特定の条件を満たしたパケットを拒否するアクセスリストだけを並べていきます。つまり、ハードウェアパケットフィルター自体はデフォルト許可です。

■ どのスイッチポートにハードウェアパケットフィルターが適用されているかを調べるには、show interface access-groupコマンドを使います。
awplus> show interface port1.0.1-1.0.12 access-group
Interface port1.0.12
  access-group 3000
  access-group 3001

■ アクセスリストの情報を表示するには、show access-listコマンドを使います。
awplus# show access-list

■ スイッチポートからハードウェアパケットフィルターを削除するには、該当ポートを対象にしたインターフェースモードにおいて、access-groupコマンド、ipv6 traffic-filterコマンドをno形式で実行します。
awplus(config)# interface port1.0.1-1.0.12
awplus(config-if)# no access-group 3041
awplus(config-if)# no access-group 3040
awplus(config-if)# no ipv6 traffic-filter v6acl1

Note
スイッチポートからハードウェアパケットフィルターを削除しても、ハードウェアアクセスリストそのものは削除されません。スイッチポートとハードウェアアクセスリストの関連付けが削除されるだけです。ハードウェアアクセスリストを削除するには、access-list(hardware ip)コマンド、access-list(hardware mac)コマンド、access-list hardware(list)コマンド、ipv6 access-list(list)コマンドをno形式で実行します。

シーケンス番号を利用した設定例

シーケンス番号での設定は、既存のフィルターに新たなエントリーを追加したいとき、頻繁にフィルターを変更する必要がある環境において有効な設定方法です。
シーケンス番号を使用していないハードウェアパケットフィルターは、新規ルールを追加するときに、追加したエントリーの順序まで設定されていたエントリーを削除する必要がありましたが、シーケンス番号を使用することで、エントリーを削除することなく、必要とする順序に新たなエントリーが追加できます。

シーケンス番号でのハードウェアパケットフィルターの処理は、次の手順に従って行われます。

以下にシーケンス番号を利用した具体的な設定例を示します。
シーケンス番号での設定は、access-list hardware(list)コマンド、access-list hardware(seq entry)コマンドを使用します。
ここでは例として、以下の条件で設定例を示します。

■ ポート1.0.1において、192.168.100.0/24に所属するホストから192.168.10.0/24、192.168.20.0/24と192.168.30.0/24へのIPパケットを破棄するよう設定します。
awplus(config)# access-list hardware mylist
awplus(config-ip-hw-acl)# deny ip 192.168.100.0/24 192.168.10.0/24
awplus(config-ip-hw-acl)# deny ip 192.168.100.0/24 192.168.20.0/24
awplus(config-ip-hw-acl)# deny ip 192.168.100.0/24 192.168.30.0/24
awplus(config-ip-hw-acl)# exit
awplus(config)# interface port1.0.1
awplus(config-if)# access-group mylist

■ ポート1.0.1において、192.168.100.0/24から192.168.20.10/32へのTCP 80(HTTP)のアクセスのみを許可するエントリーを追加します。このエントリーは、192.168.100.0/24に所属するホストから192.168.20.0/24へのIPパケットは破棄と設定しているため、それより前にエントリーを設定する必要があります。そのためには、まず、現在設定されているシーケンス番号を確認します。シーケンス番号を確認するには、show access-listコマンドを使います。
awplus# show access-list mylist
Hardware IP access list mylist
    4 deny ip 192.168.100.0/24 192.168.10.0/24
    8 deny ip 192.168.100.0/24 192.168.20.0/24
   12 deny ip 192.168.100.0/24 192.168.30.0/24
awplus# 

Note
シーケンス番号を指定しないで設定した場合、4ステップで自動にシーケンス番号が設定されます。

TCP 80へのアクセス許可は、8より前のシーケンス番号のエントリーを入れる必要があります。例として、シーケンス番号6で登録します。
awplus(config)# access-list hardware mylist
% This access-list is attached to an interface. The modified configuration will be applied to the interface automatically after exiting
this configration mode  by entering "exit" or "end" command.
awplus(config-ip-hw-acl)# 6 permit tcp 192.168.100.0/24 192.168.20.10/32 eq 80
awplus(config-ip-hw-acl)# exit
awplus(config)# 

Note
アクセスグループを設定している場合、エントリーの追加はaccess-list hardware(list)コマンドの変更のみで可能です。

Note
アクセスグループを設定している場合、ハードウェアパケットフィルターのシーケンス番号を利用して設定変更した場合、設定内容が適用されるタイミングは、ハードウェアアクセスリストモードから、ExitまたはEndを実行し、グローバルコンフィグレーションモードまたは特権EXECモードに移行したときになります。それまでは、設定変更前のフィルター設定が動作します。

show access-listコマンドで設定が反映されていることを確認します。
awplus# show access-list mylist
Hardware IP access list mylist
    4 deny ip 192.168.100.0/24 192.168.10.0/24
    6 permit tcp 192.168.100.0/24 192.168.20.10/32 eq 80
    8 deny ip 192.168.100.0/24 192.168.20.0/24
   12 deny ip 192.168.100.0/24 192.168.30.0/24
awplus# 

■ ポート1.0.1において、192.168.100.0/24に所属するホストから192.168.30.0/24へのIPパケットを破棄するフィルターを削除します。

エントリーの削除は、access-list hardware(seq entry)コマンドのno形式でシーケンス番号のみを指定することで削除できます。
awplus(config)# access-list hardware mylist
% This access-list is attached to an interface. The modified configuration will be applied to the interface automatically after exiting
this configration mode  by entering "exit" or "end" command.
awplus(config-ip-hw-acl)# no 12
awplus(config-ip-hw-acl)# exit
awplus(config)# 

また、シーケンス番号を指定せず、フィルターをそのまま指定しても、エントリーを削除できます。
awplus(config)# access-list hardware mylist
% This access-list is attached to an interface. The modified configuration will be applied to the interface automatically after exiting
this configration mode  by entering "exit" or "end" command.
awplus(config-ip-hw-acl)# no deny ip 192.168.100.0/24 192.168.30.0/24
awplus(config-ip-hw-acl)# exit
awplus(config)# 

show access-listコマンドで設定が反映されていることを確認します。
awplus# show access-list mylist
Hardware IP access list mylist
    4 deny ip 192.168.100.0/24 192.168.10.0/24
    6 permit tcp 192.168.100.0/24 192.168.20.10/32 eq 80
    8 deny ip 192.168.100.0/24 192.168.20.0/24
awplus# 

■ ポート1.0.1において、192.168.100.0/24に所属するホストから192.168.10.0/24へのIPパケットを破棄するエントリーの場所を移動します。

show access-listコマンドで設定内容を確認します。
awplus# show access-list mylist
Hardware IP access list mylist
    4 deny ip 192.168.100.0/24 192.168.10.0/24
    6 permit tcp 192.168.100.0/24 192.168.20.10/32 eq 80
    8 deny ip 192.168.100.0/24 192.168.20.0/24
awplus# 

シーケンス番号4であることを確認し、192.168.100.0/24に所属するホストから192.168.20.0/24へのIPパケットを破棄するエントリーの前にエントリーを移動します。
awplus(config)# access-list hardware mylist
% This access-list is attached to an interface. The modified configuration will be applied to the interface automatically after exiting
this configration mode  by entering "exit" or "end" command.
awplus(config-ip-hw-acl)# 7 deny ip 192.168.100.0/24 192.168.10.0/24
awplus(config-ip-hw-acl)# exit
awplus(config)# 

show access-listコマンドで設定が反映されていることを確認します。
awplus# show access-list mylist
Hardware IP access list mylist
    6 permit tcp 192.168.100.0/24 192.168.20.10/32 eq 80
    7 deny ip 192.168.100.0/24 192.168.10.0/24
    8 deny ip 192.168.100.0/24 192.168.20.0/24
awplus# 

Note
アクセスリスト内で同じ条件とアクションを持つエントリーをシーケンス番号で指定して新たに設定した場合、設定したシーケンス番号にエントリーは移動します。

■ 設定を保存後に機器を再起動します。

機器を再起動したとき、設定したシーケンス番号は4ステップに変換されます。(フィルター順序は変わりません)

設定後
awplus# show access-list mylist
Hardware IP access list mylist
    6 permit tcp 192.168.100.0/24 192.168.20.10/32 eq 80
    7 deny ip 192.168.100.0/24 192.168.10.0/24
    8 deny ip 192.168.100.0/24 192.168.20.0/24
awplus# 

再起動後
awplus# show access-list mylist
Hardware IP access list mylist
    4 permit tcp 192.168.100.0/24 192.168.20.10/32 eq 80
    8 deny ip 192.168.100.0/24 192.168.10.0/24
   12 deny ip 192.168.100.0/24 192.168.20.0/24
awplus# 


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

PN: 613-001763 Rev.AK