トラフィック制御 / アクセスリスト


アクセスリストの種類と用途
コマンド形式(シーケンス番号対応)
アクセスリストの作成
標準IPアクセスリスト
番号付き標準IPアクセスリスト
名前付き標準IPアクセスリスト
標準IPv6アクセスリスト
名前付き標準IPv6アクセスリスト
ハードウェアアクセスリスト
ハードウェアIPアクセスリスト
ハードウェアIPv6アクセスリスト
ハードウェアMACアクセスリスト
DENYログ
ACLグループ
アクセスリストの使用
標準IPアクセスリスト
標準IPv6アクセスリスト
ハードウェアアクセスリスト


アクセスリストは、MACアドレス、IPアドレスなどのアドレス情報に基づいてパケットやトラフィック、アプリケーションセッション、経路エントリーなどを分類・識別し、分類後の処理を指定したり、設定対象IPアドレスを範囲指定したりするための汎用的な仕組みです。

本解説編では、アクセスリストの種類と用途について述べた後、アクセスリストの基本的な作成方法について解説します。

なお、アクセスリスト自体は基本的に分類・識別条件を定義するだけなので、単体では意味をなさず、他の機能と組み合わせて初めて効果を発揮しますが、本解説編では作成したアクセスリストの使用方法については軽く触れるだけにします。各機能におけるアクセスリストの具体的な使用方法については、該当機能の解説編やコマンドリファレンス編をご参照ください。

アクセスリストの種類と用途

アクセスリストには、大きく分けて「標準IPアクセスリスト」、「標準IPv6アクセスリスト」、「ハードウェアアクセスリスト」の3種類があります。

次に示すように、これらはそれぞれ用途が分かれています。したがって、用途が決まれば使用すべきアクセスリストの種類も自動的に決まります。

Note
標準IPアクセスリスト、標準IPv6アクセスリストは、一般的なパケットフィルタリング(本製品を通過するパケット全般を対象としたフィルタリング)には使用されませんのでご注意ください。パケットフィルタリングには、ハードウェアアクセスリストを使用します。

Note
SNMPアクセス制御を使用するとき、アクセスリストのDenyアクションが動作しません。

Note
AMFとアクセスリストを併用する場合、AMFマネージメントサブネット(atmf management subnet)内の通信を許可するようにしてください。

なお実際には、標準IPv6アクセスリストを除く2種類は、識別子(ID)として番号、文字列のどちらを使うか、あるいは、分類条件としてEthernetヘッダー、IPヘッダー、IPv6ヘッダー以降のどれを使うかなどの違いによって、さらにそれぞれ小分類することができます。したがって、厳密にはアクセスリストの種類は次の6つとなります。

表 1:アクセスリストの種類と識別子および設定コマンド
アクセスリストの種類
識別子
設定コマンド
標準IPアクセスリスト
番号付き標準IPアクセスリスト 1~99、1300~1999 access-list(standard)コマンド
名前付き標準IPアクセスリスト 名前(文字列) access-list standardコマンド
標準IPv6アクセスリスト
名前付き標準IPv6アクセスリスト 名前(文字列) ipv6 access-list standardコマンド
ハードウェアアクセスリスト
ハードウェアIPアクセスリスト 3000~3699 access-list(hardware ip)コマンド
ハードウェアMACアクセスリスト 4000~4699 access-list(hardware mac)コマンド
ハードウェアIPv6アクセスリスト 名前(文字列) ipv6 access-list(list)コマンド

コマンド形式(シーケンス番号対応)

アクセスリストのコマンドの形式には2種類あります。


アクセスリストの種類ごとに、以下のように、両方の形式のためのコマンドが用意されています。
Note
ハードウェアIPv6アクセスリストはシーケンス番号対応版しか存在しません。

表 2:コマンド形式(シーケンス番号対応)
アクセスリストの種類
逐次指定
サブモード指定(シーケンス番号対応)
標準IPアクセスリスト
番号付き標準IPアクセスリスト access-list(standard)コマンド access-list(standard)(list)コマンド、access-list(standard)(seq entry)コマンド
名前付き標準IPアクセスリスト access-list standardコマンド access-list standard(list)コマンド、access-list standard(seq entry)コマンド
標準IPv6アクセスリスト
名前付き標準IPv6アクセスリスト ipv6 access-list standardコマンド ipv6 access-list standard(list)コマンド、ipv6 access-list standard(seq entry)コマンド
ハードウェアアクセスリスト
ハードウェアIPアクセスリスト access-list(hardware ip)コマンド access-list hardware(list)コマンド、access-list hardware(seq entry)コマンド
ハードウェアMACアクセスリスト access-list(hardware mac)コマンド access-list hardware(list)コマンド、access-list hardware(seq entry)コマンド
ハードウェアIPv6アクセスリスト なし ipv6 access-list(list)コマンド、ipv6 access-list(seq entry)コマンド

