DHCP スヌーピングの理解
DHCP は、中央のサーバからホスト IP アドレスを動的に割り当てるために LAN 環境で広く使用されており、それによって IP アドレス管理のオーバーヘッドが大幅に軽減されます。DHCP では、ネットワークに接続されたホストだけが IP アドレスを使用し、IP アドレスを永続的にホストに割り当てる必要がなくなるため、限られた IP アドレス空間を節約できます。
• 「DHCP サーバ」
• 「DHCP リレー エージェント」
• 「DHCP スヌーピング」
• 「Option 82 データ挿入」
• 「Cisco IOS DHCP サーバ データベース」
• 「DHCP スヌーピング バインディング データベース」
DHCP クライアントに関する詳細については、Cisco.com の『 Cisco IOS IP Configuration Guide, Release 12.4 』の「 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 スヌーピング バインディング データベースには、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 スヌーピング バインディング データベースを作成できません。
Cisco IOS Release 12.2(25)SEA よりも前のソフトウェア リリースでは、エッジ スイッチにより Option 82 情報が挿入された場合、DHCP スヌーピング バインディング データベースが正しく読み込まれないため、集約スイッチ上で DHCP スヌーピングを設定できません。また、スタティック バインディングや ARP アクセス コントロール リスト(ACL)を使用しない場合、スイッチ上で IP 送信元ガードやダイナミック アドレス解決プロトコル(ARP)インスペクションも設定できません。
集約スイッチを信頼できないインターフェイス経由でエッジ スイッチに接続できる場合、 ip dhcp snooping information option allow-untrusted グローバル コンフィギュレーション コマンドを入力すると、集約スイッチはエッジ スイッチによって挿入された Option 82 情報を含むパケットを受け入れます。集約スイッチは、信頼できないスイッチ インターフェイスを介して接続されたホストのバインディングを認識します。集約スイッチで、ダイナミック ARP インスペクションや IP ソース ガードなど、DHCP セキュリティ機能をイネーブルに設定することもできますが、その場合でもスイッチは Option 82 情報を含むパケットをホストが接続されている信頼できない入力インターフェイスで受信します。集約スイッチ上のエッジ スイッチとの接続ポートは、信頼できるインターフェイスとして設定する必要があります。
Option 82 データ挿入
住宅地域にあるメトロポリタン イーサネット アクセス環境では、DHCP は多数の加入者に対し、IP アドレスの割り当てを一元的に管理できます。スイッチで DHCP スヌーピングの Option 82 機能をイネーブルにすると、加入者装置は MAC アドレスだけでなく、その装置をネットワークに接続するスイッチ ポートによっても識別されます。サブスクライバ LAN 上の複数のホストをアクセス スイッチの同じポートに接続できます。これらのホストは一意に識別されます。
(注) DHCP Option 82 機能は、DHCP スヌーピングがグローバルにイネーブルであり、この機能を使用する加入者装置が割り当てられた VLAN でもイネーブルである場合に限りサポートされます。
図 23-1 に、一元的な DHCP サーバがアクセス レイヤのスイッチに接続された加入者に IP アドレスを割り当てるメトロポリタン イーサネット ネットワークの例を示します。DHCP クライアントとそれらに関連付けられた DHCP サーバは同じ IP ネットワークまたはサブネット内に存在しないため、DHCP リレー エージェント(Catalyst スイッチ)にヘルパー アドレスを設定することにより、ブロードキャスト転送をイネーブルにし、クライアントとサーバ間で DHCP メッセージを転送します。
図 23-1 メトロポリタン イーサネット ネットワークにおける DHCP リレー エージェント
スイッチで DHCP スヌーピング情報オプション Option 82 をイネーブルにすると、次のイベントがこの順序で発生します。
• ホスト(DHCP クライアント)は DHCP 要求を生成し、これをネットワーク上にブロードキャストします。
• スイッチは、この DHCP 要求を受信すると、パケットに Option 82 情報を追加します。デフォルトでは、リモート ID サブオプションがスイッチの MAC アドレスで、回線 ID サブオプションはパケットを受信するポート ID( vlan-mod-port )です。
• リレー エージェントの IP アドレスが設定されている場合、スイッチはこの IP アドレスを DHCP パケットに追加します。
• スイッチは、オプション 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 クライアントに接続するスイッチ ポートにパケットを転送します。
デフォルトのサブオプション設定では、前述のイベントのシーケンスが発生すると、図 23-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 となり、以降同様に続きます。
図 23-2 に、デフォルトのサブオプション設定が使用されている場合のリモート ID サブオプションおよび回線 ID サブオプションのパケット フォーマットを示します。スイッチがこれらのパケット形式を使用するのは、DHCP スヌーピングをグローバルにイネーブルにし、 ip dhcp snooping information option グローバル コンフィギュレーション コマンドを入力した場合です。
図 23-2 サブオプションのパケット形式
は、ユーザ設定のリモート ID サブオプション、および回線 ID サブオプションのパケット形式を示しています。スイッチでは、DHCP スヌーピングをグローバルにイネーブルにし、 ip dhcp snooping information option format remote-id グローバル コンフィギュレーション コマンド、および ip dhcp snooping vlan information option format-type circuit-id string インターフェイス コンフィギュレーション コマンドを入力した場合に、これらのパケットが使用されます。
パケットでは、リモート ID および回線 ID サブオプションを次のように設定した場合、これらのフィールドの値がデフォルト値から変更されます。
• 回線 ID サブオプション フィールド
– 回線 ID タイプが 1 である。
– 設定した文字列の長さに応じて、長さの値が変化する。
• リモート ID サブオプション フィールド
– リモート ID タイプが 1 である。
– 設定した文字列の長さに応じて、長さの値が変化する。
図 23-3 ユーザ設定のサブオプションのパケット形式
Cisco IOS DHCP サーバ データベース
DHCP ベースの自動設定プロセスの間、指定 DHCP サーバは Cisco IOS DHCP サーバ データベースを使用します。これには IP アドレス、 アドレス バインディング 、およびブート ファイルなどの設定パラメータが含まれます。
アドレス バインディングは、Cisco IOS DHCP サーバ データベース内のホストの IP アドレスおよび MAC アドレス間のマッピングです。クライアント IP アドレスを手動で割り当てること、または、DHCP サーバが DHCP アドレス プールから IP アドレスを割り当てることが可能です。手動および自動アドレス バインディングの詳細については、Cisco.com にある『 Cisco IOS IP Configuration Guide, Release 12.4 』の「Configuring DHCP」の章を参照してください。
DHCP スヌーピング バインディング データベース
DHCP スヌーピングをイネーブルにすると、スイッチは信頼できないインターフェイスに関する情報を DHCP スヌーピング バインディング データベースに保存します。データベースには、64,000 のバインディングを含めることができます。
各データベース エントリ( バインディング )は、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 interface-id 21ae5fbb
192.1.168.3 3 0003.44d6.c52f 2BB648EB interface-id 1bdb223f
192.1.168.2 3 0003.47d9.c8f1 2BB648AB interface-id 584a38f0
スイッチが起動し、計算されたチェックサム値が保存されているチェックサム値と一致した場合、スイッチはバインディング ファイルのエントリを読み取り、バインディングを DHCP スヌーピング バインディング データベースに追加します。次のいずれかの状況が発生した場合、スイッチはエントリを無視します。
• スイッチがエントリを読み取り、計算されたチェックサム値が保存されているチェックサム値と一致しない。この場合、そのエントリとそれ以降のエントリは無視されます。
• エントリに含まれているリース期間が終了している(スイッチはリース期間の終了時にバインディング エントリを削除しないことがある)。
• エントリに含まれるインターフェイスが現在はシステムに存在しない。
• インターフェイスがルーテッド インターフェイスまたは DHCP スヌーピングにおける信頼できるインターフェイスである。
DHCP スヌーピングの設定
• 「DHCP スヌーピングのデフォルト設定」
• 「DHCP スヌーピング設定時の注意事項」
• 「DHCP リレー エージェントの設定」
• 「パケット転送アドレスの指定」
• 「DHCP スヌーピングおよび Option 82 のイネーブル化」
• 「プライベート VLAN での DHCP スヌーピングのイネーブル化」
• 「Cisco IOS DHCP サーバ データベースのイネーブル化」
• 「DHCP スヌーピング バインディング データベース エージェントのイネーブル化」
DHCP スヌーピングのデフォルト設定
表 23-1 に、DHCP スヌーピングのデフォルト設定を示します。
表 23-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 サーバとして設定されているデバイスからだけ、ネットワーク アドレスおよび設定パラメータを取得します。 |
DHCP スヌーピング バインディング データベース エージェント |
Cisco IOS ソフトウェアではイネーブル、設定が必要。この機能は宛先が設定されている場合に限り有効。 |
DHCP スヌーピング設定時の注意事項
• DHCP スヌーピングは、スイッチ上でグローバルにイネーブルにする必要があります。
• DHCP スヌーピングは、VLAN で DHCP スヌーピングがイネーブルになるまでアクティブになりません。
• スイッチ上で DHCP スヌーピングをグローバルにイネーブルにする前に、DHCP サーバや DHCP リレー エージェントとして機能するデバイスが設定され、イネーブルになっていることを確認してください。
• スイッチで DHCP スヌーピング情報オプションを設定する前に、DHCP サーバとして機能するデバイスを設定してください。たとえば、DHCP サーバが割り当てたり除外したりできる IP アドレスを指定するか、またはそれらのデバイスの DHCP オプションを設定する必要があります。
• スイッチ上で文字数の多いサーキット ID を設定する場合、Nonvolatile Random-Access Memory (NVRAM; 不揮発性 RAM)またはフラッシュ メモリに長い文字列が与える影響を考慮してください。サーキット ID 設定がその他のデータと組み合わされた場合、NVRAM またはフラッシュ メモリの容量を超えてしまい、エラー メッセージが表示されます。
• スイッチで 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 と同期化されたときにだけ、スイッチがバインディングの変更内容をバインディング ファイルに書き込みます。
• 信頼できないデバイスが接続されたアグリゲーション スイッチに ip dhcp snooping information option allow-untrusted コマンドを入力しないでください。このコマンドを入力すると、信頼できないデバイスがオプション 82 情報をスプーフィングする可能性があります。
• show ip dhcp snooping statistics ユーザ EXEC コマンドを入力して DHCP スヌーピング統計情報を表示したり、 clear ip dhcp snooping statistics 特権 EXEC コマンドを入力してスヌーピング統計情報をクリアしたりできるようになりました。
(注) RSPAN VLAN では、Dynamic Host Configuration Protocol(DHCP)スヌーピングをイネーブルにしないでください。RSPAN VLAN で DHCP スヌーピングをイネーブルにすると、DHCP パケットが RSPAN 宛先ポートに届かない可能性があります。
• DHCP スヌーピング スマート ロギングを設定すると、DHCP によってドロップされたパケットの内容が、NetFlow 収集装置に送信されます。この機能を設定する場合は、スマート ロギングがグローバルにイネーブルになっていることを確認してください。スマート ロギングの詳細については、を参照してください。
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.com の『 Cisco IOS IP Configuration Guide, Release 12.4 』の「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 [ smartlog ] |
1 つの VLAN または VLAN 範囲で DHCP スヌーピングをイネーブルにします。指定できる範囲は 1 ~ 4094 です。 VLAN ID 番号によって特定される単一の VLAN ID、それぞれをカンマで区切った一連の VLAN ID、ハイフンを間に挿入した VLAN ID の範囲、または先頭および末尾の VLAN ID で区切られた VLAN ID の範囲を入力することができます。これらはスペースで区切ります。 (任意)ドロップされたパケットの内容を NetFlow 収集装置に送信するようにスイッチを設定するには、 smartlog を入力します。 |
ステップ 4 |
ip dhcp snooping information option |
スイッチが DHCP サーバへの DHCP 要求メッセージにおいて DHCP リレー情報(Option 82 フィールド)を挿入および削除できるようにします。これがデフォルトの設定です。 |
ステップ 5 |
ip dhcp snooping information option format remote-id [string ASCII-string | hostname ] |
(任意)リモート ID サブオプションを設定します。 次のようにリモート ID を設定できます。 • 63 文字までの ASCII 文字列(スペースなし) • スイッチに設定されたホスト名 (注) ホスト名が 64 文字以上の場合、リモート ID 設定で 63 文字に切り捨てられます。 デフォルトのリモート ID はスイッチ MAC アドレスです。 |
ステップ 6 |
ip dhcp snooping information option allow-untrusted |
(任意)スイッチがエッジ スイッチに接続された集約スイッチである場合、スイッチがエッジ スイッチによって Option 82 情報が挿入された着信 DHCP スヌーピング パケットを受け入れるようにします。 デフォルト設定はディセーブルです。 (注) このコマンドは、信頼できるデバイスに接続された集約スイッチだけで入力してください。 |
ステップ 7 |
interface interface-id |
設定するインターフェイスを指定し、インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 8 |
ip dhcp snooping vlan vlan information option format-type circuit-id [override] string ASCII-string |
(任意)指定したインターフェイスで回線 ID サブオプションを設定します。 1 ~ 4094 の範囲の VLAN ID を使用して、VLAN およびポート ID を指定します。デフォルトの回線 ID はポート ID で、フォーマットは vlan-mod-port です。 回線 ID は 3 ~ 63 の ASCII 文字列(スペースなし)を設定できます。 (任意) override キーワードは、加入者情報を定義するための TLV 形式に回線 ID サブオプションを挿入したくない場合に使用します。 |
ステップ 9 |
ip dhcp snooping trust |
(任意)インターフェイスを信頼できるインターフェイスまたは信頼できないインターフェイスとして設定します。信頼できないクライアントからのメッセージを受信するようにインターフェイスを設定するには、 no キーワードを使用します。デフォルト設定は untrusted です。 |
ステップ 10 |
ip dhcp snooping limit rate rate |
(任意)インターフェイスが受信できる 1 秒あたりの DHCP パケット数を設定します。指定できる範囲は 1 ~ 2048 です。デフォルトでは、レート制限は設定されません。 (注) 信頼できないインターフェイスのレート制限を 1 秒あたり 100 パケット以下に設定することを推奨します。信頼できるインターフェイスのレート制限を設定する場合、DHCP スヌーピングを使った複数の VLAN に割り当てられたトランク ポートでは、レート制限の値を大きくすることが必要になることがあります。 |
ステップ 11 |
exit |
グローバル コンフィギュレーション モードに戻ります。 |
ステップ 12 |
ip dhcp snooping verify mac-address |
(任意)信頼できないポートに着信した DHCP パケットの送信元 MAC アドレスがパケットのクライアント ハードウェア アドレスと一致することを確認するようにスイッチを設定します。デフォルトでは、送信元 MAC アドレスがパケットのクライアント ハードウェア アドレスと一致することを確認します。 |
ステップ 13 |
end |
特権 EXEC モードに戻ります。 |
ステップ 14 |
show running-config |
設定を確認します 。 |
ステップ 15 |
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 スヌーピングのイネーブル化
プライベート VLAN で DHCP スヌーピングをイネーブルにできます。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.com で『 Cisco IOS IP Configuration Guide, Release 12.4 』の「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 ソース ガードの概要
IPSG は、DHCP スヌーピング バインディング データベース、および手動で設定された IP ソース バインディングに基づいてトラフィックをフィルタリングすることにより、非ルーテッド レイヤ 2 インターフェイスでの IP トラフィックを制限するセキュリティ機能です。IP ソース ガードを使用して、ホストが、そのネイバーの IP アドレスの使用を試みた場合のトラフィック攻撃を防ぐことができます。
IP ソース ガードは、信頼できないインターフェイス上で DHCP スヌーピングがイネーブルにされている場合にイネーブルにできます。インターフェイス上で IPSG をイネーブルにすると、スイッチは、DHCP スヌーピングにより許可された DHCP パケットを除き、このインターフェイスで受信したすべての IP トラフィックをブロックします。ポート アクセス コントロール リスト(ACL)は、このインターフェイスに適用されます。ポート ACL は、IP ソース バインディング テーブルに送信元 IP アドレスを持つ IP トラフィックだけを許可し、その他のトラフィックはすべて拒否します。
(注) ポート ACL は、同じインターフェイスに影響を与えるその他のルータ ACL や VLAN マップよりも優先されます。
IP ソース バインディング テーブル バインディングは、DHCP スヌーピングにより学習されるか、または手動で設定されます(スタティック IP ソース バインディング)。このテーブルのエントリはすべて、MAC アドレスと VLAN 番号が関連付けられた IP アドレスを持ちます。スイッチは、IP ソース ガードがイネーブルにされている場合だけ、IP ソース バインディング テーブルを使用します。
IPSG がサポートされているのは、アクセス ポートおよびトランク ポートを含むレイヤ 2 ポートだけです。送信元 IP アドレス フィルタリングや、送信元 IP および MAC アドレス フィルタリングを使用して、IPSG を設定することができます。
• 「送信元 IP アドレスのフィルタリング」
• 「送信元 IP アドレスおよび MAC アドレスのフィルタリング」
• 「スタティック ホスト用 IP ソース ガード」
送信元 IP アドレスのフィルタリング
IPSG でこのオプションがイネーブルにされている場合、IP トラフィックは、送信元 IP アドレスに基づいてフィルタリングされます。スイッチは、送信元 IP が DHCP スヌーピング バインディング データベースのエントリ、または IP ソース バインディング テーブルのバインディングと一致する場合に、IP トラフィックを転送します。
インターフェイス上で、DHCP スヌーピング バインディング、またはスタティック IP ソース バインディングが追加、変更、または削除された場合、スイッチは IP ソース バインディングの変更を使用して、ポート ACL を変更し、このポート ACL をインターフェイスに再度適用します。
IP ソース バインディング(DHCP スヌーピングにより動的に学習された、または手動で設定されたもの)が設定されていないインターフェイス上で IPSG をイネーブルにした場合、スイッチはこのインターフェイス上で IP トラフィックすべてを拒否するポート ACL を作成し、適用します。IP ソース ガードをディセーブルにした場合、スイッチはインターフェイスからポート ACL を削除します。
送信元 IP アドレスおよび MAC アドレスのフィルタリング
IP トラフィックは、送信元 IP アドレスおよび MAC アドレスに基づいてフィルタリングされます。スイッチは、送信元 IP アドレスと MAC アドレスが IP ソース バインディング テーブルのエントリと一致する場合だけ、トラフィックを転送します。
アドレス フィルタリングがイネーブルの場合、スイッチは IP トラフィックと非 IP トラフィックをフィルタリングします。IP パケット、または非 IP パケットの送信元 MAC アドレスが有効な IP ソース バインディングと一致する場合、スイッチはこのパケットを転送します。DHCP パケットを除き、その他の種類のパケットはすべて、スイッチによりドロップされます。
スイッチは、送信元 MAC アドレスのフィルタリングにポート セキュリティを使用します。ポート セキュリティ違反が発生した場合、インターフェイスはシャットダウンします。
スタティック ホスト用 IP ソース ガード
(注) アップリンク ポート、またはトランク ポートで、スタティック ホスト用 IP ソース ガード(IPSG)を使用しないでください。
スタティック ホスト用 IPSG は、IPSG の機能を DHCP ではない、スタティックな環境に拡張するものです。これまでの IPSG は、DHCP スヌーピングにより作成されたエントリを使用して、スイッチに接続されたホストを検証していました。ホストから受信したトラフィックのうち、有効な DHCP を持たないものはすべてドロップされます。このセキュリティ機能によって、ルーティングされないレイヤ 2 インターフェイス上の IP トラフィックが制限されます。この機能は、DHCP スヌーピング バインディング データベース、および手動で設定された IP ソース バインディングに基づいてトラフィックをフィルタリングします。前バージョンの IPSG では、IPSG を動作させるために DHCP 環境が必要でした。
スタティック ホスト用 IPSG では、DHCP なしで IPSG を動作させることができます。スタティック ホスト用 IPSG は、ポート ACL をインストールするために IP デバイス トラッキング テーブル エントリに依存していまます。このスイッチは、指定されたポートで有効なホストのリストを維持するために、ARP リクエスト、またはその他の IP パケットに基づいてスタティック エントリを作成します。また、指定されたポートにトラフィックを送信できるホストの数を指定することもできます。これはレイヤ 3 でのポート セキュリティと同じです。
スタティック ホスト用 IPSG はダイナミック ホストもサポートしています。ダイナミック ホストが、IP DHCP スヌーピング テーブルに存在する DHCP が割り当てられた IP アドレスを受信すると、IP デバイス トラッキング テーブルは同じエントリを学習します。 show ip device tracking all 特権 EXEC コマンドを入力すると、IP デバイス トラッキング テーブルには、これらのエントリが ACTIVE であると表示されます。
(注) 複数のネットワーク インターフェイスを持つ IP ホストの一部は、ネットワーク インターフェイスに無効なパケットを注入することができます。この無効なパケットには、ソース アドレスとして、別のホスト ネットワーク インターフェイスの IP アドレス、または MAC アドレスが含まれます。この無効パケットは、スタティック ホスト用 IPSG がホストに接続され、無効な IP アドレス バインディングまたは MAC アドレス バインディングが学習されて、有効なバインディングが拒否される原因となります。ホストによる無効なパケットの注入を回避する方法については、対応するオペレーティングシステムとネットワーク インターフェイスのベンダーにお問い合わせください。
最初、スタティック ホスト用 IPSG は ACL ベースのスヌーピング メカニズムを通じて、動的に IP バインディング、または MAC バインディングを学習します。IP バインディング、または MAC バインディングは、ARP パケット、および IP パケットにより、スタティック ホストから学習されます。これらはデバイス トラッキング データベースに保存されます。指定されたポートで動的に学習、または静的に設定された IP アドレスの数が最大値に達した場合、新しい IP アドレスを持つパケットはすべて、ハードウェアによりドロップされます。何らかの理由で移動された、またはなくなったホストを解決するために、スタティック ホスト用 IPSG は IP デバイス トラッキングを活用して、動的に学習した IP アドレス バインディングをエージング アウトします。この機能は、DHCP スヌーピングとともに使用できます。複数バインディングは、DHCP ホストとスタティック ホストの両方に接続されたポートに確立されます。たとえば、バインディングは、デバイス トラッキング データベースと DHCP スヌーピング バインディング データベースの両方に保存されます。
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 を持つトランク インターフェイス上で IP ソース ガードをイネーブルにし、これらすべての VLAN で DHCP スヌーピングをイネーブルにした場合、すべての VLAN に、送信元 IP アドレス フィルタが適用されます。
(注) IP ソース ガードがイネーブルにされているときに、トランク インターフェイスの VLAN 上で DHCP スヌーピングをイネーブル、またはディセーブルにした場合、スイッチは適切にトラフィックをフィルタリングできない可能性があります。
• 送信元 IP および MAC アドレス フィルタリングによる IP ソース ガードをイネーブルにするには、インターフェイスの DHCP スヌーピングとポート セキュリティをイネーブルにする必要があります。また、 ip dhcp snooping information option グローバル コンフィギュレーション コマンドを入力して、DHCP サーバに確実に Option 82 をサポートさせる必要もあります。MAC アドレス フィルタリングとともに IP ソース ガードをイネーブルにした場合、DHCP ホストによりリースが認可されるまで、このホストの MAC アドレスは学習されません。サーバからホストにパケットを転送する場合、DHCP スヌーピングは Option 82 データを使用して、ホスト ポートを識別します。
• プライベート VLAN が設定されているインターフェイスに IP ソース ガードを設定した場合、ポート セキュリティはサポートされません。
• この機能は、802.1x ポートベースの認証がイネーブルにされている場合にイネーブルにできます。
• Ternary Content Addressable Memory(TCAM)エントリの数が最大値を超えた場合、CPU の使用率は増加します。
• IP ソース ガード スマート ロギングを設定すると、指定されたアドレスや DHCP によって学習されたアドレス以外の送信元アドレスを持つパケットは拒否され、そのパケットの内容が NetFlow 収集装置に送信されます。この機能を設定する場合は、スマート ロギングがグローバルにイネーブルになっていることを確認してください。スマート ロギングの詳細については、を参照してください。
IP ソース ガードのイネーブル化
特権 EXEC モードで開始します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
interface interface-id |
設定するインターフェイスを指定し、インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 3 |
ip verify source [ smartlog ] または ip verify source port-security |
送信元 IP アドレス フィルタリングによる IP ソース ガードをイネーブルにします。 • (任意)ドロップされたパケットの内容を NetFlow 収集装置に送信するようにスイッチを設定するには、 smartlog を入力します。 送信元 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
レイヤ 2 アクセス ポートでのスタティック ホスト用 IP ソース ガードの設定
(注) スタティック ホスト用 IPSG を動作させるには、ip device tracking maximum limit-number インターフェイス コンフィギュレーション コマンドをグローバルに設定する必要があります。インターフェイス上で IP デバイス トラッキングをグローバルにイネーブルにせず、または IP デバイス トラッキングの最大数を設定せず、ポート上でこのコマンドだけを設定すると、スタティック ホストの IPSG はそのインターフェイスからの IP トラフィックをすべて拒否します。この要件は、スタティック ホストの IPSG がプライベート VLAN ホスト ポート上で使用される場合にも適用されます。
特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
ip device tracking |
IP ホスト テーブルをオンにし、IP デバイス トラッキングをグローバルにイネーブルにします。 |
ステップ 3 |
interface interface-id |
インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 4 |
switchport mode access |
ポートをアクセスとして設定します。 |
ステップ 5 |
switchport access vlan vlan-id |
このポート用の VLAN を設定します。 |
ステップ 6 |
ip verify source tracking port-security |
MAC アドレス フィルタリングとともにスタティック ホスト用 IPSG をイネーブルにします。 (注) ip verify source port-security インターフェイス コンフィギュレーション コマンドを使用して、IP ソース ガードとポート セキュリティの両方をイネーブルにする場合、 • DHCP サーバは Option 82 をサポートする必要があります。サポートしていない場合、クライアントには IP アドレスを割り当てることができません。 • DHCP パケットの MAC アドレスが、セキュア アドレスとして学習されることはありません。DHCP クライアントの MAC アドレスがセキュア アドレスとして学習されるには、スイッチが非 DHCP データ トラフィックを受信した場合だけです。 |
ステップ 7 |
ip device tracking maximum number |
そのポートで、IP デバイス トラッキング テーブルにより許可されるスタティック IP 数の上限を設定します。指定できる範囲は 1 ~ 10 です。最大値は 10 です。 インターフェイス コンフィギュレーション コマンドを設定する必要があります。 |
ステップ 8 |
switchport port-security |
(任意)このポートのポート セキュリティをアクティブにします。 |
ステップ 9 |
switchport port-security maximum value |
(任意)このポートに対する MAC アドレスの最大値を設定します。 |
ステップ 10 |
end |
特権 EXEC モードに戻ります。 |
ステップ 11 |
show ip verify source interface interface-id |
設定を確認し、スタティック ホストに対する IPSG 許可 ACL を表示します。 |
ステップ 12 |
show ip device track all [active | inactive] count |
スイッチ インターフェイス上の指定されたホストに対する IP/MAC バインディングを表示して、設定を確認します。 • アクティブであるものすべて:アクティブな IP または MAC バインディング エントリだけを表示します • 非アクティブであるものすべて:非アクティブな IP または MAC バインディング エントリだけを表示します • すべて:アクティブおよび非アクティブな IP または MAC バインディング エントリを表示します |
次に、インターフェイス上でスタティック ホストを使って IPSG を停止する例を示します。
Switch(config-if)# no ip verify source
Switch(config-if)# no ip device tracking max
次に、ポート上でスタティック ホストを使って IPSG をイネーブルにする例を示します。
Switch(config)# ip device tracking
Switch(config)# ip device tracking max 10
Switch(config-if)# ip verify source tracking port-security
次に、レイヤ 2 アクセス ポートで IP フィルタを使用してスタティック ホスト用 IPSG をイネーブルにし、インターフェイス Gi0/3 で有効な IP バインディングを確認する例を示します。
Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# ip device tracking
Switch(config)# interface gigabitethernet 0/3
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 10
Switch(config-if)# ip device tracking maximum 5
Switch(config-if)# ip verify source tracking
Switch# show ip verify source
Interface Filter-type Filter-mode IP-address Mac-address Vlan
--------- ----------- ----------- --------------- ----------------- ----
Gi0/3 ip trk active 40.1.1.24 10
Gi0/3 ip trk active 40.1.1.20 10
Gi0/3 ip trk active 40.1.1.21 10
次に、レイヤ 2 アクセス ポートで IP-MAC フィルタを使用してスタティック ホスト用 IPSG をイネーブルにし、インターフェイス Gi0/3 で有効な IP-MAC バインディングを確認してから、このインターフェイス上で上限に達したバインディングの数を確認する例を示します。
Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# ip device tracking
Switch(config)# interface gigabitethernet 0/3
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 1
Switch(config-if)# ip device tracking maximum 5
Switch(config-if)# switchport port-security
Switch(config-if)# switchport port-security maximum 5
Switch(config-if)# ip verify source tracking port-security
Switch# show ip verify source
Interface Filter-type Filter-mode IP-address Mac-address Vlan
--------- ----------- ----------- --------------- ----------------- ----
Gi0/3 ip-mac trk active 40.1.1.24 00:00:00:00:03:04 1
Gi0/3 ip-mac trk active 40.1.1.20 00:00:00:00:03:05 1
Gi0/3 ip-mac trk active 40.1.1.21 00:00:00:00:03:06 1
Gi0/3 ip-mac trk active 40.1.1.22 00:00:00:00:03:07 1
Gi0/3 ip-mac trk active 40.1.1.23 00:00:00:00:03:08 1
この例は、すべてのインターフェイスに対する IP または MAC バインディング エントリをすべて表示します。CLI はアクティブ エントリと非アクティブ エントリの両方を表示します。インターフェイスでホストが学習されると、この新しいエントリは、アクティブとマークされます。このホストをこのインターフェイスから切断し、別のインターフェイスに接続すると、ホストを検出すると同時に、新しい IP または MAC バインディング エントリがアクティブとして表示されます。以前のインターフェイスでは、このホストに対する古いエントリが非アクティブとマークされます。
Switch# show ip device tracking all
IP Device Tracking = Enabled
IP Device Tracking Probe Count = 3
IP Device Tracking Probe Interval = 30
---------------------------------------------------------------------
IP Address MAC Address Vlan Interface STATE
---------------------------------------------------------------------
200.1.1.8 0001.0600.0000 8 GigabitEthernet0/1 INACTIVE
200.1.1.9 0001.0600.0000 8 GigabitEthernet0/1 INACTIVE
200.1.1.10 0001.0600.0000 8 GigabitEthernet0/1 INACTIVE
200.1.1.1 0001.0600.0000 9 GigabitEthernet0/2 ACTIVE
200.1.1.1 0001.0600.0000 8 GigabitEthernet0/1 INACTIVE
200.1.1.2 0001.0600.0000 9 GigabitEthernet0/2 ACTIVE
200.1.1.2 0001.0600.0000 8 GigabitEthernet0/1 INACTIVE
200.1.1.3 0001.0600.0000 9 GigabitEthernet0/2 ACTIVE
200.1.1.3 0001.0600.0000 8 GigabitEthernet0/1 INACTIVE
200.1.1.4 0001.0600.0000 9 GigabitEthernet0/2 ACTIVE
200.1.1.4 0001.0600.0000 8 GigabitEthernet0/1 INACTIVE
200.1.1.5 0001.0600.0000 9 GigabitEthernet0/2 ACTIVE
200.1.1.5 0001.0600.0000 8 GigabitEthernet0/1 INACTIVE
200.1.1.6 0001.0600.0000 8 GigabitEthernet0/1 INACTIVE
200.1.1.7 0001.0600.0000 8 GigabitEthernet0/1 INACTIVE
この例は、すべてのインターフェイスに対するアクティブな IP または MAC バインディング エントリをすべて表示します。
Switch# show ip device tracking all active
IP Device Tracking = Enabled
IP Device Tracking Probe Count = 3
IP Device Tracking Probe Interval = 30
---------------------------------------------------------------------
IP Address MAC Address Vlan Interface STATE
---------------------------------------------------------------------
200.1.1.1 0001.0600.0000 9 GigabitEthernet0/1 ACTIVE
200.1.1.2 0001.0600.0000 9 GigabitEthernet0/1 ACTIVE
200.1.1.3 0001.0600.0000 9 GigabitEthernet0/1 ACTIVE
200.1.1.4 0001.0600.0000 9 GigabitEthernet0/1 ACTIVE
200.1.1.5 0001.0600.0000 9 GigabitEthernet0/1 ACTIVE
この例は、すべてのインターフェイスに対する非アクティブな IP または MAC バインディング エントリをすべて表示します。このホストはまず、GigabitEthernet 0/1 で学習され、次に GigabitEthernet 0/2 で移動されます。GigabitEthernet 0/1 で学習された IP または MAC バインディング エントリは非アクティブとマークされます。
Switch# show ip device tracking all inactive
IP Device Tracking = Enabled
IP Device Tracking Probe Count = 3
IP Device Tracking Probe Interval = 30
---------------------------------------------------------------------
IP Address MAC Address Vlan Interface STATE
---------------------------------------------------------------------
200.1.1.8 0001.0600.0000 8 GigabitEthernet0/1 INACTIVE
200.1.1.9 0001.0600.0000 8 GigabitEthernet0/1 INACTIVE
200.1.1.10 0001.0600.0000 8 GigabitEthernet0/1 INACTIVE
200.1.1.1 0001.0600.0000 8 GigabitEthernet0/1 INACTIVE
200.1.1.2 0001.0600.0000 8 GigabitEthernet0/1 INACTIVE
200.1.1.3 0001.0600.0000 8 GigabitEthernet0/1 INACTIVE
200.1.1.4 0001.0600.0000 8 GigabitEthernet0/1 INACTIVE
200.1.1.5 0001.0600.0000 8 GigabitEthernet0/1 INACTIVE
200.1.1.6 0001.0600.0000 8 GigabitEthernet0/1 INACTIVE
200.1.1.7 0001.0600.0000 8 GigabitEthernet0/1 INACTIVE
この例は、すべてのインターフェイスに対するすべての IP デバイス トラッキング ホスト エントリの総数を表示します。
Switch# show ip device tracking all count
Total IP Device Tracking Host entries: 5
---------------------------------------------------------------------
Interface Maximum Limit Number of Entries
---------------------------------------------------------------------
プライベート VLAN ホスト ポート上のスタティック ホストの IP ソース ガードの設定
(注) スタティック ホストの IPSG を機能させるには、ip device tracking maximum limit-number インターフェイス コンフィギュレーション コマンドをグローバルに設定する必要があります。このコマンドをポートに対して実行したが、IP デバイス トラッキングをグローバルにイネーブルにしていない、または IP device tracking maximum をそのインターフェイスに対して設定していない場合は、スタティック ホストの IPSG によって、そのインターフェイスからの IP トラフィックはすべて拒否されます。この要件は、スタティック ホストの IPSG がレイヤ 2 アクセス ポート上で使用される場合にも適用されます。
特権 EXEC モードで、次に示す手順を実行してレイヤ 2 アクセス ポート上のスタティック ホストの IPSG と IP フィルタを設定します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
vlan vlan-id1 |
VLAN コンフィギュレーション モードを開始します。 |
ステップ 3 |
private-vlan primary |
プライマリ VLAN をプライベート VLAN ポート上に設定します。 |
ステップ 4 |
exit |
VLAN コンフィギュレーション モードを終了します。 |
ステップ 5 |
vlan vlan-id2 |
別の VLAN の VLAN コンフィギュレーション モードを開始します。 |
ステップ 6 |
private-vlan isolated |
独立 VLAN をプライベート VLAN ポート上に設定します。 |
ステップ 7 |
exit |
VLAN コンフィギュレーション モードを終了します。 |
ステップ 8 |
vlan vlan-id1 |
VLAN コンフィギュレーション モードを開始します。 |
ステップ 9 |
private-vlan association 201 |
VLAN を独立プライベート VLAN ポートに関連付けます。 |
ステップ 10 |
exit |
VLAN コンフィギュレーション モードを終了します。 |
ステップ 11 |
interface fastEthernet interface-id |
インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 12 |
switchport mode private-vlan host |
(任意)ポートをプライベート VLAN ホストとして設定します。 |
ステップ 13 |
switchport private-vlan host-association vlan-id1 vlan-id2 |
(任意)このポートに、対応するプライベート VLAN を関連付けます。 |
ステップ 14 |
ip device tracking maximum number |
このポートに対して IP デバイス トラッキング テーブルに保持できるスタティック IP の数の上限を設定します。 最大値は 10 です。 インターフェイス コマンドをグローバルに設定する必要があります。 |
ステップ 15 |
ip verify source tracking [port-security] |
このポート上のスタティック ホストの IPSG と MAC アドレス フィルタリングをアクティブにします。 |
ステップ 16 |
end |
インターフェイス コンフィギュレーション モードを終了します。 |
ステップ 17 |
show ip device tracking all |
設定を確認します。 |
ステップ 18 |
show ip verify source interface interface-id |
IP ソース ガードの設定を確認します。スタティック ホストの IPSG の許可 ACL を表示します。 |
次に、プライベート VLAN ホスト ポート上でスタティック ホストの IPSG と IP フィルタをイネーブルにする例を示します。
Switch(config-vlan)# private-vlan primary
Switch(config-vlan)# exit
Switch(config-vlan)# private-vlan isolated
Switch(config-vlan)# exit
Switch(config-vlan)# private-vlan association 201
Switch(config-vlan)# exit
Switch(config)# int fastEthernet 4/3
Switch(config-if)# switchport mode private-vlan host
Switch(config-if)# switchport private-vlan host-association 200 201
Switch(config-if)# ip device tracking maximum 8
Switch(config-if)# ip verify source tracking
Switch# show ip device tracking all
IP Device Tracking = Enabled
IP Device Tracking Probe Count = 3
IP Device Tracking Probe Interval = 30
---------------------------------------------------------------------
IP Address MAC Address Vlan Interface STATE
---------------------------------------------------------------------
40.1.1.24 0000.0000.0304 200 FastEthernet0/3 ACTIVE
40.1.1.20 0000.0000.0305 200 FastEthernet0/3 ACTIVE
40.1.1.21 0000.0000.0306 200 FastEthernet0/3 ACTIVE
40.1.1.22 0000.0000.0307 200 FastEthernet0/3 ACTIVE
40.1.1.23 0000.0000.0308 200 FastEthernet0/3 ACTIVE
出力には、インターフェイス Fa0/3 上で学習された 5 つの有効な IP-MAC バインディングが表示されています。プライベート VLAN の場合は、バインディングにはプライマリ VLAN ID が関連付けられます。したがって、この例ではプライマリ VLAN ID である 200 が表に表示されています。
Switch# show ip verify source
Interface Filter-type Filter-mode IP-address Mac-address Vlan
--------- ----------- ----------- --------------- ----------------- ----
Fa0/3 ip trk active 40.1.1.23 200
Fa0/3 ip trk active 40.1.1.24 200
Fa0/3 ip trk active 40.1.1.20 200
Fa0/3 ip trk active 40.1.1.21 200
Fa0/3 ip trk active 40.1.1.22 200
Fa0/3 ip trk active 40.1.1.23 201
Fa0/3 ip trk active 40.1.1.24 201
Fa0/3 ip trk active 40.1.1.20 201
Fa0/3 ip trk active 40.1.1.21 201
Fa0/30/3 ip trk active 40.1.1.22 201
この出力からは、5 つの有効な IP-MAC バインディングはプライマリとセカンダリの両方の VLAN 上にあることがわかります。
DHCP サーバ ポートベースのアドレス割り当ての設定
• 「ポートベースのアドレス テーブルのデフォルト設定」
• 「ポートベースのアドレス割り当て設定時の注意事項」
• 「DHCP サーバ ポートベースのアドレス割り当てのイネーブル化」
ポートベースのアドレス テーブルのデフォルト設定
デフォルトでは、DHCP サーバ ポートベースのアドレス割り当てはディセーブルにされています。
ポートベースのアドレス割り当て設定時の注意事項
ここでは、DHCP ポートベースのアドレス割り当て設定時の注意事項を説明します。
• 1 つのポートに付き割り当てることができる IP アドレスは 1 つだけです。
• 専用アドレス(事前に設定されたアドレス)は、 clear ip dhcp binding グローバル コンフィギュレーション コマンドではクリアできません。
• 事前に設定されたアドレスは、通常の動的な IP アドレス割り当てからは自動的に除外されます。ホスト プールでは、事前に設定されたアドレスは使用できませんが、1 つの DHCP アドレス プールに対して複数のアドレスを事前に設定することはできます。
• DHCP プールから事前に設定された予約への割り当てを制限する(予約されていないアドレスはクライアントに提供されず、その他のクライアントはプールによるサービスを受けない)ために、 reserved-only DHCP プール コンフィギュレーション コマンドを入力することができます。
DHCP サーバ ポートベースのアドレス割り当てのイネーブル化
ポートベースのアドレス割り当てをグローバルにイネーブル化し、インターフェイス上で加入者 ID を自動的に生成するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
ip dhcp use subscriber-id client-id |
すべての着信 DHCP メッセージで、加入者 ID がクライアント ID としてグローバルに使用されるように DHCP サーバを設定します。 |
ステップ 3 |
ip dhcp subscriber-id interface-name |
インターフェイスの短い名前に基づいて、加入者 ID を自動的に生成します。 特定のインターフェイスで設定された加入者 ID は、このコマンドで優先されます。 |
ステップ 4 |
interface interface-id |
設定するインターフェイスを指定し、インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 5 |
ip dhcp server use subscriber-id client-id |
インターフェイス上ですべての着信 DHCP メッセージで、加入者 ID がクライアント ID として使用されるように DHCP サーバを設定します。 |
ステップ 6 |
end |
特権 EXEC モードに戻ります。 |
ステップ 7 |
show running config |
設定を確認します。 |
ステップ 8 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
スイッチ上での DHCP ポートベースのアドレス割り当てをイネーブルにした後で、 ip dhcp pool グローバル コンフィギュレーション コマンドを使用して、IP アドレスの事前割り当てと、クライアントへの関連付けを行います。DHCP プールから事前に設定された予約への割り当てを制限するために、 reserved-only DHCP プール コンフィギュレーション コマンドを入力することができます。ネットワークまたはプール上の範囲の一部である予約されていないアドレスがクライアントには提供されず、他のクライアントはプールによるサービスを受けられません。このコマンドの入力により、ユーザは、共通の IP サブネットを共有し、他のスイッチのクライアントからの要求を無視する DHCP プールを持つスイッチのグループを設定できます。
IP アドレスを事前に割り当て、これをインターフェイス名で識別されるクライアントに関連付けるには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
ip dhcp pool poolname |
DHCP プール コンフィギュレーション モードを開始し、DHCP プールの名前を定義します。プール名には象徴的な文字列(Engineering など)または整数(0 など)を使用できます。 |
ステップ 3 |
network network-number [ mask | /prefix-length ] |
DHCP アドレス プールのサブネット ネットワーク番号とマスクを指定します。 |
ステップ 4 |
address ip-address client-id string [ ascii ] |
インターフェイス名で指定された DHCP クライアントの IP アドレスを予約します。 string :ASCII 値、または 16 進数値のいずれかです。 |
ステップ 5 |
reserved-only |
(任意)DHCP アドレス プールでは、予約されたアドレスだけを使用します。デフォルトでは、プール アドレスは制限されません。 |
ステップ 6 |
end |
特権 EXEC モードに戻ります。 |
ステップ 7 |
show ip dhcp pool |
DHCP プール設定を確認します。 |
ステップ 8 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
DHCP ポートベースのアドレス割り当てをディセーブルにするには、 no ip dhcp use subscriber-id client-id グローバル コンフィギュレーション コマンドを使用します。加入者 ID の自動生成をディセーブルにするには、 no ip dhcp subscriber-id interface-name グローバル コンフィギュレーション コマンドを使用します。インターフェイス上で加入者 ID をディセーブルにするには、 no ip dhcp server use subscriber-id client-id インターフェイス コンフィギュレーション コマンドを使用します。
DHCP プールから IP アドレスの予約を削除するには、 no address ip-address client-id string DHCP プール コンフィギュレーション コマンドを使用します。アドレス プールを非制限に変更するには、 no reserved-only DHCP プール コンフィギュレーション コマンドを入力します。
次の例では、加入者 ID が自動的に生成され、DHCP サーバは DHCP メッセージ内のクライアント ID フィールドを一切無視して、その代わりに、加入者の ID を使用しています。加入者 ID はインターフェイスのショート名に基づきます。また、クライアントの事前割り当てされた IP アドレスは 10.1.1.7 です。
Switch# show running config
Building configuration...
Current configuration : 4899 bytes
ip dhcp relay information policy removal pad
no ip dhcp use vrf connected
ip dhcp use subscriber-id client-id
ip dhcp subscriber-id interface-name
ip dhcp excluded-address 10.1.1.1 10.1.1.3
network 10.1.1.0 255.255.255.0
address 10.1.1.7 client-id “Et1/0” ascii
次に、事前割り当てされたアドレスが DHCP プールに正常に予約された例を示します。
Switch# show ip dhcp pool dhcppool
Utilization mark (high/low) : 100 / 0
Subnet size (first/next) : 0 / 0
1 subnet is currently in the pool:
Current index IP address range Leased/Excluded/Total
10.1.1.1 10.1.1.1 - 10.1.1.254 0 / 4 / 254
1 reserved address is currently in the pool
DHCP サーバ ポートベースのアドレス割り当て機能の設定の詳細については、Cisco.com にアクセスし、[Search] フィールドに「 Cisco IOS IP Addressing Services 」と入力して、Cisco IOS ソフトウェア マニュアルを参照してください。マニュアルは次の URL からも入手できます。
http://www.cisco.com/en/US/docs/ios/ipaddr/command/reference/iad_book.html