ダイナミックARP検査とは
ダイナミックARP検査とは、ネットワーク内のARPパケットを検査するセキュリティ機能です。この機能をCatalyst
スイッチ上のVLANに実装させることにより、そのVLAN内でやり取りされるARPパケットは監視されることになり
IPアドレスとMACアドレスのバインディングが不正なARPパケットをCatalystスイッチが代行受信して破棄します。
ARPキャッシュポイズニングとは
下図において、例えば悪意のあるホストCがIPアドレス(192.168.0.1)とMACアドレス(0000.0000.000c)が関連
付けられている偽造ARP ReplyをブロードキャストすることでARPキャッシュをポイズニングすることができます。
ホストBは(192.168.0.1)宛のトラフィックにホストCのMACアドレス(
0000.0000.000c)を使用してEthernet上の
通信を行うため、本来ホストAが受信すべきトラフィックをホストCが不正に受信することになります。この結果、
ホストCは man-in-the-middle 攻撃ができます。ダイナミックARP検査はこれを防止することができるのです。

ダイナミックARP検査の動作
ダイナミックARP検査により、有効なARP
RequestおよびARP
Replyのみがスイッチ上で転送されることが保証
されます。ダイナミックARP検査が有効にされたVLAN上では、Catalystスイッチは以下のアクティビティを実行。
@ 信頼できないポート ( no ip arp inspection
trust ) 上のすべての [ ARP Request ] および
[ ARP Reply ] を代行受信します。
A 代行受信された各パケットに有効なIPアドレスとMACアドレスのバインディングがあるかどうかを確認します。
B Catalyst上で保持しているバインディングデータベース上に存在しない組み合わせである場合、その無効なARPを破棄します。
ダイナミックARP検査で使用される2種類のデータベース
ダイナミックARP検査の際に使用されるIPアドレスとMACアドレスのバインディング情報は、ネットワーク上で
DHCPを使用している場合、DHCPスヌーピングバインディングデータベースに保存されている情報に基づいて
ARPパケットの有効性を判断します。従い、DHCP環境でダイナミックARP検査を発動させるためには、併せて
DHCPスヌーピングを有効にする必要があります。一方、非DHCP環境においては、Catalyst上でスタティック
に設定されたIPアドレスとMACアドレスの関連付けに対してARPパケットの有効性を判断することができます。
その場合、DHCPスヌーピングを有効にする必要はなく、Catalyst上で
[ arp access-list ] の定義を行います。
オプションの設定による「追加のチェック」として、パケット内のIPアドレスが無効であるか、またはARPパケット
内のMACアドレスがイーサネットヘッダーで指定されているアドレスと一致しない場合に、ARPパケットを破棄
するようにダイナミックARP検査を行うよう
[ ip arp inspection validate ] コマンドにより設定することもできます。
インターフェースの信頼状態
ダイナミックARP検査では、信頼できるI/Fに着信したパケットにはARP検査を行わず、信頼しないI/Fに着信
したパケットに対してARP検査を行います。ダイナミックARP検査をVLAN上で有効にした場合、そのVLANの
すべてのI/Fでは、デフォルトで信頼しない(
no ip arp inspection trust ) 状態にあります。一般的な設定では
ホストポートに接続するすべてのI/Fを [ unturst
] にして、スイッチに接続する I/F を [ trust
] に設定します。
下図では、スイッチAとBの両方においてホストAとホストBのVLAN上でダイナミックARP検査を行っています。
ホストA、BはDHCPによりIPアドレスが割り当てられる場合、ホストAのIPアドレスとMACアドレスがバインド
された情報 ( DHCPスヌーピングバインディングデータベースの情報
) は、スイッチAにしか保持されません。
その結果、スイッチAとBを接続するI/Fが
[
untrust ] である場合、ホストAからのARPパケットはスイッチBに
よって破棄されるので、ホストAとホストBは通信することができません。従い、スイッチ間のtrustは必要です。

但し、ダイナミックARP検査が行われていないスイッチに接続している、スイッチのI/Fを
trust にしてしまうと
ARPキャッシュポイズニングを行われる可能性があるため、ダイナミックARP検査が行われていないスイッチ
に接続する場合はそのI/Fを先ず [ untrust
] に設定します。そして、ダイナミックARP検査が行われていない
スイッチ上のホストが非DHCP環境である場合、その情報をもとに
[ arp access-list ] によりARP検査を行う。
※ [ arp-access-list ] で定義されたデータベースは、DHCPスヌーピングデータベース内のエントリよりも優先度が高くなります。

|