以下の説明では、逐次指定のコマンド形式を使用します。

アクセスリストの作成

以下では、アクセスリストの種類ごとに、その概要と作成方法について説明します。

標準IPアクセスリスト

標準IPアクセスリストは、IPアドレスを1つだけ指定できるアクセスリストです。
始点IPアドレスに基づいて、本装置上のサービス(SNMPなど)に対するアクセスを制御する場合に使用します。

Note
標準IPアクセスリストは、一般的なパケットフィルタリング(本製品を通過するパケット全般を対象としたフィルタリング)には使用されませんのでご注意ください。パケットフィルタリングには、ハードウェアアクセスリストを使用します。

標準IPアクセスリストは複数のエントリーから構成されるリストで、検索はエントリーの追加順に行われます。検索時には、最初にマッチしたエントリーで処理(permitかdeny)が行われ、マッチした時点で検索は終了します。どのエントリーにもマッチしなかった場合はdenyとなります。

標準IPアクセスリストには、各リストを番号で識別するタイプと名前で識別するタイプがあり、それぞれ以下のコマンドで設定を行います。


両者は分類条件の指定方法が若干異なるだけで、アクセスリストを使用する各機能においてはどちらもほぼ同じように使用できます。ただし、機能によってはどちらか一方しか使えないものもありますので、詳細は各機能の解説編やコマンドリファレンス編で確認してください。

以下では、標準IPアクセスリストの作成方法について解説します。

番号付き標準IPアクセスリスト

番号で識別するタイプの標準IPアクセスリストを作成するには、access-list(standard)コマンドを使います。標準IPアクセスリストには、1~99、および、1300~1999の範囲の番号を使います。

番号付き標準IPアクセスリストでは、通常始点IPアドレスに対してのみマッチングを行います。このとき、ワイルドカードマスク(リバースマスクまたはORマスクともいう)を使うことで、柔軟なアドレス指定が可能です。次にいくつか例を示します。

Note
番号付き標準IPアクセスリストの末尾には「deny any」、すなわち、すべてをdenyする暗黙のエントリーが存在していることにご注意ください。


名前付き標準IPアクセスリスト

名前で識別するタイプの標準IPアクセスリストを作成するには、access-list standardコマンドを使います。

名前付き標準IPアクセスリストでは、通常始点IPアドレスに対してのみマッチングを行います。このとき、マスク長(ANDマスクともいう)を使うことで、柔軟なアドレス指定が可能です。次にいくつか例を示します。

Note
名前付き標準IPアクセスリストにはexact-matchというオプションがありますが、これは経路エントリーを対象とするときだけ意味を持つオプションなので、ここでは触れません。

Note
名前付き標準IPアクセスリストの末尾には「deny any」、すなわち、すべてをdenyする暗黙のエントリーが存在していることにご注意ください。


標準IPv6アクセスリスト

標準IPv6アクセスリストは、IPv6アドレスを1つだけ指定できるアクセスリストです。
標準IPアクセスリストのIPv6版と考えればよいでしょう。

Note
標準IPv6アクセスリストは、一般的なパケットフィルタリング(本製品を通過するパケット全般を対象としたフィルタリング)には使用されませんのでご注意ください。パケットフィルタリングには、ハードウェアアクセスリストを使用します。

標準IPv6アクセスリストは複数のエントリーから構成されるリストで、検索はエントリーの追加順に行われます。検索時には、最初にマッチしたエントリーで処理(permitかdeny)が行われ、マッチした時点で検索は終了します。どのエントリーにもマッチしなかった場合はdenyとなります。

標準IPv6アクセスリストは、標準IPアクセスリストと異なり、各リストを名前で識別するタイプしかありません。設定はipv6 access-list standardコマンドで行います。

以下では、標準IPv6アクセスリストの作成方法について解説します。

名前付き標準IPv6アクセスリスト

名前で識別するタイプの標準IPv6アクセスリストを作成するには、ipv6 access-list standardコマンドを使います。

