Dynamic ARP Inspection(DAI)の概要とCisco機器での設定方法について説明します。
Dynamic ARP Inspection(DAI)とは
概要
Dynamic ARP Inspection(DAI – ダイナミックARPインスペクション)とは、スイッチを通過するARPパケットを検査する機能です。ARPパケットのIPアドレスとMACアドレスの紐付きを検査して、不正なパケットは破棄されます。
ARPスプーフィング(ARPキャッシュポイズニング)等の攻撃を防ぐ目的で利用されることがあります。
参照テーブル
DAIによるARPパケットの検査には、DHCP環境か非DHCP環境によって、異なるテーブルを参照します。
環境 | 参照テーブル |
---|---|
DHCP | DHCPスヌーピングで作成されたバインディングテーブル ※DHCPスヌーピング機能の有効化が必要 |
非DHCP | 手動で設定したIPアドレスとMACアドレスの紐付きテーブル ※ARPアクセスリストを利用 |
動作説明
下記のネットワーク構成を例にDAI の動作について説明します。
- ホストAとホストBが、正規のホストとして接続されている。
- ホストXが、不正なホストとして接続されている。
- スイッチには、DHCPバインディングテーブル、もしくは手動で設定されたテーブルが存在している。
正規ホストからARP要求が送信された場合
正規ホストからのARP要求は転送されます。
正規ホストからのARP応答は転送されます。
不正ホストからのARP応答は破棄されます。これにより、ARPスプーフィング等の攻撃を防止できます。
不正ホストからARP要求が送信された場合
不正ホストからのARP要求は破棄されます。これにより、不正ホストは他ホストと通信することができません。
【Cisco】Dynamic ARP Inspection(DAI)の設定方法
Cisco機器でのDAI設定方法について説明します。
DHCP環境の場合
下記のネットワーク構成を例に、DHCP環境のDAI 設定について説明します。
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パケットが送信され、スイッチでパケットを破棄すると、下記のログが出力されます。
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 設定について説明します。
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パケットが送信され、スイッチでパケットを破棄すると、下記のログが出力されます。
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)の概要と設定方法の説明は完了です!