
この章では、Access Control List(ACL;アクセス制御リスト)を使用して、Catalyst 3550スイッチにネットワーク セキュリティを設定する方法について説明します。ACLは、コマンドやテーブルではaccess-list(アクセス リスト)と表します。
パケット フィルタリングを使用すると、ネットワーク トラフィックを制限したり、特定のユーザやデバイスによるネットワークの使用を制限することができます。ACLはルータを通過するトラフィックをフィルタリングし、特定のインターフェイスでパケットを許可、または、拒否します。ACLは、パケットに適用される許可および拒否条件を順番に並べたものです。インターフェイスにパケットが着信すると、スイッチはパケットのフィールドを該当するACLと比較し、ACLで指定されている条件に基づいて、パケットに対して転送が許可されているかどうかを検証します。パケットは、アクセス リスト内の条件に対して1つずつテストされます。最初に見つかった一致条件によって、パケットが許可されるか、または拒否されるかが決まります。スイッチは、最初の一致が見つかるとテスト環境を終了するので、アクセス リスト内の条件の順序が重要となります。一致する条件がない場合、パケットは拒否されます。制約がない場合、スイッチはパケットを転送し、制約がある場合はパケットを廃棄します。
従来、スイッチはレイヤ2でのみ稼働し、VLAN(仮想LAN)内でトラフィックをスイッチングしていました。一方、ルータはVLAN間でトラフィックをルーティングしていました。Catalyst 3550 スイッチは、レイヤ3スイッチングを使用してVLAN間のパケット ルーティングを高速化します。スイッチでブリッジングされたパケットは、外部ルータに送信されずに内部ルーティングされ、再度ブリッジングされて宛先に送信されます。スイッチはこのプロセス中に、VLAN内でブリッジングされるパケットを含め、スイッチングされるすべてのパケットのアクセスを制御します。
ネットワークに基本的なセキュリティを導入する場合は、ルータまたはスイッチにアクセス リストを設定します。ACLを設定しないと、スイッチを通過するすべてのパケットが、ネットワーク内のすべての場所に転送されることがあります。ACLを使用すると、ネットワークの場所ごとにアクセス可能なホストを制御したり、ルータ インターフェイスで転送またはブロックされるトラフィックの種類を決定することができます。たとえば、電子メール トラフィックの転送を許可して、Telnetトラフィックの転送を禁止することが可能です。ACLが着信トラフィック、発信トラフィック、またはその両方をブロックするように設定することもできます。ただし、レイヤ2インターフェイスでは、ACLを適用できるのは着信方向だけです。
ACLにはACEが順番に記述されています。各ACEは、許可(permit)または拒否(deny)、およびACEと一致するために要求されるパケットの必須条件を指定します。許可または拒否の意味は、ACLの使用状況に応じて変わります。
このスイッチは、トラフィックをフィルタリングするため、次に示す3種類のACLをサポートします。
同じスイッチでルータACLとVLANマップを両方使用することができます。ただし、入力ルータACLまたはVLANマップが設定されているスイッチでポートACLを使用することはできません。
802.1Qトンネリングがインターフェイス上に設定されている場合、このトンネル ポートで受信された802.1Qカプセル化IPパケットをMAC ACLでフィルタリングすることは可能ですが、IP ACLではフィルタリングできません。スイッチは802.1Qヘッダー内のプロトコルを認識できないためです。この制約は、ルータACL、ポートACL、VLANマップに適用されます。802.1Qトンネリングの詳細については、802.1Qおよびレイヤ2プロトコル トンネリングの設定を参照してください。
このスイッチは、Quality of Service(QoS;サービス品質)分類ACLもサポートしています。詳細については、QoS ACLに基づく分類を参照してください。
VLANへのレイヤ3インターフェイスであるSwitch Virtual Interface(SVI)、物理レイヤ3インターフェイス、およびレイヤ3 EtherChannelインターフェイスに、ルータACLを適用することができます。ルータACLはインターフェイスの特定の方向(着信または発信)に対して適用されます。各方向に1つずつIPアクセス リストを適用できます。
1つのACLをある特定インターフェイスの複数の機能に使用することができます。また、1つの機能に複数のACLを使用することもできます。1つのルータACLを複数の機能で使用する場合、そのルータACLは複数回テストされます。
スイッチは、特定のインターフェイスおよび方向に対して設定された機能に関連づけられているACLをテストします。パケットがスイッチのインターフェイスに着信すると、そのインターフェイスに設定されているすべての着信機能に対応するACLがテストされます。パケットがルーティングされてからネクストホップに転送されるまでの間に、出力インターフェイスに設定された発信機能に対応するすべてのACLがテストされます。
ACLは、ACL内のエントリとの一致結果に基づいて、転送を許可または拒否します。たとえば、アクセス リストを使用すると、ネットワークの特定の場所へのアクセスを特定のホストに許可し、別のホストにはアクセスを禁止することができます。ACLによるネットワーク トラフィックの制御では、ルータへの入力に適用されているACLにより、ホストAは人事部ネットワークへのアクセスを許可されますが、ホストBは拒否されます。
スイッチのレイヤ2インターフェイスにもACLを適用できます。ポートACLを使用できるのは、物理インターフェイスだけです。EtherChannelインターフェイスでは使用できません。ポートACLをインターフェイスに適用できるのは、着信方向に対してのみです。レイヤ2インターフェイスでは、次のアクセス リストがサポートされています。
ルータACLと同様、スイッチはインターフェイスに設定されている機能に関連づけられているACLをテストし、パケットがACL内のエントリと一致するかどうかによって、パケットの転送を許可または拒否します。ただし、レイヤ2インターフェイスで、ACLを適用できるのは、着信方向に対してのみです。ACLによるネットワーク トラフィックの制御の例では、すべてのワークステーションが同じVLAN内にある場合、レイヤ2の入力に適用されているACLによって、ホストAは人事部ネットワークへのアクセスを許可されますが、ホストBは同じネットワークへのアクセスを拒否されます。
ポートACLをトランク ポートに適用すると、そのトランク ポートにあるすべてのVLANでACLによるトラフィックのフィルタリングが実行されます。音声VLANがあるポートにポートACLを適用すると、データVLANと音声VLANの両方でそのACLによるトラフィックのフィルタリングが実行されます。
ポートACLを使用すると、IPアクセス リストを使用してIPトラフィックをフィルタリングし、MACアドレスを使用して非IPトラフィックをフィルタリングできます。同じレイヤ2インターフェイスにIPアクセス リストとMACアクセス リストを両方適用すると、そのレイヤ2インターフェイスでIPトラフィックと非IPトラフィックをフィルタリングできます。
VLANマップを使用すると、すべてのトラフィックのアクセスを制御できます。VLANの内部や外部へルーティングされる、またはVLAN内でブリッジングされるすべてのパケットに対して、スイッチのVLANマップを適用できます。VLANマップはパケットを安全にフィルタリングするために必ず使用されます。ルータACLと異なり、VLANマップで方向(着信または発信)は定義されません。
VLANマップを設定すると、IPトラフィックのレイヤ3アドレスを比較することができます。すべての非IPプロトコルは、MAC VLANマップを使用してMACアドレスおよびEtherTypeによってアクセス制御されます(IPトラフィックには、MAC VLANマップによるアクセス制御が行われません)。VLANマップはスイッチを通過するパケットにのみ適用できます。ハブのホスト間、またはこのスイッチに接続された別のスイッチのホスト間を通過するトラフィックには、VLANマップを適用できません。
VLANマップを使用すると、パケットの転送はマップに指定されたアクションに基づいて許可または拒否されます。VLANマップによるトラフィックの制御に、VLANマップを適用して、特定タイプのトラフィックをVLAN 10のホストAから転送できないように設定する例を示します。
ネットワークを通過するIPパケットは分割できます。IPパケットを分割すると、パケットの先頭を含むフラグメントにのみ、TCP、UDPポート番号、ICMPタイプおよびコードなどのレイヤ4情報が格納されます。その他のすべてのフラグメントには、この情報が格納されません。
一部のACEではレイヤ4情報が確認されないため、このようなACEはすべてのパケット フラグメントに適用されます。レイヤ4情報をテストするACEを、分割されたIPパケットのほとんどのフラグメントに通常の方法で適用することはできません。レイヤ4情報が格納されていないフラグメントに対してレイヤ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またはレイヤ3スイッチ、あるいはVLANインターフェイス上にIP ACLを設定する方法は、他のシスコ製ルータ上にACLを設定する方法と同じです。その手順を簡単に示します。ルータACLの設定の詳細については、『Cisco IP and IP Routing Configuration Guide for IOS』Release 12.1の「Configuring IP Services」を参照してください。コマンドの詳細については、『Cisco IOS IP and IP Routing Command Reference for IOS』Release 12.1を参照してください。Catalyst 3550スイッチでサポートされないIOS機能については、サポートされない機能を参照してください。
ACLは主にハードウェアで処理されますが、一部のトラフィックはCPUに転送してソフトウェア処理する必要があります。ソフトウェアで転送されるトラフィックの転送速度は、ハードウェアで転送されるトラフィックに比べて大幅に低下します。両方のトラフィック フローをロギングして転送する場合、転送はハードウェアで処理されますが、ロギングはソフトウェアで処理する必要があります。ハードウェアとソフトウェアではパケット処理機能が異なるため、ロギング中であるすべてのフロー(許可フローと拒否フロー)の合計帯域幅が非常に大きい場合は、転送されたパケットの一部をロギングできません。
ACLによって多数のパケットがCPUに転送されると、スイッチのパフォーマンスが低下することがあります。
show ip access-listsイネーブルEXECコマンドを入力したときに表示される一致の個数に、ハードウェアでアクセス制御されるパケットは含まれません。ハードウェアでACL処理されるスイッチド パケットおよびルーテッド パケットの基本的な統計情報を取得する場合は、show access-lists hardware countersイネーブルEXECコマンドを使用します。
Catalyst 3550スイッチは、次のCisco IOSルータACL関連機能をサポートしません。
ここでは、ルータIP ACL作成手順の概要を示します。ACLは許可および拒否条件を順に並べたものです。パケットは、ACL内の条件に対して1つずつテストされます。最初に見つかった一致条件によって、パケットが許可されるか、または拒否されるかが決まります。最初の一致が見つかるとテストは終了するので、条件の順序が重要となります。一致する条件がない場合、パケットは拒否されます。
ソフトウェアは次に示す形式のACL、またはIPのアクセス リストをサポートします。
ここでは、アクセス リストの詳細、およびアクセス リストを使用する手順について説明します。
ACLを表す番号は、作成しているアクセス リストのタイプを示します。アクセス リスト番号に、アクセス リスト番号および対応するアクセスリスト タイプ、スイッチでのアクセス リストに対するサポートの有無を示します。Catalyst 3550スイッチでは、IP標準およびIP拡張アクセス リストがサポートされています(番号は1〜199、1300〜2699)。
ACL全体を削除するには、no access-listaccess-list-numberグローバル コンフィギュレーション コマンドを使用します。番号指定のアクセス リストからは、ACEを個別に削除できません。
次に、IPホスト171.69.198.102へのアクセスを拒否してそれ以外のアドレスへのアクセスを許可してその結果を表示する標準ACLの作成例を示します。
Switch (config)# access-list 2 deny host 171.69.198.102
Switch (config)# access-list 2 permit any
host一致条件が指定されたエントリ、および0.0.0.0の無視(dont care)マスクが指定されたエントリが、リストの先頭(ゼロ以外の無視[dont care]マスクが指定された、すべてのエントリの上)に来るように、標準アクセス リストの順序が書き換えられます。したがって、showコマンドの出力およびコンフィギュレーション ファイルで、ACEは必ずしも入力した順番に表示されません。
標準IPアクセス リストによって許可または拒否されたパケットに関するログ メッセージが、スイッチのソフトウェアによって表示されます。つまり、ACLと一致するパケットがあった場合は、そのパケットに関するログ通知メッセージがコンソールに送信されます。コンソールに表示されるメッセージのレベルは、Syslogメッセージを制御するロギング コンソール コマンドで制御されます。
ACLを起動した最初のパケットについては、ログ メッセージがすぐに表示されますが、それ以降のパケットについては、5分間の収集時間が経過してから表示またはロギングされます。ログ メッセージにはアクセス リスト番号、パケットの許可または拒否に関する状況、パケットの送信元IPアドレス、および直前の5分間に許可または拒否された送信元からのパケット数が示されます。
作成したACLを、回線またはインターフェイスに適用する必要があります(インターフェイスまたは端末回線へのIP ACLの適用を参照)。
標準ACLの場合、一致基準には送信元アドレスのみが使用されますが、拡張ACLの場合は、一致処理に送信元アドレスおよび宛先アドレスを使用したり、オプションのプロトコル タイプ情報を使用してより細部にわたる制御を行うことができます。番号指定の拡張ACLを作成した後にACEを新たに作成するときは、リストの末尾に新しいACEが配置されることに注意してください。リストを再び並べ替えたり、番号が指定されたACLの特定の位置でACEを追加または削除することはできません。
一部のプロトコルには、専用のパラメータおよびキーワードを使用することもできます。
拡張ACLでは、次の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 Gateway Routing Protocol(igrp)、任意の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)、Transmission Control Protocol(tcp)、またはUser Datagram Protocol(udp)
各プロトコルに関連するキーワードの詳細については、『Cisco IP and IP Routing Command Reference IOS』Release 12.1を参照してください。
サポートされているパラメータは、TCP、UDP、ICMP、IGMP、または他のIPの、いずれかのカテゴリにグループ分けできます。
|
access-listaccess-list-number{deny | permit} protocol source source-wildcarddestination destination-wildcard[precedenceprecedence][tostos] [fragments] [log] [log-input] [time-rangetime-range-name] [dscpdscp] |
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を使用します。 sourceはパケットの送信元であるネットワークまたはホストの番号です。 source-wildcardを指定すると、送信元にワイルドカード ビットが適用されます。 |
|
|
source、source-wildcard、destination、destination-wildcardは、次の3つの方法で指定することができます。
|
||
|
access-listaccess-list-number {deny | permit} protocolany any [precedenceprecedence] [tostos] [fragments] [log] [log-input] [time-rangetime-range-name] [dscpdscp] |
アクセス リスト コンフィギュレーション モードで、送信元と送信元ワイルドカードの値0.0.0.0 255.255.255.255の短縮形を使用するか、または宛先と宛先ワイルドカードの値 |
|
|
access-listaccess-list-number {deny | permit} protocolhostsourcehostdestination [precedenceprecedence] [tostos] [fragments] [log] [log-input] [time-rangetime-range-name] [dscpdscp] |
送信元と送信元ワイルドカードの値source 0.0.0.0の短縮形を使用するか、または宛先と宛先ワイルドカードの値destination 0.0.0.0の短縮形を使用し、拡張IPアクセス リストを定義します。 |
|
|
access-listaccess-list-number {deny | permit} tcpsource source-wildcard[operator port] destination destination-wildcard[operator port] [established] [precedenceprecedence] [tostos] [fragments] [log] [log-input] [time-rangetime-range-name] [dscpdscp] [flag] |
(任意)拡張TCPアクセス リストおよびアクセス条件を定義します。 次に示す例外を除き、ステップ2aで説明するパラメータと同じパラメータを使用します。 (任意)operatorおよびportを入力すると、送信元ポート(source source-wildcardの後に入力した場合)または宛先ポート(destination destination-wildcardの後に入力した場合)が比較されます。使用可能な演算子はeq(一致)、gt(より大きい)、lt(未満)、neq(不一致)、range(包含範囲)などです。演算子にはポート番号を指定する必要があります(rangeの場合は2つのポート番号をスペースで区切って指定する必要があります)。 portにポート番号を10進数(0〜65535)として入力するか、またはTCPポート名を入力します。TCPポート名を表示する場合は、疑問符(?)を使用します。または『Cisco IOS IP and IP Routing Command Reference for IOS』Release 12.1の「Configuring IP Services」を参照してください。TCPをフィルタリングするときは、TCPポートの番号または名前のみを使用します。 |
|
|
access-listaccess-list-number {deny | permit} udp source source-wildcard[operator port] destination destination-wildcard[operator port] [precedenceprecedence] [tostos] [fragments] [log] [log-input] [time-rangetime-range-name] [dscpdscp] |
(任意)拡張UDPアクセス リストおよびアクセス条件を定義します。 UDPパラメータはTCPに関して説明されているパラメータと同じです。ただし、[operator[port]]ポート番号またはポート名は、UDPポートの番号または名前とします。UDPの場合、flagおよびestablishedパラメータは無効です。 |
|
|
access-listaccess-list-number {deny | permit} icmp source source-wildcard destination destination-wildcard[icmp-type |[[icmp-type icmp-code] | [icmp-message]] [precedenceprecedence] [tostos] [fragments] [log] [log-input] [time-rangetime-range-name] [dscpdscp] |
(任意)拡張ICMPアクセス リストおよびアクセス条件を定義します。 ICMPパラメータはステップ2aのIPプロトコルで説明されているパラメータと同じですが、ICMPメッセージ タイプとコード パラメータが追加されています。オプションのキーワードは次の意味をもちます。
|
|
|
access-listaccess-list-number {deny | permit} igmp source source-wildcard destination destination-wildcard[igmp-type] [precedenceprecedence] [tostos] [fragments] [log] [log-input] [time-rangetime-range-name] [dscpdscp] |
(任意)拡張IGMPアクセス リストおよびアクセス条件を定義します。 IGMPパラメータはステップ2aのIPプロトコルで説明されているパラメータと同じですが、次に示すパラメータが追加されています。 igmp-type ― IGMPメッセージ タイプと比較するには、0〜15の番号またはメッセージ名(dvmrp、host-query、host-report、pim、またはtrace)を入力します。 |
|
アクセス リスト全体を削除するには、no access-listaccess-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
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を、回線またはインターフェイスに適用する必要があります(インターフェイスまたは端末回線へのIP ACLの適用を参照)。
IP ACLは、番号でなく英数字(名前)で指定することもできます。名前指定のACLを使用すると、番号指定のアクセス リストを使用する場合よりも多くのIPアクセス リストをスイッチに設定することができます。アクセス リストを番号でなく名前で指定する場合は、モードおよびコマンド構文が若干異なります。ただし、IPアクセス リストを使用するすべてのコマンドで、名前指定のアクセス リストを使用できるとは限りません。
名前指定のACLを設定する前に、次に示す注意事項および制限事項を考慮してください。
|
アクセス リスト コンフィギュレーション モードで、1つまたは複数の条件を拒否または許可に指定し、パケットの転送または廃棄を決定します。 |
||
名前指定の標準ACLを削除するには、noip access-list standardnameグローバル コンフィギュレーション コマンドを使用します。
|
{deny | permit} protocol{source [source-wildcard] | host source | any} {destination [destination-wildcard] | host destination | any} [precedenceprecedence] [tostos] [established] [log] [time-rangetime-range-name] |
アクセスリスト コンフィギュレーション モードで、許可または拒否の条件を指定します。logキーワードを使用すると、違反を含むアクセス リストのログ メッセージを取得できます。 プロトコルおよびその他キーワードの定義については、番号指定拡張ACLの作成を参照してください。 |
|
名前指定の拡張ACLを削除するには、noip access-list extendednameグローバル コンフィギュレーション コマンドを使用します。
標準または拡張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を、回線またはインターフェイスに適用する必要があります(インターフェイスまたは端末回線へのIP ACLの適用を参照)。
曜日および時刻に基づいて拡張ACLを選択的に適用するには、time-rangeグローバル コンフィギュレーション コマンドを使用します。最初に時間範囲の名前を定義し、時間範囲の時刻、日付、または曜日を設定します。次に、ACLを適用するときに時間範囲名を入力し、アクセス リストに制限を適用します。時間範囲を使用することで、ACLの許可ステートメントまたは拒否ステートメントが有効な時期(指定期間内、指定曜日など)を定義することができます。time-rangeキーワードおよび引数については、前述の標準および拡張IP ACLの作成および名前指定の標準および拡張IP ACLの作成に記載されている、名前指定および番号指定の拡張ACLに関するタスク表を参照してください。
|
作成する時間範囲には意味のある名前(workhoursなど)を割り当て、時間範囲コンフィギュレーション モードを開始します。名前の先頭には文字を指定し、途中にスペースまたは引用符を含めないようにします。 |
||
|
absolute [starttime date] |
||
設定された時間範囲の制限を削除するには、notime-rangetime-range-nameグローバル コンフィギュレーション コマンドを使用します。
異なる時刻に機能するように設定する複数の項目がある場合は、このステップを繰り返します。
次に、営業時間(workhours)および会社の休業日を表す時間範囲を設定し、その設定を確認する例を示します。
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_2000
Switch(config-time-range)# absolute start 00:00 1 Jan 2000 end 23:59 1 Jan 2000
Switch(config-time-range)# exit
Switch(config)# time-range thanksgiving_2000
Switch(config-time-range)# absolute start 00:00 22 Nov 2000 end 23:59 23 Nov 2000
Switch(config-time-range)# exit
Switch(config)# time-range christmas_2000
Switch(config-time-range)# absolute start 00:00 24 Dec 2000 end 23:50 25 Dec 2000
Switch(config-time-range)# end
time-range entry: christmas_2000 (inactive)
absolute start 00:00 24 December 2000 end 23:50 25 December 2000
time-range entry: new_year_day_2000 (inactive)
absolute start 00:00 01 January 2000 end 23:59 01 January 2000
time-range entry: thanksgiving_2000 (inactive)
absolute start 00:00 22 November 2000 end 23:59 23 November 2000
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_2000
Switch(config)# access-list 188 deny tcp any any time-range thanskgiving_2000
Switch(config)# access-list 188 deny tcp any any time-range christmas_2000
Switch(config)# access-list 188 permit tcp any any time-range workhours
deny tcp any any time-range new_year_day_2000 (inactive)
deny tcp any any time-range thanskgiving_2000 (active)
deny tcp any any time-range christmas_2000 (inactive)
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_2000
Switch(config-ext-nacl)# deny tcp any any time-range thanksgiving_2000
Switch(config-ext-nacl)# deny tcp any any time-range christmas_2000
Switch(config)# ip access-list extended may_access
Switch(config-ext-nacl)# permit tcp any any time-range workhours
Extended IP access list deny_access
deny tcp any any time-range new_year_day_2000 (inactive)
deny tcp any any time-range thanksgiving_2000 (inactive)
deny tcp any any time-range christmas_2000 (inactive)
Extended IP access list may_access
permit tcp any any time-range workhours (inactive)
remarkキーワードを使用すると、エントリに関するコメント(備考)を任意のIP標準および拡張ACLに追加することができます。コメントを追加すると、ACLの把握および走査がより簡単になります。各コメント行には、最大100文字まで入力できます。
コメントは許可ステートメントまたは拒否ステートメントの前後に指定できます。コメントに対応する許可ステートメントまたは拒否ステートメントが明確になるように、コメントの記述位置を統一する必要があります。混乱を避けるため、たとえば、許可ステートメントまたは拒否ステートメントの前に記述されているコメントと、後に記述されているコメントが混在しないようにします。
番号指定のIP標準ACLまたは拡張ACLにコメントを追加する場合は、access-listaccess-list numberremarkremarkグローバル コンフィギュレーション コマンドを使用します。コメントを削除するには、上記のコマンドの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 workstation 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
作成したIP ACLは、1つまたは複数のインターフェイスまたは端末回線に適用できます。レイヤ3インターフェイスには、発信と着信のいずれかのACLを適用できますが、レイヤ2インターフェイスに適用できるのは着信ACLだけです。ここでは、端末回線とネットワーク インターフェイスの両方にアクセス リストを適用する方法について説明します。次の注意事項を考慮してください。
ACL内のアドレスと仮想端末回線との間の着信接続および発信接続を制限するには、イネーブルEXECモードで次の手順を実行します。
|
設定する特定の回線を指定し、インライン コンフィギュレーション モードを開始します。 line-numberは、連続した一連の番号の最初の回線番号で、回線タイプを指定するときに設定する必要があります。指定できる範囲は0〜16です。 |
||
端末回線に関するアクセス制限を削除するには、no access-classaccess-list-number {in | out}ライン コンフィギュレーション コマンドを使用します。
レイヤ2またはレイヤ3インターフェイスへのアクセスを制御するためにIPアドレス リストを適用するには、イネーブルEXECモードで次の手順を実行します。
|
IPアクセス リストを使用し、指定したインターフェイスへのアクセスを制御します。標準または拡張のIPアクセス番号または名前を入力することができます。 |
||
指定されたアクセス グループを削除するには、no ip access-group {access-list-number | name} {in | out}インターフェイス コンフィギュレーション コマンドを使用します。
次に、GigabitEthernet 0/3インターフェイスにアクセス リスト2を適用し、インターフェイスに入るパケットをフィルタリングする例を示します。
Switch(config)# interface gigabitethernet0/3
Router(config-if)# ip access-group 2 in
着信ACLの場合、スイッチは受信したパケットをACLと照合します。ACLによってパケットが許可された場合は、パケットの処理が続行されます。拒否された場合、パケットは廃棄されます。
発信ACLの場合(レイヤ3インターフェイスのみ)、スイッチは制御対象インターフェイスに着信し、ルーティングされたパケットをACLと照合します。パケットが許可された場合、パケットは送信されます。拒否された場合、パケットは廃棄されます。
ICMP到達不能メッセージを送信するように設定された入力インターフェイスでパケットが廃棄された場合は、その原因が入力インターフェイスのACLまたは発信インターフェイスのACLのいずれであっても、これらのメッセージが送信されます。ICMP到達不能メッセージは通常、入力インターフェイス1つにつき、0.5秒ごとに1つだけ生成されます。ただし、この設定はip icmp rate-limit unreachableグローバル コンフィギュレーション コマンドを使用して変更することができます。
未定義のACLをインターフェイスに適用すると、スイッチはACLがインターフェイスに適用されていないと判断して処理を行い、すべてのパケットが許可されてしまいます。ネットワーク セキュリティのため、未定義のACLを使用する場合は注意してください。
ここでは、IP ACLの設定例を示します。ACLの編集方法については、『Security Configuration Guide』、および『Cisco IOS IP and IP Routing Configuration Guide for IOS』Release 12.1の「IP Services」を参照してください。
ルータACLによるトラフィックの制御に、小規模ネットワークが構築されたオフィス環境を示します。ルーテッド ポート0/2に接続されたサーバAには、すべての従業員がアクセスできる利益などの情報が格納されています。ルーテッド ポート0/3に接続されたサーバBには、機密の給与支払いデータが格納されています。サーバAにはすべてのユーザがアクセスできますが、サーバBにアクセスできるユーザは制限されています。
次の例では、標準ACLを使用してポート0/3からサーバBに着信するトラフィックをフィルタリングし、経理部の送信元アドレス172.20.128.64〜172.20.128.95から送信されるトラフィックのみを許可します。
Switch(config)# access-list 6 permit 172.20.128.64 0.0.0.31
permit 172.20.128.64, wildcard bits 0.0.0.31
Switch(config)# interface gigabitethernet0/3
Switch(config-if)# ip access-group 6 out
このACLは、指定された送信元アドレスのルーテッド ポート0/3から送信されるトラフィックに適用されます。
次の例では、拡張ACLを使用してサーバBからポート0/3に着信するトラフィックをフィルタリングし、任意の送信元アドレス(この場合はサーバB)から経理部の宛先アドレス172.20.128.64〜172.20.128.95に送信されるトラフィックのみを許可します。
Switch(config)# access-list 106 permit ip any 172.20.128.64 0.0.0.31
permit ip any 172.20.128.64 0.0.0.31
Switch(config)# interface gigabitethernet0/3
Switch(config-if)# ip access-group 106 in
このACLは、ルーテッド ポート0/3に着信するトラフィックに適用され、指定の宛先アドレスに送信されるトラフィックのみを許可します。拡張ACLを使用する場合は、送信元および宛先情報の前に、プロトコル(IP)を入力する必要があります。
次の例のネットワーク36.0.0.0は、2番めのオクテットがサブネットを指定するクラスAネットワークです。つまり、サブネット マスクは255.255.0.0です。ネットワーク36.0.0.0アドレスの3番めおよび4番めのオクテットは、特定のホストを指定します。アクセス リスト2が使用されているため、サブネット48のアドレスが1つ許可され、同じサブネットの他のアドレスはすべて拒否されます。このアクセス リストの最終行は、他のすべてのネットワーク36.0.0.0サブネット上のアドレスが許可されることを示します。このACLは、GigabitEthernet 0/1インターフェイスに入るパケットに適用されます。
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
次の例の先頭行は、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ビットが設定され、パケットが既存の接続に属していることが判明すると、一致とみなされます。GigabitEthernet 0/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
次のように設定すると、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
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
次に示すACLは、レイヤ3ポートとして設定されたGigabitEthernet 0/5ポートに適用されます。Internet_filter ACLは着信トラフィックに、marketing_group ACLは発信トラフィックに適用されます。
Switch(config)# interface gigabitethernet0/5
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
次の例では、月曜日から金曜日の午前8時〜午後6時の間、IPのHypertext Transfer Protocol(HTTP)トラフィックが拒否されます。UDPトラフィックは、土曜日および日曜日の正午〜午後8時の間のみ許可されます。
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)# interface gigabitethernet0/1
Switch(config-if)# ip access-group strict in
次に示す番号指定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では、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)# 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
00:15:33:%SEC-6-IPACCESSLOGS:list stan1 denied 10.1.1.15 2009 packets
次に、名前指定の拡張アクセス リスト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)# interface gigabitethernet0/3
Switch(config-if)# ip access-group ext1 in
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および物理レイヤ2インターフェイスで非IPトラフィックをフィルタリングする場合は、MACアドレスおよび名前指定のMAC拡張ACLを使用します。手順については、他の名前指定拡張ACLの場合と同様です。アクセス リストの名前として番号を使用することもできますが、700〜799のMACアクセス リスト番号はサポートされません。
mac access-list extendedコマンドでサポートされている非IPプロトコルの詳細については、このリリースのコマンド リファレンスを参照してください。
ACL全体を削除するには、no mac access-list extendednameグローバル コンフィギュレーション コマンドを使用します。名前指定のMAC拡張ACLからACEを個別に削除することもできます。
次に、DECnet Phase IVというEtherTypeのトラフィックのみを拒否し、その他のすべてのタイプのトラフィックを許可する、mac1という名前のアクセス リストを作成、表示する例を示します。
Switch(config)# mac access-list extended mac1
Switch(config-ext-macl)# deny any any decnet-iv
Switch(config-ext-macl)# permit any any
MAC ACLを作成し、それをレイヤ2インターフェイスに適用すると、そのインターフェイスに着信する非IPトラフィックをフィルタリングすることができます。MAC ACLを適用する場合は、次の注意事項を考慮してください。
レイヤ2インターフェイスへのアクセスを制御するためMACアクセスリストを適用するには、イネーブルEXECモードで次の手順を実行します。
指定されたアクセス グループを削除するには、no mac access-group {name} inインターフェイス コンフィギュレーション コマンドを使用します。
次に、GigabitEthernet 0/3インターフェイスにアクセス リスト2を適用し、インターフェイスに入るパケットをフィルタリングする例を示します。
Switch(config)# interface gigabitethernet0/3
Router(config-if)# mac access-group mac1 in
着信ACLの場合、スイッチは受信したパケットをACLと照合します。ACLによってパケットが許可された場合は、パケットの処理が続行されます。拒否された場合、パケットは廃棄されます。
未定義のACLをインターフェイスに適用すると、スイッチはACLがインターフェイスに適用されていないと判断して処理を行い、すべてのパケットが許可されてしまいます。ネットワーク セキュリティのため、未定義のACLを使用する場合は注意してください。
ここでは、VLANマップを設定する方法について説明します。この方法は、VLAN内でフィルタリングを制御する唯一の方法です。VLANマップには方向がありません。VLANマップを使用して、特定方向のトラフィックをフィルタリングするには、特定の送信元または宛先アドレスが指定されたACLを追加する必要があります。VLANマップ内に該当タイプのパケット(IPまたはMAC)に対するmatchコマンド文が存在する場合、デフォルトではマップ内のどのエントリにも一致しないパケットが廃棄されます。該当タイプのパケットに対するmatchコマンド文が存在しない場合、デフォルトではパケットが転送されます。
VLANマップを作成して1つまたは複数のVLANに適用するには、次の手順を実行します。
VLANマップの設定を行うときは、次の注意事項に従ってください。
各VLANマップは順番に並べられた一連のエントリで構成されます。VLANマップ エントリを作成、追加、削除するには、イネーブルEXECモードで次の手順を実行します。
マップを削除するには、no vlan access-mapnameグローバル コンフィギュレーション コマンドを使用します。
マップ内の単一のシーケンス エントリを削除するには、no vlan access-mapnamenumberグローバル コンフィギュレーション コマンドを使用します。
デフォルトのアクションである転送を行うには、no actionアクセスマップ コンフィギュレーション コマンドを使用します。
VLANマップでは、特定のpermitまたはdenyキーワードは使用されません。VLANマップを使用してパケットを拒否するには、パケットと比較するACLを作成し、アクションを廃棄に設定します。ACLにpermitキーワードを指定した場合は一致とみなされます。ACLにdenyキーワードを指定した場合は一致しないとみなされます。
次に、特定の目的でACLおよびVLANマップを作成する例を示します。
ここでは、パケットを拒否するACLおよびVLANマップを作成する例を示します。最初のマップでは、ip1ACL(TCPパケット)に一致するすべてのパケットが廃棄されます。最初に、すべてのTCPパケットを許可し、それ以外のパケットをすべて拒否するip1ACLを作成します。VLANマップにはIPパケットに対するmatchコマンド文が存在するため、デフォルトではどのmatchコマンド文とも一致しないすべてのIPパケットが廃棄されます。
Switch(config)# ip access-list extended ip1
Switch(config-ext-nacl)# permit tcp any any
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と一致するすべてのパケットが転送されます。
Switch(config)# ip access-list extended ip2
Switch(config-ext-nacl)# permit udp any any
Switch(config)# vlan access-map map_1 20
Switch(config-access-map)# match ip address ip2
Switch(config-access-map)# action forward
このマップでは、これ以前のどのACLとも一致しなかったすべてのIPパケット(TCPでもUDPでもないパケット)が廃棄されます。
次の例のVLANマップでは、デフォルトでIPパケットが廃棄され、MACパケットが転送されます。標準のACL 101と名前指定の拡張アクセス リストigmp-matchおよびtcp-matchをこのマップと組み合わせて使用すると、次のようになります。
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)# 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
次の例のVLANマップでは、デフォルトでMACパケットが廃棄され、IPパケットが転送されます。MAC拡張アクセス リストgood-hostsおよびgood-protocolsとこのマップを組み合わせて使用すると、次のようになります。
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)# 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)# 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
次の例のVLANマップでは、デフォルトですべてのパケット(IPおよび非IP)が廃棄されます。例2および例3のアクセス リストtcp-matchおよびgood-hostsをこのマップと組み合わせて使用すると、次のようになります。
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マップを1つまたは複数のVLAN IDに適用します。 listには単一のVLAN ID(22)、連続した範囲(10〜22)、またはVLAN IDからなるストリング(12、22、30)を指定できます。カンマやハイフンの前後にスペースを挿入することもできます。 |
||
VLANマップを削除するには、novlan filtermapnamevlan-listlistグローバル コンフィギュレーション コマンドを使用します。
次に、VLANマップ1をVLAN 20〜22に適用する例を示します。
Switch(config)# vlan filter map 1 vlan-list 20-22
ここでは、VLANマップの一般的な使用法について説明します。具体的な内容は次のとおりです。
配線クローゼット構成におけるCatalyst 3550スイッチでは、ルーティングがイネーブルでない可能性があります。ただし、この構成でもVLANマップおよびQoS分類ACLはサポートされています。配線クローゼットの構成では、ホストXおよびホストYは異なるVLAN内にあり、配線クローゼット スイッチAおよびスイッチCに接続されていると想定しています。ホストXからホストYへのトラフィックは、ルーティングがイネーブルに設定されたスイッチBによって最終的にルーティングされます。ホストXからホストYへのトラフィックは、トラフィックのエントリ ポイントであるスイッチAでアクセス制御できます。
HTTPトラフィックをホストXからホストYへスイッチングしない場合は、ホストX(IPアドレス10.1.1.32)からホストY(IPアドレス10.1.1.34)へのHTTPトラフィックがスイッチBにブリッジングされず、すべてスイッチAで廃棄されるようにスイッチ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
次に、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)# 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にあるサーバへのアクセスを制限できます。たとえば、VLAN10内のサーバ10.1.1.100に対しては、次のようにアクセスを制限する必要があります(別のVLANにあるサーバへのアクセス拒否を参照)。
この例では、サブネット10.1.2.0/8内のホスト、ホスト10.1.1.4、およびホスト10.1.1.8のアクセスを拒否し、その他のIPトラフィックを許可するVLANマップSERVER 1を作成して、別のVLAN内のサーバへのアクセスを拒否する方法を示しています。最後に、VLANマップSERVER1をVLAN 10に適用します。
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
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
Switch(config)# vlan filter SERVER1_MAP vlan-list 10.
ブリッジングされたトラフィックおよびルーティングされたトラフィックの両方に対してアクセス制御を行うには、VLANマップを単独で使用するか、またはルータACLとVLANマップを組み合わせて使用します。入力と出力両方のルーテッドVLANインターフェイスでルータACLを定義したり、ブリッジングされたトラフィックのアクセスを制御するVLANマップを定義することができます。
パケット フローがACL内VLANマップのdenyコマンド文と一致した場合、ルータACLの設定に関係なく、パケット フローは拒否されます。
該当タイプのパケット(IPまたはMAC)に対するmatchコマンド文がVLANマップに存在する場合でも、パケットがそのタイプに一致しない場合は、デフォルトでパケットが廃棄されます。VLANマップ内にmatchコマンド文がなく、アクションが指定されていない場合、どのVLANマップ エントリとも一致しないパケットは転送されます。
ここでは、ルータACLをVLANマップと組み合わせて使用する方法について説明します。
ここに記載された注意事項は、ルータACLおよびVLANマップを同じVLAN上で使用する必要がある場合に適用されます。ルータACLおよびVLANマップを異なるVLANに割り当てる場合に、これらの注意事項は適用されません。
スイッチ ハードウェアは、方向(入力および出力)ごとにセキュリティACLを1回検索します。したがって、ルータACLおよびVLANマップを同じVLANに設定する場合は、これらを統合する必要があります。ルータACLとVLANマップを統合すると、ACEの数が急増することがあります。
ルータACLおよびVLANマップを同じVLANに設定する必要がある場合は、ルータACLとVLANマップの両方の設定に関する注意事項に従ってください。
permit...
permit...
permit...
deny ip any any
deny...
deny...
deny...
permit ip any any
レイヤ4情報を含むIP ACEとTCP/UDP/ICMP ACEが両方ともACL内に存在し、full flowモードを指定する必要があるときは、レイヤ4 ACEをリストの末尾に配置します。この結果、IPアドレスに基づくトラフィックのフィルタリングが優先されます。
ここでは、ルータACLおよびVLANマップをVLANに適用し、スイッチド パケット、ブリッジド パケット、ルーテッド パケット、およびマルチキャスト パケットを処理する例を示します。次の図ではそれぞれの宛先に転送されるパケットを示します。パケットのパスがVLANマップやACLを示す回線と交差するポイントで、パケットを転送せずに廃棄することもできます。
スイッチド パケットへのACLの適用に、VLAN内でスイッチングされるパケットにACLを適用する方法を示します。代替ブリッジングによってルーティングまたは転送されず、VLAN内でスイッチングされるパケットには、入力VLANのVLANマップのみが適用されます。
ブリッジド パケットへのACLの適用に、代替ブリッジド パケットにACLを適用する方法を示します。ブリッジド パケットの場合は、入力VLANにレイヤ2 ACLのみが適用されます。また、非IPおよび非ARPパケットのみが代替ブリッジド パケットとなります。
マルチキャスト パケットへのACLの適用に、IPマルチキャスト用に複製されたパケットにACLを適用する方法を示します。ルーティングされるマルチキャスト パケットには、2つの異なるフィルタが適用されます。1つは、宛先が入力VLAN内の他のポートである場合に使用され、もう1つは、宛先がパケットのルーティング先である別のVLAN内にある場合に使用されます。パケットは複数の出力VLANにルーティングされますが、この場合は宛先VLANごとに異なるルータ出力ACLおよびVLANマップが適用されます。
最終的に、パケットは一部の出力VLAN内で許可され、それ以外のVLANで拒否されます。パケットのコピーが、許可された宛先に転送されます。ただし、入力VLANマップ(マルチキャスト パケットへのACLの適用のVLAN 10マップ)によってパケットが廃棄される場合、パケットのコピーは宛先に送信されません。
スイッチに設定されているACL、およびインターフェイスやVLANに適用されたACLを表示することができます。また、設定の矛盾に関する情報やACLに関連したリソースの利用についての情報も表示できます。
既存のACLを表示することができます。ip access-groupインターフェイス コンフィギュレーション コマンドを使用して、レイヤ2またはレイヤ 3インターフェイスにACLを適用した場合は、そのインターフェイスのアクセス グループを表示することができます。レイヤ2インターフェイスに適用されたMAC ACLを表示することもできます。この情報を表示するには、イネーブルEXECコマンドを使用します(アクセス リストおよびアクセス グループを表示するコマンドを参照)。
次に、show access-listsイネーブルEXECコマンドを実行し、すべての標準ACLおよび拡張ACLを表示する例を示します。
permit eigrp host 12.3.6.5 host 25.36.1.24
次に、show ip access-listsイネーブルEXECコマンドの出力例を示します。IP標準および拡張ACLのみが表示されます。前述の例で表示された名前指定のMAC拡張ACLは、この例で表示されません。
permit eigrp host 12.3.6.5 host 25.36.1.24
次に、show mac access-groupイネーブルEXECコマンドの出力例を示します。この出力で、MACアクセス リスト(macl-e1)が適用されているインターフェイスはGigabitEthernetインターフェイス2だけであることがわかります。
Inbound access-list is not set
Inbound access-list is macl_e1
Inbound access-list is not set
Inbound access-list is not set
Inbound access-list is not set
VLANアクセスマップまたはVLANフィルタに関する情報を表示できます。VLAN マップ情報を表示するには、VLANマップ情報を表示するコマンドに記載されたイネーブルEXECコマンドを使用します。
次は、show vlan access-mapイネーブルEXECコマンドの出力例です。
次に、show vlan filterイネーブルEXECコマンドの出力例を示します。
VLAN Map map_1 is filtering VLANs:
スイッチの機能マネージャは、設定されたACLにリソースを割り当てます。設定に必要なだけの十分なハードウェア リソースがない場合、または設定に問題がある場合は、エラー メッセージが生成されます。コンソールがエラー メッセージ受信用に設定されていない場合は、show fmイネーブルEXECコマンドを使用して機能マネージャのメッセージを表示し、インターフェイスのACLを処理するリソースについての情報を入手することができます。また、show tcamイネーブルEXECコマンドを使用すると、スイッチのTernary Content Addressable Memory(TCAM;3つ一組のコンテンツ アドレス可能メモリ)の容量に関するステータス情報を入手できます。
VLANマップ情報を表示するコマンドに、ACL機能マネージャ情報を表示するイネーブルEXECコマンドを示します。
これらのコマンドの詳細については、このリリースのコマンド リファレンスを参照してください。
ここでは、次のACL問題に関する情報表示方法について説明します。
ルータACLがすでに設定されているスイッチのインターフェイスにポートACLを適用するなど、許可されていないACL設定を入力しようとすると、エラー メッセージがログに記録されます。
次の例では、Gigabitポート1がレイヤ2インターフェイスです。アクセス リストip3を適用しようとすると、すでにスイッチのレイヤ3インターフェイスにACLが適用されていることを示すエラー メッセージが表示されます。
Switch(config)# interface gigabitethernet0/1
Switch(config-if)# ip access-group ip3 in
1d18h:%FM-3-CONFLICT:Port ACL ip3 conflicts with input router ACLs
ACLの設定に矛盾があるかどうかを判断し、そのポートのポートラベル番号を調べるには、インターフェイスに対してshow fm interfaceイネーブルEXECコマンドを実行します。さらに詳細情報を表示するには、次の例のようにshow fm port-labelイネーブルEXECコマンドを入力します。
Switch# show fm interface gigabitethernet0/1
Conflicts exist with layer 3 access groups.
Conflicts exist with layer 3 access groups.
DHCP Broadcast Suppression Disabled.
MAC Access Group:(None) 0 VMRs
次の例は、レイヤ2インターフェイスにAVLがすでに適用されているスイッチで、SVI、VLAN 1にACL 121を適用しようとした結果を示しています。
Switch(config)# interface vlan 1
Switch(config-if)# ip access-group 121 in
1d18h:%FM-3-CONFLICT:Input router ACL 121 conflicts with port ACLs
show fm vlanを入力すると設定の矛盾が表示され、VLAN label-idsを判断することができます。さらに詳細情報を表示するには、show fm vlan-labelコマンドを入力します。
Conflicts exist with layer 2 access groups.
Conflicts exist with layer 2 access groups.
Multicast Boundary:(none), 0 VMRs
前述のように、Catalyst 3550スイッチでのACL処理は、大部分がハードウェアで処理されます。ただし、ACL設定を格納するためのハードウェア容量が限界に達した場合は、スイッチのソフトウェアによって、ハードウェア内の設定が単純になるように調整されます。設定が単純になると、設定されたフィルタリング処理の一部が実行されなくなり、一部またはすべてのパケットがCPUに送られて、ソフトウェアによりフィルタリングされます。この方法で、設定されたすべてのフィルタリング処理が実行されますが、ソフトウェアでフィルタリングが行われるとパフォーマンスが大幅に低下します。
たとえば、VLANインターフェイスに適用される入力ルータACLと、同じVLANに適用されるVLANマップの組み合わせがハードウェアに適合しない場合は、次のようになります。
ハードウェアに対する設定の適合性問題はすべてログに記録されます。show fmイネーブルEXECコマンドを使用すると、ハードウェアに適合しないインターフェイスの設定またはVLANの設定があるかどうかを判別することができます。
次に、使用可能なTCAMスペースに対してポート アクセス リストが大きすぎる例を示します。
Switch(config-if)# interface gigabitethernet0/3
Switch(config-if)# ip access-group 100 in
00:04:58:%FM-3-UNLOADING:Unloading port label 3 feature from TCAM 1
ポート ラベルを確認したり、ラベルがインターフェイスに割り当てられているかどうかを調べる場合は、show fm interfaceコマンドを入力します。
Switch# show fm interface gigabitethernet0/3
次の例では、show fm port-label 3イネーブルEXECコマンドの出力から、CAM1に必要なラベル3がCAM 1にロードされず、代わりにCPUに送信されていることがわかります。
DHCP Broadcast Suppression Disabled.
MAC Access Group:(None) 2 VMRs
スイッチのTCAMの数はスイッチ モデルによって異なります(1〜3)。TCAMを複数個装備しているスイッチで、同じポートACLが複数のインターフェイスに適用されている場合、必要なTCAMの一部(全部ではない)に設定が適合しないことがあります。このような場合、ACLが適用されたときに生成されたログ メッセージに、そのACLをロードできなかったTCAMが記録されます。
Switch(config)# interface gigabitethernet0/10
Switch(config-if)# ip access-group 101 in
01:46:25:%FM-3-UNLOADING:Unloading port label 4 feature from TCAM 1
ラベル4に対してshow fm port-labelコマンドを入力すると、各TCAMに機能がロードされているかどうかがわかります。
DHCP Broadcast Suppression Disabled.
MAC Access Group:(None) 2 VMRs
この出力は、CAM 1と3でポート ラベル4が必要とされているのに、CAM 1にポート ラベル4が適合していないことを示しています。CAM 1に他のポート ラベルのエントリがすでに含まれCAM 3よりも使用可能な空き容量が少ないためです。また、この出力から、CAM 3にはポート ラベル4がロードされているものの、このラベルのポートACLのエントリがCAM 1からロードされていないため、CAM1はこのラベルのパケットをCPUに送信していることがわかります。
次に、VLAN 1の機能マネージャ情報を表示する例を示します。
次に、show fm vlan-labelイネーブルEXECコマンドの出力例を示します。入力アクセス グループの統合に失敗したことがわかります。
Unloaded due to merge failure or lack of space:
Multicast Boundary:(none), 0 VMRs
次に、show fm vlan-labelイネーブルEXECコマンドの出力例を示します。入力アクセス グループに使用できる十分な空き容量がハードウェアにないことがわかります。
Unloaded due to merge failure or lack of space:
Multicast Boundary:(none), 0 VMRs
次に、show fm vlan-labelイネーブルEXECコマンドの例を示します。この出力から、このラベルの入力アクセス グループまたは出力アクセス グループに対して十分な空き容量がないことがわかります(アクセス グループは2つの異なるインターフェイスに設定されています。ラベルは入力および出力に関して個別に割り当てられます)。
Unloaded due to merge failure or lack of space:
InputAccessGroup OutputAccessGroup
Multicast Boundary:(none), 0 VMRs
show tcamイネーブルEXECコマンドを使用すると、ACLを設定する前後にTCAMの空き容量を表示したり、特定のインターフェイスまたはVLANに割り当てられているTCAM内の容量を調べることができます。
TCAM内でACLが入力されている領域の合計サイズを表示するには、show tcam sizeを使用します。
Switch# show tcam inacl 1 size
Ingress ACL TCAM Size:6592 Entries
さまざまなTCAM領域に割り当てる容量を変更する場合は、sdm preferグローバル コンフィギュレーション コマンドを使用します。このコマンドを使用して、ACL、ルーティング、またはレイヤ2スイッチングに割り当てるリソースを増やすことができます。
入力または出力のTCAM領域に対してshow tcam statisticsコマンドを入力すると、マスクおよびエントリの割り当て量と使用可能量が表示されるため、そのTCAM領域がどの程度利用されているかがわかります。次に示すのは、このコマンドの出力例です。
Switch# show tcam inacl 1 statistics
Ingress ACL TCAM#1:Number of active labels:3
Ingress ACL TCAM#1:Number of masks allocated: 14, available: 810
Ingress ACL TCAM#1:Number of entries allocated: 17, available:6575
インターフェイスまたはVLANへのACLの設定に使用できるTCAMの量を判断するには、まずshow fm interfaceコマンドまたはshow fm vlanコマンドを使用します。これらのコマンドの出力から、そのポートまたはVLANのACL設定に使用されるポート ラベルまたはVLANラベルを判別することができます。さらに、show tcam port-labelコマンドまたはshow tcam vlan-labelコマンドを使用すると、そのラベルに割り当てられているTCAMの容量が表示されます。VLANラベルはルータACLとVLANマップに、ポート ラベルはポートACLに使用されます。
Switch# show tcam inacl 1 vlan-labels 1
Label Value : 8193(vlan label 1)
F7 00 00 00 00 00 00 00 00 80 FF C0 00 C0 FF FF 00 00
96 00 00 00 00 00 00 00 00 80 01 40 00 80 00 01 00 00 As Data(hex) :00260086
F7 00 00 00 00 00 00 00 00 80 FF C0 00 C0 00 00 FF FF
96 00 00 00 00 00 00 00 00 80 01 40 00 80 00 00 00 B3 As Data(hex) :00260086
F5 00 00 00 00 E0 00 00 00 80 FF C0 00 C0 00 00 00 00
94 00 00 00 00 E0 00 00 00 80 01 40 00 80 00 00 00 00 As Data(hex) :00210086
F7 00 00 00 00 00 00 00 00 80 FF C0 00 C0 00 00 00 00
96 00 00 00 00 00 00 00 00 80 01 40 00 80 00 00 00 00 As Data(hex) :00210086
All contents copyright (C) 1992--2004 Cisco Systems K.K.