名前付き標準IPv6アクセスリストでは、通常始点IPv6アドレスに対してのみマッチングを行います。このとき、マスク長(ANDマスクともいう)を使うことで、柔軟なアドレス指定が可能です。次にいくつか例を示します。

Note
名前付き標準IPv6アクセスリストの末尾には「deny any」、すなわち、すべてをdenyする暗黙のエントリーが存在していることにご注意ください。


ハードウェアアクセスリスト

ハードウェアアクセスリストは、本製品のスイッチングチップ(ASIC)でパケットフィルタリングやトラフィック分類を行うためのアクセスリストです。

ハードウェアアクセスリストでは、パケットヘッダー内の各種フィールドを検査してパケットを分類し、分類したパケットに対しては、許可、破棄だけでなく、パケットのコピーをミラーポートから出力するなどの各種処理を行うことができます。

ハードウェアアクセスリストは、これまで説明してきた他のアクセスリストとは違って、エントリーを1つしか持てません。すなわち、ハードウェアアクセスリストは「リスト」という名を持ってはいますが、実際にはリストではなく単一のエントリーということになります。したがって、ハードウェアアクセスリストには、他のアクセスリストにある「暗黙のdenyエントリー」は存在しません。

ハードウェアアクセスリストを用いてトラフィックの制御を行うときは、複数のハードウェアアクセスリスト(つまりエントリー)をスイッチポート(インターフェース・ハードウェアパケットフィルター)やスイッチ全体(グローバル・ハードウェアパケットフィルター)、あるいは、ポリシーマップ(QoSポリシー)に順序立てて関連付けることで、実際のリストを構成します。

ハードウェアアクセスリストには、IPヘッダー、IPv6ヘッダー以降をマッチング対象にするものと、Ethernetヘッダーだけをマッチング対象にするものがあり、それぞれ以下のコマンドで設定を行います。


これらは使用できる分類条件が異なるだけで、トラフィックを制御する各機能においてはどちらもほぼ同じように、混在して使用できます。

以下では、ハードウェアアクセスリストを用いてトラフィックを分類する方法について解説します。

ハードウェアIPアクセスリスト

ハードウェアIPアクセスリストを作成するには、access-list(hardware ip)コマンドを使います。

ハードウェアIPアクセスリストでは、通常始点IPアドレスと終点IPアドレスに対してマッチングを行います。このとき、マスク長(ANDマスクともいう)やワイルドカードマスク(リバースマスクまたはORマスクともいう)を使うことで、柔軟なアドレス指定が可能です。また、TCP/UDPパケットに対しては終点・始点のポート番号を、ICMPパケットに対してはメッセージタイプを指定することもできます。次にいくつか例を示します。

Note
ハードウェアIPアクセスリストは、実際にはリストでなく単一エントリーにすぎないため、他のアクセスリストにある暗黙のdenyエントリーは存在しません。


ハードウェアIPv6アクセスリスト

ハードウェアIPv6アクセスリストを作成するには、ipv6 access-list(list)コマンドとipv6 access-list(seq entry)コマンドを使います。

Note
ハードウェアIPv6アクセスリストはシーケンス番号対応版しか存在しません。

ハードウェアIPv6アクセスリストでは、通常始点IPv6アドレスと終点IPv6アドレスに対してマッチングを行います。このとき、マスク長(ANDマスクともいう)やワイルドカードマスク(リバースマスクまたはORマスクともいう)を使うことで、柔軟なアドレス指定が可能です。また、TCP/UDPパケットに対しては終点・始点のポート番号を、ICMPv6パケットに対してはメッセージタイプを指定することもできます。次にいくつか例を示します。

Note
ハードウェアIPv6アクセスリストは複数のエントリーから構成されるリストですが、ハードウェアIPアクセスリスト、ハードウェアMACアクセスリストと同様に、暗黙のdenyエントリーは存在しません。そのため、どのエントリーともマッチしなかったパケットはpermitされます。

ハードウェアMACアクセスリスト

ハードウェアMACアクセスリストを作成するには、access-list(hardware mac)コマンドを使います。

ハードウェアMACアクセスリストでは、送信元MACアドレスと宛先MACアドレスに対してマッチングを行います。このとき、ワイルドカードマスク(リバースマスクまたはORマスクともいう)を使うことで、柔軟なアドレス指定が可能です。次にいくつか例を示します。

