【Cisco】Dynamic ARP Inspection(DAI)の概要と設定方法

【Cisco】Dynamic ARP Inspection(DAI)の概要と設定方法

Dynamic ARP Inspection(DAI)の概要とCisco機器での設定方法について説明します。

目次

Dynamic ARP Inspection(DAI)とは

概要

Dynamic ARP Inspection(DAI – ダイナミックARPインスペクション)とは、スイッチを通過するARPパケットを検査する機能です。ARPパケットのIPアドレスとMACアドレスの紐付きを検査して、不正なパケットは破棄されます。

ARPスプーフィング(ARPキャッシュポイズニング)等の攻撃を防ぐ目的で利用されることがあります。

参照テーブル

DAIによるARPパケットの検査には、DHCP環境か非DHCP環境によって、異なるテーブルを参照します。

環境参照テーブル
DHCPDHCPスヌーピングで作成されたバインディングテーブル
※DHCPスヌーピング機能の有効化が必要
非DHCP手動で設定したIPアドレスとMACアドレスの紐付きテーブル
※ARPアクセスリストを利用

動作説明

下記のネットワーク構成を例にDAI の動作について説明します。

ネットワーク構成
前提条件
  • ホストAとホストBが、正規のホストとして接続されている。
  • ホストXが、不正なホストとして接続されている。
  • スイッチには、DHCPバインディングテーブル、もしくは手動で設定されたテーブルが存在している。

正規ホストからARP要求が送信された場合

正規ホストからARP要求送信 → OK

正規ホストからのARP要求は転送されます。

正規ホストからのARP要求
正規ホストからARP応答返信 → OK

正規ホストからのARP応答は転送されます。

正規ホストからのARP応答
不正ホストからARP応答送信 → NG

不正ホストからのARP応答は破棄されます。これにより、ARPスプーフィング等の攻撃を防止できます。

不正ホストからのARP応答

不正ホストからARP要求が送信された場合

不正ホストからARP応答要求 → NG

不正ホストからのARP要求は破棄されます。これにより、不正ホストは他ホストと通信することができません。

不正ホストからのARP要求

【Cisco】Dynamic ARP Inspection(DAI)の設定方法

Cisco機器でのDAI設定方法について説明します。

DHCP環境の場合

下記のネットワーク構成を例に、DHCP環境のDAI 設定について説明します。

ネットワーク構成(DHCP環境)
スイッチの設定

DHCPスヌーピングを有効にします。

ip dhcp snooping

DHCPスヌーピングをVLAN単位でも有効にします。

ip dhcp snooping vlan [ vlan-id ]

ARPインスペクションをVLAN単位で有効にします。

ip arp inspection vlan [ vlan-id ]

ARPインスペクションの対象としないインターフェースを指定します。※DHCPサーバーや上位のルーター・L3スイッチ等が接続されているインターフェースを「信頼できるインターフェース」として指定します。その他のインターフェースは、ARPインスペクションの対象となります。

interface [ interface-number ]
 ip arp inspection trust

【設定例】

L2Switch#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
L2Switch(config)#
L2Switch(config)#ip dhcp snooping
L2Switch(config)#
L2Switch(config)#ip dhcp snooping vlan 1
L2Switch(config)#
L2Switch(config)#ip arp inspection vlan 1
L2Switch(config)#
L2Switch(config)#interface GigabitEthernet0/0
L2Switch(config-if)#
L2Switch(config-if)#ip arp inspection trust
L2Switch(config-if)#
L2Switch(config-if)#end
L2Switch#

DHCPスヌーピングにより作成されたテーブルを参照するには下記のコマンドを実行します。

show ip dhcp snooping binding
L2Switch#show ip dhcp snooping binding
MacAddress          IpAddress        Lease(sec)  Type           VLAN  Interface
------------------  ---------------  ----------  -------------  ----  --------------------
52:54:00:0F:B4:8F   192.168.1.2      60586       dhcp-snooping   1     GigabitEthernet0/2
52:54:00:12:49:C0   192.168.1.1      60460       dhcp-snooping   1     GigabitEthernet0/1
Total number of bindings: 2
ARPインスペクション(DHCP環境)

不正なホストからARPパケットが送信され、スイッチでパケットを破棄すると、下記のログが出力されます。

