Catalyst 3750 Metro スイッチ ソフトウェア コンフィギュレーション ガイド Cisco IOS Release 12.2(25)EY
ダイナミックARP検査の設定
ダイナミックARP検査の設定
発行日;2012/02/07 | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 9MB) | フィードバック

目次

ダイナミックARP検査の設定

ダイナミックARP検査の概要

インターフェイスの信頼状態とネットワーク セキュリティ

ARPパケットのレート制限

ARP ACLとDHCPスヌーピング エントリの相関プライオリティ

廃棄されたパケットのロギング

ダイナミックARP検査の設定

ダイナミックARP検査のデフォルト設定

ダイナミックARP検査設定時の注意事項

DHCP環境でのダイナミックARP検査の設定

非DHCP環境のARP ACLの設定

着信ARPパケットのレート制限

妥当性チェックの実行

ログ バッファの設定

ダイナミックARP検査情報の表示

ダイナミックARP検査の設定

この章では、Catalyst 3750 Metroスイッチ上でダイナミックAddress Resolution Protocol(ARP)検査を設定する方法を説明します。この機能により、不正なARP要求および応答は同一VLAN(仮想LAN)の他のポートにリレーしないことで、悪意のある攻撃を回避できるようにします。

この機能を使用するには、スイッチにEnhanced Multilayer Image(EMI)をインストールする必要があります。


) この章で使用されるコマンドの構文および使用方法の詳細については、このリリースのコマンド リファレンスを参照してください。


この章で説明する内容は、次のとおりです。

「ダイナミックARP検査の概要」

「ダイナミックARP検査の設定」

「ダイナミックARP検査情報の表示」

ダイナミックARP検査の概要

ARPはIPアドレスをMAC(メディア アクセス制御)アドレスにマッピングすることで、レイヤ2ブロードキャスト ドメイン内のIP通信を提供します。たとえば、ホストBはホストAに情報を送信したいのに、自身のARPキャッシュにホストAのMACアドレスを持っていません。ホストBはブロードキャスト ドメイン内のすべてのホストに対してブロードキャスト メッセージを生成し、ホストAのIPアドレスに関連するMACアドレスを取得します。ブロードキャスト ドメイン内のすべてのホストはARP要求を受信し、ホストAはMACアドレスを使用して応答します。ただし、ARP要求を受信しなかった場合でもARPは不当な応答を許可するため、ARPスプーフィング攻撃やARPキャッシュのポイズニングが発生する可能性があります。攻撃後、攻撃にさらされたデバイスからのすべてのトラフィックが攻撃者のコンピュータを介して、ルータ、スイッチ、またはホストに流れます。

悪意のあるユーザは、サブネットに接続されたシステムのARPキャッシュをポイズニングしたり、サブネット上の他のホストに宛てたトラフィックを代行受信したりして、レイヤ2ネットワークに接続したホスト、スイッチ、ルータを攻撃できます。図22-1にARPキャッシュ ポイズニングの例を示します。

図22-1 ARPキャッシュ ポイズニング

 

ホストA、BおよびCはインターフェイスA、BおよびC上のスイッチに接続され、すべて同じサブネット上にあります。これらのIPアドレスおよびMACアドレスは、カッコ内に示してあります。たとえば、ホストAはIPアドレスIAおよびMACアドレスMAを使用します。ホストAがIPレイヤでホストBと通信する必要があるとき、ホストAはIPアドレスIBに関連付けられたMACアドレスに対してARP要求をブロードキャストします。スイッチおよびホストBがARP要求を受信すると、IPアドレスIAおよびMACアドレスMAを持つホストへのARPバインディングを使用してARPキャッシュを読み込みます。たとえば、IPアドレスIAは、MACアドレスMAにバインドされます。ホストBが応答すると、スイッチおよびホストAは、IPアドレスIBおよびMACアドレスMBを持つホストへのバインディングを使用してARPキャッシュを読み込みます。

ホストCは、IPアドレスIA(またはIB)およびMACアドレスMCを持つホストへのバインディングを使用して偽造したARP応答をブロードキャストすることで、スイッチ、ホストA、およびホストBをポイズニングできます。ポイズニングされたARPキャッシュを持つホストは、IAまたはIBに宛てたトラフィックの宛先MACアドレスとして、MACアドレスMCを使用します。ホストCは、IAおよびIBに関連付けられた正当なMACアドレスを知っているため、宛先として正しいMACアドレスを使用して、代行受信されたトラフィックをこれらのホストに転送できます。ホストCは、自身をホストAからホストBへのトラフィック ストリームに挿入し、典型的な
man-in-the-middle 攻撃を行います。

ダイナミックARP検査は、ネットワークのARPパケットを検証するセキュリティ機能です。この検査では、不正なIP/MACアドレス バインディングを持つARPパケットを代行受信、ロギング、および廃棄します。この機能は、特定なman-in-the-middle攻撃からネットワークを保護します。

