[index] CentreCOM 8948XL コマンドリファレンス 2.9

# スイッチング/DHCP Snooping

      - 概要
      - 基本設定

DHCP Snoopingは、DHCPサーバー・クライアント間でやりとりされるDHCPメッセージを監視して動的なIPソースフィルタリングを行う機能です。本機能を利用すれば、DHCPサーバーを用いたネットワーク環境において、正当なDHCPクライアントにだけIP通信を許可することができます。

> Note - 本機能はレイヤー2の機能であるため、IPの設定などをしていなくても使用できます。

> Note - DHCPクライアント機能とDHCP Snoopingは併用できません。

> Note - DHCPサーバー機能とDHCP Snoopingは併用できません。

概要

DHCP Snoopingでは、DHCPメッセージのやりとりを監視してDHCPクライアントがどのポート配下に存在するかを追跡し、その情報に基づいてIPパケットのフィルタリングを行います。
DHCP Snoopingを利用する場合は、次の図のように本製品をDHCPサーバーとDHCPクライアントの間に配置します。このとき、本製品がDHCP/BOOTPリレーエージェントとして動作していてもかまいません。

DHCP Snoopingでは、スイッチポートを次の2つに分類・設定します。デフォルトではすべてのポートがUntrustedポートとして設定されています。

- Trustedポート：DHCP Snoopingによるフィルタリングが無効なポート。Trustedポートでは、パケットに対して特別な処理を行わず、すべてのパケットを通過させます。ネットワーク機器やサーバーのように常時接続で信頼のおける装置を接続するポートは通常Trustedポートに設定します。DHCPサーバーを接続するポートもTrustedポートに設定してください。
- Untrustedポート：DHCP Snoopingによるフィルタリングが有効なポート。Untrustedポートでは、DHCPサーバーからIPアドレスの割り当てを受けたクライアントからのIPパケットだけを通過させ、その他のIPパケットは破棄します（DHCPのクライアントパケットを除く）。クライアントPCのように不特定多数の必ずしも信頼のおけない装置を接続するポートはUntrustedポートに設定します（デフォルトではすべてのポートがUntrustedになります）。

DHCP Snoopingを有効にすると、本製品はDHCPサーバー・クライアント間で交換されるDHCPメッセージを監視するようになります。
Untrustedポートに接続されているクライアントがDHCPサーバーからIPアドレスの割り当てを受けると、本製品はクライアントのIPアドレスやMACアドレス、ポート番号などをDHCP Snoopingテーブル（バインディングデータベース）に登録します。
Untrustedポートでは、バインディングデータベースに登録されているクライアントからのIPパケットだけを許可し、その他のIPパケットは破棄します。これにより、不正に接続されたクライアントがポートを越えてネットワークにアクセスすることを防ぐことができます。

> Note - デフォルト設定では、UntrustedポートにはDHCPクライアントを1台しか接続できません。クライアントを複数接続した場合、最初にIPアドレスを割り当てられたクライアントだけが通信できます。

一方、Trustedポートでは特別な処理を行いません。Trustedポートで受信したパケットは（他のフィルタリング機能によって破棄されないかぎり）通常どおり転送されます。

基本設定

DHCP Snoopingを使用するための基本的な設定手順は次のとおりです。
ここでは、ポート1にDHCPサーバーが接続されており、ポート2〜24には不特定多数のDHCPクライアントが接続されるものと仮定します。

1. DHCP Snoopingを有効にします。

   `ENABLE DHCPSNOOPING ↓
   `
2. DHCPサーバーが接続されているポートをTrustedポートに設定します。

   `SET DHCPSNOOPING PORT=1 TRUSTED=YES ↓
   `
3. 正当なクライアントにだけIP通信を許可するため、次のクラシファイアを作成します。

   `CREATE CLASSIFIER=1 MACSADDR=DHCPSNOOPING PROTOCOL=IP IPSADDR=DHCPSNOOPING ↓
   CREATE CLASSIFIER=9999 PROTOCOL=IP ↓
   `
   - クラシファイア「1」は、送信元MACアドレスと始点IPアドレスの両方がバインディングデータベースに登録されているIPパケットにマッチします。
   - クラシファイア「9999」はすべてのIPパケットにマッチします。
