ダイナミック ARP 検査の概要
ARP では、IP アドレスを MAC(メディア アクセス制御)アドレスにマッピングすることでレイヤ 2 ブロードキャスト ドメイン内の IP 通信を実現しています。たとえば、ホスト B がホスト A に情報を送信しようとしていて、ARP キャッシュ内にホスト A の MAC アドレスがないとします。ホスト B は、ブロードキャスト ドメイン内のすべてのホストに対してブロードキャスト メッセージを生成し、ホスト A の IP アドレスに関連する MAC アドレスを取得します。ブロードキャスト ドメイン内のすべてのホストは ARP 要求を受信し、ホスト A は MAC アドレスで応答します。ただし、ARP 要求を受信しなくても ARP がホストからの余計な応答を許可するために、ARP スプーフィング攻撃や ARP キャッシュのポイズニングが発生する可能性があります。攻撃のあと、攻撃下にあるデバイスからのすべてのトラフィックは攻撃者のコンピュータを介してルータ、スイッチ、またはホストに流れていきます。
悪意のあるユーザは、サブネットに接続されているシステムの APR キャッシュをポイズニングし、サブネット上の他のホストへ向かうトラフィックを代行受信することで、ネットワーク上のレイヤ 2 ネットワークに接続されているホスト、スイッチ、ルータを攻撃します。図 21-1 は、ARP キャッシュ ポイズニングの例です。
図 21-1 ARP キャッシュ ポイズニング
ホスト A、B、C は、インターフェイス A、B、C 上のスイッチに接続されていて、すべてが同じサブネット上にあります。IP アドレスおよび MAC アドレスは括弧内に示してあります。たとえば、ホスト A は IP アドレス IA と MAC アドレス MA を使用しています。ホスト A は、ホスト B と IP レイヤで通信を行う必要がある場合、ARP 要求をブロードキャストし、IP アドレス IB に関連する MAC アドレスを取得します。スイッチおよびホスト B は、ARP要求を受信すると、IP アドレス IA および MAC アドレス MA を含むホストの ARP バインディングを ARP キャッシュに入力します(たとえば IP アドレス IA が MAC アドレス MA にバインドされます)。ホスト B が応答すると、スイッチとホスト A は、IP アドレス IB と MAC アドレス MB が関連付けられているホストの ARP バインディングを持つ ARP キャッシュを読み込みます。
ホスト Cは、IP アドレス IA(または IB)と MAC アドレス MC が関連付けられているホストのバインディングを持つ偽造 ARP 応答をブロードキャストすることで、スイッチ、ホスト A、ホスト B の ARP キャッシュをポイズニングできます。ポイズニングされた ARP キャッシュのあるホストは、IA または IB 向けのトラフィックの宛先 MAC アドレスとして MAC アドレス MC を使用します。つまりホスト C がそのトラフィックを代行受信します。ホスト 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 パケットが信頼できるインターフェイスで受信される場合、スイッチはチェックなしにパケットを転送します。信頼できないインターフェイスでは、スイッチは有効な場合にだけパケットを転送します。
ip arp inspection vlan vlan-range グローバル コンフィギュレーション コマンドを使用して VLAN 単位でダイナミック ARP 検査をイネーブルにできます。設定の詳細については、「DHCP 環境でのダイナミック ARP 検査の設定」を参照してください。
非 DHCP 環境では、ダイナミック ARP 検査は、スタティックに設定された IP アドレスを持つホストのユーザ設定 ARP Access Control List(ACL; アクセス コントロール リスト)に対して、ARP パケットを検証できます。ARP ACL は、 arp access-list acl-name グローバル コンフィギュレーション コマンドを使用して定義されます。設定の詳細については、「非 DHCP 環境の ARP ACL の設定」を参照してください。スイッチは、廃棄されたパケットを記録します。ログ バッファの詳細については、「廃棄されたパケットのロギング」を参照してください。
パケット内の IP アドレスが無効か、または ARP パケットの本体にある MAC アドレスがイーサネット ヘッダーで指定されているアドレスと一致しない場合に、ARP パケットを廃棄するようにダイナミック ARP 検査を設定できます。 ip arp inspection validate { [ src-mac ] [ dst-mac ] [ ip ]} グローバル コンフィギュレーション コマンドを使用します。詳細については、「妥当性チェックの実行」を参照してください。
インターフェイス信頼状態およびネットワーク セキュリティ
ダイナミック ARP 検査は、信頼状態とスイッチ上の各インターフェイスとを関連付けます。信頼できるインターフェイスに着信したパケットは、すべてのダイナミック ARP 検査の検証チェックを迂回し、信頼できないインターフェイスに着信したパケットはダイナミック ARP 検査の検証プロセスで処理されます。
一般的なネットワーク設定では、ホスト ポートに接続するすべてのスイッチ ポートを untrusted に設定し、スイッチに接続しているすべてのスイッチ ポートを trusted に設定します。このような設定では、指定したスイッチからネットワークに入ったすべての ARP パケットがセキュリティ チェックを迂回します。VLAN またはネットワーク内のその他の場所でその他の検証を行う必要はありません。信頼設定を ip arp inspection trust インターフェイス コンフィギュレーション コマンドを使用して設定します。
注意 信頼状態は慎重に設定してください。インターフェイスを信頼すべきときに untrusted と設定すると、接続が切断される可能性があります。
図 21-2 では、スイッチ A およびスイッチ B の両方が、ホスト 1 およびホスト 2 のそれぞれを含む VLAN でダイナミック ARP 検査を実行しているとします。ホスト 1 およびホスト 2 がスイッチ A に接続している DHCP サーバから IP アドレスを取得すると、スイッチ A だけがホスト 1 の IP アドレスと MAC アドレスのペアをバインドします。このため、スイッチ A およびスイッチ B の間のインターフェイスが信頼できない場合、ホスト 1 からの ARP パケットはスイッチ B によって廃棄されます。ホスト 1 およびホスト 2 の間の接続は失われます。
図 21-2 ダイナミック ARP 検査がイネーブルである VLAN での ARP パケット検証
実際にインターフェイスを信頼できない場合にインターフェイスを信頼できるように設定してしまうと、ネットワークにセキュリティ ホールが残ってしまいます。スイッチ A でダイナミック ARP 検査が動作していない場合、ホスト 1 は簡単にホスト B の ARP キャッシュをポイズニングできます(スイッチ間のリンクが trusted に設定されている場合はホスト 2 も可能)。この状態は、スイッチ B がダイナミック ARP 検査を実行していても発生します。
ダイナミック ARP 検査は、ダイナミック ARP 検査を実行しているスイッチに接続している(信頼できないインターフェイス上の)ホストがネットワーク内の他のホストの ARP キャッシュをポイズニングしないようにするものです。ただし、ダイナミック ARP 検査では、ネットワークの他の部分にあるホストでは、ダイナミック ARP 検査を実行しているスイッチに接続しているホストのキャッシュに対するポイズニングは回避されません。
VLAN 内にあるスイッチの中で、ダイナミック ARP 検査を実行しているものとしていないものがある場合、そのようなスイッチに接続しているインターフェイスを untrusted に設定します。ただし、ダイナミック 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 グローバル コンフィギュレーション コマンドを使用して、指定したタイムアウト期間の経過後にポートがこのステートから自動的に回復するように errdisable 回復をイネーブルにできます。
設定の詳細については、「着信 ARP パケットのレート制限」を参照してください。
ARP ACL と DHCP スヌーピング エントリの相対的なプライオリティ
ダイナミック ARP 検査では、有効な IP と MAC アドレスのバインディングのリスト用に DHCP スヌーピング バインディング データベースを使用します。
ARP ACL は DHCP スヌーピング バインディング データベース内のエントリよりも優先度が高くなります。 ip arp inspection filter vlan グローバル コンフィギュレーション コマンドを使用して ACL を設定した場合、スイッチは ACL だけを使用します。スイッチは最初に ARP パケットとユーザ定義の ARP ACL を比較します。ARP ACL が ARP パケットを拒否した場合、DHCP スヌーピングによって読み込まれたデータベースに有効なバインディングがあっても、スイッチもパケットを拒否します。
廃棄されたパケットのロギング
スイッチがパケットを廃棄する際に、ログ バッファにエントリを配置してレート制限ベースでシステム メッセージを生成します。メッセージの生成後、スイッチはエントリをログ バッファから削除します。各ログ エントリには、受信 VLAN、ポート番号、送信元および宛先 IP アドレス、送信元および宛先 MAC アドレスなどのフロー情報が含まれています。
ip arp inspection log-buffer グローバル コンフィギュレーション コマンドを使用して、バッファ内のエントリ数、およびシステム メッセージを生成するのに指定した間隔で必要となるエントリ数を設定します。 ip arp inspection vlan logging グローバル コンフィギュレーション コマンドを使用してロギングされるパケットのタイプを指定できます。設定の詳細については、「ログ バッファの設定」を参照してください。
ダイナミック ARP 検査の設定
• 「デフォルトのダイナミック ARP 検査の設定」
• 「ダイナミック ARP 検査の設定時の注意事項」
• 「DHCP 環境でのダイナミック ARP 検査の設定」(DHCP 環境で必須)
• 「非 DHCP 環境の ARP ACL の設定」(非 DHCP 環境で必須)
• 「着信 ARP パケットのレート制限」(任意)
• 「妥当性チェックの実行」(任意)
• 「ログ バッファの設定」(任意)
デフォルトのダイナミック ARP 検査の設定
表 21-1 に、デフォルトのダイナミック ARP 検査の設定を示します。
表 21-1 デフォルトのダイナミック ARP 検査の設定
|
|
ダイナミック ARP インスペクション |
すべての VLAN でディセーブル。 |
インターフェイス信頼状態 |
すべてのインターフェイスが信頼できない。 |
着信 ARP パケットのレート制限 |
このレートは、信頼できないインターフェイス上で 15 pps に設定されています。ただし、1 台のホストが 1 秒間に 15 台の新規ホストに接続できるスイッチド ネットワークであると仮定しています。 信頼できるすべてのインターフェイスでは、レートは無制限です。 バースト インターバルは 1 秒に設定されています。 |
非 DHCP 環境の ARP ACL |
ARP ACL は定義されません。 |
妥当性チェック |
どの検証も実行されません。 |
ログ バッファ |
ダイナミック ARP 検査がイネーブルの場合、すべての拒否または廃棄 ARP パケットがログされます。 ログ内のエントリ数は 32 です。 システム メッセージの数は 1 秒あたり 5 つに制限されています。 ロギングレート インターバルは 1 秒です。 |
VLAN 単位ロギング |
拒否または廃棄されたすべての ARP パケットがログされます。 |
ダイナミック ARP 検査の設定時の注意事項
• ダイナミック ARP 検査は着信セキュリティ機能で、発信チェックは実行しません。
• ダイナミック ARP 検査は、ダイナミック ARP 検査をサポートしていないスイッチや、この機能をイネーブルにしていないスイッチに接続されたホストでは有効ではありません。man-in-the-middle 攻撃が単一のレイヤ 2 ブロードキャスト ドメインに限定されているため、ダイナミック ARP 検査チェックのあるドメインとチェックのないドメインとを分離します。この処置により、ダイナミック ARP 検査をイネーブルにしたドメイン内のホストの ARP キャッシュが保護されます。
• 着信 ARP 要求と ARP 応答内の IP と MAC アドレスのバインディングを確認する場合、ダイナミック ARP 検査は DHCP スヌーピング バインディング データベース内のエントリに依存します。IP アドレスがダイナミックに割り当てられている ARP パケットを許可するために、DHCP スヌーピングをイネーブルにしていることを確認します。設定の詳細については、 第 20 章「DHCP 機能および IP ソース ガードの設定」 を参照してください。
DHCP スヌーピングがディセーブルの場合または非 DHCP 環境では、ARP ACL を使用してパケットを許可または拒否します。
• ダイナミック ARP 検査は、アクセス ポート、トランク ポート、EtherChannel ポート、およびプライベート VLAN ポートでサポートされています。
(注) RSPAN VLAN 上では、ダイナミック ARP 検査をイネーブルにしないでください。RSPAN VLAN 上でダイナミック ARP 検査をイネーブルにすると、ダイナミック ARP 検査パケットが、RSPAN 宛先ポートに到達しなくなる可能性があります。
• 物理ポートとチャネル ポートの信頼状態が一致した場合にだけ、物理ポートは EtherChannel ポート チャネルに加入できます。そうでない場合、物理ポートはポート チャネル内で停止したままになります。ポート チャネルは、チャネルに最初に加入した物理ポートの信頼状態を継承します。その結果、最初の物理ポートの信頼状態はチャネルの信頼状態と一致する必要がありません。
逆にいえば、ポート チャネルの信頼状態を変更した場合、スイッチはチャネルを構成するすべての物理ポートの信頼状態を新規に設定します。
• ポート チャネルの動作レートは、チャネル内のすべての物理ポートを累積したものです。たとえば、ポート チャネルの ARP レート制限を 400 pps に設定した場合、チャネル上に集約される全インターフェイスで合計 400 pps を受信します。EtherChannel ポートの着信 ARP パケットのレートは、全チャネル メンバーからのパケットの着信レートを合計したものです。チャネルポート メンバーの着信 ARP パケットのレートを検査したあとに、EtherChannel ポートのレート制限を設定します。
物理ポート上の着信パケットのレートは、物理ポート設定ではなくポートチャネル設定に対してチェックされます。ポート チャネルのレート制限設定は、物理ポートの設定からは独立しています。
EtherChannel が設定レートよりも多くの ARP パケットを受信する場合、(すべての物理ポートを含む)チャネルは errdisable ステートになります。
• 着信トランク ポート上の ARP パケットのレートを制限していることを確認します。集約を反映して、複数のダイナミック ARP 検査対応 VLAN でパケットを処理するために、トランク ポートを高めのレートに設定します。また、 ip arp inspection limit none インターフェイス コンフィギュレーション コマンドを使用してレートを無制限にできます。1 つの VLAN でレート制限が高いと、ソフトウェアがポートを errdisable ステートにするときに、他の VLAN が DoS 攻撃を受けるおそれがあります。
• スイッチ上でダイナミック ARP 検査をイネーブルにすると、ARP トラフィックをポリシングするように設定されたポリサーが無効になります。その結果、すべての ARP トラフィックが CPU に送信されます。
DHCP 環境でのダイナミック ARP 検査の設定
この手順は、2 つのスイッチがこの機能をサポートしている場合にダイナミック ARP 検査を設定する方法について説明します。図 21-2で示しているように、ホスト 1 はスイッチ A に接続していて、ホスト 2 はスイッチ B に接続しています。両方のスイッチが、ホストが位置する VLAN 1 でダイナミック ARP 検査を実行しています。DHCP サーバはスイッチ A に接続されています。両方のホストは、同じ DHCP サーバから IP アドレスを取得します。したがって、スイッチ A にはホスト 1 およびホスト 2 のバインディングがあり、スイッチ B にはホスト 2 のバインディングがあります。
(注) 着信 ARP 要求と ARP 応答内の IP と MAC アドレスのバインディングを確認する場合、ダイナミック ARP 検査は DHCP スヌーピング バインディング データベース内のエントリに依存します。IP アドレスがダイナミックに割り当てられている ARP パケットを許可するために、DHCP スヌーピングをイネーブルにしていることを確認します。設定の詳細については、第 20 章「DHCP 機能および IP ソース ガードの設定」を参照してください。
1 つのスイッチだけがダイナミック ARP 検査をサポートしている場合の、この機能の設定の詳細については、「非 DHCP 環境の ARP ACL の設定」を参照してください。
ダイナミック ARP 検査を設定するには、特権 EXEC モードで次の手順を行います。この手順を両方のスイッチで実行する必要があります。この手順は必須です。
|
|
|
ステップ 1 |
show cdp neighbors |
スイッチ間の接続を確認します。 |
ステップ 2 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 3 |
ip arp inspection vlan vlan-range |
ダイナミック ARP 検査を VLAN 単位でイネーブルにします。デフォルトで、 ダイナミック ARP 検査はすべての VLAN でディセーブルに設定されています。 vlan-range では、VLAN ID 番号で識別された単一の VLAN、ハイフンで区切られた VLAN 範囲、またはカンマで区切られた一連の VLAN を指定します。指定できる範囲は 1 ~ 4094 です。 両方のスイッチに同じ VLAN ID を指定します。 |
ステップ 4 |
interface interface-id |
他のスイッチに接続されたインターフェイスを指定し、インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 5 |
no shutdown |
必要に応じて、ポートをイネーブルにします。デフォルトでは、User Network Interface(UNI; ユーザ ネットワーク インターフェイス)と Enhanced Network Interface(ENI; 拡張ネットワーク インターフェイス)はディセーブルに、Network Node Interface(NNI; ネットワーク ノード インターフェイス)はイネーブルに設定されています。 |
ステップ 6 |
ip arp inspection trust |
スイッチ間の接続を trusted に設定します。 デフォルトでは、すべてのインターフェイスが untrusted です。 スイッチは、信頼できるインターフェイス上にある他のスイッチから受信した ARP パケットをチェックしません。単純にパケットを転送するだけです。 信頼できないインターフェイスの場合、スイッチはすべての ARP 要求と ARP 応答を代行受信します。ローカル キャッシュを更新し、該当する宛先にパケットを転送する前に、代行受信したパケットが有効な IP/MAC アドレス バインディングを持つかどうかを検証します。スイッチは、無効なパケットを廃棄し、 ip arp inspection vlan logging グローバル コンフィギュレーション コマンドで指定されたロギング設定に従ってログ バッファに記録します 。 詳細については、「ログ バッファの設定」を参照してください。 |
ステップ 7 |
end |
特権 EXEC モードに戻ります。 |
ステップ 8 |
show ip arp inspection interfaces show ip arp inspection vlan vlan-range |
ダイナミック ARP 検査の設定を確認します。 |
ステップ 9 |
show ip dhcp snooping binding |
DHCP バインディングを確認します。 |
ステップ 10 |
show ip arp inspection statistics vlan vlan-range |
ダイナミック ARP 検査の統計情報をチェックします。 |
ステップ 11 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
ダイナミック ARP 検査をディセーブルにするには、 no ip arp inspection vlan vlan-range グローバル コンフィギュレーション コマンドを使用します。ポートを untrusted の状態に戻すには、 no ip arp inspection trust インターフェイス コンフィギュレーション コマンドを使用します。
次は、VLAN 1 のスイッチ A でダイナミック ARP 検査を設定する方法の例です。スイッチ B でも同様の手順を実行します。
Switch(config)# ip arp inspection vlan 1
Switch(config)# interface gigabitethernet0/1
Switch(config-if)# ip arp inspection trust
非 DHCP 環境の ARP ACL の設定
この手順は、図 21-2で示すスイッチ B がダイナミック ARP 検査または DHCP スヌーピングをサポートしていない場合に、ダイナミック ARP 検査を設定する方法を示しています。
スイッチ A のポート 1 を trusted に設定すると、スイッチ A およびホスト 1 はスイッチ B またはホスト 2 から攻撃される可能性があるため、セキュリティ ホールができてしまいます。この可能性をなくすため、スイッチ A のポート 1 を信頼できないものとして設定する必要があります。ホスト 2 からの ARP パケットを許可するには、ARP ACL を設定して VLAN 1 に適用する必要があります。ホスト 2 の IP アドレスがスタティックでなく、スイッチ A で ACL 設定を適用できない場合は、レイヤ 3 でスイッチ B とスイッチ A を分離し、ルータを使用してその間でパケットをルーティングする必要があります。
スイッチ 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 番号で識別された 1 つの 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 shutdown |
必要に応じて、ポートをイネーブルにします。デフォルトでは、UNI および ENI はディセーブルに、NNI はイネーブルに設定されています。 |
ステップ 8 |
no ip arp inspection trust |
スイッチ B に接続しているスイッチ A インターフェイスを untrusted として設定します。 デフォルトでは、すべてのインターフェイスが untrusted です。 信頼できないインターフェイスの場合、スイッチはすべての ARP 要求と ARP 応答を代行受信します。ローカル キャッシュを更新し、該当する宛先にパケットを転送する前に、代行受信したパケットが有効な IP/MAC アドレス バインディングを持つかどうかを検証します。スイッチは、無効なパケットを廃棄し、 ip arp inspection vlan logging グローバル コンフィギュレーション コマンドで指定されたロギング設定に従ってログ バッファに記録します 。 詳細については、「ログ バッファの設定」を参照してください。 |
ステップ 9 |
end |
特権 EXEC モードに戻ります。 |
ステップ 10 |
show arp access-list [ acl-name ] show ip arp inspection vlan vlan-range show ip arp inspection interfaces |
設定を確認します。 |
ステップ 11 |
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 グローバル コンフィギュレーション コマンドを使用します。
次に、 host2 という ARP ACL を設定し、ホスト 2(IP アドレスが 1.1.1.1 で MAC アドレスが 0001.0001.0001)からの ARP パケットを許可し、ACL を VLAN 1 に適用し、スイッチ A のポート 1 を untrusted に設定する例を示します。
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 gigabitethernet0/1
Switch(config-if)# no ip arp inspection trust
着信 ARP パケットのレート制限
スイッチの CPU はダイナミック ARP 検査妥当性チェックを実行するので、着信 ARP パケットの数は、DoS 攻撃を受けないようにレート制限されています。
着信 ARP パケットのレートが設定された制限を超えた場合、スイッチはポートを errdisable ステートにします。指定したタイムアウト期間の経過後、ポートがこのステートから自動的に回復するように errdisable 回復をイネーブルにしないと、ポートは errdisable ステートのままになります。
(注) インターフェイスにレート制限を設定しない場合、インターフェイスの信頼状態の変更によって、レート制限がその信頼状態のデフォルト値に変更されます。レート制限を設定すると、インターフェイスはその信頼状態が変更された場合でも設定されたレート制限を維持します。no ip arp inspection limit インターフェイス コンフィギュレーション コマンドを入力すると、インターフェイスはデフォルトのレート制限に戻ります。
トランク ポートおよび EtherChannel ポートのレート制限の設定時の注意事項については、「ダイナミック ARP 検査の設定時の注意事項」を参照してください。
着信 ARP パケットのレートを制限するには、特権 EXEC モードで次の手順を実行します。この手順は任意です。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
interface interface-id |
レート制限を設定するインターフェイスを指定し、インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 3 |
no shutdown |
必要に応じて、ポートをイネーブルにします。デフォルトでは、UNI および ENI はディセーブルに、NNI はイネーブルに設定されています。 |
ステップ 4 |
ip arp inspection limit { rate pps [ burst interval seconds ] | none } |
インターフェイス上の着信 ARP 要求および応答のレートを制限します。 デフォルトのレートは信頼できないインターフェイスで 15 pps、信頼できるインターフェイスで無制限です。バースト インターバルは 1 秒に設定されています。 キーワードの意味は次のとおりです。 • rate pps では、1 秒間に処理される着信パケットの上限数を指定します。指定できる範囲は 0 ~ 2048 pps です。 • (任意) burst interval seconds では、高いレートの ARP パケットについてインターフェイスがモニタされる累積期間を秒単位で指定します。範囲は 1 ~ 15 です。 • rate none では、処理可能な着信 ARP パケットの上限を指定しません。 |
ステップ 5 |
exit |
グローバル コンフィギュレーション モードに戻ります。 |
ステップ 6 |
errdisable recovery cause arp-inspection interval interval |
(任意)ダイナミック ARP 検査の errdisable ステートからのエラー回復をイネーブルにします。 デフォルトで、回復はディセーブルで、回復間隔は 300 秒です。 interval interval では、errdisable ステートから回復する時間を秒単位で指定します。指定できる範囲は 30 ~ 86400 です。 |
ステップ 7 |
exit |
特権 EXEC モードに戻ります。 |
ステップ 8 |
show ip arp inspection interfaces show errdisable recovery |
設定を確認します。 |
ステップ 9 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
デフォルトのレート制限設定に戻すには、 no ip arp inspection limit インターフェイス コンフィギュレーション コマンドを使用します。ダイナミック ARP 検査のエラー回復をディセーブルにするには、 no errdisable recovery cause arp-inspection グローバル コンフィギュレーション コマンドを使用します。
妥当性チェックの実行
ダイナミック ARP 検査では、無効な IP/MAC アドレス バインディングのある ARP パケットを代行受信し、記録し、廃棄します。宛先 MAC アドレス、発信者 IP アドレスおよび対象 IP アドレス、送信元 MAC アドレスで追加チェックを実施するようにスイッチを設定できます。
着信 ARP パケットで特定のチェックを実施するには、特権 EXEC モードで次の手順を実行します。この手順は任意です。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
ip arp inspection validate {[ src-mac ] [ dst-mac ] [ ip ]} |
着信 ARP パケットで特定のチェックを実行します。デフォルトで、チェックは実行しません。 キーワードの意味は次のとおりです。 • src-mac では、ARP ボディ内の発信者 MAC アドレスに対して、イーサネット ヘッダーの送信元 MAC アドレスをチェックします。この検証は、ARP 要求と ARP 応答に両方に対して実行されます。このチェックがイネーブルの場合、異なる MAC アドレスを持つパケットは無効として分類され、廃棄されます。 • dst-mac では、ARP 形式の対象 MAC アドレスに対して、イーサネット ヘッダーの宛先 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 つのエントリに結合して、エントリの単一のシステム メッセージを生成します。
ログ バッファがオーバーフローする場合は、ログ イベントがログ バッファに収まらないことを意味しており、 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 より大きい場合は、X を Y で割って(X/Y)求められたシステム メッセージ数が 1 秒間に送信されます。それ以外の場合は、Y を X で割って(Y/X)求められた間隔(秒)で 1 つのシステム メッセージが送信されます。 |
ステップ 3 |
ip arp inspection vlan vlan-range logging { acl-match { matchlog | none } | dhcp-bindings { all | none | permit }} |
記録されるパケットのタイプを VLAN 単位で制御します。デフォルトで、すべての拒否および廃棄パケットが記録されます。用語 logged は、エントリはログ バッファに置かれてシステム メッセージが生成されることを意味します。 キーワードの意味は次のとおりです。 • vlan-range では、VLAN ID 番号で識別された単一の VLAN、ハイフンで区切られた VLAN 範囲、またはカンマで区切られた一連の VLAN を指定します。指定できる範囲は 1 ~ 4094 です。 • acl-match matchlog では、ACR ロギング設定に基づいたパケットを記録します。このコマンドでキーワード 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 コマンドを使用します。