ダイナミックARP検査では、有効なARP要求および応答のみがリレーされるようにします。スイッチは次のアクティビティを実行します。

信頼できないポート上のすべてのARP要求および応答を代行受信します。

ローカルARPキャッシュを更新する前、またはパケットを適切な宛先に転送する前に、代行受信されたパケットそれぞれが有効なIP/MACアドレス バインディングを持っているかどうかを検証します。

無効なARPパケットを廃棄します。

ダイナミックARP検査では、DHCPスヌーピング バインディング データベースなどの信頼性のあるデータベースに保存された有効なIP/MACアドレス バインディングに基づいて、ARPパケットの妥当性を判別します。このデータベースは、DHCPスヌーピングがVLAN上およびスイッチ上でイネーブルになっている場合、DHCPスヌーピングによって構築されます。ARPパケットが信頼できるインターフェイス上で受信された場合、スイッチはそのパケットを確認せずに転送します。信頼できないインターフェイス上では、スイッチはパケットが有効な場合のみ転送します。

ダイナミックARP検査は、VLANごとに ip arp inspection vlan vlan-range グローバル コンフィギュレーション コマンドを使用してイネーブルにします。設定の詳細については、「DHCP環境でのダイナミックARP検査の設定」を参照してください。

DHCPを使用しない環境では、ダイナミックARP検査は、スタティックに設定されたIPアドレスを持つホストに対してユーザが設定したARP Access Control List(ACL;アクセス制御リスト)と照合してARPパケットを検証できます。ARP ACLは、 arp access-list acl-name グローバル コンフィギュレーション コマンドを使用して定義します。設定の詳細については、「非DHCP環境のARP ACLの設定」を参照してください。スイッチは、廃棄されたパケットをロギングします。ログ バッファの詳細については、「廃棄されたパケットのロギング」を参照してください。

ダイナミックARP検査を設定して、パケットのIPアドレスが無効な場合、またはARPパケット本体にあるMACアドレスがイーサネット ヘッダーで指定したアドレスに一致しない場合に、ARPパケットを廃棄できます。 ip arp inspection validate { [ src-mac ] [ dst-mac ] [ ip ]} グローバル コンフィギュレーション コマンドを使用します。詳細については、「妥当性チェックの実行」を参照してください。

インターフェイスの信頼状態とネットワーク セキュリティ

ダイナミックARP検査は、信頼状態とスイッチ上の各インターフェイスを対応付けます。信頼できるインターフェイスに到着したパケットは、すべてのダイナミックARP検査による検証確認を迂回し、信頼できないインターフェイスに到着したパケットには、ダイナミックARP検査による検証プロセスが実行されます。

標準的なネットワーク構成では、ホスト ポートに接続されたすべてのスイッチ ポートを信頼できないポートとして設定し、スイッチに接続されたすべてのスイッチ ポートは信頼できるポートとして設定します。この設定を使用して、指定されたスイッチからネットワークに入ってくるすべてのARPパケットは、セキュリティ チェックを迂回します。VLANまたはネットワークの他の場所では、それ以外の検証は必要ありません。信頼設定は、 ip arp inspection trust インターフェイス コンフィギュレーション コマンドを使用して設定します。


注意 信頼状態設定は、慎重に使用してください。インターフェイスが信頼される必要のあるときに信頼できないの状態に設定すると、接続が切断される結果になることがあります。

図22-2では、スイッチAとスイッチBの両方が、ホスト1およびホスト2を含むVLANでダイナミックARP検査を実行していると想定しています。ホスト1およびホスト2が、スイッチAに接続されたDHCPサーバからIPアドレスを取得した場合、スイッチAだけがホスト1のIP/MACアドレスをバインドします。したがって、スイッチAとスイッチBとの間のインターフェイスが信頼できない場合、ホスト1からのARPパケットは、スイッチBによって廃棄され、ホスト1とホスト2の間の接続は切断されます。

図22-2 ダイナミックARP検査がイネーブルになったVLAN上でのARPパケットの検証

 

実際には信頼できないインターフェイスを信頼できるインターフェイスとして設定すると、ネットワークにセキュリティ ホールを残すことになります。スイッチAがダイナミックARP検査を実行していない場合、ホスト1は簡単にスイッチB(およびスイッチ間のリンクが信頼できるリンクとして設定されている場合はホスト2)のARPキャッシュをポイズニングできます。この条件は、スイッチBがダイナミックARP検査を実行しているときにも発生することがあります。

ダイナミックARP検査では、ダイナミックARP検査を実行しているスイッチに接続された(信頼できないインターフェイスの)ホストが、ネットワークの他のホストのARPキャッシュをポイズニングしていないことを確認します。ただし、ダイナミックARP検査は、ネットワークの他の部分のホストがダイナミックARP検査を実行しているスイッチに接続されたホストのキャッシュをポイズニングするのは回避しません。

