ACL の概要
パケット フィルタリングを使用すると、ネットワーク トラフィックを制限したり、特定のユーザやデバイスによるネットワークの使用を制限したりできます。ACL はルータまたはスイッチを通過するトラフィックをフィルタリングし、特定のインターフェイスまたは VLAN(仮想 LAN)でパケットを許可、または拒否します。ACL は、パケットに適用される許可および拒否条件を順番に並べたものです。インターフェイスにパケットが着信すると、スイッチはパケットのフィールドを該当する ACL と比較し、ACL で指定されている条件に基づいて、パケットに対して転送が許可されているかどうかを検証します。パケットは、アクセス リスト内の条件に対して 1 つずつテストされます。最初に見つかった一致条件によって、パケットが許可されるか、または拒否されるかが決まります。スイッチは、最初の一致が見つかるとテストを終了するので、アクセス リスト内の条件の順序が重要となります。一致する条件がない場合、パケットは拒否されます。制約がない場合、スイッチはパケットを転送し、制約がある場合はパケットを廃棄します。スイッチは、転送するすべてのパケット上で ACL を使用できます。
ネットワークに基本的なセキュリティを導入する場合は、ルータまたはレイヤ 3 スイッチにアクセス リストを設定します。ACL を設定しないと、スイッチを通過するすべてのパケットが、ネットワーク内のすべての場所に転送されることがあります。ACL を使用すると、ネットワークの場所ごとにアクセス可能なホストを制御したり、ルータ インターフェイスで転送またはブロックされるトラフィックの種類を決定したりできます。たとえば、E メール トラフィックの転送を許可して、Telnet トラフィックの転送を禁止することが可能です。また、ACL を着信トラフィック、発信トラフィック、またはその両方をブロックするように設定できます。
ACL には Access Control Entry(ACE; アクセス コントロール エントリ)が順番に記述されています。各 ACE は、許可( permit )または拒否( deny )、および ACE と一致するためにパケットが満たす必要がある条件を指定します。 許可 または 拒否 の意味は、ACL の使用状況に応じて変わります。
スイッチは IPv4 ACL およびイーサネット(MAC [メディア アクセス制御])ACL をサポートします。
• IP ACL は、TCP、UDP、Internet Group Management Protocol(IGMP)、Internet Control Message Protocol(ICMP)などの IPv4 トラフィックをフィルタリングします。
• イーサネット ACL は、非 IP トラフィックをフィルタリングします。
このスイッチは、QoS(Quality of Service)分類 ACL もサポートしています。詳細については、「QoS の概要」を参照してください。
ここでは、次の概要について説明します。
• 「サポートされる ACL」
• 「分割されたトラフィックおよび分割されていないトラフィックの処理」
サポートされる ACL
トラフィックをフィルタリングするため、次に示す 3 種類の ACL のアプリケーションがサポートされています。
• ポート ACL は、レイヤ 2 インターフェイスに入るトラフィックをアクセス制御します。発信方向のポート ACL はサポートされません。1 つのレイヤ 2インターフェイスに適用できるのは、IP アクセス リスト 1 つと MAC アクセス リスト 1 つだけです。
• ルータ ACL は、VLAN 間でルーティングされたトラフィックをアクセス制御し、特定の方向(着信または発信)のレイヤ 3 インターフェイスに適用されます。ルータ ACL をサポートするには、スイッチでメトロ IP アクセス イメージが稼動している必要があります。
• VLAN ACL または VLAN マップは、すべてのパケット(フォワーデッド パケットおよびルーテッド パケット)をアクセス制御します。VLAN マップを使用すると、同じ VLAN 内のデバイス間で転送されるトラフィックをフィルタリングできます。VLAN マップは、IPv4 のレイヤ 3 アドレスに基づいてアクセス制御するように設定されています。サポートされていないプロトコルはイーサネット ACE を使用し、MAC アドレスを通じてアクセス制御されます。VLAN マップを VLAN に適用すると、VLAN に入るすべてのパケットが VLAN マップと照合されます。パケットはスイッチ ポートを経由して、ルーティングされたパケットの場合はルーテッド ポートを経由して、VLAN に入ります。
同じスイッチ上で入力ポート ACL、ルータ ACL、VLAN マップを併用できます。ただし、ポートの ACL はルータの ACL、または VLAN マップより優先されます。
• 入力ポート ACL と VLAN マップが両方とも適用されている場合に、ポート ACL が適用されたポートにパケットが着信すると、このパケットはポート ACL によってフィルタリングされます。その他のパケットは、VLAN マップによってフィルタリングされます。
• Switch Virtual Interface(SVI; スイッチ仮想インターフェイス)に入力ルータ ACL および入力ポート ACL が設定されている場合に、ポート ACL が適用されているポートにパケットが着信すると、このパケットはポート ACL によってフィルタリングされます。その他のポートに着信したルーテッド IPv4 パケットは、ルータ ACL によってフィルタリングされます。他のパケットはフィルタリングされません。
• SVI に出力ルータ ACL および入力ポート ACL が設定されている場合に、ポート ACL が適用されているポートにパケットが着信すると、このパケットはポート ACL によってフィルタリングされます。発信ルーテッド IPv4 パケットは、ルータ ACL によってフィルタリングされます。他のパケットはフィルタリングされません。
• SVI に VLAN マップ、入力ルータ ACL、および入力ポート ACL が設定されている場合に、ポート ACL が適用されているポートにパケットが着信すると、このパケットはポート ACL によってだけフィルタリングされます。その他のポートに着信したルーテッド IPv4 パケットは、VLAN マップおよびルータ ACL の両方によってフィルタリングされます。他のパケットには、VLAN マップのフィルタのみ適用されます。
• SVI に VLAN マップ、出力ルータ ACL、および入力ポート ACL が設定されている場合に、ポート ACL が適用されているポートにパケットが着信すると、このパケットはポート ACL によってだけフィルタリングされます。発信されるルーテッド IPv4 パケットは、VLAN マップおよびルータ ACL の両方によってフィルタリングされます。他のパケットには、VLAN マップのフィルタのみ適用されます。
インターフェイスで IEEE 802.1Q トンネリングを設定している場合、トンネル ポートで受信した IEEE 802.1Q カプセル化 IPv4 パケットは、MAC ACL によってフィルタリングされますが、IPv4 ACL ではフィルタリングされません。これは、スイッチが IEEE 802.1Q ヘッダー内部のプロトコルを認識しないためです。ルータ ACL、ポート ACL、および VLAN マップに、この制限が適用されます。IEEE 802.1Q トンネリングの詳細については、 第 14 章「IEEE 802.1Q トンネリング、VLAN マッピング、およびレイヤ 2 プロトコル トンネリングの設定」 を参照してください。
ポート ACL
ポート ACL は、スイッチのレイヤ 2 インターフェイスに適用される ACL です。ポート ACL は物理インターフェイスでだけサポートされ、EtherChannel インターフェイスではサポートされません。また、着信方向のインターフェイスにだけ適用されます。次のアクセス リストは、レイヤ 2 インターフェイスでサポートされます。
• 送信元アドレスを使用する標準 IP アクセス リスト
• 送信元アドレス、宛先アドレス、およびオプションのプロトコル タイプ情報を使用する拡張 IP アクセス リスト
• 送信元 MAC アドレス、宛先 MAC アドレス、およびオプションのプロトコル タイプ情報を使用する MAC 拡張アクセス リスト
スイッチはインターフェイスに設定されている着信機能に関連付けられている ACL すべてをテストし、パケットが ACL 内のエントリと一致するかどうかによって、パケットの転送を許可または拒否します。このようにして、ACL はネットワーク全体、または一部のネットワークへのアクセスを制御するために使用されます。図 32-1 に、すべてのワークステーションが同じ VLAN 内にある場合に、ポート ACL を使用してネットワークへのアクセスを制御する例を示します。レイヤ 2 への入力に適用されている ACL により、ホスト A は人事部ネットワークへのアクセスが許可されますが、ホスト B は拒否されます。レイヤ 2 インターフェイスで、ポート ACL を適用できるのは、着信方向に対してだけです。
図 32-1 ACL によるネットワークへのトラフィックの制御
ポート ACL をトランク ポートに適用すると、そのトランク ポートにあるすべての VLAN で ACL によるトラフィックのフィルタリングが実行されます。
ポート ACL を使用すると、IP アクセス リストを使用して IP トラフィックをフィルタリングし、MAC アドレスを使用して非 IP トラフィックをフィルタリングできます。同じレイヤ 2 インターフェイスに IP アクセス リストと MAC アクセス リストを両方適用すると、そのレイヤ 2 インターフェイスで IP トラフィックと非 IP トラフィックをフィルタリングできます。
(注) 1 つのレイヤ 2 インターフェイスに適用できるのは、IP アクセス リスト 1 つと MAC アクセス リスト 1 つだけです。すでに IP アクセス リストまたは MAC アクセス リストが 1 つ設定されているレイヤ 2 インターフェイスに、新しい IP アクセス リストまたは MAC アクセス リストを適用すると、前に設定した ACL が新しい ACL に置き換えられます。
ルータ ACL
スイッチでメトロ IP アクセス イメージが稼動している場合は、VLAN へのレイヤ 3 インターフェイスである SVI、物理レイヤ 3 インターフェイス、およびレイヤ 3 EtherChannel インターフェイスに、ルータ ACL を適用できます。ルータ ACL はインターフェイスの特定の方向(着信または発信)に対して適用されます。1 つのインターフェイスの方向ごとに、ルータ ACL を 1 つ適用できます。
1 つの ACL をある特定のインターフェイスの複数の機能に使用できます。また、1 つの機能に複数の ACL を使用することも可能です。1 つのルータ ACL を複数の機能で使用する場合、そのルータ ACL は複数回、照合されます。
スイッチは、IPv4 トラフィックの次のアクセス リストをサポートしています。
• 標準 IP アクセス リストは、送信元アドレスを使用して一致処理を行います。
• 拡張 IP アクセス リストは、送信元アドレス、宛先アドレス、およびオプションのプロトコル タイプ情報を使用して一致処理を行います。
ポート ACL の場合と同様、スイッチは特定のインターフェイスに設定されている機能に関連付けられている ACL をテストします。ただし、ルータ ACL は双方向でサポートされています。パケットがスイッチのインターフェイスに着信すると、そのインターフェイスに設定されているすべての着信機能に対応する ACL が照合されます。パケットがルーティングされてから次のホップに転送されるまでの間に、出力インターフェイスに設定された発信機能に対応するすべての ACL が照合されます。
ACL は ACL 内のエントリとパケットの一致結果に応じて、パケット転送を許可するか、拒否するかを決めます。ACL を使用すると、ネットワーク全体またはネットワークの一部に対するアクセス制御が可能です。図 32-1 では、ルータへの入力に適用されている ACL により、ホスト A は人事部ネットワークへのアクセスが許可されますが、ホスト B は拒否されます。
VLAN マップ
VLAN ACL または VLAN マップを使用して、 すべての トラフィックをアクセス制御できます。VLAN との間でルーティングされる、またはスイッチの VLAN 内で転送される すべてのパケット に、VLAN マップを適用できます。VLAN マップは、セキュリティ パケットのフィルタリングに使用され、方向(入力または出力)によっては定義されません。
VLAN マップを設定すると、IPv4 トラフィックのレイヤ 3 アドレスと照合できます。
すべての非 IP プロトコルは、MAC VLAN マップを使用して MAC アドレスおよび EtherType によってアクセス制御されます (IP トラフィックには、MAC VLAN マップによるアクセス制御が 行われません )。VLAN マップはスイッチを通過するパケットだけに適用できます。ハブのホスト間、またはこのスイッチに接続された別のスイッチのホスト間を通過するトラフィックには、VLAN マップを適用できません。
VLAN マップを使用すると、マップに指定されたアクションに基づいてパケットの転送が許可または拒否されます。図 32-2 に、VLAN マップを適用して、特定のトラフィック タイプを VLAN 10 のホスト A から転送できないように設定する例を示します。1 つの VLAN に適用できる VLAN マップは、1 つだけです。
図 32-2 VLAN マップによるトラフィックの制御
分割されたトラフィックおよび分割されていないトラフィックの処理
ネットワークを通過する IPv4 パケットは分割できます。IPv4 パケットを分割すると、パケットの先頭を含むフラグメントにだけ、TCP、UDP ポート番号、ICMP タイプおよびコードなどのレイヤ 4 情報が格納されます。その他のすべてのフラグメントには、この情報が格納されません。
一部の ACE ではレイヤ 4 情報が確認されないため、このような ACE はすべてのパケット フラグメントに適用されます。通常の方法では、レイヤ 4 情報をテストする ACE を、分割された IPv4 パケットのほとんどのフラグメントに適用できません。レイヤ 4 情報が格納されていないフラグメントに対してレイヤ 4 情報がテストされる場合、一致規則は次のように変更されます。
• フラグメントのレイヤ 3 情報(TCP や UDP のようなプロトコル タイプなど)を確認する許可 ACE の場合は、格納されていないレイヤ 4 情報に関係なく、フラグメントが一致すると見なされます。
• レイヤ 4 情報を確認する拒否 ACE の場合は、フラグメントが一致しないと見なされます。ただし、フラグメントにレイヤ 4 情報が格納されている場合は、一致すると見なされます。
次のコマンドで設定し、3 つの分割パケットに適用される access-list 102 の例を以下に示します。
Switch(config)# access-list 102 permit tcp any host 10.1.1.1 eq smtp
Switch(config)# access-list 102 deny tcp any host 10.1.1.2 eq telnet
Switch(config)# access-list 102 permit tcp any host 10.1.1.2
Switch(config)# access-list 102 deny tcp any any
(注) この例の最初および 2 番目の ACE では、宛先アドレスのあとにキーワード eq が指定されています。これは、TCP 宛先ポートのうち、Simple Mail Transfer Protocol(SMTP)および Telnet それぞれに対応する well-known 番号についてテストすることを示します。
• パケット A は、ホスト 10.2.2.2 のポート 65000 からホスト 10.1.1.1 の SMTP ポートに送信される TCP パケットです。このパケットが分割パケットの場合、最初のフラグメントにはすべてのレイヤ 4 情報が格納されているため、完全なパケットと同様に見なされ、最初の ACE(許可)に一致します。SMTP ポート情報が入っていなくても、残りのフラグメントも最初の ACE に一致します。最初の ACE はフラグメントに適用されたとき、レイヤ 3 情報だけを確認するためです。この例での情報は、パケットが TCP で、宛先が 10.1.1.1 です。
• パケット B は、ホスト 10.2.2.2 のポート 65001 からホスト 10.1.1.2 の Telnet ポートに送信されます。このパケットが分割パケットの場合、最初のフラグメントにはレイヤ 3 情報およびレイヤ 4 情報がすべて格納されているため、2 番目の ACE(拒否)に一致します。このパケットの残りのフラグメントにはレイヤ 4 情報が格納されていないため、2 番目の ACE には一致しません。残りのフラグメントは 3 番目の ACE(許可)に一致します。
最初のフラグメントが拒否されているため、ホスト 10.1.1.2 は完全なパケットを再構築できません。したがって、実際にはパケット B は拒否されます。ただし、ホスト 10.1.1.2 がパケットを再構築しようとするとき、許可されたフラグメントによってネットワーク帯域幅とこのホストのリソースが消費されます。
• 分割パケット C はホスト 10.2.2.2 のポート 65001 からホスト 10.1.1.3 のポート ftp に送信されます。このパケットが分割パケットの場合、最初のフラグメントは 4 番目の ACE(拒否)に一致します。その他のすべてのフラグメントも 4 番目の ACE に一致します。これは、すべてのフラグメントについてレイヤ 4 情報が確認されず、レイヤ 3 情報によってすべてのフラグメントがホスト 10.1.1.3 に送信中であることが認識されたため、およびこの宛先ホストがこれ以前の許可 ACE の確認対象から外れていたためです。
IPv4 ACL の設定
スイッチに IPv4 ACL を設定する手順は、シスコ製スイッチおよびルータに IPv4 ACL を設定する場合と同じです。その手順を簡単に説明します。ACL の設定に関する詳細情報については、『 Cisco IOS IP Configuration Guide 』 Release 12.2 の「IP Addressing and Services」の章にある「Configuring IP Services」を参照してください。コマンドの詳細については、『 Cisco IOS IP Command Reference, Volume 1 of 3: Addressing and Services 』 Release 12.2 を参照してください。
スイッチは、次の Cisco IOS ルータ ACL 関連機能をサポートしません。
• 非 IP プロトコルの ACL(表 32-1 を参照)またはブリッジグループ ACL
• IP アカウンティング
• 着信速度および発信速度の制限(QoS ACL による制限を除く)
• 再帰 ACL またはダイナミック ACL
• ポート ACL および VLAN マップに関する ACL ロギング
スイッチ上で IP ACL を使用する手順は、次のとおりです。
ステップ 1 アクセス リスト番号または名前、およびアクセス条件を指定して ACL を作成します。
ステップ 2 ACL をインターフェイスまたは端末回線に適用します。標準および拡張 IP ACL を VLAN マップに適用することも可能です。
ここでは、次の設定情報について説明します。
• 「標準および拡張 IPv4 ACL の作成」
• 「端末回線への IPv4 ACL の適用」
• 「インターフェイスへの IPv4 ACL の適用」
• 「IP ACL のハードウェアおよびソフトウェア処理」
• 「ACL のトラブルシューティング」
• 「IPv4 ACL の設定例」
IPv4 アクセス リスト番号
IPv4 ACL を表す番号は、作成しているアクセス リストのタイプを示します。 表 32-1 に、アクセス リスト番号および対応するアクセスリスト タイプ、スイッチでのアクセス リストに対するサポートの有無を示します。スイッチでは、IPv4 標準および IPv4 拡張アクセス リストがサポートされています(番号は 1 ~ 199、1300 ~ 2699)。
表 32-1 アクセス リスト番号
|
|
|
1 ~ 99 |
IP 標準アクセス リスト |
あり |
100 ~ 199 |
IP 拡張アクセス リスト |
あり |
200 ~ 299 |
プロトコル タイプコード アクセス リスト |
なし |
300 ~ 399 |
DECnet アクセス リスト |
なし |
400 ~ 499 |
XNS 標準アクセス リスト |
なし |
500 ~ 599 |
XNS 拡張アクセス リスト |
なし |
600 ~ 699 |
AppleTalk アクセス リスト |
なし |
700 ~ 799 |
48 ビット MAC アドレス アクセス リスト |
なし |
800 ~ 899 |
IPX 標準アクセス リスト |
なし |
900 ~ 999 |
IPX 拡張アクセス リスト |
なし |
1000 ~ 1099 |
IPX SAP アクセス リスト |
なし |
1100 ~ 1199 |
拡張 48 ビット MAC アドレス アクセス リスト |
なし |
1200 ~ 1299 |
IPX サマリー アドレス アクセス リスト |
なし |
1300 ~ 1999 |
IP 標準アクセス リスト(拡張範囲) |
あり |
2000 ~ 2699 |
IP 拡張アクセス リスト(拡張範囲) |
あり |
(注) 番号付きの標準 IPv4 ACL および拡張 IPv4 ACL 以外に、サポートされている番号を使用して名前付きの標準 IPv4 ACL および拡張 IPv4 ACL を作成することも可能です。つまり、標準 IP ACL の名前には 1 ~ 99 を、拡張 IP ACL の名前には 100 ~ 199 を使用できます。番号付き ACL ではなく名前付き ACL を使用することで、名前付きリストから個別にエントリを削除することが可能となります。
ACL のロギング
標準 IP アクセス リストによって許可または拒否されたパケットに関するログ メッセージが、スイッチのソフトウェアによって表示されます。つまり、ACL と一致するパケットがあった場合は、そのパケットに関するログ通知メッセージがコンソールに送信されます。コンソールに表示されるメッセージのレベルは、Syslog メッセージを制御するロギング コンソール コマンドで制御されます。
(注) ルーティングはハードウェアで、ロギングはソフトウェアで実行されます。したがって、キーワード logを含む許可(permit)または拒否(deny)ACE と一致するパケットが多数存在する場合、ソフトウェアはハードウェアの処理速度に追いつくことができないため、一部のパケットはロギングされない場合があります。
ACL を起動した最初のパケットについては、ログ メッセージがすぐに表示されますが、それ以降のパケットについては、5 分間の収集時間が経過してから表示またはロギングされます。ログ メッセージにはアクセス リスト番号、パケットの許可または拒否に関する状況、パケットの送信元 IP アドレス、および直前の 5 分間に許可または拒否された送信元からのパケット数が示されます。
番号付き標準 ACL の作成
番号付き標準 ACL を作成するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
access-list access-list-number { deny | permit } source [ source-wildcard ] [ log ] |
送信元アドレスおよびワイルドカードを使用し、標準 IPv4 アクセス リストを定義します。 access-list-number は 1 ~ 99 または 1300 ~ 1999 の 10 進数です。 条件が一致する場合にアクセスを拒否するか、許可するかを指定するため、 deny または permit を入力します。 source はパケットの送信元であるネットワークまたはホストのアドレスです。次のいずれかで指定します。 • ドット付き 10 進表記による 32 ビットの数値 • source と source-wildcard の値 0.0.0.0 255.255.255.255 の短縮形であるキーワード any 。送信元ワイルドカードを入力する必要はありません。 • 送信元と送信元ワイルドカードの値 source 0.0.0.0 の短縮形である host (任意) source-wildcard を指定すると、送信元にワイルドカード ビットが適用されます。 (任意) log を指定すると、エントリと一致するパケットに関するログ通知メッセージがコンソールに送信されます。 |
ステップ 3 |
end |
特権 EXEC モードに戻ります。 |
ステップ 4 |
show access-lists [number | name] |
アクセス リストの設定を表示します。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
ACL 全体を削除するには、 no access-list access-list-number グローバル コンフィギュレーション コマンドを使用します。番号付きアクセス リストからは、ACE を個別に削除できません。
(注) ACL を作成するときは、ACL の末尾に暗黙の 拒否文がデフォルトで存在し、それ以前の文で一致が見つからなかったすべてのパケットに適用されることに注意してください。標準 ACL では、対応する IP ホスト アドレスの ACL を指定するときにマスクを省略すると、0.0.0.0 がマスクとして使用されます。
次に、IP ホスト 171.69.198.102 へのアクセスを拒否してそれ以外のアドレスへのアクセスを許可し、その結果を表示する標準 ACL の作成例を示します。
Switch (config)# access-list 2 deny host 171.69.198.102
Switch (config)# access-list 2 permit any
Switch(config)# end
Switch# show access-lists
Standard IP access list 2
host 一致条件が指定されたエントリ、および 0.0.0.0 の無視( don't care )マスクが指定されたエントリが、リストの先頭(ゼロ以外の無視 [ don't care ] マスクが指定されたすべてのエントリの上)に来るように、標準アクセス リストの順序が常に書き換えられます。したがって、 show コマンドの出力およびコンフィギュレーション ファイルで、ACE は必ずしも入力した順番に表示されるとは限りません。
作成した番号付き標準 IPv4 ACL は、端末回線(「端末回線への IPv4 ACL の適用」を参照)、インターフェイス(「インターフェイスへの IPv4 ACL の適用」を参照)、または VLAN(「VLAN マップの設定」を参照)に適用できます。
番号付き拡張 ACL の作成
標準 ACL の場合、一致基準には送信元アドレスだけが使用されますが、拡張 ACL の場合は、一致処理に送信元アドレスおよび宛先アドレスを使用したり、オプションのプロトコル タイプ情報を使用してより細部にわたる制御を行ったりできます。番号付き拡張 ACL を作成したあとに ACE を新たに作成するときは、リストの末尾に新しい ACE が配置されることに注意してください。リストを再び並べ替えたり、番号が指定された ACL の特定の位置で ACE を追加または削除したりはできません。
プロトコルには、専用のパラメータおよびキーワードを使用できるものもあります。
次の IP プロトコルがサポートされます(プロトコル キーワードはカッコ内の太字)。
Authentication Header Protocol( ahp )、Enhanced Interior Gateway Routing Protocol( eigrp) 、Encapsulation Security Payload( esp )、Generic Routing Encapsulation( gre )、Internet Control Message Protocol( icmp) 、Internet Group Management Protocol( igmp )、任意の Interior Protocol( ip )、IP in IP トンネリング( ipinip )、KA9Q NOS 互換 IP over IP トンネリング( nos )、Open Shortest Path First ルーティング( ospf )、Payload Compression Protocol( pcp )、Protocol Independent Multicast( pim )、TCP( tcp )、UDP( udp )。
(注) ICMP エコー応答はフィルタリングできません。他のすべての ICMP コードまたはタイプはフィルタリング可能です。
各プロトコルの特定のキーワードに関する詳細は、次のコマンド リファレンスを参照してください。
• 『 Cisco IOS IP Command Reference, Volume 1 of 3: Addressing and Services 』 Release 12.2
• 『 Cisco IOS IP Command Reference, Volume 2 of 3: Routing Protocols 』 Release 12.2
• 『 Cisco IOS IP Command Reference, Volume 3 of 3: Multicast 』 Release 12.2
(注) ダイナミック アクセス リストや再帰アクセス リストはサポートされません。また、最小コストの Type of Service(ToS; サービス タイプ)ビットに基づくフィルタリングもサポートされません。
サポートされているパラメータは、TCP、UDP、ICMP、IGMP、または他の IP の、いずれかのカテゴリにグループ分けできます。
拡張 ACL を作成するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2a |
access-list access-list-number { deny | permit } protocol source source-wildcard destination destination-wildcard [ precedence precedence ] [ tos tos ] [ fragments ] [ log ] [ log-input ] [ time-range time-range-name ] [ dscp DSCP ] を両方とも入力できます。 |
拡張 IPv4 アクセス リストおよびアクセス条件を定義します。 access-list-number は 100 ~ 199 または 2000 ~ 2699 の 10 進数です。 deny または permit を入力して、条件が一致する場合にパケットを拒否するか許可するかを指定します。 protocol には、IP プロトコルの名前または番号を入力します。 ahp 、 eigrp 、 esp 、 gre 、 icmp 、 igmp 、 igrp 、 ip 、 ipinip 、 nos 、 ospf 、 pcp 、 pim 、 tcp 、 udp )、または IP プロトコル番号を表す 0 ~ 255 の整数を使用できます。すべてのインターネット プロトコル(ICMP、TCP、UDP など)と一致させる場合は、キーワード ip を使用します。 (注) このステップには、ほとんどの IP プロトコルに使用可能なオプションが含まれます。TCP、UDP、ICMP、IGMP の具体的なパラメータについては、ステップ 2b ~ 2e を参照してください。 source はパケットの送信元であるネットワークまたはホストの番号です。 source-wildcard を指定すると、送信元にワイルドカード ビットが適用されます。 destination はパケットの宛先となるネットワークまたはホストの番号です。 destination-wildcard を指定すると、宛先にワイルドカード ビットが適用されます。 source、source-wildcard、destination、destination-wildcard は、次の方法で指定できます。 • ドット付き 10 進表記による 32 ビットの数値 • 0.0.0.0 255.255.255.255 を表すキーワード any (任意のホスト) • 単一のホスト 0.0.0.0 を表すキーワード host その他のキーワードは任意で、意味は次のとおりです。 • precedence :0 ~ 7 の番号または名前で指定された優先順位を使用し、パケットを比較します。使用できる名前および番号は、 routine ( 0 )、 priority ( 1 )、 immediate ( 2 )、 flash ( 3 )、 flash-override ( 4 )、 critical ( 5 )、 internet (6)、 network ( 7 )です。 • fragments :先頭以外のフラグメントを確認します。 • tos :0 ~ 15 の番号または名前で指定された ToS レベルを使用して比較します。使用できる名前および番号は、 normal ( 0 )、 max-reliability ( 2 )、 max-throughput ( 4 )、 min-delay ( 8 )です。 • log :エントリと一致するパケットに関するログ通知メッセージを作成し、コンソールに送信します。 log-input を指定すると、ログ エントリに入力インターフェイスが追加されます。 • time-range :このキーワードの説明については、「ACL での時間範囲の使用法」を参照してください。 • dscp :0 ~ 63 の番号で指定された DSCP 値を使用してパケットを照合します。疑問符(?)を使用すると、使用可能な値のリストが表示されます。 |
または |
access-list access-list-number { deny | permit } protocol any any [ precedence precedence ] [ tos tos ] [ fragments ] [ log ] [log-input] [ time-range time-range-name ] [ dscp dscp ] |
アクセス リスト コンフィギュレーション モードで、送信元と送信元ワイルドカードの値 0.0.0.0 255.255.255.255 の短縮形を使用するか、または宛先と宛先ワイルドカードの値 0.0.0.0 255.255.255.255 の短縮形を使用し、拡張 IP アクセス リストを定義します。 送信元/宛先アドレスとワイルドカードの代わりに、キーワード any を使用できます。 |
または |
access-list access-list-number { deny | permit } protocol host source host destination [ precedence precedence ] [ tos tos ] [ fragments ] [log] [ log-input ] [ time-range time-range-name ] [ dscp dscp ] |
送信元と送信元ワイルドカードの値 source 0.0.0.0 の短縮形を使用するか、または宛先と宛先ワイルドカードの値 destination 0.0.0.0 の短縮形を使用し、拡張 IP アクセス リストを定義します。 送信元と宛先のワイルドカードまたはマスクの代わりに、 host キーワードを使用できます。 |
ステップ 2b |
access-list access-list-number { deny | permit } tcp source source-wildcard [ operator port ] destination destination-wildcard [ operator port ] [ established ] [ precedence precedence ] [ tos tos ] [ fragments ] [ log ] [log-input] [ time-range time-range-name ] [ dscp dscp ] [ flag ] |
(任意)拡張 TCP アクセス リストおよびアクセス条件を定義します。 TCP の場合は tcp を入力します。 次に示す例外を除き、ステップ 2a で説明するパラメータと同じパラメータを使用します。 (任意) operator および port を入力すると、送信元ポート( source source-wildcard のあとに入力した場合)または宛先ポート( destination destination-wildcard のあとに入力した場合)が比較されます。使用可能な演算子は eq (等しい)、 gt (より大きい)、 lt (より小さい)、 neq (等しくない)、 range (包含範囲)などです。演算子にはポート番号を指定する必要があります( range の場合は 2 つのポート番号をスペースで区切って指定します)。 port にポート番号を 10 進数(0 ~ 65,535)として入力するか、または TCP ポート名を入力します。TCP ポート名を確認するには、「?」を使用するか、『 Cisco IOS IP Configuration Guide 』 Release 12.2 の「IP Addressing and Services」の章にある「Configuring IP Services」を参照してください。TCP をフィルタリングするときは、TCP ポートの番号または名前だけを使用します。 その他のオプションのキーワードの意味は次のとおりです。 • established :確立された接続と比較します。このキーワードは、 ack または rst フラグを指定した場合の一致検索機能と同じです。 • flag :指定された TCP ヘッダー ビットを基準にして比較します。入力できるフラグは、 ack (確認応答)、 fin (終了)、 psh (プッシュ)、 rst (リセット)、 syn (同期)、 urg (緊急)です。 |
ステップ 2c |
access-list access-list-number { deny | permit } udp source source-wildcard [ operator port ] destination destination-wildcard [ operator port ] [ precedence precedence ] [ tos tos ] [ fragments ] [ log ] [log-input] [ time-range time-range-name ] [ dscp dscp ] |
(任意)拡張 UDP アクセス リストおよびアクセス条件を定義します。 UDP の場合は、 udp を入力します。 UDP パラメータは TCP に関して説明されているパラメータと同じです。ただし、[ operator port ] のポート番号またはポート名は、UDP ポートの番号または名前とします。UDP の場合、 flag および established の各パラメータは無効です。 |
ステップ 2d |
access-list access-list-number { deny | permit } icmp source source-wildcard destination destination-wildcard [ icmp-type | [[ icmp-type icmp-code ] | [ icmp-message ]] [ precedence precedence ] [ tos tos ] [ fragments ] [ log ] [log-input] [ time-range time-range-name ] [ dscp dscp ] |
(任意)拡張 ICMP アクセス リストおよびアクセス条件を定義します。 ICMP の場合は、 icmp を入力します。 ICMP パラメータはステップ 2a の IP プロトコルで説明されているパラメータと同じですが、ICMP メッセージ タイプとコード パラメータが追加されています。オプションのキーワードの意味は次のとおりです。 • icmp-type :ICMP メッセージ タイプを使用してフィルタリングします。0 ~ 255 の値を使用できます。 • icmp-code :ICMP メッセージ コード タイプを使用してフィルタリングされた ICMP パケットをフィルタリングします。0 ~ 255 の値を使用できます。 • icmp-message :ICMP メッセージ タイプ名または ICMP メッセージのタイプおよびコード名を使用して、ICMP パケットをフィルタリングします。ICMP メッセージ タイプ名およびコード名を確認するには、「?」を使用するか、『 Cisco IOS IP Configuration Guide 』 Release 12.2 の「Configuring IP Services」の章を参照してください。 |
ステップ 2e |
access-list access-list-number { deny | permit } igmp source source-wildcard destination destination-wildcard [ igmp-type ] [ precedence precedence ] [ tos tos ] [ fragments ] [ log ] [log-input] [ time-range time-range-name ] [ dscp dscp ] |
(任意)拡張 IGMP アクセス リストおよびアクセス条件を定義します。 IGMP の場合は、 igmp を入力します。 IGMP パラメータはステップ 2a の IP プロトコルで説明されているパラメータと同じですが、次に示すパラメータが追加されています。 igmp-type :IGMP メッセージ タイプと比較するには、0 ~ 15 の番号またはメッセージ名( host-query 、 host-report 、 pim 、または trace )を入力します。 は、コマンドライン ヘルプでは表示されますが、サポートされません。 |
ステップ 3 |
end |
特権 EXEC モードに戻ります。 |
ステップ 4 |
show access-lists [ number | name ] |
アクセス リストの設定を確認します。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
アクセス リスト全体を削除するには、 no access-list access-list-number グローバル コンフィギュレーション コマンドを使用します。番号付きアクセス リストからは、ACE を個別に削除できません。
次に、ネットワーク 171.69.198.0 内の任意のホストからネットワーク 172.20.52.0 内の任意のホストへの Telnet アクセスを拒否し、それ以外のアクセスを許可する拡張アクセス リストを作成、表示する例を示します (キーワード eq を宛先アドレスのあとに指定すると、Telnet に対応する TCP 宛先ポート番号がテストされます)。
Switch(config)# access-list 102 deny tcp 171.69.198.0 0.0.0.255 172.20.52.0 0.0.0.255 eq telnet
Switch(config)# access-list 102 permit tcp any any
Switch(config)# end
Switch# show access-lists
Extended IP access list 102
10 deny tcp 171.69.198.0 0.0.0.255 172.20.52.0 0.0.0.255 eq telnet
ACL が作成されたあとに追加された ACE(端末から入力された ACE など)は、リストの末尾に配置されます。番号が指定されたアクセス リストの特定の位置での ACE の追加または削除はできません。
(注) ACL を作成するときは、アクセス リストの末尾に暗黙の 拒否文がデフォルトで存在し、それ以前の文で一致が見つからなかったすべてのパケットに適用されることに注意してください。
作成した番号付き拡張 ACL は、端末回線(「端末回線への IPv4 ACL の適用」を参照)、インターフェイス(「インターフェイスへの IPv4 ACL の適用」を参照)、または VLAN(「VLAN マップの設定」を参照)に適用できます。
ACL 内の ACE の並べ替え
新しい ACL が作成されると、アクセス リスト内のエントリのシーケンス番号が自動的に生成されます。 ip access-list resequence グローバル コンフィギュレーション コマンドを使用すると、ACL 内のシーケンス番号を編集したり、ACE が適用される順番を変更したりできます。たとえば、新しい ACE を ACL に追加する場合、リストの最後に配置されます。シーケンス番号を変更すると、その ACE を ACL 内の別の場所に移動できます。
ip access-list resequence コマンドの詳細については、次の URL を参照してください。
http://www.cisco.com/univercd/cc/td/doc/product/software/ios122s/122snwft/release/122s14/fsaclseq.htm
名前付きの標準および拡張 ACL の作成
IPv4 ACL は、番号でなく英数字(名前)で指定することも可能です。名前付き ACL を使用すると、番号付きアクセス リストの場合より多くの IPv4 アクセス リストをルータに設定できます。アクセス リストを番号でなく名前で指定する場合は、モードおよびコマンド構文が若干異なります。ただし、IP アクセス リストを使用するすべてのコマンドで、名前付きアクセス リストを使用できるわけではありません。
(注) 標準または拡張 ACL に指定する名前には、サポートされているアクセス リスト番号範囲内の番号を指定することも可能です。つまり、標準 IP ACL の名前には 1 ~ 99 を、拡張 IP ACL の名前には 100 ~ 199 を使用できます。番号付き ACL ではなく名前付き ACL を使用することで、名前付きリストから個別にエントリを削除することが可能となります。
名前付き ACL を設定する前に、次に示す注意事項および制限事項を考慮してください。
• 番号付き ACL を指定できるすべてのコマンドで、名前付き ACL を指定できるとは限りません。インターフェイスのパケット フィルタおよびルート フィルタ用の ACL には名前を使用できます。VLAN マップには名前を使用できます。
• 標準 ACL および拡張 ACL には、同じ名前を設定できません。
• 番号付き ACL も使用できます(「標準および拡張 IPv4 ACL の作成」を参照)。
• VLAN マップには、標準 ACL および拡張 ACL(名前付きまたは番号付き)を使用できます。
名前付き標準 ACL を作成するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
ip access-list standard name |
名前を使用して標準 IPv4 アクセス リストを定義し、アクセス リスト コンフィギュレーション モードを開始します。 (注) 名前は 1 ~ 99 の番号にできます。 |
ステップ 3 |
deny { source [ source-wildcard ] | host source | any } [ log ] または permit { source [ source-wildcard ] | host source | any } [ log ] |
アクセス リスト コンフィギュレーション モードで、1 つまたは複数の条件を拒否または許可に指定し、パケットの転送または廃棄を決定します。 • host source :送信元と送信元ワイルドカードの値 source 0.0.0.0 • any :送信元と送信元ワイルドカードの値 0.0.0.0 255.255.255.255 |
ステップ 4 |
end |
特権 EXEC モードに戻ります。 |
ステップ 5 |
show access-lists [number | name] |
アクセス リストの設定を表示します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
名前付き標準 ACL を削除するには、 no ip access-list standard name グローバル コンフィギュレーション コマンドを使用します。
名前を使用して拡張 ACL を作成するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
ip access-list extended name |
名前を使用して拡張 IPv4 アクセス リストを定義し、アクセス リスト コンフィギュレーション モードを開始します。 (注) 名前は 100 ~ 199 の番号にできます。 |
ステップ 3 |
{ deny | permit } protocol { source [ source-wildcard ] | host source | any } { destination [ destination-wildcard ] | host destination | any } [ precedence precedence ] [ tos tos ] [ established ] [ log ] [ time-range time-range-name ] |
アクセスリスト コンフィギュレーション モードで、許可または拒否の条件を指定します。キーワード lo g を使用すると、違反を含むアクセス リストのログ メッセージを取得できます。 プロトコルおよびその他のキーワードの定義については、「番号付き拡張 ACL の作成」を参照してください。 • host source :送信元と送信元ワイルドカードの値 source 0.0.0.0 • host destination :宛先と宛先ワイルドカードの値 destination 0.0.0.0 • any :送信元と送信元ワイルドカードの値、または宛先と宛先ワイルドカードの値である 0.0.0.0 255.255.255.255 |
ステップ 4 |
end |
特権 EXEC モードに戻ります。 |
ステップ 5 |
show access-lists [number | name] |
アクセス リストの設定を表示します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
名前付き拡張 ACL を削除するには、 no ip access-list extended name グローバル コンフィギュレーション コマンドを使用します。
標準または拡張 ACL を作成するときは、ACL の末尾に暗黙の 拒否文がデフォルトで存在し、それ以前の文で一致が見つからなかったすべてのパケットに適用されることに注意してください。標準 ACL では、対応する IP ホスト アドレスのアクセス リストを指定するときにマスクを省略すると、0.0.0.0 がマスクとして使用されます。
ACL を作成したあとに追加された ACE は、リストの末尾に配置されます。特定の ACL に対して、個別に ACE エントリを追加できません。ただし、 no permit および no deny アクセスリスト コンフィギュレーション モード コマンドを使用すると、名前付き ACL からエントリを削除できます。
次に、名前付きアクセス リスト border-list から ACE を個別に削除する例を示します。
Switch(config)# ip access-list extended border-list
Switch(config-ext-nacl)# no permit ip host 10.1.1.3 any
番号付き ACL ではなく、名前付き ACL を使用することで、名前付き ACL から行を個別に削除することが可能となります。
作成した名前付き ACL はインターフェイス(「インターフェイスへの IPv4 ACL の適用」を参照)または VLAN(「VLAN マップの設定」を参照)に適用できます。
ACL での時間範囲の使用法
曜日および時刻に基づいて拡張 ACL を選択的に適用するには、 time-range グローバル コンフィギュレーション コマンドを使用します。最初に時間範囲の名前を定義し、時間範囲の時刻、日付、または曜日を設定します。次に、ACL を適用するときに時間範囲名を入力し、アクセス リストに制限を適用します。時間範囲を使用することで、ACL の許可文または拒否文が有効な時間(指定期間内、指定曜日など)を定義できます。 time-range キーワードおよび引数については、前述の「標準および拡張 IPv4 ACL の作成」および「名前付きの標準および拡張 ACL の作成」に記載されている、名前付きおよび番号付き拡張 ACL のタスク表を参照してください。
時間範囲を使用する利点の一部を次に示します。
• アプリケーションなどのリソース(IP アドレスとマスクのペア、およびポート番号で識別)へのユーザ アクセスをより厳密に許可または拒否できます。
• ログ メッセージを制御できます。ACL エントリを使用して特定の時刻に関してだけトラフィックをロギングできるため、ピーク時間に生成される多数のログを分析しなくても、簡単にアクセスを拒否できます。
時間ベースのアクセス リストを使用すると、CPU に負荷が生じます。これは、アクセス リストの新規設定を他の機能や、Ternary CAM(TCAM)にロードされた結合済みの設定と統合する必要があるためです。このため、複数のアクセス リストが短期間に連続して(互いに数分以内に)有効となるような設定を行わないように、注意する必要があります。
(注) 時間範囲には、スイッチのシステム クロックが使用されるため、信頼できるクロック ソースが必要です。スイッチ クロックを同期するには、Network Time Protocol(NTP)を使用することを推奨します。詳細については、「システム日時の管理」を参照してください。
ACL の time-range パラメータを設定するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
time-range time-range-name |
作成する時間範囲には意味のある名前( workhours など)を割り当て、時間範囲コンフィギュレーション モードを開始します。名前の先頭には文字を指定し、途中にスペースまたは引用符を含めないようにします。 |
ステップ 3 |
absolute [ start time date ] [ end time date ] または periodic day-of-the-week hh:mm to [ day-of-the-week ] hh:mm または periodic { weekdays | weekend | daily } hh:mm to hh:mm |
時間範囲を適用する機能が作動する時間を指定します。 • 時間範囲内では、 absolute 文を 1 回に限り使用できます。複数の absolute 文を設定した場合は、最後に設定された文だけが実行されます。 • 複数の periodic 文を入力できます。たとえば、平日と週末で異なる時間を設定できます。 設定例を参照してください。 |
ステップ 4 |
end |
特権 EXEC モードに戻ります。 |
ステップ 5 |
show time-range |
設定した時間範囲を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
複数の項目を異なる時刻に有効としたい場合、このステップを繰り返します。設定された時間範囲の制限を削除するには、 no time-range time-range-name グローバル コンフィギュレーション コマンドを使用します。
次に、営業時間( workhours )の時間範囲を設定し、会社の休業日を 2006 年 1 月 1 日に設定して、その設定を確認する例を示します。
Switch(config)# time-range workhours
Switch(config-time-range)# periodic weekdays 8:00 to 12:00
Switch(config-time-range)# periodic weekdays 13:00 to 17:00
Switch(config-time-range)# exit
Switch(config)# time-range new_year_day_2006
Switch(config-time-range)# absolute start 00:00 1 Jan 2006 end 23:59 1 Jan 2006
Switch(config-time-range)# end
time-range entry: new_year_day_2003 (inactive)
absolute start 00:00 01 January 2006 end 23:59 01 January 2006
time-range entry: workhours (inactive)
periodic weekdays 8:00 to 12:00
periodic weekdays 13:00 to 17:00
時間範囲を適用するには、時間範囲を実装できる拡張 ACL 内に、時間範囲名を入力します。次に、定義された休日中に任意の送信元から任意の宛先に送信される TCP トラフィックを拒否し、営業時間中にすべての TCP トラフィックを許可する拡張アクセス リスト 188 を作成、確認する例を示します。
Switch(config)# access-list 188 deny tcp any any time-range new_year_day_2006
Switch(config)# access-list 188 permit tcp any any time-range workhours
Switch# show access-lists
Extended IP access list 188
10 deny tcp any any time-range new_year_day_2006 (inactive)
20 permit tcp any any time-range workhours (inactive)
次に、名前付き ACL を使用して、同じトラフィックを許可および拒否する例を示します。
Switch(config)# ip access-list extended deny_access
Switch(config-ext-nacl)# deny tcp any any time-range new_year_day_2006
Switch(config-ext-nacl)# exit
Switch(config)# ip access-list extended may_access
Switch(config-ext-nacl)# permit tcp any any time-range workhours
Switch(config-ext-nacl)# end
Switch# show ip access-lists
Extended IP access list deny_access
10 deny tcp any any time-range new_year_day_2006 (inactive)
Extended IP access list may_access
10 permit tcp any any time-range workhours (inactive)
ACL へのコメントの挿入
キーワード remark を使用すると、エントリに関するコメント(備考)を任意の IP 標準および拡張 ACL に追加できます。コメントを追加すると、ACL の把握および走査がより簡単になります。各コメント行には、100 文字まで入力できます。
コメントは許可文または拒否文の前後に指定できます。コメントに対応する許可文または拒否文が明確になるように、コメントの記述位置を統一する必要があります。混乱を避けるため、たとえば、許可文または拒否文の前に記述されているコメントと、文のあとに記述されているコメントが混在しないようにします。
番号付きの IP 標準または拡張 ACL にコメントを挿入するには、 access-list access-list number remark remark グローバル コンフィギュレーション コマンドを使用します。コメントを削除するには、上記のコマンドの no 形式を使用します。
次の例では、Jones が所有するワークステーションのアクセスは許可されていますが、Smith が所有するワークステーションのアクセスは禁止されています。
Switch(config)# access-list 1 remark Permit only Jones workstation through
Switch(config)# access-list 1 permit 171.69.2.88
Switch(config)# access-list 1 remark Do not allow Smith through
Switch(config)# access-list 1 deny 171.69.3.13
名前付き IP ACL にエントリする場合は、 remark アクセス リスト コンフィギュレーション コマンドを使用します。コメントを削除するには、上記のコマンドの no 形式を使用します。
次の例では、Jones のサブネットは発信 Telnet の使用が禁止されています。
Switch(config)# ip access-list extended telnetting
Switch(config-ext-nacl)# remark Do not allow Jones subnet to telnet out
Switch(config-ext-nacl)# deny tcp host 171.69.2.88 any eq telnet
端末回線への IPv4 ACL の適用
番号付き ACL を使用すると、1 つまたは複数の端末回線へのアクセスを制御できます。端末回線には名前付き ACL を適用できません。すべての仮想端末回線にユーザが接続する可能性があるため、すべての仮想端末回線に同一の制限を設定する必要があります。
インターフェイスに ACL を適用する手順については、「インターフェイスへの IPv4 ACL の適用」を参照してください。VLAN に ACL を適用する手順については、「VLAN マップの設定」を参照してください。
ACL 内のアドレスと仮想端末回線との間の着信接続および発信接続を制限するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
line [ console | vty ] line-number |
設定する特定の回線を指定し、インライン コンフィギュレーション モードを開始します。 • console :コンソール端末回線を指定します。コンソール ポートは DCE です。 • vty :リモート コンソール アクセス用の仮想端末を指定します。 line-number は、連続した一連の番号の最初の回線番号で、回線タイプを指定するときに設定する必要があります。指定できる範囲は 0 ~ 16 です。 |
ステップ 3 |
access-class access-list-number { in | out } |
特定の仮想端末回線(デバイス側)とアクセス リストに指定されたアドレス間の着信接続および発信接続を制限します。 |
ステップ 4 |
end |
特権 EXEC モードに戻ります。 |
ステップ 5 |
show running-config |
アクセス リストの設定を表示します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
端末回線から ACL を削除するには、 no access-class access-list-number { in | out } ライン コンフィギュレーション コマンドを使用します。
インターフェイスへの IPv4 ACL の適用
ここでは、ネットワーク インターフェイスに IPv4 ACL を適用する手順について説明します。レイヤ 3 インターフェイスの場合は、ACL を着信または発信のいずれかの方向に適用できます。レイヤ 2 インターフェイスでは、着信トラフィックにだけ ACL を適用できます。次の注意事項を考慮してください。
• インターフェイスへのアクセスを制御する場合は、名前付きまたは番号付き ACL を使用できます。
• VLAN に属しているレイヤ 2 インターフェイスに ACL を適用した場合、レイヤ 2(ポート)ACL は VLAN インターフェイスに適用された入力方向のレイヤ 3 ACL、または VLAN に適用された VLAN マップよりも優先します。レイヤ 2 ポートに着信したパケットは、常にポート ACL でフィルタリングされます。
• レイヤ 3 インターフェイスに ACL が適用され、スイッチ上でルーティングがイネーブルになっていない場合は、SNMP、Telnet、Web トラフィックなど、CPU で処理されるパケットだけがフィルタリングされます。レイヤ 2 インターフェイスに ACL を適用する場合、ルーティングをイネーブルにする必要はありません。
• プライベート VLAN が設定されている場合、プライマリ VLAN SVI にだけルータ ACL を適用できます。ACL はプライマリおよびセカンダリ VLAN のレイヤ 3 トラフィックに適用されます。
(注) パケットがアクセス グループによって拒否された場合、デフォルトでは、ルータは ICMP(Internet Control Message Protoco)到達不能メッセージを送信します。アクセスグループによって拒否されたこれらのパケットはハードウェアで廃棄されず、スイッチの CPU にブリッジングされて、ICMP 到達不能メッセージを生成します。
インターフェイスへのアクセスを制御するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
interface interface-id |
設定する特定のインターフェイスを指定し、インターフェイス コンフィギュレーション モードを開始します。 インターフェイスには、レイヤ 2 インターフェイス(ポート ACL)またはレイヤ 3 インターフェイス(ルータ ACL)を指定できます。 |
ステップ 3 |
no shutdown |
必要に応じて、ポートをイネーブルにします。デフォルトでは、User Network Interface(UNI; ユーザ ネットワーク インターフェイス)と Enhanced Network Interface(ENI; 拡張ネットワーク インターフェイス)はディセーブルに、Network Node Interface(NNI; ネットワーク ノード インターフェイス)はイネーブルに設定されています。 |
ステップ 4 |
ip access-group { access-list-number | name } { in | out } |
指定したインターフェイスへのアクセスを制御します。 キーワード out はレイヤ 2 インターフェイス(ポート ACL)ではサポートされません。 |
ステップ 5 |
end |
特権 EXEC モードに戻ります。 |
ステップ 6 |
show running-config |
アクセス リストの設定を表示します。 |
ステップ 7 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
指定されたアクセス グループを削除するには、 no ip access-group { access-list-number | name } { in | out } インターフェイス コンフィギュレーション コマンドを使用します。
次に、アクセス リスト 2 をポートに適用して、ポートに入るパケットをフィルタリングする例を示します。
Switch(config)# interface gigabitethernet0/1
Router(config-if)# ip access-group 2 in
(注) ip access-group インターフェイス コンフィギュレーション コマンドをレイヤ 3 インターフェイス(SVI、レイヤ 3 EtherChannel、またはルーテッド ポート)に適用するには、そのインターフェイスに IP アドレスが設定されている必要があります。レイヤ 3 アクセス グループは、CPU のレイヤ 3 プロセスによってルーティングまたは受信されるパケットをフィルタリングします。
着信 ACL の場合、パケットの受信後、スイッチはパケットを ACL と照合します。ACL によってパケットが許可された場合は、パケットの処理が続行されます。拒否された場合、パケットは廃棄されます。
発信 ACL の場合、パケットを受信し制御対象インターフェイスにルーティングしたあと、スイッチはパケットを ACL と照合します。ACL によってパケットが許可された場合、パケットは送信されます。拒否された場合、パケットは廃棄されます。
デフォルトでは、パケットが廃棄された場合は、その原因が入力インターフェイスの ACL または発信インターフェイスの ACL のいずれであっても、常に入力インターフェイスから ICMP 到達不能メッセージが送信されます。ICMP 到達不能メッセージは通常、入力インターフェイス 1 つにつき、0.5 秒ごとに 1 つだけ生成されます。ただし、この設定は ip icmp rate-limit unreachable グローバル コンフィギュレーション コマンドを使用して変更できます。
未定義の ACL をインターフェイスに適用すると、スイッチは ACL がインターフェイスに適用されていないと判断して処理を行い、すべてのパケットが許可されます。ネットワーク セキュリティのため、未定義の ACL を使用する場合は注意してください。
IP ACL のハードウェアおよびソフトウェア処理
ACL は主にハードウェアで処理されますが、一部のトラフィックは CPU に転送してソフトウェアで処理する必要があります。ハードウェアの容量が一杯になり、ACL 設定を保管できなくなると、パケットは CPU に送信されて転送されます。ソフトウェアで転送されるトラフィックの転送速度は、ハードウェアで転送されるトラフィックに比べて大幅に低下します。
(注) スイッチのリソース不足が原因でハードウェアに ACL を設定できない場合、影響を受ける(ソフトウェアで転送される)のは、スイッチに着信した該当 VLAN 内のトラフィックだけです。パケットのソフトウェア転送が発生すると、消費される CPU サイクル数に応じて、スイッチのパフォーマンスが低下することがあります。
ルータ ACL の場合は、次の場合にパケットが CPU に送信されることがあります。
• log キーワードの使用
• ICMP 到達不能メッセージの生成
トラフィック フローのロギングと転送の両方を行う場合、転送はハードウェアで処理されますが、ロギングはソフトウェアで処理する必要があります。ハードウェアとソフトウェアではパケット処理能力が異なるため、ロギング中であるすべてのフロー(許可フローと拒否フロー)の合計帯域幅が非常に大きい場合は、転送されたパケットの一部をロギングできません。
ルータ ACL の設定をハードウェアに適用できない場合、VLAN に着信したルーティング対象パケットはソフトウェアでルーティングされます。ACL によって多数のパケットが CPU に転送されると、スイッチのパフォーマンスが低下することがあります。
show ip access-lists 特権 EXEC コマンドを入力したときに表示される一致の個数に、ハードウェアでアクセス制御されるパケットは含まれません。スイッチド パケットおよびルーテッド パケットに関するハードウェアの ACL の基本的な統計情報を取得する場合は、show access-lists hardware counters 特権 EXEC コマンドを使用します。
ルータ ACL の機能は次のとおりです。
• 標準 ACL および拡張 ACL(入力および出力)の許可アクションや拒否アクションをハードウェアで制御し、アクセス制御のセキュリティを強化します。
• ip unreachables がディセーブルの場合、 log を指定しないと、セキュリティ ACL の 拒否 文と一致するフローがハードウェアによって廃棄されます。 許可 文と一致するフローは、ハードウェアでスイッチングされます。
• ルータ ACL の ACE に log キーワードを追加すると、パケットのコピーが CPU に送信され、ロギングだけが行われます。ACE が 許可 文の場合も、パケットはハードウェアでスイッチングおよびルーティングされます。
ACL のトラブルシューティング
次の ACL マネージャのメッセージが表示され、[chars] がアクセス リスト名である場合、
ACLMGR-2-NOVMR: Cannot generate hardware representation of access list [chars]
スイッチには、ACL のハードウェア表現を作成するためのリソースが不足しています。そのリソースには、ハードウェア メモリおよびラベル スペースは含まれますが、CPU メモリは含まれません。この問題は、使用可能な論理演算ユニットまたは専用のハードウェア リソースの不足が原因です。論理演算ユニットは、TCP フラグの一致、または TCP、UDP、SCTP ポート番号での eq 以外( ne 、 gt 、 lt 、 range )のテストで必要です。
次の対応策のいずれかを実行します。
• ACL 設定を変更して使用するリソースを減らします。
• その ACL 名または番号よりも英数字順で先に表示される名前または番号に ACL の名前を変更します。
専用のハードウェア リソースを確認するには、 show platform layer4 acl map 特権 EXEC コマンドを入力します。スイッチに使用可能なリソースがない場合、インデックス 0 ~ 15 が使用不能であることが出力に表示されます。
リソースが不足している ACL の設定の詳細については、Bug Toolkit の CSCsq63926 を参照してください。
たとえば、次の ACL をインターフェイスに適用し、
permit tcp source source-wildcard destination destination-wildcard range 5 60
permit tcp source source-wildcard destination destination-wildcard range 15 160
permit tcp source source-wildcard destination destination-wildcard range 115 1660
permit tcp source source-wildcard destination destination-wildcard
次のメッセージが表示される場合、
ACLMGR-2-NOVMR: Cannot generate hardware representation of access list [chars]
フラグ関連の演算子が存在しません。この問題を回避するには、次の手順を実行します。
• ip access-list resequence グローバル コンフィギュレーション コマンドを使用して、1 番目の ACE の前に 4 番目の ACE を移動します。
permit tcp source source-wildcard destination destination-wildcard
permit tcp source source-wildcard destination destination-wildcard range 5 60
permit tcp source source-wildcard destination destination-wildcard range 15 160
permit tcp source source-wildcard destination destination-wildcard range 115 1660
または
• 他の ACL よりも英数字順で先に表示される名前または番号に ACL の名前を変更します(たとえば、ACL 79 を ACL 1 に変更します)。
これで、ACL 内の 1 番目の ACE をインターフェイスに適用できます。スイッチによって、ACE が、Opselect インデックス内の使用可能なマッピング ビットに割り当てられ、次に、TCAM 内の同じビットを使用するために、フラグ関連の演算子が割り当てられます。
IPv4 ACL の設定例
ここでは、IPv4 ACL の設定例および適用例を示します。ACL のコンパイルの詳細については、『 Cisco IOS Security Configuration Guide 』 Release 12.2 、および『 Cisco IOS IP Configuration Guide 』 Release 12.2 の「IP Addressing and Services」の章にある「Configuring IP Services」を参照してください。
図 32-3 に、小規模ネットワークが構築されたオフィス環境を示します。ルーテッド ポート 2 に接続されたサーバ A には、すべての従業員がアクセスできる収益などの情報が格納されています。ルーテッド ポート 1 に接続されたサーバ B には、機密扱いの給与支払いデータが格納されています。サーバ A にはすべてのユーザがアクセスできますが、サーバ B にアクセスできるユーザは制限されています。
ルータ ACL を使用して上記のように設定するには、次のいずれかの方法を使用します。
• 標準 ACL を作成し、ポート 1 からサーバに着信するトラフィックをフィルタリングします。
• 拡張 ACL を作成し、サーバからポート 1 に着信するトラフィックをフィルタリングします。
図 32-3 ルータ ACL によるトラフィックの制御
次に、標準 ACL を使用してポートからサーバ B に着信するトラフィックをフィルタリングし、経理部の送信元アドレス 172.20.128.64 ~ 172.20.128.95 から送信されるトラフィックだけを許可する例を示します。この ACL は、指定された送信元アドレスを持つルーテッド ポート 1 から送信されるトラフィックに適用されます。
Switch(config)# access-list 6 permit 172.20.128.64 0.0.0.31
Switch# show access-lists
Standard IP access list 6
10 permit 172.20.128.64, wildcard bits 0.0.0.31
Switch(config)# interface gigabitethernet0/1
Switch(config-if)# ip access-group 6 out
次に、拡張 ACL を使用してサーバ B からポートに着信するトラフィックをフィルタリングし、任意の送信元アドレス(この場合はサーバ B)から経理部の宛先アドレス 172.20.128.64 ~ 172.20.128.95 に送信されるトラフィックだけを許可する例を示します。この ACL は、ルーテッド ポート 1 に着信するトラフィックに適用され、指定の宛先アドレスに送信されるトラフィックだけを許可します。拡張 ACL を使用する場合は、送信元および宛先情報の前にプロトコル(IP)を入力する必要があります。
Switch(config)# access-list 106 permit ip any 172.20.128.64 0.0.0.31
Switch# show access-lists
Extended IP access list 106
10 permit ip any 172.20.128.64 0.0.0.31
Switch(config)# interface gigabitethernet0/1
Switch(config-if)# ip access-group 106 in
番号付き ACL
次の例のネットワーク 36.0.0.0 は、2 番目のオクテットがサブネットを指定するクラス A ネットワークです。つまり、サブネット マスクは 255.255.0.0 です。ネットワーク アドレス 36.0.0.0 の 3 番目および 4 番目のオクテットは、特定のホストを指定します。アクセス リスト 2 を使用して、サブネット 48 のアドレスを 1 つ許可し、同じサブネットの他のアドレスはすべて拒否します。このアクセス リストの最終行は、ネットワーク 36.0.0.0 の他のすべてのサブネット上のアドレスが許可されることを示します。ACL は、ポートに入るパケットに適用されます。
Switch(config)# access-list 2 permit 36.48.0.3
Switch(config)# access-list 2 deny 36.48.0.0 0.0.255.255
Switch(config)# access-list 2 permit 36.0.0.0 0.255.255.255
Switch(config)# interface gigabitethernet0/1
Switch(config-if)# ip access-group 2 in
拡張 ACL
次の例の先頭行は、1023 よりも大きい宛先ポートへの着信 TCP 接続を許可します。2 番目の行は、ホスト 128.88.1.2 の SMTP ポートへの着信 TCP 接続を許可します。3 番目の行は、エラー フィードバック用の着信 ICMP メッセージを許可します。
Switch(config)# access-list 102 permit tcp any 128.88.0.0 0.0.255.255 gt 1023
Switch(config)# access-list 102 permit tcp any host 128.88.1.2 eq 25
Switch(config)# access-list 102 permit icmp any any
Switch(config)# interface gigabitethernet0/1
Switch(config-if)# ip access-group 102 in
拡張 ACL を使用する別の例として、インターネットに接続されたネットワークがあり、ネットワーク上の任意のホストが、インターネット上の任意のホストと TCP 接続を確立できるようにする場合を考えます。ただし、IP ホストからは、専用メール ホストのメール(SMTP)ポートを除き、ネットワーク上のホストと TCP 接続を確立できないようにするとします。
SMTP は、接続の一端では TCP ポート 25、もう一端ではランダムなポート番号を使用します。接続している間は同じポート番号が使用されます。インターネットから着信するメール パケットの宛先ポートは 25 です。発信パケットのポート番号は予約されています。安全なネットワーク システムでは常にポート 25 でのメール接続が使用されているため、着信サービスと発信サービスを個別に制御できます。ACL は発信インターフェイスの入力 ACL および着信インターフェイスの出力 ACL として設定される必要があります。
次の例では、ネットワークはアドレスが 128.88.0.0 のクラス B ネットワークで、メール ホストのアドレスは 128.88.1.2 です。キーワード established は、確立された接続を表示する TCP 専用のキーワードです。TCP データグラムに ACK または RST ビットが設定され、パケットが既存の接続に属していることが判明すると、一致と見なされます。ギガビット イーサネット インターフェイス 1 は、ルータをインターネットに接続するインターフェイスです。
Switch(config)# access-list 102 permit tcp any 128.88.0.0 0.0.255.255 established
Switch(config)# access-list 102 permit tcp any host 128.88.1.2 eq 25
Switch(config)# interface gigabitethernet0/1
Switch(config-if)# ip access-group 102 in
名前付き ACL
次に、 internet_filter という名前の標準 ACL および marketing_group という名前の拡張 ACL を作成する例を示します。 internet_filter ACL は、送信元アドレス 1.2.3.4 から送信されるすべてのトラフィックを許可します。
Switch(config)# ip access-list standard Internet_filter
Switch(config-ext-nacl)# permit 1.2.3.4
Switch(config-ext-nacl)# exit
marketing_group ACL は、宛先アドレスと宛先ワイルドカードの値 171.69.0.0 0.0.255.255 への任意の TCP Telnet トラフィックを許可し、その他の TCP トラフィックを拒否します。また、ICMP トラフィックを許可し、任意の送信元から、宛先ポートが 1024 より小さい171.69.0.0 ~ 179.69.255.255 の宛先アドレスに送信される UDP トラフィックを拒否します。それ以外のすべての IP トラフィックを拒否して、結果を示すログが表示されます。
Switch(config)# ip access-list extended marketing_group
Switch(config-ext-nacl)# permit tcp any 171.69.0.0 0.0.255.255 eq telnet
Switch(config-ext-nacl)# deny tcp any any
Switch(config-ext-nacl)# permit icmp any any
Switch(config-ext-nacl)# deny udp any 171.69.0.0 0.0.255.255 lt 1024
Switch(config-ext-nacl)# deny ip any any log
Switch(config-ext-nacl)# exit
Internet_filter ACL は発信トラフィックに適用され、 marketing_group ACL はレイヤ 3 ポートの着信トラフィックに適用されます。
Switch(config)# interface gigabitethernet0/2
Switch(config-if)# no switchport
Switch(config-if)# ip address 2.0.5.1 255.255.255.0
Switch(config-if)# ip access-group Internet_filter out
Switch(config-if)# ip access-group marketing_group in
IP ACL に適用される時間範囲
次に、月曜から金曜の午前 8 時 ~ 午後 6 時(18:00)の間、IP の HTTP トラフィックを拒否する例を示します。また、土曜および日曜の正午 ~ 午後 8 時の間だけ、UDP トラフィックを許可します。(20:00).
Switch(config)# time-range no-http
Switch(config)# periodic weekdays 8:00 to 18:00
Switch(config)# time-range udp-yes
Switch(config)# periodic weekend 12:00 to 20:00
Switch(config)# ip access-list extended strict
Switch(config-ext-nacl)# deny tcp any any eq www time-range no-http
Switch(config-ext-nacl)# permit udp any any time-range udp-yes
Switch(config-ext-nacl)# exit
Switch(config)# interface gigabitethernet0/1
Switch(config-if)# ip access-group strict in
コメント付きの IP ACL エントリ
次に示す番号付き ACL の例では、Jones が所有するワークステーションのアクセスは許可されていますが、Smith が所有するワークステーションのアクセスは禁止されています。
Switch(config)# access-list 1 remark Permit only Jones workstation through
Switch(config)# access-list 1 permit 171.69.2.88
Switch(config)# access-list 1 remark Do not allow Smith workstation through
Switch(config)# access-list 1 deny 171.69.3.13
次に示す番号付き ACL の例では、Winter および Smith のワークステーションは Web 閲覧が禁止されます。
Switch(config)# access-list 100 remark Do not allow Winter to browse the web
Switch(config)# access-list 100 deny host 171.69.3.85 any eq www
Switch(config)# access-list 100 remark Do not allow Smith to browse the web
Switch(config)# access-list 100 deny host 171.69.3.13 any eq www
次に示す名前付き ACL の例では、Jones のサブネットはアクセスが禁止されます。
Switch(config)# ip access-list standard prevention
Switch(config-std-nacl)# remark Do not allow Jones subnet through
Switch(config-std-nacl)# deny 171.69.0.0 0.0.255.255
次に示す名前付き ACL の例では、Jones のサブネットは発信 Telnet の使用が禁止されます。
Switch(config)# ip access-list extended telnetting
Switch(config-ext-nacl)# remark Do not allow Jones subnet to telnet out
Switch(config-ext-nacl)# deny tcp 171.69.0.0 0.0.255.255 any eq telnet
ACL のロギング
ルータ ACL では、2 種類のロギングがサポートされています。キーワード log を指定すると、エントリと一致するパケットに関するログ通知メッセージがコンソールに送信されます。キーワード log-input を指定すると、ログ エントリに入力インターフェイスが追加されます。
次の例では、名前付き標準アクセス リスト stan1 は 10.1.1.0 0.0.0.255 からのトラフィックを拒否し、その他のすべての送信元からのトラフィックを許可します。キーワード log も指定されています。
Switch(config)# ip access-list standard stan1
Switch(config-std-nacl)# deny 10.1.1.0 0.0.0.255 log
Switch(config-std-nacl)# permit any log
Switch(config-std-nacl)# exit
Switch(config)# interface gigabitethernet0/1
Switch(config-if)# ip access-group stan1 in
Syslog logging: enabled (0 messages dropped, 0 flushes, 0 overruns)
Console logging: level debugging, 37 messages logged
Monitor logging: level debugging, 0 messages logged
Buffer logging: level debugging, 37 messages logged
Trap logging: level debugging, 39 message lines logged
00:00:48: NTP: authentication delay calculation problems
00:09:34:%SEC-6-IPACCESSLOGS:list stan1 permitted 0.0.0.0 1 packet
00:09:59:%SEC-6-IPACCESSLOGS:list stan1 denied 10.1.1.15 1 packet
00:10:11:%SEC-6-IPACCESSLOGS:list stan1 permitted 0.0.0.0 1 packet
次に、名前付き拡張アクセス リスト ext1 によって、任意の送信元から 10.1.1.0 0.0.0.255 への ICMP パケットを許可し、すべての UDP パケットを拒否する例を示します。
Switch(config)# ip access-list extended ext1
Switch(config-ext-nacl)# permit icmp any 10.1.1.0 0.0.0.255 log
Switch(config-ext-nacl)# deny udp any any log
Switch(config-std-nacl)# exit
Switch(config)# interface gigabitethernet0/2
Switch(config-if)# ip access-group ext1 in
次に、拡張 ACL のログの例を示します。
01:24:23:%SEC-6-IPACCESSLOGDP:list ext1 permitted icmp 10.1.1.15 -> 10.1.1.61 (0/0), 1 packet
01:25:14:%SEC-6-IPACCESSLOGDP:list ext1 permitted icmp 10.1.1.15 -> 10.1.1.61 (0/0), 7 packets
01:26:12:%SEC-6-IPACCESSLOGP:list ext1 denied udp 0.0.0.0(0) -> 255.255.255.255(0), 1 packet
01:31:33:%SEC-6-IPACCESSLOGP:list ext1 denied udp 0.0.0.0(0) -> 255.255.255.255(0), 8 packets
IP ACL のすべてのロギング エントリは %SEC-6-IPACCESSLOG で開始します。エントリの形式は、一致した ACL やアクセス エントリの種類に応じて若干異なります。
次に、キーワード log-input を指定した場合の出力メッセージの例を示します。
00:04:21:%SEC-6-IPACCESSLOGDP:list inputlog permitted icmp 10.1.1.10 (Vlan1 0001.42ef.a400) -> 10.1.1.61 (0/0), 1 packet
キーワード log を指定した場合、同様のパケットに関するログ メッセージには入力インターフェイス情報が追加されません。
00:05:47:%SEC-6-IPACCESSLOGDP:list inputlog permitted icmp 10.1.1.10 -> 10.1.1.61 (0/0), 1 packet
VLAN マップの設定
ここでは、VLAN マップを設定する方法について説明します。この方法は、VLAN 内でフィルタリングを制御する唯一の方法です。VLAN マップには方向がありません。VLAN マップを使用して、特定の方向のトラフィックをフィルタリングするには、特定の送信元または宛先アドレスが指定された ACL を追加する必要があります。VLAN マップ内に該当タイプのパケット(IP または MAC)に対する match 文が存在する場合、デフォルトではマップ内のどのエントリにも一致しないパケットが廃棄されます。該当タイプのパケットに対する match 文が存在しない場合、デフォルトではパケットが転送されます。
(注) この章で使用するコマンドの構文および使用方法の詳細については、このリリースのコマンド リファレンスを参照してください。
VLAN マップを作成して 1 つまたは複数の VLAN に適用するには、次の手順を実行します。
ステップ 1 VLAN に適用する標準 IPv4 ACL または拡張 IPv4 ACL、または名前付き MAC 拡張 ACL を作成します。「標準および拡張 IPv4 ACL の作成」および「VLAN マップの作成」を参照してください。
ステップ 2 VLAN ACL マップ エントリを作成するには、 vlan access-map グローバル コンフィギュレーション コマンドを入力します。
ステップ 3 アクセス マップ コンフィギュレーション モードでは、 action として、 forward (デフォルト)または drop を任意で入力できます。また、 match コマンドを入力し、既知の MAC アドレスだけが格納された IP パケットまたは非 IP パケットを指定したり、1 つまたは複数の ACL(標準または拡張)とパケットを照合したりできます。
(注) VLAN マップに、該当タイプ(IP または MAC)のパケットに対する match 文が存在する場合に、マップ アクションが廃棄されると、そのタイプに一致するすべてのパケットが廃棄されます。VLAN マップに match 文が存在しない場合に、設定されたアクションが廃棄されると、すべての IP パケットおよびレイヤ 2 パケットが廃棄されます。
ステップ 4 vlan filter グローバル コンフィギュレーション コマンドは、VLAN マップを 1 つまたは複数の VLAN に適用します。
ここでは、次の設定情報について説明します。
• 「VLAN マップ設定時の注意事項」
• 「VLAN マップの作成」
• 「VLAN への VLAN マップの適用」
• 「ネットワークでの VLAN マップの使用法」
VLAN マップ設定時の注意事項
• トラフィックを拒否するように設定された ACL がインターフェイスに存在せず、VLAN マップが設定されて いない 場合は、すべてのトラフィックが許可されます。
• 各 VLAN マップは一連のエントリで構成されます。VLAN マップではエントリの順序が重要です。スイッチに着信したパケットは、VLAN マップの最初のエントリに対して比較検査されます。一致した場合は、VLAN マップで指定されたアクションが行われます。一致しなかった場合、パケットはマップ内の次のエントリに対して比較検査されます。
• 該当タイプのパケット(IP または MAC)に対する match 文が VLAN マップに 1 つまたは複数存在する場合でも、パケットがそれらの match 文に一致しない場合は、デフォルトでパケットが廃棄されます。該当タイプのパケットに対する match 文が VLAN マップ内に存在しない場合、デフォルトではパケットが転送されます。
• 多数の ACL が設定されている場合は、システムの起動に時間がかかることがあります。
• VLAN マップのロギングはサポートされません。
• ハードウェアに VLAN マップの設定を適用できない場合は、その VLAN 内のすべてのパケットをソフトウェアでルーティングする必要があります。
• スイッチのレイヤ 2 インターフェイスに IP アクセス リストまたは MAC アクセス リストが適用されていて、ポートが属する VLAN に VLAN マップを適用した場合、このポートの ACL は VLAN マップよりも優先されます。
• プライマリおよびセカンダリ VLAN で VLAN マップを設定できます。ただし、プライベート VLAN のプライマリおよびセカンダリ VLAN に同じ VLAN マップを設定することを推奨します。
• フレームがプライベート VLAN 内で転送されるレイヤ 2 の場合、同じ VLAN マップが入力側と出力側の両方に適用されます。フレームがプライベート VLAN の内側から外部ポートにルーティングされる場合、プライベート VLAN マップが入力側に適用されます。
– ホスト ポートからプロミスキャス ポートへのアップストリームで送信されるフレームの場合、セカンダリ VLAN に設定されている VLAN マップが適用されます。
– プロミスキャス ポートからホスト ポートへのダウンストリームで送信されるフレームの場合、プライマリ VLAN に設定されている VLAN マップが適用されます。
プライベート VLAN の特定の IP トラフィックをフィルタリングするには、VLAN マップをプライマリおよびセカンダリ VLAN の両方に適用します。プライベート VLAN の詳細については、 第 13 章「プライベート VLAN の設定」 を参照してください。
• 設定例については、「ネットワークでの VLAN マップの使用法」を参照してください。
• ルータ ACL および VLAN マップを組み合せて使用する方法については、「VLAN マップとルータ ACL の設定時の注意事項」を参照してください。
VLAN マップの作成
各 VLAN マップは順番に並べられた一連のエントリで構成されます。VLAN マップ エントリを作成、追加、削除するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
vlan access-map name [ number ] |
VLAN マップを作成し、名前および番号(任意)を付けます。番号は、マップ内のエントリの順序を表す数字です。 同じ名前の VLAN マップを作成すると、10 ずつ増分する番号が順に割り当てられます。マップを変更または削除するときは、目的のマップ エントリの番号を入力できます。 このコマンドを入力すると、アクセスマップ コンフィギュレーション モードに変わります。 |
ステップ 3 |
action { drop | forward } |
(任意)マップ エントリに対するアクションを設定します。デフォルトは forward です。 |
ステップ 4 |
match { ip | mac } address { name | number } [ name | number ] |
1 つまたは複数の標準または拡張アクセス リストに対してパケットを比較します(IP または MAC アドレスを使用)。パケットの比較は、対応するプロトコル タイプのアクセス リストに対してだけ行われます。IP パケットは、標準または拡張 IP アクセス リストに対して比較されます。非 IP パケットは、名前付き MAC 拡張アクセス リストに対してだけ比較されます。 |
ステップ 5 |
end |
グローバル コンフィギュレーション モードに戻ります。 |
ステップ 6 |
show running-config |
アクセス リストの設定を表示します。 |
ステップ 7 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
マップを削除するには、 no vlan access-map name グローバル コンフィギュレーション コマンドを使用します。
マップ内の単一のシーケンス エントリを削除するには、 no vlan access-map name number グローバル コンフィギュレーション コマンドを使用します。
デフォルトのアクションである転送を行うには、 no action アクセスマップ コンフィギュレーション コマンドを使用します。
VLAN マップでは、特定の permit または deny キーワードは使用されません。VLAN マップを使用してパケットを拒否するには、パケットと比較する ACL を作成し、アクションを廃棄に設定します。ACL にキーワード permit を指定した場合は一致と見なされます。ACL にキーワード deny を指定した場合は一致しないと見なされます。
ACL および VLAN マップの例
次に、特定の目的で ACL および VLAN マップを作成する例を示します。
例 1
ここでは、パケットを拒否する ACL および VLAN マップを作成する例を示します。最初のマップでは、 ip1 ACL(TCP パケット)に一致するすべてのパケットが廃棄されます。最初に、すべての TCP パケットを許可し、それ以外のパケットをすべて拒否する ip1 ACL を作成します。VLAN マップには IP パケットに対する match 文が存在するため、デフォルトではどの match 文とも一致しないすべての IP パケットが廃棄されます。
Switch(config)# ip access-list extended ip1
Switch(config-ext-nacl)# permit tcp any any
Switch(config-ext-nacl)# exit
Switch(config)# vlan access-map map_1 10
Switch(config-access-map)# match ip address ip1
Switch(config-access-map)# action drop
次に、パケットを許可する VLAN マップを作成する例を示します。ACL ip2 は UDP パケットを許可します。 ip2 ACL と一致するすべてのパケットが転送されます。このマップでは、これ以前のどの ACL とも一致しなかったすべての IP パケット(TCP でも UDP でもないパケット)が廃棄されます。
Switch(config)# ip access-list extended ip2
Switch(config-ext-nacl)# permit udp any any
Switch(config-ext-nacl)# exit
Switch(config)# vlan access-map map_1 20
Switch(config-access-map)# match ip address ip2
Switch(config-access-map)# action forward
例 2
次の例の VLAN マップには、IP パケットの廃棄および MAC パケットの転送というデフォルト アクションがあります。標準の ACL 101 と名前付き拡張アクセス リスト igmp-match および tcp-match をこのマップと組み合せて使用すると、次のようになります。
• すべての UDP パケットが転送されます。
• すべての IGMP パケットが廃棄されます。
• すべての TCP パケットが転送されます。
• その他のすべての IP パケットが廃棄されます。
• すべての非 IP パケットが転送されます。
Switch(config)# access-list 101 permit udp any any
Switch(config)# ip access-list extended igmp-match
Switch(config-ext-nacl)# permit igmp any any
Switch(config)# ip access-list extended tcp-match
Switch(config-ext-nacl)# permit tcp any any
Switch(config-ext-nacl)# exit
Switch(config)# vlan access-map drop-ip-default 10
Switch(config-access-map)# match ip address 101
Switch(config-access-map)# action forward
Switch(config-access-map)# exit
Switch(config)# vlan access-map drop-ip-default 20
Switch(config-access-map)# match ip address igmp-match
Switch(config-access-map)# action drop
Switch(config-access-map)# exit
Switch(config)# vlan access-map drop-ip-default 30
Switch(config-access-map)# match ip address tcp-match
Switch(config-access-map)# action forward
例 3
次の例の VLAN マップには、MAC パケットの廃棄および IP パケットの転送というデフォルト アクションがあります。MAC 拡張アクセス リスト good-hosts および good-protocols とこのマップを組み合せて使用すると、次のようになります。
• ホスト 0000.0c00.0111 および 0000.0c00.0211 からの MAC パケットが転送されます。
• decnet-ip または vines-ip プロトコルを使用する MAC パケットが転送されます。
• その他のすべての非 IP パケットが廃棄されます。
• すべての IP パケットが転送されます。
Switch(config)# mac access-list extended good-hosts
Switch(config-ext-macl)# permit host 000.0c00.0111 any
Switch(config-ext-macl)# permit host 000.0c00.0211 any
Switch(config-ext-nacl)# exit
Switch(config)# mac access-list extended good-protocols
Switch(config-ext-macl)# permit any any decnet-ip
Switch(config-ext-macl)# permit any any vines-ip
Switch(config-ext-nacl)# exit
Switch(config)# vlan access-map drop-mac-default 10
Switch(config-access-map)# match mac address good-hosts
Switch(config-access-map)# action forward
Switch(config-access-map)# exit
Switch(config)# vlan access-map drop-mac-default 20
Switch(config-access-map)# match mac address good-protocols
Switch(config-access-map)# action forward
例 4
次の例の VLAN マップには、すべてのパケット(IP および非 IP)が廃棄されるデフォルト アクションがあります。例 2 および例 3 のアクセス リスト tcp-match および good-hosts をこのマップと組み合せて使用すると、次のようになります。
• すべての TCP パケットが転送されます。
• ホスト 0000.0c00.0111 および 0000.0c00.0211 からの MAC パケットが転送されます。
• その他のすべての IP パケットが廃棄されます。
• その他のすべての MAC パケットが廃棄されます。
Switch(config)# vlan access-map drop-all-default 10
Switch(config-access-map)# match ip address tcp-match
Switch(config-access-map)# action forward
Switch(config-access-map)# exit
Switch(config)# vlan access-map drop-all-default 20
Switch(config-access-map)# match mac address good-hosts
Switch(config-access-map)# action forward
VLAN への VLAN マップの適用
1つの VLAN マップを 1 つまたは複数の VLAN に適用するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
vlan filter mapname vlan-list list |
VLAN マップを 1 つまたは複数の VLAN ID に適用します。 list には単一の VLAN ID(22)、連続した範囲(10-22)、または VLAN ID からなるストリング(12,22,30)を指定できます。カンマやハイフンの前後にスペースを挿入することも可能です。 |
ステップ 3 |
show running-config |
アクセス リストの設定を表示します。 |
ステップ 4 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
VLAN マップを削除するには、 no vlan filter mapname vlan-list list グローバル コンフィギュレーション コマンドを使用します。
次に、VLAN マップ 1 を VLAN 20 ~ 22 に適用する例を示します。
Switch(config)# vlan filter map 1 vlan-list 20-22
ワイヤリング クローゼットの構成
ワイヤリング クローゼット構成におけるスイッチでは、ルーティングがイネーブルでない可能性があります。ただし、この構成でも VLAN マップおよび QoS 分類 ACL はサポートされています。図 32-4 では、ホスト X およびホスト Y は異なる VLAN 内にあり、ワイヤリング クローゼット スイッチ A およびスイッチ C に接続されていると想定しています。ホスト X からホスト Y へのトラフィックは、ルーティングがイネーブルに設定されたレイヤ 3 スイッチであるスイッチ B によって最終的にルーティングされます。ホスト X からホスト Y へのトラフィックは、トラフィックのエントリ ポイントであるスイッチ A でアクセス制御できます。
図 32-4 ワイヤリング クローゼットの構成
HTTP トラフィックをホスト X からホスト Y にスイッチングしない場合は、ホスト X(IP アドレス 10.1.1.32)からホスト Y(IP アドレス 10.1.1.34)への HTTP トラフィックがすべてスイッチ A で廃棄されてスイッチ B に転送されないようにスイッチ A の VLAN マップを設定します。
まず、HTTP ポートですべての TCP トラフィックを許可(一致)する IP アクセス リスト http を定義します。
Switch(config)# ip access-list extended http
Switch(config-ext-nacl)# permit tcp host 10.1.1.32 host 10.1.1.34 eq www
Switch(config-ext-nacl)# exit
次に、 http アクセス リストと一致するトラフィックが廃棄され、その他のすべての IP トラフィックが転送されるように、VLAN アクセス マップ map2 を作成します。
Switch(config)# vlan access-map map2 10
Switch(config-access-map)# match ip address http
Switch(config-access-map)# action drop
Switch(config-access-map)# exit
Switch(config)# ip access-list extended match_all
Switch(config-ext-nacl)# permit ip any any
Switch(config-ext-nacl)# exit
Switch(config)# vlan access-map map2 20
Switch(config-access-map)# match ip address match_all
Switch(config-access-map)# action forward
次に、VLAN アクセスマップ map2 を VLAN 1 に適用します。
Switch(config)# vlan filter map2 vlan 1
別のVLAN にあるサーバへのアクセス拒否
別の VLAN にあるサーバへのアクセスを制限できます。たとえば、VLAN 10 内のサーバ 10.1.1.100 では、次のホストへのアクセスを拒否する必要があります(図 32-5を参照)。
• VLAN 20 内のサブネット 10.1.2.0/8 にあるホストのアクセスを禁止します。
• VLAN 10 内のホスト 10.1.1.4 および 10.1.1.8 のアクセスを禁止します。
図 32-5 別の VLAN にあるサーバへのアクセス拒否
次に、サブネット 10.1.2.0/8 内のホスト、ホスト 10.1.1.4、およびホスト 10.1.1.8 へのアクセスを拒否し、その他の IP トラフィックを許可する VLAN マップ SERVER1 を作成して、別の VLAN 内のサーバへのアクセスを拒否する例を示します。最後に、VLAN マップ SERVER1 を VLAN 10 に適用します。
ステップ 1 対応するパケットと比較する IP ACL を定義します。
Switch(config)# ip access-list extended SERVER1_ACL
Switch(config-ext-nacl))# permit ip 10.1.2.0 0.0.0.255 host 10.1.1.100
Switch(config-ext-nacl))# permit ip host 10.1.1.4 host 10.1.1.100
Switch(config-ext-nacl))# permit ip host 10.1.1.8 host 10.1.1.100
Switch(config-ext-nacl))# exit
ステップ 2 SERVER1_ACL と一致する IP パケットを廃棄し、一致しない IP パケットを転送するこの ACL を使用して、VLAN マップを定義します。
Switch(config)# vlan access-map SERVER1_MAP
Switch(config-access-map)# match ip address SERVER1_ACL
Switch(config-access-map)# action drop
Switch(config)# vlan access-map SERVER1_MAP 20
Switch(config-access-map)# action forward
Switch(config-access-map)# exit
ステップ 3 VLAN 10 に VLAN マップを適用します。
Switch(config)# vlan filter SERVER1_MAP vlan-list 10.