IPv6 ACL の設定

この章では、シスコの産業用イーサネットスイッチ(以降、スイッチと呼びます)での IPv6 アクセス制御リスト(ACL)の設定の詳細について説明します。

スイッチ上で IP サービスイメージが稼働している場合は、次のことができます。

blank.gifIPv6 ACL を作成して、インターフェイスに適用することによって、IPv6 トラフィックをフィルタ処理できます

blank.gifレイヤ 3 管理トラフィックをフィルタ処理するために、入力ルータ ACL を作成し、適用することができます

この章は、次の項で構成されています。

blank.gifIPv6 ACL の概要

blank.gif前提条件

blank.gif注意事項と制約事項

blank.gifデフォルト設定

blank.gifIPv6 ACL の設定

blank.gifIPv6 ACL の確認

blank.gif設定例

IPv6 ACL の概要

IP サービスイメージを実行しているスイッチは、次の 2 種類の IPv6 ACL をサポートしています。

blank.gifルーテッドポート、スイッチ仮想インターフェイス(SVI)、またはレイヤ 3 EtherChannel に設定できるレイヤ 3 インターフェイスの送信トラフィックまたは着信トラフィックでは、IPv6 ルータ ACL。

IPv6 ルータ ACL は、ルーテッド IPv6 パケットにだけ適用されます。

blank.gifレイヤ 2 インターフェイスの着信トラフィックでのみ、IPv6 ポート ACL。スイッチは、IPv6 ポート ACL をインターフェイスに着信するすべての IPv6 パケットに対して適用します。

1 つのインターフェイスに、IPv4 ACL および IPv6 ACL の両方を適用できます。

IPv4 ACL の場合と同様に、IPv6 ポート ACL はルータ ACL よりも優先されます。

blank.gifSVI に入力ルータ ACL および入力ポート ACL が設定されている場合に、ポート ACL が適用されているポートに着信したパケットはポート ACL によってフィルタリングされます。その他のポートに着信したルーテッド IP パケットは、ルータ ACL によってフィルタリングされます。他のパケットはフィルタリングされません。

blank.gifSVI に出力ルータ ACL および入力ポート ACL が設定されている場合に、ポート ACL が適用されているポートに着信したパケットはポート ACL によってフィルタリングされます。発信ルーテッド IPv6 パケットは、ルータ ACL によってフィルタリングされます。他のパケットはフィルタリングされません。

注: いずれかのポート ACL(IPv4、IPv6、または MAC)をインターフェイスに適用した場合、そのポート ACL がパケットをフィルタ処理し、ポート VLAN の SVI に適用されたルータ ACL は無視されます。

サポートされる ACL 機能

スイッチの IPv6 ACL には、次の特性があります。

blank.gif分割フレーム(IPv4 では fragments キーワード)がサポートされます。

blank.gifIPv6 ACL では、IPv4 と同じ統計情報がサポートされます。

blank.gifスイッチのハードウェアスペースが不足している場合、ACL に対応付けられたパケットは CPU に転送され、ソフトウェアが ACL を適用します。

blank.gifホップバイホップ オプションがあるルーテッド パケットまたはブリッジド パケットには、ソフトウェアで適用される IPv6 ACL が設定されます。

blank.gifロギングは、ルータ ACL ではサポートされますが、ポート ACL ではサポートされません。

blank.gifスイッチは、プレフィックス長の最大範囲の IPv6 アドレス一致をサポートしません。

注: IPv6 ACL でサポートされない項目については、注意事項と制約事項を参照してください。

前提条件

機能を設定する前に、注意事項と制約事項と、設定の各項内の「はじめる前に」の項を確認してください。

注意事項と制約事項

IPv6 トラフィックの ACL は未サポート

blank.gifスイッチは、IPv6 トラフィックの Virtual LAN(VLAN)ACL(VLAN マップ)をサポートしません。

blank.gifスイッチは IPv6 フレームに MAC ベース ACL を適用しません。

blank.gifレイヤ 2 EtherChannel に IPv6 ポート ACL を適用できません。

blank.gifスイッチは出力ポート ACL をサポートしません。

Cisco IOS IPv6 ACL 機能は未サポート

blank.gifスイッチは、 flowlabel routing header 、および undetermined-transport というキーワードの照合をサポートしません。

blank.gifスイッチは再起 ACL( reflect キーワード)をサポートしません。

アクセス制御エントリ(ACE)と ACL

blank.gifACL をインターフェイスに適用し、サポートされていないキーワードを持つアクセス制御エントリ(ACE)を追加しようとする場合、スイッチは適用されている ACL に ACE が追加されるのを許可しません。

名前付き ACL の有無

blank.gifIPv6 がサポートするのは名前付き ACL だけです。