VLANの一部のスイッチがダイナミックARP検査を実行し、他のスイッチは実行していないような場合、そういったスイッチに接続しているインターフェイスは信頼できない、インターフェイスとして設定します。ただし、非ダイナミックARP検査スイッチからのパケットのバインディングを検証するには、ARP ACLを使用してダイナミックARP検査を実行しているスイッチを設定します。レイヤ3でそのようなバインディングを判別できないときは、ダイナミックARP検査を実行しているスイッチを、ダイナミックARP検査を実行していないスイッチから切り離します。設定の詳細については、「非DHCP環境のARP ACLの設定」を参照してください。


) DHCPサーバおよびネットワークのセットアップによっては、VLANのすべてのスイッチ上では指定したARPパケットを検証できないことがあります。


ARPパケットのレート制限

スイッチCPUは、ダイナミックARP検査の妥当性チェックを実行します。したがって、着信ARPパケットの数は、DoS攻撃を回避するため、レートが制限されます。デフォルトでは、信頼できないインターフェイスのレートは、1秒あたり15パケット(pps)です。信頼できるインターフェイスは、レート制限されません。この設定の変更は、 ip arp inspection limit インターフェイス コンフィギュレーション コマンドを使用します。

着信ARPパケットのレートが設定した制限値を超えると、スイッチはそのポートをerrdisableステートにします。変更しない限り、ポートはそのままの状態となります。指定したタイムアウト時間の経過後にポートが自動的にこの状態から抜け出すように、errdisable回復をイネーブルにするには、 errdisable recovery グローバル コンフィギュレーション コマンドを使用します。

設定の詳細については、「着信ARPパケットのレート制限」を参照してください。

ARP ACLとDHCPスヌーピング エントリの相関プライオリティ

ダイナミックARP検査では、有効なIP/MACアドレス バインディングのリストに対してDHCPスヌーピング バインディング データベースが使用されます。

ARP ACLは、DHCPスヌーピング バインディング データベースのエントリよりも優先されます。スイッチは、 ip arp inspection filter vlan グローバル コンフィギュレーション コマンドを使用して設定した場合のみ、ACLを使用します。スイッチは、まずARPパケットとユーザ設定のARP ACLを比較します。ARP ACLがARPパケットを拒否する場合、DHCPスヌーピングが読み込んだデータベースに有効なバインディングが存在しても、スイッチも同様にパケットを拒否します。

廃棄されたパケットのロギング

スイッチがパケットを廃棄するとき、エントリはログ バッファに保管され、レート制御ごとにシステム メッセージが生成されます。メッセージが生成されたあと、スイッチはログ バッファからエントリを消去します。各ログ エントリには、受信VLAN、ポート番号、送信元と宛先のIPアドレス、および送信元と宛先のMACアドレスといったフロー情報が含まれます。

バッファ内のエントリ数およびシステム メッセージの生成に必要な指定間隔内のエントリ数を設定するには、 ip arp inspection log-buffer グローバル コンフィギュレーション コマンドを使用します。 ip arp inspection vlan logging グローバル コンフィギュレーション コマンドを使用すると、ロギングされるパケットのタイプを指定できます。設定の詳細については、「ログ バッファの設定」を参照してください。

ダイナミックARP検査の設定

ここでは、スイッチ上でダイナミックARP検査を設定する方法について説明します。

「ダイナミックARP検査のデフォルト設定」

「ダイナミックARP検査設定時の注意事項」

「DHCP環境でのダイナミックARP検査の設定」(DHCP環境では必須)

「非DHCP環境のARP ACLの設定」(非DHCP環境では必須)

「着信ARPパケットのレート制限」(任意)

「妥当性チェックの実行」(任意)

「ログ バッファの設定」(任意)

ダイナミックARP検査のデフォルト設定

表22-1 に、ダイナミックARP検査のデフォルト設定を示します。

 

表22-1 ダイナミックARP検査のデフォルト設定

機能
デフォルト設定

ダイナミックARP検査

全VLANでディセーブル

インターフェイスの信頼状態

全インターフェイスが信頼できない

着信ARPパケットのレート制限

ネットワークが1秒ごとに15個程度の新規ホストに接続しているホストを使用するスイッチド ネットワークであると想定した場合、レートは15 pps。

すべての信頼できるインターフェイス上でレート制限なし。

バースト間隔は1秒。

非DHCP環境のARP ACL

ARP ACLは定義されていない。

妥当性チェック

チェックは実行されない。

ログ バッファ

ダイナミック ARP検査がイネーブルになっているとき、すべての拒否または廃棄されたARPパケットがロギングされる。

ログ内のエントリ数は32。

システム メッセージ数は5秒ごとに制限される。

ロギングレートの間隔は1秒

VLANごとのロギング

拒否または廃棄されたすべてのARPパケットがロギングされる。

ダイナミックARP検査設定時の注意事項

ダイナミックARP検査設定時の注意事項は次のとおりです。

ダイナミックARP検査は、入力側セキュリティ機能です。出力チェックは行いません。

