連載「もう一度見直したいDNS/DHCP」の最終回「DHCPベストプラクティスと新たな役割の模索」では、DHCPを利用した不正PCの排除方法を解説しました。しかしそこにはただし書きとして「DHCPを使わない方法でIPアドレスを設定されるとお手上げ」という一文がありました。そこでDHCPサーバとスイッチの機能を利用して、安全に不正PCを排除する方法を考えます。
以前、DHCPベストプラクティスとして、DHCPを利用して不正PCの排除を行う方法について説明しました。その際にも説明しましたが、この方法は完全ではなく、詳しい人であればIPアドレスを手動で設定してDHCPの制限を逃れることができるという問題がありました。その場合、本来ネットワークに接続させたくないPCが簡単に接続されてしまいます。
今回は、そのような状況を踏まえ、よりセキュアな環境を構築する方法について説明していきたいと思います。この方法は、DHCPサーバとスイッチの機能を利用することにより構築します。そのため、すでに対応しているスイッチがエッジに設置されていれば、すぐにでもその環境を構築することが可能です。
今回はスイッチの機能である「DHCPスヌーピング」を利用します(ベンダによっては別の名前の場合もあります)。
ところでスヌーピング(Snooping)とは何のことでしょうか。snoopとは英語でのぞき見する、詮索(せんさく)するという意味です。つまり、DHCPサーバとDHCPクライアントの通信を監視し、通信を許可する端末を制限することができる機能です。
この機能を使うことにより、DHCPサーバにより払い出されたIPアドレス、MACアドレス以外からの通信を遮断することが可能となります。それにより固定IPを設定したクライアントからの通信を遮断します。
では、どのような仕組みで動作する機能かを解説しましょう。
図1が一般的な、DHCPスヌーピングを利用したネットワーク構成図です。まず、スイッチのポートを以下の2つのうちどちらかに設定します。
trustedとは、信頼されたという意味からも分かるように、サーバや上位スイッチ/ルータなど、管理者が把握している機器を接続するポートに設定する状態です。そのため、trustedに設定されたポートについては、DHCPスヌーピングは有効になりません。
untrustedとは、trustedとは正反対の状態です。つまり、管理者が把握できない機器が接続されるポートです。今回のDHCPスヌーピングが見張るポートは、まさにこのuntrustedに設定されたポートです。
連載第4回「DHCPベストプラクティスと新たな役割の模索」で説明したように、DHCPによるIPの払い出し順は以下のようになります。
untrustedに設定されたポートでは、そのポートに接続されたクライアントからの通信は、DHCPメッセージのみが許可されます。すなわち、手動でIPアドレスを設定しても外部への通信は遮断されます。DHCPを有効にしたクライアントを接続すると、まずDISCOVERを送りIPアドレスの払い出し要求を行います。順調に通信が進めば、ACKがサーバから送られIPアドレスがクライアントに設定されます。
そして、このACKをスイッチが監視することにより、ACKに含まれる以下の情報をバインディングテーブルに書き込みます。
クライアントはバインディングテーブルに情報が書かれた後、Expireに達するまで通信が可能となります。
Copyright © ITmedia, Inc. All Rights Reserved.