他のスイッチまたは機能との IPv6 ACL の相互作用

blank.gifパケットを拒否するように IPv6 ルータ ACL を設定すると、ソフトウェアはパケットをルーティングしません。代わりに、ソフトウェアがパケットのコピーを Internet Control Message Protocol(ICMP)キューに転送し、フレームに ICMP 到達不能メッセージが生成されます。

blank.gifブリッジド フレームがポート ACL によってドロップされる場合、このフレームはブリッジングされません。

blank.gifIPv4 ACL および IPv6 ACL の両方を 1 つのスイッチに作成したり、同一のインターフェイスに適用したりできます。

blank.gif各 ACL には一意の名前が必要です。スイッチにすでに存在する名前を使用しようとすると、エラーメッセージが表示されます。

blank.gifIPv4 ACL と IPv6 ACL の作成、および同一のレイヤ 2 インターフェイスまたはレイヤ 3 インターフェイスへの IPv4 ACL または IPv6 ACL の適用には、異なるコマンドを使用します。

ACL を付加するのに誤ったコマンドを使用すると(例えば、IPv6 ACL の付加に IPv4 コマンドを使用するなど)、エラー メッセージが表示されます。

blank.gifMAC ACL を使用して、IPv6 フレームをフィルタリングできません。MAC ACL は非 IP フレームだけをフィルタリングできます。

blank.gifハードウェアメモリが満杯の場合、設定済みの ACL を追加すると、スイッチがパケットを CPU に転送し、ソフトウェアが ACL を適用します。

デフォルト設定

 

パラメータ
デフォルト

IPv6 ACL

スイッチで設定または適用されているデフォルトの IPv6 ACL はありません。

IPv6 ACL の設定

このセクションは、次のトピックで構成されています。

blank.gifIPv6 ACL の作成

blank.gifインターフェイスへの IPv6 ACL の適用

はじめる前に

この機能については、注意事項と制約事項を確認してください。

いずれかのデュアル IPv4/IPv6 SDM テンプレートを選択します。

IPv6 ACL の作成

注: サポートされない IPv6 ACL を設定した場合、エラーメッセージが表示され、その設定は有効になりません。

次のコマンドの指定のアクセスリストから拒否または許可条件を削除するには、キーワードを指定して no { deny | permit } IPv6 アクセス リスト コンフィギュレーション コマンドを使用します。

手順の詳細

 

 
コマンド
目的

1.blank.gif

configure terminal

グローバル コンフィギュレーション モードを開始します。

2.blank.gif

ipv6 access-list access-list-name

名前を使用して IPv6 アクセス リストを定義し、IPv6 アクセス リスト コンフィギュレーション モードを開始します。

3.blank.gif a

{ deny | permit } protocol
{ source-ipv6-prefix / prefix-length | any | host source-ipv6-address } [ operator [ port-number ]] { destination-ipv6-prefix/ prefix-length | any |
host destination-ipv6-address } [ operator [ port-number ]]
[ dscp value ] [ fragments ] [ log ] [ log-input ] [ routing ] [ sequence value ] [ time-range name ]

指定された条件が一致した場合に、パケットを拒否または許可します。次に、条件について説明します。

blank.gif protocol :インターネットプロトコルの名前または番号。 ahp esp icmp ipv6 pcp stcp tcp udp 、または IPv6 プロトコル番号を表す 0 ~ 255 の整数を使用できます。ICMP、TCP、および UDP の具体的なパラメータについては、ステップ 3b ~ 3d を参照してください。

blank.gif source-ipv6-prefix / prefix-length または destination-ipv6-prefix / prefix-length :拒否条件または許可条件を設定する送信元または宛先 IPv6 ネットワークあるいはネットワーククラスで、コロン区切りの 16 ビット値を使用した 16 進形式で指定します。

blank.gifIPv6 プレフィックス ::/0 の短縮形として、 any を入力します。

blank.gif host source-ipv6-address または destination-ipv6-address :拒否条件または許可条件を設定する送信元または宛先 IPv6 ホストアドレスを定義します。アドレスはコロン区切りの 16 ビット値を使用した 16 進形式で指定します。

blank.gif(任意) operator :指定されたプロトコルの送信元ポートまたは宛先ポートを比較するオペランドで、
lt (より小さい)、 gt (より大きい)、 eq (等しい)、 neq (等しくない)、 range (包含範囲)などがあります。

source-ipv6-prefix / prefix-length 引数のあとの operator は、送信元ポートに一致する必要があります。 destination-ipv6- prefix/prefix-length 引数のあとの operator は、宛先ポートに一致する必要があります。

 

 

blank.gif(任意) port-number :0 ~ 65535 の値、または TCP または UDP ポート名。TCP ポート名は、TCP のフィルタリング時にのみ使用します。UDP ポート名は、UDP のフィルタリング時にのみ使用します。