ダイナミックARP検査をサポートしていないスイッチ、またはこの機能がイネーブルになっていないスイッチに接続されたホストに対しては、ダイナミックARP検査は有効になりません。man-in-the-middle攻撃は単一レイヤ2ブロードキャスト ドメインに限られているため、ダイナミックARP検査チェックが設定されたドメインを、チェックが設定されていないドメインから隔離します。このアクションにより、ダイナミックARP検査に対してイネーブルになっているドメインにあるホストのARPキャッシュを保護します。

DHCPスヌーピング バインディング データベースのエントリにしたがって、ダイナミックARP検査は着信ARP要求およびARP応答のIP/MACアドレス バインディングを検証します。ダイナミックにIPアドレスが割り当てられたARPパケットを許可するには、DHCPスヌーピングを必ずイネーブルにしてください。設定の詳細については、「DHCP機能およびIPソース ガードの設定」を参照してください。

DHCPスヌーピングがディセーブルであるか、非DHCP環境である場合、ARP ACLを使用してパケットを許可または拒否します。

ダイナミックARP検査は、アクセス ポート、トランク ポート、EtherChannelポート、およびプライベートVLANポート上でサポートされています。

物理ポートは、物理ポートとチャネル ポートの信頼状態が一致するときのみEtherChannelポート チャネルに加入できます。それ以外の場合、物理ポートはポート チャネルでサスペンドのままになります。ポート チャネルは、チャネルに加入した最初の物理ポートから信頼状態を継承します。したがって、最初の物理ポートの信頼状態は、そのチャネルの信頼状態に一致する必要はありません。

逆にポート チャネルの信頼状態を変更したときは、スイッチにより、チャネルを構成するすべての物理ポート上で新しい信頼状態が設定されます。

レート制限は、スイッチ スタックの各スイッチごとに個別に計算されます。つまりクロス スタックEtherChannelでは、実際のレート制限が設定値より高くなることがあります。たとえば、スイッチ1に1ポート、スイッチ2に1ポートのEtherChannel上でのレート制限を30 ppsに設定した場合、EtherChannelがerrdisableステートにならずに、各ポートでパケットを29 ppsで受信できます。

ポート チャネルの動作レートは、チャネル内のすべての物理ポートでの累積となります。たとえば、ARPレート制限を400 ppsでポート チャネルを設定した場合、チャネル上で組み合わされているすべてのインターフェイスは、合計で400 ppsを受信します。EtherChannelポート上での着信ARPパケットのレートは、すべてのチャネル メンバーからのパケットの着信レートの合計と等しくなります。チャネル ポート メンバーでの着信ARPパケットのレートを確認してからEtherChannelポートのレート制限を設定するようにしてください。

物理ポートの着信パケットのレートは、物理ポートの設定ではなく、ポート チャネルの設定と照合されます。ポート チャネルでのレート制限設定は、物理ポートでの設定とは無関係です。

EtherChannelが設定されたレート以上のARPパケットを受信する場合、チャネル(すべての物理ポートを含む)はerrdisabledステートになります。

着信トランク ポートでARPパケットのレートを必ず制限してください。集約を反映させ、ダイナミックARP検査対応の複数のVLANにわたるパケットを処理するには、トランク ポートに高めのレートを設定します。また、レートを無制限にするには、 ip arp inspection limit noneインターフェイス コンフィギュレーション コマンドも使用できます。1つのVLANでレート制限を高くすると、ソフトウェアによってポートがerrdisabledステートになったときに他のVALNへのDoS攻撃を発生させる原因となることがあります。

DHCP環境でのダイナミックARP検査の設定

この手順では、2つのスイッチがダイナミックARP検査をサポートする場合にこの機能を設定する方法を示します。図22-2にあるように、ホスト1はスイッチAに、ホスト2はスイッチBに接続されています。どちらのスイッチも、ホストが配置されているVLAN 1上でダイナミックARP検査を実行しています。DHCPサーバは、スイッチAに接続されています。どちらのホストも同じDHCPサーバからIPアドレスを取得しています。したがって、スイッチAにはホスト1とホスト2のバインディングがあり、スイッチBにはホスト2のバインディングがあります。


) DHCPスヌーピング バインディング データベースのエントリにしたがって、ダイナミックARP検査は着信ARP要求およびARP応答のIP/MACアドレス バインディングを検証します。ダイナミックにIPアドレスが割り当てられたARPパケットを許可するには、DHCPスヌーピングを必ずイネーブルにしてください。設定の詳細については、「DHCP機能およびIPソース ガードの設定」を参照してください。


1つのスイッチのみがこの機能をサポートしている場合にダイナミックARP検査を設定する方法については、「非DHCP環境のARP ACLの設定」を参照してください。

ダイナミックARP検査を設定するには、イネーブルEXECモードで次の手順を行います。この手順は、両方のスイッチで行う必要があります。この手順は必須です。

 

コマンド
説明

ステップ 1

show cdp neighbors

スイッチ間の接続を検証します。

ステップ 2

configure terminal

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

ステップ 3