4. DHCPクライアントが接続されているポート2〜24にパケットフィルタリングのためのQoSポリシー「1」を割り当て、前項で作成したクラシファイアを関連付けます。

   `CREATE QOS POLICY=1 ↓
   SET QOS PORT=2-24 POLICY=1 ↓
   CREATE QOS TRAFFICCLASS=1 ↓
   CREATE QOS TRAFFICCLASS=2 ↓
   CREATE QOS FLOWGROUP=1 ACTION=FORWARD ↓
   CREATE QOS FLOWGROUP=2 ACTION=DISCARD ↓
   ADD QOS POLICY=1 TRAFFICCLASS=1,2 ↓
   ADD QOS FLOWGROUP=1 CLASSIFIER=1 ↓
   ADD QOS FLOWGROUP=2 CLASSIFIER=9999 ↓
   ADD QOS TRAFFICCLASS=1 FLOWGROUP=1 ↓
   ADD QOS TRAFFICCLASS=2 FLOWGROUP=2 ↓
   `

基本設定は以上です。
デフォルトではすべてのポートがUntrustedポートに設定されているため、手順2でTrustedポートに設定したDHCPサーバーの接続ポートを除き、他のすべてのポートでIPパケット（DHCPのクライアントパケットを除く）が破棄されます。
Untrustedポートにおいて、DHCPクライアントがDHCPサーバーからIPアドレスを割り当てられたことを検知すると（DHCPACKをクライアントに転送すると）、手順3〜4で設定したQoSポリシー/クラシファイアの働きにより、そのポートでは該当クライアントからのIPパケットを通過させるようになります。
■ ネットワーク機器やサーバーなど、DHCP Snoopingの対象外にしたい装置を接続しているポートは、Trustedポートに設定します。TrustedポートではDHCP Snoopingによるフィルタリングが行われず、原則的にすべての受信パケットが転送されます。

> Note - DHCPサーバーを接続するポートはTrustedポートに設定してください。

ポート種別の設定は、SET DHCPSNOOPING PORTコマンドのTRUSTEDパラメーターで行います。たとえば、DHCPサーバーがポート1に接続されている場合は、次のようにして該当ポートをTrustedポートに設定します。

`SET DHCPSNOOPING PORT=1 TRUSTED=YES ↓
`

■ デフォルト設定では、UntrustedポートにはDHCPクライアントを1台しか接続できません。クライアントを複数接続した場合、最初にIPアドレスを割り当てられたクライアントだけが通信できます。
複数のクライアントを接続したい場合は、SET DHCPSNOOPING PORTコマンドのMAXLEASESパラメーターで接続台数を1〜100の範囲で指定します。

`SET DHCPSNOOPING PORT=1 MAXLEASES=5 ↓
`

■ IPアドレスを固定設定している装置（DHCPクライアント機能を無効化している装置やDHCPクライアント機能を持たない装置など）をUntrustedポートで利用したい場合は、バインディングデータベースにクライアント情報をスタティック登録します。
クライアントの登録はADD DHCPSNOOPING BINDINGコマンドで行います。登録には、IPアドレス、MACアドレス（省略可）、所属VLAN、接続ポートの情報が必要です。

`ADD DHCPSNOOPING BINDING=00-00-00-00-00-01 INTERFACE=vlan-default IP=192.168.10.5 PORT=5 ↓
`

> Note - MACアドレスは省略できますが、MACアドレス無指定のスタティックエントリーを追加する場合は、DHCP Snoopingのオプション機能であるARPセキュリティーを有効化しないでください（デフォルトは無効。有効時はDISABLE DHCPSNOOPING ARPSECURITYコマンドで無効化できます）。また、クラシファイアの設定も変更が必要です（次項をご覧ください）。

> Note - デフォルト設定では、ポートあたり1つしかスタティックエントリーを登録できません。1つのポートに複数のスタティックエントリーを登録したいときは、SET DHCPSNOOPING PORTコマンドのMAXLEASESパラメーターの値を増やす必要があります。

■ MACアドレス無指定のスタティックエントリーを使用する場合は、「基本設定」のクラシファイア「1」を次のように変更してください。
変更前

`CREATE CLASSIFIER=1 MACSADDR=DHCPSNOOPING PROTOCOL=IP IPSADDR=DHCPSNOOPING ↓
`

変更後

`CREATE CLASSIFIER=1 PROTOCOL=IP IPSADDR=DHCPSNOOPING ↓
`