L2Switch#
01:33:57.422: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Gi0/3, vlan 1.([5254.0013.427f/192.168.1.200/0000.0000.0000/192.168.1.1/01:33:57 UTC Thu Jun 2 2022])
01:33:58.425: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Gi0/3, vlan 1.([5254.0013.427f/192.168.1.200/0000.0000.0000/192.168.1.1/01:33:58 UTC Thu Jun 2 2022])
01:33:59.429: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Gi0/3, vlan 1.([5254.0013.427f/192.168.1.200/0000.0000.0000/192.168.1.1/01:33:59 UTC Thu Jun 2 2022])

ARPインスペクションの検査状況は下記コマンドで確認できます。

show ip arp inspection statistics
L2Switch#show ip arp inspection statistics

 Vlan      Forwarded        Dropped     DHCP Drops      ACL Drops
 ----      ---------        -------     ----------      ---------
    1              0              3              3              0

非DHCP環境の場合

下記のネットワーク構成を例に、非DHCP環境のDAI 設定について説明します。

ネットワーク構成(非DHCP環境)
スイッチの設定

ARPインスペクションをVLAN単位で有効にします。

ip arp inspection vlan [ vlan-id ]

ARPアクセスリストを作成し、正規ホストのIPアドレスとMACアドレスの紐付けを設定します。

arp access-list [ acl-name ]
permit ip host [ ip-address ] mac host [ mac-address ] log

作成したARPアクセスリストをARPインスペクションの対象として、VLAN単位で設定します。

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

ARPインスペクションの対象としないインターフェースを指定します。※上位のルーター・L3スイッチ等が接続されているインターフェースを「信頼できるインターフェース」として指定します。その他のインターフェースは、ARPインスペクションの対象となります。

interface [ interface-number ]
 ip arp inspection trust

【設定例】

L2Switch#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
L2Switch(config)#
L2Switch(config)#ip arp inspection vlan 1
L2Switch(config)#
L2Switch(config)#arp access-list ARP-ACL
L2Switch(config-arp-nacl)#
L2Switch(config-arp-nacl)#permit ip host 192.168.1.1 mac host 5254.0012.49C0 log
L2Switch(config-arp-nacl)#permit ip host 192.168.1.2 mac host 5254.000F.B48F log
L2Switch(config-arp-nacl)#
L2Switch(config-arp-nacl)#ip arp inspection filter ARP-ACL vlan 1 static
L2Switch(config)#
L2Switch(config)#interface GigabitEthernet0/0
L2Switch(config-if)#
L2Switch(config-if)#ip arp inspection trust
L2Switch(config-if)#
L2Switch(config-if)#end
L2Switch#

ARPアクセスリストの設定状況を確認するには下記コマンドを実行します。

show arp access-list
L2Switch#show arp access-list
ARP access list ARP-ACL
    permit ip host 192.168.1.1 mac host 5254.0012.49c0 log
    permit ip host 192.168.1.2 mac host 5254.000f.b48f log
ARPインスペクション(非DHCP環境)

不正なホストからARPパケットが送信され、スイッチでパケットを破棄すると、下記のログが出力されます。

L2Switch#
17:15:59.522: %SW_DAI-4-ACL_DENY: 1 Invalid ARPs (Req) on Gi0/3, vlan 1.([5254.0013.427f/192.168.1.200/0000.0000.0000/192.168.1.1/17:15:58 UTC Thu Jun 2 2022])
17:16:00.524: %SW_DAI-4-ACL_DENY: 1 Invalid ARPs (Req) on Gi0/3, vlan 1.([5254.0013.427f/192.168.1.200/0000.0000.0000/192.168.1.1/17:15:59 UTC Thu Jun 2 2022])
17:16:01.531: %SW_DAI-4-ACL_DENY: 1 Invalid ARPs (Req) on Gi0/3, vlan 1.([5254.0013.427f/192.168.1.200/0000.0000.0000/192.168.1.1/17:16:00 UTC Thu Jun 2 2022])

ARPインスペクションの検査状況は下記コマンドで確認できます。

show ip arp inspection statistics
L2Switch#show ip arp inspection statistics

 Vlan      Forwarded        Dropped     DHCP Drops      ACL Drops
 ----      ---------        -------     ----------      ---------
    1              0              3              0              3

以上で、【Cisco】Dynamic ARP Inspection(DAI)の概要と設定方法の説明は完了です!

  • URLをコピーしました!
  • URLをコピーしました!
目次