ip arp inspection vlan vlan-range

VLANごとにダイナミックARP検査をイネーブルにします。デフォルトでは、ダイナミック ARP検査はすべてのVLAN上でディセーブルになっています。

vlan-range には、VLAN ID番号で識別された単一のVLAN、ハイフンで区切られたVLAN範囲、またはカンマで区切られた一連のVLANを指定します。指定できる範囲は1~4094です。

両方のスイッチで同じVLAN IDを指定してください。

ステップ 4

interface interface-id

他のスイッチに接続されたインターフェイスを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 5

ip arp inspection trust

スイッチ間の接続を信頼性のある接続として設定します。

デフォルトでは、すべてのインターフェイスが信頼性がない接続になっています。

スイッチは、信頼できるインターフェイス上の他のスイッチから受信するARPパケットをチェックしません。単にパケットを転送するだけです。

信頼できないインターフェイスでは、スイッチがすべてのARP要求および応答を代行受信します。ローカル キャッシュを更新する前、およびパケットを適切な宛先に転送する前に、代行受信されたパケットが有効なIP/MACアドレス バインディングを持っているかどうかが検証されます。 ip arp inspection vlan logging グローバル コンフィギュレーション コマンドで指定されたロギング コンフィギュレーションに従い、スイッチは無効なパケットを廃棄し、ログ バッファにロギングします。 詳細については、「ログ バッファの設定」を参照してください。

ステップ 6

end

イネーブルEXECモードに戻ります。

ステップ 7

show ip arp inspection interfaces

show ip arp inspection vlan vlan-range

ダイナミックARP検査の設定を検証します。

ステップ 8

show ip dhcp snooping binding

DHCPバインディングを検証します。

ステップ 9

show ip arp inspection statistics vlan vlan-range

ダイナミックARP検査の統計をチェックします。

ステップ 10

copy running-config startup-config

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

ダイナミックARP検査をディセーブルにするには、 no ip arp inspection vlan vlan-range グローバル コンフィギュレーション コマンドを使用します。インターフェイスを信頼できない状態に戻すには、 no ip arp inspection trust インターフェイス コンフィギュレーション コマンドを使用します。

次に、ダイナミックARP検査をVLAN 1のスイッチAに設定する例を示します。スイッチBでも同様の手順を実行します。

Switch(config)# ip arp inspection vlan 1
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# ip arp inspection trust

非DHCP環境のARP ACLの設定

ここでは、図22-2にあるスイッチBがダイナミックARP検査またはDHCPスヌーピングをサポートしない場合に、ダイナミックARP検査を設定する手順を示します。

スイッチAのポート1を信頼できるポートとして設定すると、スイッチAおよびホスト1が、スイッチBまたはホスト2のいずれかによって攻撃される可能性があるため、セキュリティ ホールができます。この可能性を避けるには、スイッチAのポート1を信頼できないポートとして設定する必要があります。ホスト2からのARPパケットを許可するには、ARP ACLをセットアップしてVLAN 1に適用します。ホスト2のIPアドレスがスタティックでない場合(この場合、スイッチAでACL設定を適用することはできません)、レイヤ3でスイッチAをスイッチBから切り離し、ルータを使用してスイッチAとBの間でパケットをルーティングします。

スイッチAでARP ACLを設定するには、イネーブルEXECモードで次の手順を実行します。この手順は、非DHCP環境では必須です。

 

コマンド
説明

ステップ 1

configure terminal

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

ステップ 2

arp access-list acl-name

ARP ACLを定義し、ARPアクセス リスト コンフィギュレーション モードを開始します。デフォルトでは、ARPアクセス リストは定義されていません。


) ARPアクセス リストの最後には、暗黙のdeny ip any mac
anyコマンドがあります。


 

ステップ 3

permit ip host sender-ip mac host sender-mac [ log ]

指定したホスト(ホスト2)からのARPパケットを許可します。

sender-ip には、ホスト2のIPアドレスを入力します。

sender-mac には、ホスト2のMACアドレスを入力します。

(任意)Access Control Entry(ACE;アクセス制御エントリ)に一致する場合にパケットをログ バッファにロギングするには、 log を指定します。 ip arp inspection vlan logging グローバル コンフィギュレーション コマンドで matchlog キーワードも設定している場合、一致がロギングされます。詳細については、「ログ バッファの設定」を参照してください。

ステップ 4

exit

グローバル コンフィギュレーション モードに戻ります。

ステップ 5

ip arp inspection filter arp-acl-name vlan vlan-range [ static ]

ARP ACLをVLANに適用します。デフォルトでは、 VLANのいずれにも、定義されたARP ACLは適用されていません。

arp-acl-name には、ステップ2で作成したACLの名前を指定します。

vlan-range には、スイッチおよびホストが存在しているVLANを指定します。VLAN ID番号で識別された単一のVLAN、ハイフンで区切られたVLAN範囲、またはカンマで区切られた一連のVLANを指定できます。指定できる範囲は1~4094です。