■ DHCP Snoopingでは、IPパケットだけでなく、ARPパケットに対してもフィルタリングを行うことができます。
ENABLE DHCPSNOOPING ARPSECURITYコマンドでARPセキュリティーを有効にすると、Untrustedポートにおいて、登録済みDHCPクライアントからのARPパケットだけを他ポートに転送し、その他のARPパケットは転送せずに破棄するようになります。

`ENABLE DHCPSNOOPING ARPSECURITY ↓
CREATE CLASSIFIER=2 PROTOCOL=ARP ETHFORMAT=ETHII-UNTAGGED ↓
ADD SWITCH HWFILTER CLASSIFIER=2 ACTION=COPY,DISCARD ↓
`

> Note - 本機能は、DHCP Snoopingが有効になっていないと動作しません。

> Note - バインディングデータベースにMACアドレス無指定のスタティックエントリーを追加している場合は、ARPセキュリティーを有効化しないでください。

> Note - ENABLE DHCPSNOOPING ARPSECURITYコマンドはブロードキャストのARPパケットだけをフィルタリングします。マルチキャストやユニキャストのARPパケットをフィルタリングするには、すべてのARPパケットを通常の転送動作から除外してCPUにだけ転送するハードウェアパケットフィルターを設定します。このように設定すると、Trustedポートとバインディングデータベースに登録されている送信元からのARPパケットだけがCPU経由で転送され、その他のARPパケットは破棄されます。なお、ハードウェアパケットフィルターのアクション「COPY,DISCARD」はARPセキュリティーと組み合わせて使うときだけサポートの対象となります。それ以外の用途ではサポート対象外となりますのでご注意ください。

■ DHCP Snoopingでは、監視しているDHCPメッセージに対して、リレーエージェント情報オプション（オプションコード82）の付加と削除を行うことも可能です。
ENABLE DHCPSNOOPING OPTION82コマンドでリレーエージェント情報オプションの付加・検査・削除を有効にすると、Untrustedポートに接続されたクライアントからのDHCP/BOOTPパケットを転送するときに、リレーエージェント情報オプションを挿入するようになります。また、サーバーからの戻りパケットをUntrustedポートに直接接続されたクライアントに転送するときは同オプションを削除するようになります。

`ENABLE DHCPSNOOPING OPTION82 ↓
`

SET DHCPSNOOPING PORTコマンドのSUBSCRIBERIDパラメーターを利用すれば、リレーエージェント情報オプションにSubscriber-IDサブオプションを含めるかどうか（含めるならばその内容も）をスイッチポートごとに設定することができます。

`SET DHCPSNOOPING PORT=5 SUBSCRIBERID="ud-mahahiha" ↓
`

> Note - 本機能は、DHCP Snoopingが有効になっていないと動作しません。

> Note - 本機能は、DHCP/BOOTPリレーの同種機能（ENABLE BOOTP RELAY OPTION82コマンド）とは併用できません。

■ DHCP Snooping有効時は、バインディングデータベースの内容を定期的にチェックして、IPアドレスの使用期限が切れたクライアントの情報をデータベースから削除します。デフォルトのチェック間隔は60秒です。

> Note - スタティック登録したクライアントの情報は削除されません。

チェック間隔は、SET DHCPSNOOPING CHECKINTERVALコマンドで変更できます。有効範囲は1〜3600秒です。

`SET DHCPSNOOPING CHECKINTERVAL=120 ↓
`

本製品は、バインディングデータベースをチェックするたびに、その時点で有効な（ダイナミック登録された）クライアントの情報をbindXXXX.dsnファイル（「XXXX」の部分にはファームウェアのバージョンを表す4桁の数値が入ります）に書き込みます。DHCP Snoopingを無効から有効に変更したときは、最初にこのファイルを読み込み、その時点でまだ有効なクライアントがあれば、それをバインディングデータベースに登録します。
■ DHCP Snoopingの全般的な情報を確認するには、SHOW DHCPSNOOPINGコマンドを使います。

`SHOW DHCPSNOOPING ↓
`

■ ポートごとのDHCP Snooping設定を確認するには、SHOW DHCPSNOOPING PORTコマンドを使います。

`SHOW DHCPSNOOPING PORT ↓
SHOW DHCPSNOOPING PORT=1 ↓
`

■ バインディングデータベースの内容を確認するには、SHOW DHCPSNOOPING DATABASEコマンドを使います。

`SHOW DHCPSNOOPING DATABASE ↓
`

(C) 2004 - 2008 アライドテレシスホールディングス株式会社

PN: J613-M0021-12 Rev.L