Note
ハードウェアMACアクセスリストは、実際にはリストでなく単一エントリーにすぎないため、他のアクセスリストにある暗黙のdenyエントリーは存在しません。



DENYログ

DENYログはハードウェアアクセスリスト(ハードウェアIPアクセスリスト、ハードウェアIPv6アクセスリスト)で破棄されたパケットをログに記録する機能です。

DENYログには以下の制限があります。

DENYログ機能を使うための基本的な設定を以下に示します。
  1. DENYログ機能を有効にします。
    awplus(config)# access-list hardware-deny-log
    
  2. DENYエントリーの登録時にlogオプションを指定します。
    これにより該当エントリーにマッチして破棄されたパケットがログに記録されるようになります。
    awplus(config)# access-list 3000 deny tcp 192.168.100.0/24 any eq 22 log
    

DENYログはaccess-list hardware-deny-logコマンドの指定により、informationalレベルかwarningsレベルで出力されます。
informationalレベルに設定している場合は、初期設定ではbufferedログに記録されないため以下のコマンドを実行してください。
awplus(config)# log buffered level informational facility local6

ログは次のような形式で記録されます。
2023 Apr 25 21:59:25 local6.warning awplus ulogd[898]: HW-DENY> IN=vlan100 OUT= MAC=e0:1a:ea:50:51:fc:00:00:11:11:22:22:08:00 SRC=192.168.1.100 DST=192.170.1.1 LEN=46 TOS=00 PREC=0x00 TTL=64 ID=0 PROTO=UDP SPT=63 DPT=63 LEN=26 MARK=0x20138900


ACLグループ

ハードウェアアクセスリスト(シーケンス番号対応)とハードウェアIPv6アクセスリスト(シーケンス番号対応)では、ACLグループという仕組みを使うことで、頻繁に使用するIPアドレスやTCP/UDPポート番号の指定をグループ化して再利用可能とし、設定全体の見通しをよくすることができます。

たとえば、次のアクセスリスト「sample1」では、始点IPアドレス3つ、終点TCPポート5つの組み合わせをすべて網羅するために15個のエントリーを使用しています。
access-list hardware sample1
 deny tcp 10.1.1.1/32 any eq 10001
 deny tcp 10.1.1.1/32 any eq 20001
 deny tcp 10.1.1.1/32 any eq 30001
 deny tcp 10.1.1.1/32 any eq 40001
 deny tcp 10.1.1.1/32 any eq 50001
 deny tcp 10.2.2.2/32 any eq 10001
 deny tcp 10.2.2.2/32 any eq 20001
 deny tcp 10.2.2.2/32 any eq 30001
 deny tcp 10.2.2.2/32 any eq 40001
 deny tcp 10.2.2.2/32 any eq 50001
 deny tcp 10.3.3.3/32 any eq 10001
 deny tcp 10.3.3.3/32 any eq 20001
 deny tcp 10.3.3.3/32 any eq 30001
 deny tcp 10.3.3.3/32 any eq 40001
 deny tcp 10.3.3.3/32 any eq 50001

一方、ACLグループを使用する場合は、あらかじめIPアドレスやTCP/UDPポート番号の指定だけをホストグループ、ポートグループという形で定義しておき、アクセスリストのエントリー作成時にはアドレスやポート番号の代わりにホストグループ名やポートグループ名を指定します。

前述のアクセスリスト「sample1」をACLグループを利用して書き換えると次の「sample2」のようになります。
acl-group ip address HOST_GROUP
 ip 10.1.1.1/32
 ip 10.2.2.2/32
 ip 10.3.3.3/32
acl-group ip port PORT_GROUP
 eq 10001
 eq 20001
 eq 30001
 eq 40001
 eq 50001
access-list hardware sample2
 deny tcp host-group HOST_GROUP any port-group PORT_GROUP
事前にIPアドレス(IPホストグループHOST_GROUP)とポート番号(ポートグループPORT_GROUP)を定義する必要はありますが、アクセスリスト本体(エントリー)の記述はわずか一行で済んでいます。