(任意)ARP ACLでの暗黙の拒否を明示的な拒否として扱い、ACLのそこまでのステートメントに一致しないパケットを廃棄するには、 static を指定します。DHCPバインディングは使用されません。

このキーワードを指定しない場合、パケットを拒否するACLに明示的な拒否が存在しないことになり、パケットがACLのステートメントに一致しない場合には、パケットを許可するかまたは拒否するかをDHCPバインディングが判別することになります。

IP/MACアドレス バインディングのみを含むARPパケットは、ACLと照合して比較されます。パケットは、アクセス リストで許可されている場合のみ許可されます。

ステップ 6

interface interface-id

スイッチBに接続されたスイッチAインターフェイスを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 7

no ip arp inspection trust

スイッチBに接続されたスイッチAインターフェイスを、信頼できないインターフェイスとして設定します。

デフォルトでは、すべてのインターフェイスが信頼されません。

信頼できないインターフェイスでは、スイッチがすべてのARP要求および応答を代行受信します。ローカル キャッシュを更新する前、およびパケットを適切な宛先に転送する前に、代行受信されたパケットが有効なIP/MACアドレス バインディングを持っているかどうかが検証されます。 ip arp inspection vlan logging グローバル コンフィギュレーション コマンドで指定されたロギング コンフィギュレーションに従い、スイッチは無効なパケットを廃棄し、ログ バッファにロギングします。 詳細については、「ログ バッファの設定」を参照してください。

ステップ 8

end

イネーブルEXECモードに戻ります。

ステップ 9

show arp access-list [ acl-name ]

show ip arp inspection vlan vlan-range

show ip arp inspection interfaces

設定を確認します。

ステップ 10

copy running-config startup-config

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

ARP ACLを削除するには、 no arp access-list グローバル コンフィギュレーション コマンドを使用します。VLANに付加されたARP ACLを削除するには、 no ip arp inspection filter arp-acl-name vlan vlan-range グローバル コンフィギュレーション コマンドを使用します。

次に、スイッチAで host2 という名前のARP ACLを設定し、ホスト2(IPアドレス1.1.1.1およびMACアドレス0001.0001.0001)からのARPパケットを許可し、ACLをVLAN 1に適用し、スイッチAでポート1を信頼されないように設定する例を示します。

Switch(config)# arp access-list host2
Switch(config-arp-acl)# permit ip host 1.1.1.1 mac host 1.1.1
Switch(config-arp-acl)# exit
Switch(config)# ip arp inspection filter host2 vlan 1
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# no ip arp inspection trust

着信ARPパケットのレート制限

スイッチCPUは、ダイナミックARP検査の妥当性チェックを実行します。したがって、着信ARPパケットの数は、DoS攻撃を回避するため、レートが制限されます。

着信ARPパケットのレートが設定した制限値を超えると、スイッチはそのポートをerrdisableステートにします。指定したタイムアウト時間が経過したあとにポートが自動的にこの状態から抜け出すように、errdisable回復をイネーブルにするまで、ポートはこの状態のままになります。


) インターフェイスでレート制限を設定しない限り、インターフェイスの信頼状態を変更すると、レート制限もその信頼状態のデフォルト値に変更されます。レート制限を設定したあとは、信頼状態が変更されても、インターフェイスはそのレート制限のままとなります。no ip arp inspection limitインターフェイス コンフィギュレーション コマンドを入力した場合、インターフェイスはデフォルトのレート制限に戻ります。


トランク ポートおよびEtherChannelポートのレート制限の設定時の注意事項は、「ダイナミックARP検査設定時の注意事項」を参照してください。

着信ARPパケットのレートを制限するには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
説明

ステップ 1

configure terminal

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

ステップ 2

interface interface-id

レートを制限するインターフェイスを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 3

ip arp inspection limit { rate pps [ burst interval seconds ] | none }

インターフェイス上での着信ARP要求および応答のレートを制限します。

信頼できないインターフェイスでのデフォルトのレートは15 ppsで、信頼できるインターフェイスでは無制限です。バースト間隔は1秒です。

キーワードの意味は次のとおりです。

rate pps には、1秒あたりに処理される着信パケット数の上限を指定します。指定できる範囲は0~2048です。

(任意) burst interval seconds には、高速のARPパケットに対してインターフェイスがモニタされる、秒単位での連続インターバルを指定します。指定できる範囲は1~15です。

rate none の場合、処理可能な着信ARPパケットのレートを上限なしに指定します。

ステップ 4

exit

グローバル コンフィギュレーション モードに戻ります。

ステップ 5

errdisable recovery cause arp-inspection interval interval

(任意)ダイナミックARP検査errdisableステートからのエラー回復をイネーブルにします。

デフォルトでは、回復はディセーブルで、回復インターバルは300秒になっています。

interval interval には、errdisableステートからの回復時間を秒単位で指定します。指定できる範囲は30~86400です。

ステップ 6

exit

イネーブルEXECモードに戻ります。