blank.gif(任意) dscp value :各 IPv6 パケットヘッダーの Traffic Class フィールド内のトラフィッククラス値と DiffServ コードポイント値を照合します。指定できる範囲は 0 ~ 63 です。

blank.gif(任意) fragments :先頭ではないフラグメントを確認します。キーワードが表示されるのは、プロトコルが ipv6 の場合だけです。

blank.gif(任意、ルータ ACL のみ) log :エントリと一致するパケットに関するロギングメッセージをコンソールに送信します log-input を指定すると、ログ エントリに入力インターフェイスが追加されます。

blank.gif(任意) routing :IPv6 パケットのルーティングを指定します。

blank.gif(任意) sequence value :アクセス リスト ステートメントのシーケンス番号を指定します。値の範囲は 1 ~ 4294967295 です。

blank.gif(任意) time-range name :拒否または許可ステートメントに適用される時間の範囲を指定します。

ステップ 3b

{ deny | permit } tcp { source-ipv6-prefix / prefix-length | any | host source-ipv6-address } [ operator [ port-number ]] { destination-ipv6- prefix/prefix-length | any | host destination-ipv6-address } [ operator [ port-number ]] [ ack ] [ dscp value ] [ established ] [ fin ] [ log ] [ log-input ] [ neq { port | protocol }] [ psh ] [ range { port | protocol }] [ rst ] [ routing ] [ sequence value ] [ syn ] [ time-range name ] [ urg ]

(任意)TCP アクセス リストおよびアクセス条件を定義します。

TCP の場合は tcp を入力します。パラメータはステップ 3a で説明されているパラメータと同じですが、次に示すオプションのパラメータが追加されています。

blank.gif ack :確認応答(ACK)ビット セット

blank.gif established 確立された接続。TCP データグラムに ACK または RST ビットが設定されている場合、照合が行われます。

blank.gif fin 終了ビット セット。送信元からのデータはそれ以上ありません。

blank.gif neq { port | protocol } :所定のポート番号上にないパケットだけを照合します。

blank.gif psh プッシュ機能ビット セット

blank.gif range { port | protocol } :ポート番号の範囲内のパケットだけを照合します。

blank.gif rst リセット ビット セット

blank.gif syn 同期ビット セット

blank.gif urg 緊急ポインタ ビット セット

ステップ 3c

{ deny | permit } udp
{ source-ipv6-prefix / prefix-length | any | host source-ipv6-address } [ operator [ port-number ]] { destination-ipv6-prefix/prefix-length | any | host destination-ipv6-address } [ operator [ port-number ]] [ dscp value ] [log ] [log-input] [ neq { port | protocol }] [ range { port | protocol }] [ routing ] [ sequence value ] [ time-range name ]

(任意)UDP アクセス リストおよびアクセス条件を定義します。

ユーザ データグラム プロトコルの場合は、 udp を入力します。UDP パラメータは TCP に関して説明されているパラメータと同じです。ただし、[ operator [ port ]] のポート番号またはポート名は、UDP ポートの番号または名前でなければなりません。UDP の場合、 established パラメータは無効です。

ステップ 3d

{ deny | permit } icmp { source-ipv6-prefix / prefix-length | any | host source-ipv6-address } [ operator [ port-number ]] { destination-ipv6-prefix/prefix-length | any | host destination-ipv6-address } [ operator [ port-number ]] [ icmp-type [ icmp-code ] | icmp-message ] [ dscp value ] [ log ] [ log-input ] [ routing ] [ sequence value ] [ time-range name ]

(任意)ICMP アクセス リストおよびアクセス条件を定義します。

インターネット制御メッセージ プロトコルの場合は、 icmp を入力します。ICMP パラメータはステップ 3a の IP プロトコルの説明にあるパラメータとほとんど同じですが、ICMP メッセージ タイプおよびコード パラメータが追加されています。オプションのキーワードの意味は次のとおりです。

blank.gif icmp-type :ICMP メッセージ タイプでフィルタリングする場合に入力します。指定できる値の範囲は、0 ~ 255 です。

blank.gif icmp-code :ICMP パケットを ICMP メッセージ コード タイプでフィルタリングする場合に入力します。指定できる値の範囲は、0 ~ 255 です。

blank.gif icmp-message :ICMP パケットを ICMP メッセージ タイプ名または ICMP メッセージ タイプとコード名でフィルタリングする場合に入力します。ICMP メッセージのタイプ名およびコード名のリストについては、? キーを使用してください。

4.blank.gif

end

特権 EXEC モードに戻ります。

5.blank.gif

show ipv6 access-list

アクセス リストの設定を確認します。