また、アクセスリストにホストを追加したり、対象ポートを追加・変更する場合にもACLグループは威力を発揮します。
たとえば、前記「sample1」「sample2」に拒否対象ホストとして10.4.4.4/32を追加する場合、ACLグループを使わないsample1では、次のように5つのエントリーを追加する必要があります。
awplus(config)# access-list hardware sample1
awplus(config-ip-hw-acl)# deny tcp 10.4.4.4/32 any eq 10001
awplus(config-ip-hw-acl)# deny tcp 10.4.4.4/32 any eq 20001
awplus(config-ip-hw-acl)# deny tcp 10.4.4.4/32 any eq 30001
awplus(config-ip-hw-acl)# deny tcp 10.4.4.4/32 any eq 40001
awplus(config-ip-hw-acl)# deny tcp 10.4.4.4/32 any eq 50001
一方、ACLグループを利用しているsample2では、次のようにホストグループにIPアドレスを1つ追加するだけで、アクセスリスト本体(エントリー)は変更する必要がありません。
awplus(config)# acl-group ip address HOST_GROUP
awplus(config-ip-host-group)# ip 10.4.4.4/32
対象ポートの追加も同様にポートグループを編集するだけで済みます(ACLグループを利用しない場合はホストの数だけアクセスリストにエントリーを追加する必要があります)。
awplus(config)# acl-group ip port PORT_GROUP
awplus(config-ip-port-group)# eq 60001

■ ACLグループには次の種類があります。それぞれ下記のコマンドで作成、利用が可能です。

■ ハードウェアアクセスリスト(シーケンス番号対応)、ハードウェアIPv6アクセスリスト(シーケンス番号対応)のエントリーを作成するとき、IP/IPv6アドレスやTCP/UDPポート番号を直接指定する代わりに、IP/IPv6ホストグループやポートグループを指定することができます。

■ ACLグループは、それを利用するアクセスリストが適用された状態でも、内容の変更(アドレス、ポート指定の追加、削除など)が可能です。
ただし、使用中のACLグループを削除することはできません。ACLグループを削除する場合は、あらかじめ使用中のアクセスリストから該当ACLグループを外すか、アクセスリスト自体を削除しておく必要があります。

■ ACLグループを利用した場合、アクセスリストのエントリー数はACLグループを使用しない場合に比べて少なくなりますが、フィルタリング用内部領域の消費量は利用するグループ内のエントリー数(IPアドレスやポート指定の数)をすべてかけたものになるため、ACLグループを使用しない場合と基本的に変わりません。

たとえば、次のACLグループが定義されていると仮定した場合、

次のアクセスリストエントリーは 10 (H1) × 5 (P2) = 50 個分のエントリーを使用します。
 deny tcp host-group H1 any port-group P2

また次の例では3つACLグループを使用しているため、10 (H1) × 3 (H2) × 5 (P2) = 150 個分のエントリーを使用します。
 deny tcp host-group H1 host-group H2 port-group P2

極端な例ですが、利用可能なすべての場所でACLグループを指定した場合、4つのACLグループを使用することになり、この例では 10 (H1) × 2 (P1) × 3 (H2) × 5 (P2) = 300 個分のエントリーを使用します。
 deny tcp host-group H1 port-group P1 host-group H2 port-group P2

■ ACLグループを含むアクセスエントリーの適用によってフィルタリング用内部領域が足りなくなる場合、該当エントリーは適用されずにエラーとなります。

■ ACLグループの情報は、show acl-group ip portshow acl-group ip addressshow acl-group ipv6 addressコマンドで確認できます。

アクセスリストの使用

作成したアクセスリストは、以下の機能/コマンドから使用できます。

標準IPアクセスリスト

標準IPアクセスリストを利用したアクセス制御関連の機能としては、以下のものがあります。


■ SNMPの詳細については、「運用・管理」の「SNMP」をご覧ください。

■ Telnet/SSHの詳細については、「運用・管理」の「Telnet」「運用・管理」の「Secure Shell」をご覧ください。

標準IPv6アクセスリスト

標準IPv6アクセスリストを利用したアクセス制御関連の機能としては、以下のものがあります。

また、各種アドレスの指定に標準IPv6アクセスリストを使う機能としては、以下のものがあります。
■ Telnet/SSHの詳細については、「運用・管理」の「Telnet」「運用・管理」の「Secure Shell」をご覧ください。

■ MLD Snoopingの詳細については、「IPv6マルチキャスト」の「MLD Snooping」をご覧ください。

ハードウェアアクセスリスト

ハードウェアアクセスリストは、次の機能で使用します。


■ ハードウェアパケットフィルターの詳細については、「トラフィック制御」の「ハードウェアパケットフィルター」をご覧ください。

■ Quality of Service(QoS)の詳細については、「トラフィック制御」の「Quality of Service」をご覧ください。


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

PN: 613-002671 Rev.W