DHCP 機能の概要
DHCP は、中央のサーバからホスト IP アドレスを動的に割り当てるために LAN 環境で広く使用されており、それによって IP アドレス管理のオーバーヘッドが大幅に軽減されます。DHCP では、ネットワークに接続されたホストだけが IP アドレスを使用し、IP アドレスを永続的にホストに割り当てる必要がなくなるため、限られた IP アドレス空間を節約できます。
ここでは、次の情報について説明します。
• 「DHCP サーバ」
• 「DHCP リレー エージェント」
• 「DHCP スヌーピング」
• 「Option 82 データ挿入」
• 「Cisco IOS DHCP サーバ データベース」
• 「DHCP スヌーピング バインディング データベース」
DHCP クライアントに関する詳細については、『 Cisco IOS IP Configuration Guide, Release 12.2 』の「 IP Addressing and Services 」にある「 Configuring DHCP 」を参照してください。
DHCP サーバ
DHCP サーバは、スイッチまたはルータ上の指定されたアドレス プールから DHCP クライアントに IP アドレスを割り当て、それらのアドレスを管理します。DHCP サーバが要求された設定パラメータをデータベースから DHCP クライアントに付与できない場合、その要求はネットワーク管理者が定義した 1 つまたは複数のセカンダリ DHCP サーバに転送されます。
DHCP リレー エージェント
DHCP リレー エージェントは、クライアントとサーバの間で DHCP パケットを転送するレイヤ 3 デバイスです。リレー エージェントは、同じ物理サブネット上にないクライアントとサーバの間で要求および応答を転送します。リレー エージェントによる転送は、IP データグラムをネットワーク間で透過的に交換するレイヤ 2 での通常の転送とは異なります。リレー エージェントは、DHCP メッセージを受け取ると、新しい DHCP メッセージを生成して、出力インターフェイス上で送信します。
DHCP スヌーピング
DHCP スヌーピングは、信頼できない DHCP メッセージのフィルタリングと DHCP スヌーピング バインディング データベース(DHCP スヌーピング バインディング テーブルとも呼ばれる)の作成および管理によってネットワーク セキュリティを確保する DHCP セキュリティ機能です。データベースの詳細については、「DHCP スヌーピング情報の表示」を参照してください。
DHCP スヌーピングは、信頼できないホストと DHCP サーバの間でファイアウォールに似た役割を果たします。DHCP スヌーピングを使用することにより、エンド ユーザに接続された信頼できないインターフェイスと DHCP サーバまたは別のスイッチに接続された信頼できるインターフェイスを区別できます。
(注) DHCP スヌーピングを正しく機能させるためには、すべての DHCP サーバを信頼できるインターフェイス経由でスイッチに接続する必要があります。
信頼できない DHCP メッセージとは、ネットワークまたはファイアウォールの外側から送信されたメッセージのことです。サービス プロバイダー環境で DHCP スヌーピングを使用する場合は、カスタマーのスイッチなど、サービス プロバイダー ネットワーク内には存在しないデバイスから送信されたメッセージが信頼できないメッセージとなります。不明なデバイスから送信されたメッセージは、トラフィック攻撃の原因になりうるため、信頼できません。
DHCP スヌーピング バインディング データベースには、MAC アドレス、IP アドレス、リース期間、バインディングの種類、VLAN 番号、およびスイッチの信頼できないローカル インターフェイスのインターフェイス情報が含まれています。このデータベースには、信頼できるインターフェイスに接続されたホストの情報はありません。
サービス プロバイダー ネットワークでは、同じネットワーク内のデバイスのポートに接続されたインターフェイスが信頼できるインターフェイスとなります。ネットワーク内の信頼できないインターフェイスまたはネットワークに属さないデバイスのインターフェイスに接続されたインターフェイスは、信頼できないインターフェイスとなります。
スイッチが信頼できないインターフェイスでパケットを受信し、そのインターフェイスが属している VLAN で DHCP スヌーピングがイネーブルに設定されている場合、スイッチは送信元 MAC アドレスと DHCP クライアントのハードウェア アドレスを比較します。アドレスが一致した場合(デフォルト)、スイッチはパケットを転送します。アドレスが一致しない場合、スイッチはパケットをドロップします。
スイッチは、次のいずれかの状況が発生した場合に DHCP パケットをドロップします。
• DHCPOFFER パケット、DHCPACK パケット、DHCPNAK パケット、DHCPLEASEQUERY パケットなど、DHCP サーバからのパケットがネットワークまたはファイアウォールの外側から着信した。
• パケットが信頼できないインターフェイスに着信し、送信元 MAC アドレスと DHCP クライアントのハードウェア アドレスが一致しない。
• スイッチが DHCPRELEASE または DHCPDECLINE ブロードキャスト メッセージを受信し、その MAC アドレスは DHCP スヌーピング バインディング データベースに含まれているが、バインディング データベース内のインターフェイス情報がメッセージを受信したインターフェイスと一致しない。
• DHCP リレー エージェントが 0.0.0.0 以外のリレー エージェント IP アドレスを含む DHCP パケットを転送し、Option 82 情報が含まれないパケットを信頼できないポートに転送する。
DHCP スヌーピングをサポートする集約スイッチであり、DHCP Option 82 情報を挿入するエッジ スイッチに接続されているスイッチは、Option 82 情報を含むパケットが信頼できないインターフェイスに着信した場合、それらのパケットをドロップします。DHCP スヌーピングがイネーブルに設定されている場合に、パケットが信頼できるポートに着信しても、集約スイッチは接続されたデバイスの DHCP スヌーピング バインディングを認識せず、完全な DHCP スヌーピング バインディング データベースを作成できません。
Option 82 情報が Cisco IOS Release 12.2(25)SEA よりも前のソフトウェア リリースが動作するエッジ スイッチによって挿入されている場合は、DHCP スヌーピング バインディング データベースが正しく読み込まれないため、DHCP スヌーピングを集約スイッチに設定できません。また、スタティック バインディングや ARP アクセス コントロール リスト(ACL)を使用しない場合、スイッチ上で IP 送信元ガードやダイナミック アドレス解決プロトコル(ARP)インスペクションも設定できません。
Cisco IOS Release 12.2(25)SEA 以降では、集約スイッチを信頼できないインターフェイスを介してエッジ スイッチに接続でき、 ip dhcp snooping information option allow-untrusted グローバル コンフィギュレーション コマンドを入力すると、集約スイッチはエッジ スイッチから Option 82 情報を持ったパケットを受け付けます。集約スイッチは、信頼できないスイッチ インターフェイスを介して接続されたホストのバインディングを認識します。ホストが接続されている信頼できない入力インターフェイスに、Option 82 情報を含むパケットが着信する場合は、集約スイッチ上でダイナミック ARP インスペクションや IP ソース ガードなどの DHCP セキュリティ機能をイネーブルにできます。集約スイッチ上のエッジ スイッチとの接続ポートは、信頼できるインターフェイスとして設定する必要があります。
Option 82 データ挿入
住宅地域にあるメトロポリタン イーサネット アクセス環境では、DHCP は多数の加入者に対し、IP アドレスの割り当てを一元的に管理できます。スイッチで DHCP スヌーピングの Option 82 機能をイネーブルにすると、加入者装置は MAC アドレスだけでなく、その装置をネットワークに接続するスイッチ ポートによっても識別されます。サブスクライバ LAN 上の複数のホストをアクセス スイッチの同じポートに接続できます。これらのホストは一意に識別されます。
(注) DHCP Option 82 機能は、DHCP スヌーピングがグローバルにイネーブルであり、この機能を使用する加入者装置が割り当てられた VLAN でもイネーブルである場合に限りサポートされます。
図 21-1 に、一元的な DHCP サーバがアクセス レイヤのスイッチに接続された加入者に IP アドレスを割り当てるメトロポリタン イーサネット ネットワークの例を示します。DHCP クライアントとそれらに関連付けられた DHCP サーバは同じ IP ネットワークまたはサブネット内に存在しないため、DHCP リレー エージェント(Catalyst スイッチ)にヘルパー アドレスを設定することにより、ブロードキャスト転送をイネーブルにし、クライアントとサーバ間で DHCP メッセージを転送します。
図 21-1 メトロポリタン イーサネット ネットワークにおける DHCP リレー エージェント
スイッチで DHCP スヌーピング情報オプション Option 82 をイネーブルにすると、次のイベントがこの順序で発生します。
• ホスト(DHCP クライアント)は DHCP 要求を生成し、これをネットワーク上にブロードキャストします。
• スイッチは、この DHCP 要求を受信すると、パケットに Option 82 情報を追加します。Option 82 情報には、スイッチの MAC アドレス(リモート ID サブオプション)、およびパケットを受信したポートの識別子である vlan-mod-port (回線 ID サブオプション)が含まれます。
• リレー エージェントの IP アドレスが設定されている場合、スイッチはこの IP アドレスを DHCP パケットに追加します。
• スイッチは、Option 82 フィールドを含む DHCP 要求を DHCP サーバに転送します。
• DHCP サーバはこのパケットを受信します。Option 82 に対応しているサーバであれば、リモート ID と回線 ID のいずれか一方または両方を使用して、IP アドレスを割り当てたり、1 つのリモート ID または回線 ID に割り当てることができる IP アドレスの数を制限するようなポリシーを実装したりできます。次に DHCP サーバは、DHCP 応答内にオプション 82 フィールドをエコーします。
• スイッチによって要求がサーバにリレーされた場合、DHCP サーバは応答をスイッチにユニキャストします。スイッチは、リモート ID フィールドと、場合によっては回線 ID フィールドを調べ、Option 82 データが挿入済みであることを確認します。スイッチは Option 82 フィールドを削除してから、DHCP 要求を送信した DHCP クライアントに接続するスイッチ ポートにパケットを転送します。
上記の一連のイベントが発生する間、図 21-2 に示す次のフィールドの値は変更されません。
• 回線 ID サブオプション フィールド
– サブオプション タイプ
– サブオプション タイプの長さ
– 回線 ID タイプ
– 回線 ID タイプの長さ
• リモート ID サブオプション フィールド
– サブオプション タイプ
– サブオプション タイプの長さ
– リモート ID タイプ
– リモート ID タイプの長さ
回線 ID サブオプションのポート フィールドでは、ポート番号が 3 から始まります。たとえば 24 の 10/100 ポートおよび Small Form-Factor Pluggable(SFP)モジュール スロットを含むスイッチでは、ポート 3 がファスト イーサネット 0/1 ポート、ポート 4 がファスト イーサネット 0/2 ポートのようになります。ポート 27 は SFP モジュール スロット 0/1 となり、以降同様に続きます。
図 21-2 は、リモート ID サブオプションおよび回線 ID サブオプションのパケット形式を示します。スイッチは、DHCP スヌーピングがグローバルにイネーブルで ip dhcp snooping information option グローバル コンフィギュレーション コマンドが入力される場合にこれらのパケット形式を使用します。
図 21-2 サブオプションのパケット形式
Cisco IOS DHCP サーバ データベース
DHCP ベースの自動設定プロセスの間、指定 DHCP サーバは Cisco IOS DHCP サーバ データベースを使用します。これには IP アドレス、 アドレス バインディング 、およびブート ファイルなどの設定パラメータが含まれます。
アドレス バインディングは、Cisco IOS DHCP サーバ データベース内のホストの IP アドレスおよび MAC アドレス間のマッピングです。クライアント IP アドレスを手動で割り当てること、または、DHCP サーバが DHCP アドレス プールから IP アドレスを割り当てることが可能です。手動および自動アドレス バインディングの詳細については、『 Cisco IOS IP Configuration Guide, Release 12.2 』の「Configuring DHCP」の章を参照してください。
DHCP スヌーピング バインディング データベース
DHCP スヌーピングをイネーブルにすると、スイッチは信頼できないインターフェイスに関する情報を DHCP スヌーピング バインディング データベースに保存します。データベースには、8192 のバインディングを含めることができます。
各データベース エントリ( バインディング )は、IP アドレス、それに関連付けられた MAC アドレス、リース期間(16 進形式)、バインディングが適用されるインターフェイス、およびインターフェイスが属する VLAN で構成されます。データベース エージェントは、設定された場所のファイルにバインディングを保存します。各エントリの末尾にあるチェックサムは、ファイルの先頭のバイトを含め、エントリに関連付けられたすべてのバイトを対象として計算されます。各エントリは、まず 72 バイトのデータがあり、その後に 1 つのスペースとチェックサム値が続きます。
スイッチのリロード後もバインディングを保持するには、DHCP スヌーピング データベース エージェントを使用する必要があります。エージェントがディセーブルで、ダイナミック ARP インスペクションまたは IP ソース ガードがイネーブルにされ、DHCP スヌーピング バインディング データベースがダイナミックバインディングされている場合、スイッチは接続を切断されます。このエージェントがディセーブルで、DHCP スヌーピングだけがイネーブルである場合、スイッチの接続は切断されませんが、DHCP スヌーピングは DHCP スプーフィング攻撃を防止できないことがあります。
リロードすると、スイッチはバインディング ファイルを読み込み、DHCP スヌーピング バインディング データベースを作成します。スイッチは、データベースに変更が加えられたときにはバインディング ファイルを更新します。
スイッチは、新しいバインディングを認識するか、バインディングを失うと、ただちにデータベース内のエントリを更新します。スイッチはバインディング ファイル内のエントリも更新します。バインディング ファイルの更新頻度は設定可能な遅延時間によって決まり、更新はバッチ処理されます。ファイルが指定された時間内(書き込み遅延および中断タイムアウトの値によって設定される)に更新されない場合、更新は停止します。
バインディングが含まれるファイルの形式は次のとおりです。
<entry-n> <checksum-1-2-..-n>
このファイルの各エントリにはチェックサム値を示すタグが付けられます。スイッチは、ファイルを読み取るときに、このチェックサムを使用してエントリを検証します。最初の行の initial-checksum エントリは、最新のファイル更新に関連するエントリを以前のファイル更新に関連するエントリと区別します。
次に、バインディング ファイルの例を示します。
192.1.168.1 3 0003.47d8.c91f 2BB6488E Fa0/4 21ae5fbb
192.1.168.3 3 0003.44d6.c52f 2BB648EB Fa0/4 1bdb223f
192.1.168.2 3 0003.47d9.c8f1 2BB648AB Fa0/4 584a38f0
スイッチが起動し、計算されたチェックサム値が保存されているチェックサム値と一致した場合、スイッチはバインディング ファイルのエントリを読み取り、バインディングを DHCP スヌーピング バインディング データベースに追加します。次のいずれかの状況が発生した場合、スイッチはエントリを無視します。
• スイッチがエントリを読み取り、計算されたチェックサム値が保存されているチェックサム値と一致しない。この場合、そのエントリとそれ以降のエントリは無視されます。
• エントリに含まれているリース期間が終了している(スイッチはリース期間の終了時にバインディング エントリを削除しないことがある)。
• エントリに含まれるインターフェイスが現在はシステムに存在しない。
• インターフェイスがルーテッド インターフェイスまたは DHCP スヌーピングにおける信頼できるインターフェイスである。
DHCP 機能の設定
ここでは、次の設定について説明します。
• 「DHCP のデフォルト設定」
• 「DHCP スヌーピング設定時の注意事項」
• 「DHCP サーバの設定」
• 「DHCP リレー エージェントの設定」
• 「パケット転送アドレスの指定」
• 「DHCP スヌーピングおよび Option 82 のイネーブル化」
• 「プライベート VLAN での DHCP スヌーピングのイネーブル化」
• 「Cisco IOS DHCP サーバ データベースのイネーブル化」
• 「DHCP スヌーピング バインディング データベース エージェントのイネーブル化」
DHCP のデフォルト設定
表 21-1 に、DHCP のデフォルト設定を示します。
表 21-1 DHCP のデフォルト設定
|
|
DHCP サーバ |
Cisco IOS ソフトウェアではイネーブル、設定が必要。 |
DHCP リレー エージェント |
イネーブル |
DHCP パケット転送アドレス |
未設定 |
リレー エージェント情報の確認 |
イネーブル(無効なメッセージは廃棄)。2 |
DHCP リレー エージェント転送ポリシー |
既存のリレー エージェント情報を置換。2 |
DHCP スヌーピングをグローバルにイネーブル |
ディセーブル |
DHCP スヌーピング情報オプション |
イネーブル |
パケットを信頼できない入力インターフェイスで受け取る DHCP スヌーピング オプション |
ディセーブル |
DHCP スヌーピング レート制限 |
未設定 |
DHCP スヌーピング信頼状態 |
信頼できない |
DHCP スヌーピング VLAN |
ディセーブル |
DHCP スヌーピングの MAC アドレス検証 |
イネーブル |
Cisco IOS DHCP サーバ バインディング データベース |
Cisco IOS ソフトウェアではイネーブル、設定が必要。 |
DHCP スヌーピング バインディング データベース エージェント |
Cisco IOS ソフトウェアではイネーブル、設定が必要。この機能は宛先が設定されている場合に限り有効。 |
DHCP スヌーピング設定時の注意事項
ここでは、DHCP の設定時の注意事項を説明します。
• DHCP スヌーピングは、スイッチ上でグローバルにイネーブルにする必要があります。
• DHCP スヌーピングは、VLAN で DHCP スヌーピングがイネーブルになるまでアクティブになりません。
• スイッチ上で DHCP スヌーピングをグローバルにイネーブルにする前に、DHCP サーバや DHCP リレー エージェントとして機能するデバイスが設定され、イネーブルになっていることを確認してください。
• スイッチ上で DHCP スヌーピングをグローバルにイネーブルにすると、スヌーピングをディセーブルにするまで Cisco IOS コマンドは使用できません。次のコマンドを入力しても、スイッチからはエラー メッセージが返され、設定は適用されません。
– ip dhcp relay information check グローバル コンフィギュレーション コマンド
– ip dhcp relay information policy グローバル コンフィギュレーション コマンド
– ip dhcp relay information trust-all グローバル コンフィギュレーション コマンド
– ip dhcp relay information trusted インターフェイス コンフィギュレーション コマンド
• スイッチで DHCP スヌーピング情報オプションを設定する前に、DHCP サーバとして機能するデバイスを設定してください。たとえば、DHCP サーバが割り当てたり除外したりできる IP アドレスを指定するか、またはそれらのデバイスの DHCP オプションを設定する必要があります。
• スイッチで DHCP リレー エージェントを設定する前に、DHCP サーバとして機能するデバイスを設定してください。たとえば、DHCP サーバが割り当てたり除外したりできる IP アドレスを指定するか、デバイスの DHCP オプションを設定するか、または DHCP データベース エージェントをセットアップする必要があります。
• DHCP リレー エージェントがイネーブルで、DHCP スヌーピングがディセーブルである場合、DHCP Option 82 データ挿入機能はサポートされません。
• スイッチ ポートが DHCP サーバに接続されている場合は、 ip dhcp snooping trust インターフェイス コンフィギュレーション コマンドを入力して、ポートを信頼できるポートとして設定してください。
• スイッチ ポートが DHCP クライアントに接続されている場合は、 no ip dhcp snooping trust インターフェイス コンフィギュレーション コマンドを入力して、ポートを信頼できないポートとして設定してください。
• DHCP スヌーピング バインディング データベースを設定するときには、次の注意事項に従ってください。
– NVRAM とフラッシュ メモリは、いずれも記憶容量が限られているため、バインディング ファイルを TFTP サーバに保存することを推奨します。
– ネットワーク ベースの URL(TFTP や FTP など)については、スイッチがバインディングをその URL のバインディング ファイルに初めて書き込む前に、設定された URL に空のファイルを作成する必要があります。空のファイルをサーバ上に作成する必要があるかどうかについては、TFTP サーバのマニュアルを参照してください。TFTP サーバによっては、そのように設定できないことがあります。
– データベースに正しいリース期間が記録されるように、NTP をイネーブルにし、設定することを推奨します。詳細については、「NTP の設定」を参照してください。
– NTP が設定されている場合、スイッチのシステム クロックが NTP と同期化されたときにだけ、スイッチがバインディングの変更内容をバインディング ファイルに書き込みます。
• 信頼できないデバイスが接続されたアグリゲーション スイッチに ip dhcp snooping information option allow-untrusted コマンドを入力しないでください。このコマンドを入力すると、信頼できないデバイスがオプション 82 情報をスプーフィングする可能性があります。
DHCP サーバの設定
スイッチは、DHCP サーバとして機能できます。デフォルトでは、Cisco IOS DHCP サーバおよび DHCP リレー エージェント機能はスイッチ上でイネーブルにされていますが、設定されていません。これらの機能は動作しません。
スイッチを DHCP サーバとして設定する場合の手順については、『 Cisco IOS IP Configuration Guide, Release 12.2 』の「IP Addressing and Services」の章にある「Configuring DHCP」を参照してください。
DHCP リレー エージェントの設定
スイッチ上で DHCP リレー エージェントをイネーブルにするには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
service dhcp |
スイッチ上で DHCP サーバおよび DHCP リレー エージェントをイネーブルにします。デフォルトでは、この機能はイネーブルです。 |
ステップ 3 |
end |
特権 EXEC モードに戻ります。 |
ステップ 4 |
show running-config |
入力内容を確認します 。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
DHCP サーバおよび DHCP リレー エージェントをディセーブルにするには、 no service dhcp グローバル コンフィギュレーション コマンドを使用します。
次の手順については、『 Cisco IOS IP Configuration Guide, Release 12.2 』の「IP Addressing and Services」にある「 Configuring DHCP 」を参照してください。
• リレー エージェント情報のチェック(検証)
• リレー エージェント転送ポリシーの設定
パケット転送アドレスの指定
DHCP サーバおよび DHCP クライアントが異なるネットワークまたはサブネットにある場合、スイッチを ip helper-address address インターフェイス コンフィギュレーション コマンドで設定する必要があります。一般的なルールは、クライアントに最も近いレイヤ 3 インターフェイス上にコマンドを設定することです。 ip helper-address コマンドで使用されているアドレスは、特定の DHCP サーバ IP アドレスか、または他の DHCP サーバが宛先ネットワーク セグメントにある場合はネットワーク アドレスにすることができます。ネットワーク アドレスを使用することで、どの DHCP サーバも要求に応答できるようになります。
パケット転送アドレスを指定するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
interface vlan vlan-id |
VLAN ID を入力してスイッチの仮想インターフェイスを作成し、インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 3 |
ip address ip-address subnet-mask |
インターフェイスに IP アドレスおよび IP サブネットを設定します。 |
ステップ 4 |
ip helper-address address |
DHCP パケット転送アドレスを指定します。 ヘルパー アドレスは特定の DHCP サーバ アドレスにするか、他の DHCP サーバが宛先ネットワーク セグメントにある場合は、ネットワーク アドレスにすることができます。ネットワーク アドレスを使用することで、他のサーバも DHCP 要求に応答できるようになります。 複数のサーバがある場合、各サーバに 1 つのヘルパー アドレスを設定できます。 |
ステップ 5 |
exit |
グローバル コンフィギュレーション モードに戻ります。 |
ステップ 6 |
interface range port-range または interface interface-id |
DHCP クライアントに接続されている複数の物理ポートを設定し、インターフェイス範囲コンフィギュレーション モードを開始します。 または DHCP クライアントに接続されている単一の物理ポートを設定し、インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 7 |
switchport mode access |
ポートの VLAN メンバーシップ モードを定義します。 |
ステップ 8 |
switchport access vlan vlan-id |
ステップ 2 で設定したのと同じ VLAN をポートに割り当てます。 |
ステップ 9 |
end |
特権 EXEC モードに戻ります。 |
ステップ 10 |
show running-config |
入力内容を確認します。 |
ステップ 11 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
DHCP パケット転送アドレスを削除するには、 no ip helper-address address インターフェイス コンフィギュレーション コマンドを使用します。
DHCP スヌーピングおよび Option 82 のイネーブル化
スイッチ上で DHCP スヌーピングをイネーブルにするには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
ip dhcp snooping |
DHCP スヌーピングをグローバルにイネーブルにします。 |
ステップ 3 |
ip dhcp snooping vlan vlan-range |
1 つの VLAN または VLAN 範囲で DHCP スヌーピングをイネーブルにします。指定できる範囲は 1 ~ 4094 です。 VLAN ID 番号によって特定される単一の VLAN ID、それぞれをカンマで区切った一連の VLAN ID、ハイフンを間に挿入した VLAN ID の範囲、または先頭および末尾の VLAN ID で区切られた VLAN ID の範囲を入力することができます。これらはスペースで区切ります。 |
ステップ 4 |
ip dhcp snooping information option |
スイッチで、DHCP サーバ宛てに転送される要求メッセージ内の DHCP リレー情報(Option 82 フィールド)の挿入および削除をイネーブルにします。これがデフォルト設定です。 |
ステップ 5 |
ip dhcp snooping information option allow-untrusted |
(任意)スイッチがエッジ スイッチに接続された集約スイッチである場合、スイッチがエッジ スイッチによって Option 82 情報が挿入された着信 DHCP スヌーピング パケットを受け入れるようにします。 デフォルト設定では無効になっています。 (注) このコマンドを入力する必要があるのは、信頼できるデバイスに接続された集約スイッチだけです。 |
ステップ 6 |
interface interface-id |
設定するインターフェイスを指定し、インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 7 |
ip dhcp snooping trust |
(任意)インターフェイスを trusted または untrusted のいずれかに設定します。untrusted クライアントからのメッセージをインターフェイスが受信できるようにするには、 no キーワードを使用します。デフォルト設定は untrusted です。 |
ステップ 8 |
ip dhcp snooping limit rate rate |
(任意)インターフェイスが受信できる 1 秒あたりの DHCP パケット数を設定します。指定できる範囲は 1 ~ 2048 です。デフォルトでは、レート制限は設定されません。 (注) 信頼できないインターフェイスのレート制限を 1 秒あたり 100 パケット以下に設定することを推奨します。trusted インターフェイスにレート制限を設定する場合、ポートが DHCP スヌーピングをイネーブルにした複数の VLAN に割り当てられているトランク ポートであれば、レート制限を増やさなければならない可能性があります。 |
ステップ 9 |
exit |
グローバル コンフィギュレーション モードに戻ります。 |
ステップ 10 |
ip dhcp snooping verify mac-address |
(任意)信頼できないポート上で受信した DHCP パケットにある送信元 MAC アドレスが、パケット内のクライアントのハードウェア アドレスと一致するかどうかを確認するように、スイッチを設定します。デフォルトでは、送信元 MAC アドレスがパケットのクライアント ハードウェア アドレスと一致することを確認します。 |
ステップ 11 |
end |
特権 EXEC モードに戻ります。 |
ステップ 12 |
show running-config |
入力内容を確認します 。 |
ステップ 13 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
DHCP スヌーピングをディセーブルにするには、 no ip dhcp snooping グローバル コンフィギュレーション コマンドを使用します。1 つの VLAN または VLAN の範囲で DHCP スヌーピングをディセーブルにするには、 no ip dhcp snooping vlan vlan-range グローバル コンフィギュレーション コマンドを使用します。Option 82 フィールドの挿入および削除をディセーブルにするには、 no ip dhcp snooping information option グローバル コンフィギュレーション コマンドを使用します。エッジ スイッチによって Option 82 情報が挿入された着信 DHCP スヌーピング パケットをドロップするように集約スイッチを設定するには、 no ip dhcp snooping information option allow-untrusted グローバル コンフィギュレーション コマンドを使用します。
次に、DHCP スヌーピングをグローバルおよび VLAN 10 でイネーブルにし、ポートのレート制限を 1 秒あたり 100 パケットに設定する例を示します。
Switch(config)# ip dhcp snooping
Switch(config)# ip dhcp snooping vlan 10
Switch(config)# ip dhcp snooping information option
Switch(config)# interface gigabitethernet0/1
Switch(config-if)# ip dhcp snooping limit rate 100
プライベート VLAN での DHCP スヌーピングのイネーブル化
DHCP スヌーピングはプライベート VLAN 上でイネーブルにできます。DHCP スヌーピングがイネーブルの場合、設定はプライマリ VLAN および関連付けられているセカンダリ VLAN の両方に伝播します。DHCP スヌーピングがプライマリ VLAN でイネーブルの場合、セカンダリ VLAN でもイネーブルに設定されています。
DHCP スヌーピングがすでにプライマリ VLAN に設定されていて DHCP スヌーピングをセカンダリ VLAN とは異なるように設定した場合、セカンダリ VLAN の設定は有効になりません。プライマリ VLAN に DHCP スヌーピングを設定する必要があります。プライマリ VLAN に DHCP スヌーピングが設定されていない場合は、VLAN 200 などのセカンダリ VLAN に DHCP スヌーピングを設定するときに、次のメッセージが表示されます。
2w5d:%DHCP_SNOOPING-4-DHCP_SNOOPING_PVLAN_WARNING:DHCP Snooping configuration may not take effect on secondary vlan 200.DHCP Snooping configuration on secondary vlan is derived from its primary vlan.
show ip dhcp snooping 特権 EXEC コマンド出力では、DHCP スヌーピングがイネーブルであるプライマリおよびセカンダリ プライベート VLAN を含む、すべての VLAN を表示します。
Cisco IOS DHCP サーバ データベースのイネーブル化
Cisco IOS DHCP サーバ データベースをイネーブルにして設定する手順については、『 Cisco IOS IP Configuration Guide, Release 12.2 』の「Configuring DHCP」の章にある「DHCP Configuration Task List」を参照してください。
DHCP スヌーピング バインディング データベース エージェントのイネーブル化
スイッチ上で DHCP スヌーピング バインディング データベース エージェントをイネーブルにし、設定するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
ip dhcp snooping database { flash:/ filename | ftp:// user : password@host / filename | http:// [[ username : password ]@]{ hostname | host-ip }[/ directory ] / image-name .tar | rcp:// user@host / filename }| tftp:// host / filename |
次のいずれかの形式を使用して、データベース エージェントまたはバインディング ファイルの URL を指定します。 • flash:/ filename • ftp:// user : password @ host / filename • http:// [[ username : password ]@]{ hostname | host-ip }[/ directory ] / image-name .tar • rcp:// user @ host / filename • tftp:// host / filename |
ステップ 3 |
ip dhcp snooping database timeout seconds |
データベース転送プロセスが完了するのを待ち、それまでに完了しない場合はプロセスを停止する時間(秒数)を指定します。 デフォルトは 300 秒です。指定できる範囲は 0 ~ 86400 です 無期限の期間を定義するには、0 を使用します。これは転送を無期限に試行することを意味します。 |
ステップ 4 |
ip dhcp snooping database write-delay seconds |
バインディング データベースが変更されてから転送を開始するまでの遅延時間を指定します。指定できる範囲は 15 ~ 86400 秒です。デフォルトは 300 秒(5 分)です。 |
ステップ 5 |
end |
特権 EXEC モードに戻ります。 |
ステップ 6 |
ip dhcp snooping binding mac-address vlan vlan-id ip-address interface interface-id expiry seconds |
(任意)DHCP スヌーピング バインディング データベースにバインディング エントリを追加します。 vlan-id の範囲は 1 ~ 4904 です。 seconds の範囲は 1 ~ 4294967295 です。 このコマンドは、追加するエントリごとに入力します。 (注) このコマンドは、スイッチをテストまたはデバッグするときに使用します。 |
ステップ 7 |
show ip dhcp snooping database [ detail ] |
DHCP スヌーピング バインディング データベース エージェントのステータスおよび統計情報を表示します。 |
ステップ 8 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
データベース エージェントおよびバインディング ファイルの使用を停止するには、 no ip dhcp snooping database グローバル コンフィギュレーション コマンドを使用します。タイムアウトまたは遅延時間の値を再セットするには、 ip dhcp snooping database timeout seconds または ip dhcp snooping database write-delay seconds グローバル コンフィギュレーション コマンドを使用します。
DHCP スヌーピング バインディング データベース エージェントの統計情報をクリアするには、 clear ip dhcp snooping database statistics 特権 EXEC コマンドを使用します。データベースを更新するには、 renew ip dhcp snooping database 特権 EXEC コマンドを使用します。
DHCP スヌーピング バインディング データベースからバインディング エントリを削除するには、 no ip dhcp snooping binding mac-address vlan vlan-id ip-address interface interface-id 特権 EXEC コマンドを使用します。このコマンドは、削除するエントリごとに入力します。
IP ソース ガードの概要
IP ソース ガードは、ルーティングされないレイヤ 2 インターフェイス上の IP トラフィックを制限するセキュリティ機能で、DHCP スヌーピング バインディング データベースと手動で設定された IP ソース バインディングに基づいてトラフィックをフィルタリングすることで、実現しています。IP ソース ガードを使用して、ホストがネイバーの IP アドレスを使用しようとしたときに発生するトラフィック攻撃を回避できます。
IP ソース ガードは、信頼できないインターフェイス上で DHCP スヌーピングがイネーブルにされている場合にイネーブルにできます。IP ソース ガードがインターフェイスでイネーブルになったあと、スイッチは、DHCP スヌーピングで許可された DHCP パケットを除く、インターフェイスで受信されたすべての IP トラフィックをブロックします。ポート アクセス コントロール リスト(ACL)は、このインターフェイスに適用されます。ポート ACL は、IP ソース バインディング テーブルに送信元 IP アドレスを持つ IP トラフィックだけを許可し、その他のトラフィックはすべて拒否します。
IP ソース バインディング テーブルには、DHCP スヌーピングで学習されたバインディング、または手動で設定されたバインディング(スタティック IP 送信元バインディング)があります。このテーブルのエントリには IP アドレスと、関連 MAC アドレス、および関連 VLAN 番号があります。スイッチは、IP ソース ガードがイネーブルにされている場合だけ、IP ソース バインディング テーブルを使用します。
IP ソース ガードは、アクセス ポートやトランク ポートなどのレイヤ 2 ポートでだけサポートされます。IP ソース ガードを、送信元 IP フィルタリングや送信元 IP および MAC アドレス フィルタリングとともに設定できます。
ここでは、次の情報について説明します。
• 「送信元 IP アドレスのフィルタリング」
• 「送信元 IP アドレスおよび MAC アドレスのフィルタリング」
送信元 IP アドレスのフィルタリング
IP ソース ガードがこのオプションでイネーブルの場合、IP トラフィックは送信元 IP アドレスに基づいてフィルタリングされます。スイッチは、送信元 IP が DHCP スヌーピング バインディング データベースのエントリ、または IP ソース バインディング テーブルのバインディングと一致する場合に、IP トラフィックを転送します。
DHCP スヌーピング バインディングまたはスタティック IP 送信元バインディングがインターフェイスで追加、変更、削除された場合、スイッチは IP 送信元バインディングの変更に基づいてポート ACL を修正し、修正したポート ACL をインターフェイスに再適用します。
(DHCP スヌーピングでダイナミックに学習されたか手動で設定された)IP 送信元バインディングが設定されていないインターフェイスで IP ソース ガードをイネーブルにすると、スイッチはインターフェイス上のすべての IP トラフィックを拒否するポート ACL を作成して適用します。IP ソース ガードをディセーブルにした場合、スイッチはインターフェイスからポート ACL を削除します。
送信元 IP アドレスおよび MAC アドレスのフィルタリング
IP ソース ガードがこのオプションでイネーブルの場合、IP トラフィックは送信元 IP アドレスおよび MAC アドレスに基づいてフィルタリングされます。スイッチは、送信元 IP アドレスと MAC アドレスが IP ソース バインディング テーブルのエントリと一致する場合だけ、トラフィックを転送します。
IP ソース ガードと送信元 IP および MAC アドレス フィルタリングがイネーブルの場合、スイッチは IP および非 IP トラフィックをフィルタリングします。IP パケット、または非 IP パケットの送信元 MAC アドレスが有効な IP ソース バインディングと一致する場合、スイッチはこのパケットを転送します。DHCP パケットを除き、その他の種類のパケットはすべて、スイッチによりドロップされます。
スイッチは、送信元 MAC アドレスのフィルタリングにポート セキュリティを使用します。ポート セキュリティ違反が発生した場合、インターフェイスはシャットダウンします。
IP ソース ガードの設定
ここでは、次の設定について説明します。
• 「デフォルトの IP ソース ガード設定」
• 「IP ソース ガード設定時の注意事項」
• 「IP ソース ガードのイネーブル化」
デフォルトの IP ソース ガード設定
IP ソース ガードは、デフォルトではディセーブルに設定されています。
IP ソース ガード設定時の注意事項
IP ソース ガードの設定時の注意事項は次のとおりです。
• スタティック IP バインディングは、非ルーテッド ポートだけで設定できます。ルーテッド インターフェイスで ip source binding mac-address vlan vlan-id ip-address interface interface-id グローバル コンフィギュレーション コマンドを入力すると、次のエラー メッセージが表示されます。
Static IP source binding can only be configured on switch port.
• IP ソース ガードと送信元 IP フィルタリングが VLAN でイネーブルの場合、DHCP スヌーピングは、インターフェイスが属するアクセス VLAN でイネーブルでなければなりません。
• 複数の VLAN を持つトランク インターフェイス上で IP ソース ガードをイネーブルにし、これらすべての VLAN で DHCP スヌーピングをイネーブルにした場合、すべての VLAN に、送信元 IP アドレス フィルタが適用されます。
(注) IP ソース ガードがイネーブルにされているときに、トランク インターフェイスの VLAN 上で DHCP スヌーピングをイネーブル、またはディセーブルにした場合、スイッチは適切にトラフィックをフィルタリングできない可能性があります。
• IP ソース ガードと送信元 IP および MAC アドレス フィルタリングがイネーブルの場合、DHCP スヌーピングおよびポート セキュリティがインターフェイスでイネーブルでなければなりません。
• プライベート VLAN が設定されているインターフェイスに IP ソース ガードを設定した場合、ポート セキュリティはサポートされません。
• EtherChannels では、IP ソース ガードはサポートされません。
• IEEE 802.1x ポートベース認証がイネーブルである場合、IP ソース ガードの機能をイネーブルにできます。
• Ternary CAM(TCAM)エントリ数が最大数を超えた場合、CPU の使用量が増加します。
IP ソース ガードのイネーブル化
インターフェイス上で IP ソース ガードをイネーブルにして設定するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
interface interface-id |
設定するインターフェイスを指定し、インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 3 |
ip verify source または ip verify source port-security |
送信元 IP アドレス フィルタリングによる IP ソース ガードをイネーブルにします。 送信元 IP および MAC アドレス フィルタリングによる IP ソース ガードをイネーブルにします。 (注) ip verify source port-security インターフェイス コンフィギュレーション コマンドを使用して、IP ソース ガードとポート セキュリティの両方をイネーブルにしたときは、2 つの注意事項があります。 • DHCP サーバは Option 82 をサポートする必要があります。サポートしていない場合、クライアントには IP アドレスが割り当てられません。 • DHCP パケットの MAC アドレスが、セキュア アドレスとして学習されることはありません。DHCP クライアントの MAC アドレスがセキュア アドレスとして学習されるのは、スイッチが非 DHCP データ トラフィックを受信した場合だけです。 |
ステップ 4 |
exit |
グローバル コンフィギュレーション モードに戻ります。 |
ステップ 5 |
ip source binding mac-address vlan vlan-id ip-address inteface interface-id |
スタティック IP ソース バインディングを追加します。 スタティック バインディングごとにこのコマンドを入力します。 |
ステップ 6 |
end |
特権 EXEC モードに戻ります。 |
ステップ 7 |
show ip verify source [ interface interface-id ] |
すべてのインターフェイスまたは特定のインターフェイスに対して IP ソース ガード設定を表示します。 |
ステップ 8 |
show ip source binding [ ip-address ] [ mac-address ] [ dhcp-snooping | static ] [ inteface interface-id ] [ vlan vlan-id ] |
スイッチ、特定の VLAN、または特定のインターフェイス上に IP ソース バインディングを表示します。 |
ステップ 9 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
送信元 IP アドレス フィルタリングによる IP ソース ガードをディセーブルにするには、 no ip verify source インターフェイス コンフィギュレーション コマンドを使用します。
スタティック IP ソース バインディング エントリを削除するには、 no ip source グローバル コンフィギュレーション コマンドを使用します。
次に、IP ソース ガードと送信元 IP および MAC フィルタリングを VLAN 10 および VLAN 11 でイネーブルにする例を示します。
Switch# configure terminal
Enter configuration commands, one per line.End with CNTL/Z.
Switch(config)# interface gigabitethernet0/1
Switch(config-if)# ip verify source port-security
Switch(config)# ip source binding 0100.0022.0010 vlan 10 10.0.0.2 interface gigabitethernet0/1
Switch(config)# ip source binding 0100.0230.0002 vlan 11 10.0.0.4 interface gigabitethernet0/1