DHCPスヌーピングとは
DHCP スヌーピングとは、信頼できない DHCP メッセージをフィルタリングし、DHCP スヌーピング バインディング データベース (DHCP スヌーピング バインディングとも呼ばれる) を構築および維持することにより、ネットワーク セキュリティを提供する DHCP セキュリティ機能です。
DHCPスヌーピングを実装したスイッチやルーターは、ネットワーク上のDHCPメッセージを監視し、信頼されたDHCPサーバーからのメッセージのみを許可し、不正なDHCPサーバーからのメッセージをブロックします。これにより、不正なIPアドレスの割り当てやネットワークの不正利用を防止することができます。
DHCPスヌーピングの役割
DHCPスヌーピングは、主に次の目的で使用されます。
- 不正なDHCPサーバー(DHCPスプーフィング)からの保護:
- 攻撃者が不正なDHCPサーバーをネットワーク内に設置し、クライアントに誤ったIPアドレスやデフォルトゲートウェイを配布しようとするDHCPスプーフィング攻撃から守ります。
- IPアドレスの正当性を保証:
- DHCPスヌーピングは、クライアントに割り当てられたIPアドレスが正当であることを確認し、信頼できるDHCPサーバーによって提供されたものであることを確認します。
- セキュリティ情報のトラッキング:
- DHCPスヌーピングは、ネットワーク内の各DHCPクライアントに割り当てられたIPアドレス、MACアドレス、VLAN、ポート情報を追跡し、DHCPスヌーピングバインディングテーブルに保存します。この情報を使って、さらに高度なセキュリティ機能(例えば、Dynamic ARP Inspection や IP Source Guard)が有効にできます。
DHCPスヌーピングの動作
DHCPスヌーピングを有効にすると、スイッチのポートが2つのカテゴリに分類されます。
- 信頼されたポート(trusted port):
- 信頼できるDHCPサーバーに接続されているポートを指します。このポートでは、DHCPスヌーピングは行われません。通常、信頼されたポートは、DHCPサーバーが存在する上位スイッチやルーターに接続されているポートです。
- 信頼されていないポート(untrusted port):
- クライアントが接続されているポートを指し、DHCPスヌーピングによって制御されます。このポートでは、DHCPオファーやACKなどのDHCPサーバーからのレスポンスがブロックされます。信頼されていないポートから不正なDHCPサーバーが応答しないように保護します。
信頼されていないポートでの動作
信頼されていないポートでは、スイッチは次のように動作します:
DHCPオファーやACKなど、サーバーからの応答は、信頼されたポートからのものだけが許可され、信頼されていないポートからの応答はブロックされます。
DHCPディスカバリとリクエストは通常通り転送されます。
オプション82
オプション82は、ネットワーク機器(通常はスイッチやルータ)がDHCPメッセージに追加情報を挿入するための標準化されたオプションです。このオプションは、DHCPリクエストとDHCP応答メッセージに特定の情報(サブネット、VLAN、ポート番号など)を含めることができます。
DHCPスヌーピングでは、DHCPスヌーピングバインディングデータベースの情報と照合をして、不正なアクセスが発生している場合は通信を破棄します。
DHCPスヌーピングの設定
基本構文
DHCP スヌーピングをグローバルで有効にします。
Switch(config)#ip dhcp snooping
VLAN または VLAN の範囲で DHCP スヌーピングを有効にします。範囲は 1 ~ 4094 です。
Switch(config)#ip dhcp snooping vlan vlan-range
スイッチが DHCP サーバーに転送される DHCP 要求メッセージ内の DHCP リレー情報 (オプション 82 フィールド) を挿入および削除できるようにします。
Switch(config)#ip dhcp snooping information option
インターフェイスを信頼できるものとして構成します。
Switch(config-if)#ip dhcp snooping trust
オプション設定
オプション82で挿入されるリモートIDを設定します。DHCPメッセージに対して追加情報を付加し、DHCPサーバーにクライアントがどのスイッチポートやスイッチを経由してリクエストを送信しているかを通知するために使用されます。
Switch(config)#ip dhcp snooping information option format remote-id [string ASCII-string | hostname]
スイッチがエッジスイッチからのoption-82情報を持つ受信DHCPスヌーピングパケットを受け入れることを有効にします。
Switch(config)#ip dhcp snooping information option allow-untrusted
インターフェイスが受信できる 1 秒あたりの DHCP パケット数を構成します。
Switch(config-if)#ip dhcp snooping limit rate rate
信頼できないポートで受信した DHCP パケット内の送信元 MAC アドレスがパケット内のクライアント ハードウェア アドレスと一致することを確認するようにスイッチを設定します。
Switch(config)#ip dhcp snooping verify mac-address
設定例
DHCPスヌーピングを100で有効化にしてGi0/1を信頼できるポート(DHCPサーバが接続されているポート)に設定する例
Switch(config)#ip dhcp snooping
Switch(config)#ip dhcp snooping vlan 100
Switch(config)#ip dhcp snooping information option
Switch(config)#interface GigabitEthernet 0/1
Switch(config-if)#ip dhcp snooping trust
DHCP スヌーピング バインディング データベースとは
DHCPスヌーピング バインディング データベースは、ネットワークスイッチがDHCPスヌーピング機能を使用して管理する、各DHCPクライアントの情報を記録したテーブルです。このデータベースには、DHCPクライアントがネットワークからIPアドレスを取得する際に、スイッチがそのクライアントに割り当てられた情報を記録します。この情報は、セキュリティ機能として、IPアドレスの偽装や不正なDHCPサーバの攻撃からネットワークを保護するのに役立ちます。
DHCPスヌーピング バインディング データベースに記録される情報
データベースには、以下のような情報が含まれます:
- クライアントのIPアドレス: DHCPサーバからクライアントに割り当てられたIPアドレス。
- クライアントのMACアドレス: クライアントの物理アドレス。DHCPクライアントはこのMACアドレスを使って通信を行います。
- VLAN ID: クライアントが属するVLAN。スイッチがクライアントをどのVLANに所属させるかを記録します。
- スイッチポート: DHCPクライアントが接続されているスイッチのポート番号。
- リース時間: DHCPサーバがクライアントに対してIPアドレスを割り当てた期間。リース時間が切れると、クライアントは新しいIPアドレスをリクエストする必要があります。
DHCP スヌーピング バインディング データベースの保存
バインディングデータベースは、デフォルトではスイッチのメモリに保存され、スイッチが再起動するとクリアされます。ただし、永続的な保存を設定することが可能で、スイッチが再起動してもバインディングデータベースが維持されます
Switch(config)#ip dhcp snooping database URL
| URL指定方法 |
|---|
| flash [ number ] :/ filename |
| ftp:// user : password@host / filename |
| http:// [[ username : password ]@]{ hostname | host-ip }[/ directory ]/ image-name .tar |
| rcp:// user@host / filename |
| tftp:// host / filename |
データベース転送プロセスが終了するまで、プロセスを停止するまでの待ち時間を秒単位で指定します。
Switch(config)#ip dhcp snooping database timeout seconds
バインディング データベースが変更された後に転送を遅らせる期間を指定します。
Switch(config)#ip dhcp snooping database write-delay seconds