ステップ 7

show ip arp inspection interfaces

show errdisable recovery

設定を確認します。

ステップ 8

copy running-config startup-config

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

デフォルトのレート制限設定に戻すには、 no ip arp inspection limit インターフェイス コンフィギュレーション コマンドを使用します。ダイナミックARP検査のエラー回復をディセーブルにするには、 no errdisable recovery cause arp-inspection グローバル コンフィギュレーション コマンドを使用します。

妥当性チェックの実行

ダイナミックARP検査では、不正なIP/MACアドレス バインディングを持つARPパケットを代行受信、ロギング、および廃棄します。スイッチを設定して、宛先MACアドレス、送信者およびターゲットIPアドレス、および送信元MACアドレスの追加チェックを実行できます。

着信ARPパケットで特定のチェックを実行するには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
説明

ステップ 1

configure terminal

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

ステップ 2

ip arp inspection validate {[ src-mac ] [ dst-mac ] [ ip ]}

着信ARPパケットで特定のチェックを実行します。デフォルトでは、チェックは実行されません。

キーワードの意味は次のとおりです。

src-mac では、イーサネット ヘッダーの送信元MACアドレスがARP本体の送信者MACアドレスと照合されます。このチェックは、ARP要求とARP応答の両方で実行されます。イネーブルになっている場合、異なるMACアドレスを持つパケットは、無効なパケットとして分類され、廃棄されます。

dst-mac では、イーサネット ヘッダーの宛先MACアドレスがARP本体のターゲットMACアドレスと照合されます。このチェックはARP応答に対して実行されます。イネーブルになっている場合、異なるMACアドレスを持つパケットは、無効なパケットとして分類され、廃棄されます。

ip では、無効および予想外のIPアドレスのARP本体をチェックします。アドレスに0.0.0.0、255.255.255.255、およびすべてのIPマルチキャスト アドレスが含まれます。送信者IPアドレスはすべてのARP要求および応答でチェックされ、ターゲットIPアドレスはARP応答でのみチェックされます。

最低1つのキーワードを指定する必要があります。各コマンドは、直前のコマンドの設定を上書きします。つまり、あるコマンドがsrcおよびdst macの検証をイネーブルにし、2番めのコマンドがIPの検証のみをイネーブルにしている場合、2番めのコマンドの結果としてsrcおよびdst macの検証がディセーブルになります。

ステップ 3

exit

イネーブルEXECモードに戻ります。

ステップ 4

show ip arp inspection vlan vlan-range

設定を確認します。

ステップ 5

copy running-config startup-config

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

チェックをディセーブルにするには、 no ip arp inspection validate [ src-mac ] [ dst-mac ] [ ip ]グローバル コンフィギュレーション コマンドを使用します。 転送、廃棄されたパケット、MACおよびIP検証が失敗したパケットの統計情報を表示するには show ip arp inspection statistics イネーブルEXECコマンド を使用します。

ログ バッファの設定

スイッチがパケットを廃棄するとき、エントリはログ バッファに保管され、レート制御ごとにシステム メッセージが生成されます。メッセージが生成されたあと、スイッチはログ バッファからエントリを消去します。各ログ エントリには、受信VLAN、ポート番号、送信元と宛先のIPアドレス、および送信元と宛先のMACアドレスといったフロー情報が含まれます。

ログ バッファのエントリは、複数のパケットを表すことができます。たとえば、同一ARPパラメータを持つ同じVLANでインターフェイスが多くのパケットを受信した場合、スイッチはログ バッファ内でパケットを1つのエントリとして結合させ、エントリに対して1つのシステム メッセージを生成します。

ログ バッファがオーバーフローした場合、ログ イベントはログ バッファに適合しないことになり、 show ip arp inspection log イネーブルEXECコマンドの表示が影響を受けます。パケットのカウントと時刻を除き、すべてのデータ位置に--が表示されます。そのエントリに対して、他の統計情報は提供されません。表示内にこのエントリが見つかった場合、ログ バッファのエントリ数を増やすか、ロギング レートを上げてください。

ログ バッファを設定するには、イネーブルEXECモードで次の手順を行います。この手順は任意です。

 

コマンド
説明

ステップ 1

configure terminal

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

ステップ 2

ip arp inspection log-buffer { entries number | logs number interval seconds }

ダイナミックARP検査のロギング バッファを設定します。

デフォルトでは、 ダイナミック ARP検査がイネーブルになっているとき、拒否または廃棄されたARPパケットがロギングされます。ログ エントリ数は32です。システム メッセージ数は1秒あたり5に制限されています。ロギング レート の間隔は1秒です

キーワードの意味は次のとおりです。

entries number には、バッファ内にロギングされるエントリ数を指定します。指定できる範囲は0~1024です。

logs number interval seconds には、指定した間隔でシステム メッセージを生成するエントリ数を指定します。

logs number に対して、指定できる範囲は0~1024です。値を0にした場合、エントリはログ バッファに置かれますが、システム メッセージは生成されません。

