概要

Cisco CatalystスイッチでDHCPスヌーピングを設定するためのコマンドとその動作を確認するための確認コマンドについて解説します。

関連記事

DHCPスヌーピングの動作について、以下の記事もあわせてご覧ください。

DHCPスヌーピング
https://www.n-study.com/security-fundamentals/dhcp-snooping
DHCPスヌーピングは、レイヤ2スイッチでDHCPメッセージの整合性をチェックする機能です。DHCPスヌーピングの仕組みについて解説します。

また、以下の記事はDHCPスヌーピングの設定例です。

DHCPスヌーピングの設定コマンド

基本設定

Cisco CatalystスイッチでDHCPスヌーピングを有効にするための基本的な設定の流れは以下の通りです。

  1. DHCPスヌーピングの有効化
  2. インタフェースをTrustに設定

DHCPスヌーピングの有効化

まず、DHCPスヌーピングを有効にします。グローバルコンフィグレーションモードで次のコマンドを入力します。

DHCPスヌーピングの有効化

(config)#ip dhcp snooping
(config)#ip dhcp snooping vlan <vlan-range>

<vlan-range> : VLANの範囲

ip dhcp snoopingコマンドによってCatalystスイッチグローバルでDHCPスヌーピングを有効にします。そして、ip dhcp snooping vlanコマンドで、DHCPスヌーピングを有効にするVLANを指定します。指定したVLANのスイッチポートでDHCPメッセージをチェックします。

インタフェースをTrustに設定

正規のDHCPサーバが接続されている方向のインタフェースをTrustとして設定します。インタフェースコンフィグレーションモードで次のコマンドを入力します。

インタフェースをTrustに設定

(config)#interface <interface-name>
(config-if)#ip dhcp snooping trust

<interface-name> : インタフェース名

デフォルトはUntrustです。Untrustのインタフェースで受信するDHCPメッセージの内容をチェックします。Trustの設定をしたインタフェースでは、DHCPメッセージの内容をチェックしません。

オプション設定

DHCPスヌーピングについて、以下のオプション設定もあります。

  • ip dhcp snooping information option
  • ip dhcp snooping verify mac-address
  • ip dhcp snooping limit
  • ip dhcp snooping database

ip dhcp snooping information option

DHCPスヌーピングで、DHCPメッセージをチェックしてDHCP DISCOVERを転送するときにOption82をインサートしたり削除したりできます。グローバルコンフィグレーションモードのコマンドです。

Opton82の付加

(config)#ip dhcp snooping information option

デフォルトで有効になっています。Option82として、以下の情報が付加されます。

  • リモートID
  • サーキットID

リモートIDは、スヌーピングしているスイッチのMACアドレスです。サーキットIDはDHCPクライアントが接続されているポート番号とVLAN情報です。リモートIDおよびサーキットIDで、DHCPクライアントがどのスイッチのどのポート(インタフェース)に接続されているかがわかります。つまり、DHCPクライアントを識別しやすくなります。

リンク

Option82のリモートID/サーキットIDのフォーマットについて、以下のWebページが詳しいです。

デフォルトでは、Untrustポートで受信したDHCPメッセージにOption82が付加されていると、そのメッセージを破棄します。Untrustのポートで受信したDHCPメッセージに付加されているOption82を信頼してそのまま転送するために、グローバルコンフィグレーションモードで次のコマンドを入力します。

Option82付きのDHCPメッセージの転送

(config)#ip dhcp snooping information option allow-untrusted

ip dhcp snooping verify mac-address

DHCPメッセージの送信元MACアドレスとCHADDR(Client Hardware ADDRess)が一致していることをチェックするために、以下のコマンドを入力します。

MACアドレスのチェック

(config)#ip dhcp snooping verify mac-address

デフォルトで有効です。

ip dhcp snooping limit

インタフェースで受信するDHCPメッセージを制限するために、インタフェースコンフィグレーションモードで次のコマンドを入力します。

DHCPメッセージの制限

(config)#interface <interface-name>
(config-if)#ip dhcp snooping limit <rate>

<rate> : 1秒あたりに受信するDHCPメッセージ数

ip dhcp snooping database

DHCPによって割り当てられたIPアドレスとMACアドレスの対応をDHCPスヌーピングバインディングテーブルに保存しています。DHCPスヌーピングバインディングテーブルは、Catalystスイッチを再起動すると消えてしまいます。

