ダイナミックARPインスペクションとは
ダイナミック ARP インスペクションは、ネットワーク内の ARP パケットを検証するセキュリティ機能です。無効な IP-to-MAC アドレス バインディングを持つ ARP パケットを傍受し、ログに記録し、破棄します。この機能は、特定の中間者攻撃からネットワークを保護します。
トポロジ
![](https://itinfranote.com/wp-content/uploads/image-12.png)
ダイナミックARPインスペクションの設定
DHCP環境でのダイナミックARPインスペクションの設定
VLAN ごとに動的 ARP インスペクションを有効にします。
SW1(config-if)#ip arp inspection vlan 100
現在ログに記録されているパケットもスマートログに記録されるように指定します。デフォルトでは、ドロップされたパケットはすべてログに記録されます。
※CMLのIOSL2では設定できませんでした。
SW1(config-if)#ip arp inspection smartlog
スイッチ間の接続を信頼できるものとして構成します。
スイッチは、信頼されたインターフェイス上の他のスイッチから受信した ARP パケットをチェックしません。
SW1(config)#interface range GigabitEthernet 0/1-2
SW1(config-if-range)#ip arp inspection trust
設定確認
ダイナミック ARP インスペクションの設定を確認します。
SW1#show ip arp inspection vlan 100
Source Mac Validation : Disabled
Destination Mac Validation : Disabled
IP Address Validation : Disabled
Vlan Configuration Operation ACL Match Static ACL
—- ————- ——— ——— ———-
100 Enabled Active
Vlan ACL Logging DHCP Logging Probe Logging
—- ———– ———— ————-
100 Deny Deny Off
SW1#
DHCP バインディングを確認します。
SW1#show ip dhcp snooping binding
MacAddress IpAddress Lease(sec) Type VLAN Interface
—————— ————— ———- ————- —- ——————–
52:54:00:1A:72:CE 192.168.1.11 86312 dhcp-snooping 100 GigabitEthernet0/1
Total number of bindings: 1
SW1#
ダイナミック ARP インスペクション統計を確認します。
SW1#show ip arp inspection statistics vlan 100
Vlan Forwarded Dropped DHCP Drops ACL Drops
—- ——— ——- ———- ———
100 0 0 0 0
Vlan DHCP Permits ACL Permits Probe Permits Source MAC Failures
—- ———— ———– ————- ——————-
100 0 0 0 0
Vlan Dest MAC Failures IP Validation Failures Invalid Protocol Data
—- —————– ———————- ———————
100 0 0 0
SW1#
非 DHCP 環境用の ARP ACL の設定
スイッチ Bがダイナミック ARP インスペクションまたは DHCP スヌーピングをサポートしていない場合にARP ACLを設定します。
ARP ACLを定義します。
IPアドレス:192.168.2.1 MACアドレス:1234.5678.90ab
からのARPパケットを許可します。
SW2(config)#arp access-list TEST1
SW2(config-arp-nacl)#permit ip host 192.168.2.1 mac host 1234.5678.90ab
SW2(config-arp-nacl)#exit
ARP ACL を VLAN に適用します。
SW2(config)#ip arp inspection filter TEST1 vlan 200 static
インターフェイスを信頼できるものとして設定します。
信頼できないインターフェイスの場合、スイッチはすべての ARP 要求と応答を傍受します。
SW2(config)#interface gi0/1
SW2(config-if)#ip arp inspection trust
設定確認
SW2#show arp access-list TEST1
ARP access list TEST1
permit ip host 192.168.2.1 mac host 1234.5678.90ab
SW2#
受信 ARP パケットのレートを制限する
スイッチCPUはダイナミックARPインスペクション検証チェックを実行するので、DoS攻撃を防ぐために受信ARPパケット数のレート制限をすることができます。
着信 ARP パケットのレートが設定された制限を超えると、スイッチはポートを errdisable ステートにします。
インターフェイス上で受信する ARP 要求と応答の速度を制限します。
rate ppsには、1 秒あたりに処理される受信パケット数の上限を指定します。範囲は 0 ~ 2048 pps です。
burst interval秒には、インターフェイスが高レートの ARP パケットを監視する連続間隔を秒単位で指定します。範囲は 1 ~ 15 です。
rate noneと設定することで、処理できる受信 ARP パケットのレートの上限を指定しません。
SW2(config)#int g0/1
SW2(config-if)#ip arp inspection limit rate 100 burst interval 2
SW2(config-if)#exit
ダイナミック ARP インスペクションのエラーディセーブル状態からのエラー回復を有効にし、ダイナミック ARP インスペクションの回復メカニズム変数を設定します。
デフォルトでは、回復は無効になっており、回復間隔は 300 秒です。
intervalには、errdisable 状態から回復する時間を秒単位で指定します。範囲は 30 ~ 86400 です。
SW2(config)#errdisable detect cause arp-inspection
SW2(config)#errdisable recovery cause arp-inspection
SW2(config)#errdisable recovery interval 30
設定を確認します。
SW2#sh ip arp inspection interfaces GigabitEthernet 0/1
Interface Trust State Rate (pps) Burst Interval
————— ———– ———- ————–
Gi0/1 Trusted 100 2
SW2#
SW2#show errdisable recovery | i arp
arp-inspection Enabled
SW2#
検証チェックの実行
ダイナミック ARP インスペクションは、無効な IP-to-MAC アドレス バインディングを持つ ARP パケットを傍受し、ログに記録し、破棄します。宛先 MAC アドレス、送信者およびターゲット IP アドレス、送信元 MAC アドレスに対して追加のチェックを実行するようにスイッチを設定できます。
コマンド
受信ARPパケットに対してチェックを実行します。
SW(config)#ip arp inspection validate {[ src-mac ] [ dst-mac ] [ ip ]}
src-mac | イーサネット ヘッダーの送信元 MAC アドレスを ARP 本文の送信者 MAC アドレスと比較して確認します。 このチェックは、ARP 要求と応答の両方で実行されます。有効にすると、異なる MAC アドレスを持つパケ ットは無効として分類され、ドロップされます。 |
dst-mac | イーサネット ヘッダーの宛先 MAC アドレスを ARP 本文のターゲット MAC アドレスと比較して確認します。 このチェックは ARP 応答に対して実行されます。有効にすると、異なる MAC アドレスを持つパケットは無効と して分類され、ドロップされます。 |
ip | ARP 本文に無効な IP アドレスや予期しない IP アドレスがないか確認してください。 アドレスには、0.0.0.0、255.255.255.255、およびすべての IP マルチキャスト アドレスが含まれます。送信者 IP アドレスはすべての ARP 要求および応答でチェックされ、ターゲット IP アドレスは ARP 応答でのみチェッ クされます。 |
設定確認
SW2(config)#ip arp inspection validate src-mac
SW2(config)#end
SW2#sh ip arp inspection vlan 200
Source Mac Validation : Enabled
Destination Mac Validation : Disabled
IP Address Validation : Disabled
Vlan Configuration Operation ACL Match Static ACL
—- ————- ——— ——— ———-
200 Disabled Inactive TEST1 Yes
Vlan ACL Logging DHCP Logging Probe Logging
—- ———– ———— ————-
200 Deny Deny Off
ログバッファの構成
スイッチがパケットをドロップすると、ログ バッファにエントリが配置され、レート制御ベースでシステム メッセージが生成されます。
コマンド
ダイナミック ARP インスペクション ロギング バッファを設定します。
SW(config)#ip arp inspection log-buffer { entries number | logs number interval seconds }
entries number | バッファに記録するエントリの数を指定します。範囲は 0 ~ 1024 です。 |
logs number interval seconds | 指定した間隔でシステム メッセージを生成するエントリの数を指定します。 |
VLAN ごとにログに記録されるパケットのタイプを制御します。デフォルトでは、拒否されたすべてのパケットまたはドロップされたすべてのパケットがログに記録されます。
SW(config)#ip arp inspection vlan vlan-range logging { acl-match { matchlog | none } | dhcp-bindings { all | none | permit }}seconds }
acl-match matchlog | ACE ロギング設定に基づいてパケットを記録します。 |
acl-match none | ACL に一致するパケットをログに記録しません。 |
dhcp-bindings all | DHCP バインディングに一致するすべてのパケットをログに記録します。 |
dhcp-bindings none | DHCP バインディングに一致するパケットをログに記録しません。 |
dhcp-bindings permit | DHCP バインディングが許可されたパケットをログに記録します。 |
検査ログに関する情報を表示します。
SW#show ip arp inspection log
設定例
下記のコマンドではバッファに記録するエントリの数を20、300秒間隔でメッセージを生成して
ACEロギング設定に基づいてパケットを記録するように設定しています。
SW2(config)#ip arp inspection log-buffer entries 20
W2(config)#ip arp inspection log-buffer logs 1 interval 300
SW2(config)#ip arp inspection vlan 200 logging acl-match matchlog
SW2(config)#end
SW2#show ip arp inspection log
Total Log Buffer Size : 20
Syslog rate : 1 entries per 300 seconds.
Smartlog is not enabled
No entries in log buffer.
SW2#