6.blank.gif

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

次に例を示します。

blank.gifCISCO という名前の IPv6 ACL を作成します。

blank.gif宛先 TCP ポート番号が 5000 より大きいすべてのパケットを拒否する 1 つ目の拒否エントリと、送信元 UDP ポート番号が 5000 未満のパケットを拒否する 2 つ目の拒否エントリを定義します。2 番目の拒否エントリは、コンソールにもすべての一致を記録します。

blank.gifすべての ICMP パケットを許可する許可エントリと、他のすべてのトラフィックを許可する別の許可エントリを定義します。すべてのパケットを拒否する暗黙の条件が各 IPv6 アクセス リストの末尾にあるため、この 2 番めの許可エントリが必要となります。

Switch(config)# ipv6 access-list CISCO
Switch(config-ipv6-acl)# deny tcp any any gt 5000
Switch config-ipv6-acl)# deny ::/0 lt 5000 ::/0 log
Switch(config-ipv6-acl)# permit icmp any any
Switch(config-ipv6-acl)# permit any any

インターフェイスへの IPv6 ACL の適用

はじめる前に

この機能については、注意事項と制約事項を確認してください。

手順の詳細

 

 
コマンド
目的

1.blank.gif

configure terminal

グローバル コンフィギュレーション モードを開始します。

2.blank.gif

interface interface-id

アクセス リストを適用するレイヤ 2 インターフェイス(ポート ACL 用)またはレイヤ 3 インターフェイス(ルータ ACL 用)を特定して、インターフェイス コンフィギュレーション モードを開始します。

3.blank.gif

no switchport

ルータ ACL を適用する場合は、インターフェイスをレイヤ 2 モード(デフォルト)からレイヤ 3 モードに変更します。

4.blank.gif

ipv6 address ipv6-address

レイヤ 3 インターフェイス(ルータ ACL 用)で IPv6 アドレスを設定します。

注: このコマンドは、レイヤ 2 インターフェイスでは、またはインターフェイスに明示的な IPv6 アドレスが設定されている場合には、必要ありません。

インターフェイスからアクセス リストを削除するには、 no ipv6 traffic-filter access-list-name インターフェイス コンフィギュレーション コマンドを使用します。

5.blank.gif

ipv6 traffic-filter access-list-name { in | out }

インターフェイスの着信トラフィックまたは発信トラフィックにアクセス リストを適用します。

注: out キーワードはレイヤ 2 インターフェイス(ポート ACL)ではサポートされません。

6.blank.gif

end

特権 EXEC モードに戻ります。

7.blank.gif

show running-config

アクセス リストの設定を確認します。

8.blank.gif

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

次に、レイヤ 3 インターフェイスの発信トラフィックに対して、アクセスリスト CISCO を適用する例を示します。

Switch(config)# interface gigabitethernet 0/3
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2001::/64 eui-64
Switch(config-if)# ipv6 traffic-filter CISCO out

IPv6 ACL の確認

1 つまたは複数の次の特権 EXEC コマンドを使用して、設定済みのすべてのアクセスリスト、すべての IPv6 アクセスリスト、または特定のアクセスリストに関する情報を表示できます。

 

コマンド
目的

show access-lists

スイッチに設定されたすべてのアクセス リストを表示します。

show ipv6 access-list [ access-list-name ]

設定済みのすべての IPv6 アクセス リストまたは名前付けされたアクセス リストを表示します。

設定例

次に例を示します。

blank.gifCISCO という名前の IPv6 ACL を作成します。

blank.gif宛先 TCP ポート番号が 5000 より大きいすべてのパケットを拒否する 1 つ目の拒否エントリと、送信元 UDP ポート番号が 5000 未満のパケットを拒否する 2 つ目の拒否エントリを定義します。2 番目の拒否エントリは、コンソールにもすべての一致を記録します。

blank.gifすべての ICMP パケットを許可する許可エントリと、他のすべてのトラフィックを許可する別の許可エントリを定義します。すべてのパケットを拒否する暗黙の条件が各 IPv6 アクセス リストの末尾にあるため、この 2 番めの許可エントリが必要となります。

blank.gifレイヤ 3 インターフェイスの発信トラフィックに対して、アクセスリスト CISCO を適用します。

 
Switch(config)# ipv6 access-list CISCO
Switch(config-ipv6-acl)# deny tcp any any gt 5000
Switch config-ipv6-acl)# deny ::/0 lt 5000 ::/0 log
Switch(config-ipv6-acl)# permit icmp any any
Switch(config-ipv6-acl)# permit any any
Switch(config-ipv6-acl)# exit
Switch(config)# interface gigabitethernet 0/3
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2001::/64 eui-64
Switch(config-if)# ipv6 traffic-filter CISCO out