DHCPスヌーピングバインディングテーブルを転送するために、グローバルコンフィグレーションモードで次のコマンドを入力します。

DHCPスヌーピングデータベースエージェント

(config)#ip dhcp snooping database <URL>
(config)#ip dhcp snooping database timeout <sec>
(config)#ip dhcp snooping database write-delay <delay>

<URL> : 転送先のURL
<sec> : 転送終了までの時間
<delay> : 遅延時間

<URL>でDHCPスヌーピングバインディングテーブルの転送先を指定します。フラッシュメモリなどのルータローカルストレージだけでなく、HTTPやFTPでの転送も可能です。

<sec>は転送が終了するまでの待機時間です。時間内に終了しないと転送を終了します。デフォルトは300秒です。バインディングテーブルに変更があってから、転送するまでに<delay>だけ遅延させます。デフォルトは300秒です。

DHCPスヌーピングの確認コマンド

DHCPスヌーピングの動作を確認するための主なコマンドは以下の通りです。

コマンド概要
#show ip dhcp snoopingDHCPスヌーピングが有効化されているVLANやTrustポートを確認します。
#show ip dhcp snooping bidingDHCPスヌーピングで学習したIPアドレスとMACアドレスの対応を確認します。
#show ip dhcp snooping statisticsDHCPスヌーピングの処理の統計情報を確認します。
#show ip dhcp snooping databaseDHCPスヌーピングバインディングテーブルを転送するデータベースエージェントを確認します。
表 DHCPスヌーピングの確認コマンド

show ip dhcp snooping

show ip dhcp snoopingコマンドで、DHCPスヌーピングが有効化されているVLANやTrustポートを確認します。

show ip dhcp snooping

IOU1#show ip dhcp snooping
Switch DHCP snooping is enabled
DHCP snooping is configured on following VLANs:
1
DHCP snooping is operational on following VLANs:
1
DHCP snooping is configured on the following L3 Interfaces:

Insertion of option 82 is enabled
   circuit-id default format: vlan-mod-port
   remote-id: aabb.cc00.0100 (MAC)
Option 82 on untrusted port is not allowed
Verification of hwaddr field is enabled
Verification of giaddr field is enabled
DHCP snooping trust/rate is configured on the following Interfaces:

Interface                  Trusted    Allow option    Rate limit (pps)
-----------------------    -------    ------------    ----------------
Ethernet0/0                yes        yes             unlimited
  Custom circuit-ids:

show ip dhcp snooping biding

show ip dhcp snooping bindingコマンドで、DHCPスヌーピングで学習したIPアドレスとMACアドレスの対応を確認します。

show ip dhcp snooping binding

IOU1#show ip dhcp snooping binding
MacAddress          IpAddress        Lease(sec)  Type           VLAN  Interface
------------------  ---------------  ----------  -------------  ----  --------------------
00:50:79:66:68:00   192.168.1.1      75584       dhcp-snooping   1     Ethernet0/1
C2:01:8E:B8:00:00   192.168.1.3      77281       dhcp-snooping   1     Ethernet0/3
Total number of bindings: 2

show ip dhcp snooping statistics

DHCPスヌーピングの処理の統計情報を確認します。

show ip dhcp snooping statistics

IOU1#show ip dhcp snooping statistics
 Packets Forwarded                                     = 19
 Packets Dropped                                       = 0
 Packets Dropped From untrusted ports                  = 0

show ip dhcp snooping database

DHCPスヌーピングバインディングテーブルを転送するデータベースエージェントを確認します。

show ip dhcp snooping database

IOU1#show ip dhcp snooping database
Agent URL : unix:dhcp_00001
Write delay Timer : 300 seconds
Abort Timer : 300 seconds

Agent Running : No
Delay Timer Expiry : Not Running
Abort Timer Expiry : Not Running

Last Succeded Time : 05:34:22 UTC Sun Aug 14 2022
Last Failed Time : 05:26:46 UTC Sun Aug 14 2022
Last Failed Reason : Unable to access URL.

Total Attempts       :        6   Startup Failures :        4
Successful Transfers :        2   Failed Transfers :        4
Successful Reads     :        0   Failed Reads     :        0
Successful Writes    :        2   Failed Writes    :        0
Media Failures       :        0

セキュリティの基礎