interval seconds に対して、指定できる範囲は0~86400秒(1日あたり)です。値を0にすると、システム メッセージが即座に生成されます(また、ログ バッファは常に空となります)。

間隔を0に設定すると、ログの0設定を上書きします。

logs 設定と interval 設定は相互作用します。 logs number Xが interval seconds Yより大きい場合、Y分のX(X/Y)個のシステム メッセージが毎秒生成されます。それ以外の場合、X分のY(Y/X)秒ごとに1つのシステム メッセージが送信されます。

ステップ 3

ip arp inspection vlan vlan-range logging { acl-match { matchlog | none } | dhcp-bindings { all | none | permit }}

VLANごとにロギングされるパケットのタイプを制御します。デフォルトでは、すべての拒否または廃棄されたパケットがロギングされます。 ロギングされる とは、エントリがログ バッファに置かれてシステム メッセージが生成されることを意味します。

キーワードの意味は次のとおりです。

vlan-range には、VLAN ID番号で識別された単一のVLAN、ハイフンで区切られたVLAN範囲、またはカンマで区切られた一連のVLANを指定します。指定できる範囲は1~4094です。

acl-match matchlogでは、ACEロギング コンフィギュレーションに基づいてパケットがロギングされます。このコマンドで matchlog キーワードを、 permit または deny ARPアクセス リスト コンフィギュレーション コマンドで log キーワードをそれぞれ指定した場合、ACLによって許可または拒否されたARPパケットがロギングされます。

acl-match none では、ACLに一致したパケットはロギングされません。

dhcp-bindings allでは、DHCPバインディングに一致したパケットがすべてロギングされます。

dhcp-bindings noneでは、DHCPバインディングに一致したパケットはロギングされません。

dhcp-bindings permitでは、DHCPバインディングで許可されたパケットがロギングされます。

ステップ 4

exit

イネーブルEXECモードに戻ります。

ステップ 5

show ip arp inspection log

設定を確認します。

ステップ 6

copy running-config startup-config

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

デフォルトのログ バッファ設定に戻すには、 no ip arp inspection log-buffer { entries | logs }グローバル コンフィギュレーション コマンドを使用します。 デフォルトのVLANログ設定に戻すには、 no
ip arp inspection vlan
vlan-range logging { acl-match | dhcp-bindings }グローバル コンフィギュレーション コマンドを使用します。ログ バッファを消去するには、 clear ip arp inspection log イネーブルEXECコマンドを使用します。

ダイナミックARP検査情報の表示

ダイナミックARP検査情報を表示するには、 表22-2 で説明するイネーブルEXECコマンドを使用します。

 

表22-2 ダイナミックARP検査情報を表示するコマンド

コマンド
説明

show arp access-list [ acl-name ]

ARP ACLについての詳細情報を表示します。

show ip arp inspection interfaces [ interface-id ]

指定したインターフェイスまたはすべてのインターフェイスのARPパケットの信頼状態およびレート制限を表示します。

show ip arp inspection vlan vlan-range

指定したVLANのダイナミックARP検査の設定および動作状態を表示します。VLANが指定されていないか範囲が指定されている場合、ダイナミックARP検査がイネーブル(アクティブ)になっているVLANについての情報のみが表示されます。

ダイナミックARP検査の統計をクリアまたは表示するには、 表22-3 で説明するイネーブルEXECコマンドを使用します。

 

表22-3 ダイナミックARP検査の統計情報をクリアまたは表示するコマンド

コマンド
説明

clear ip arp inspection statistics

ダイナミックARP検査の統計情報をクリアします。

show ip arp inspection statistics
[ vlan vlan-range ]

指定したVLANの転送、廃棄されたパケット、MAC検証に失敗したパケット、IP検証に失敗したパケット、ACLに許可されたおよび拒否されたパケット、およびDHCPに許可されたおよび拒否されたパケットに関する統計情報を表示します。VLANが指定されていないか範囲が指定されている場合、ダイナミックARP検査がイネーブル(アクティブ)になっているVLANについての情報のみが表示されます。

show ip arp inspection statistics コマンドでは、スイッチは、信頼できるダイナミックARP検査ポート上で各ARP要求および応答パケットに対して転送するパケット数を増加します。スイッチは、送信元MAC、宛先MAC、またはIP妥当性チェックにより拒否された各パケットに対するACLまたはDHCP許可パケット数を増加させ、さらに適切な失敗カウントを増加します。

ダイナミックARP検査のロギング情報をクリアまたは表示するには、 表22-4 で説明するイネーブルEXECコマンドを使用します。

 

表22-4 ダイナミックARP検査のロギング情報をクリアまたは表示するコマンド

コマンド
説明

clear ip arp inspection log

ダイナミックARP検査のログ バッファをクリアします。

show ip arp inspection log

ダイナミックARP検査のログ バッファの設定および内容を表示します。

これらのコマンドの詳細については、このリリースのコマンド リファレンスを参照してください。