2007年 05月 23日
2セグメントを対象にしたDHCPで
1台のDHCPサーバが,2セグメントにIPアドレスをリースしていると思ってください。

1)Aセグメント(下の例では192.168.2.0/24)では自由にパソコンを接続させることができるようにしています。そのため,IPアドレスをプールしている上限までIPアドレスをリースします。

2)Bセグメント(下の例では192.168.1.0/24)は,MACアドレスで制限をかけています。登録したマシンのみがIPアドレスをリースされます。

3)利用者は,同じパソコンをAセグメントでも,Bセグメントでも利用することがあります。このとき許可されていないパソコンをBセグメントに持ってきたときにはIPアドレス(及びデフォルトゲートウェイとかの情報も)はリースされません。

ということを実現したいとき,
 deny unknown-clients;
を使うことはできません。というのはhost定義(で定義したMACアドレス)はスコープに限定されず,グローバルに利用されるからです。ですから,「片方のセグメントでだけ許可したい」と設定したつもりでも,両方のセグメントで許可されてしまいます。

 こういうときにはK氏から「Class」定義が活用できるはずと教えてもらいました。やってみると実にうまくできました。DHCP―ホスト設定サーバの設定・運用・管理
江面 敦 / / テクノプレス
スコア選択: ★★★★★

この本の6.6節 133~134ページにallowとdenyの表が書かれています。
■許可(allowステートメント)
 allow members of "クラス名";
  指定クラスのメンバーであるクライアントに割り当て可
■禁止 (denyステートメント)
  deny unknown clients;
hostステートメントを持たないクライアントは割り当て禁止

ということなので,
class "OKMEMBER" {
  match hardware;
}

subclass "OKMEMBER" 1:xx:xx:xx:xx:xx:xx;

subnet 192.168.1.0 netmask 255.255.255.0 {
  pool {
    range dynamic-bootp 192.168.1.129 192.168.1.250;
    allow members of "OKMEMBER";
  }
  default-lease-time 86400;
  max-lease-time 432000;
  option subnet-mask 255.255.255.0;
  option broadcast-address 192.168.1.255;
  option routers 192.168.1.1;
  option domain-name-servers 192.168.1.1;
  option domain-name "in.sample.co.jp";
}

subnet 192.168.2.0 netmask 255.255.255.0 {
  range dynamic-bootp 192.168.2.129 192.168.2.250;
  default-lease-time 86400;
  max-lease-time 432000;
  option subnet-mask 255.255.255.0;
  option broadcast-address 192.168.2.255;
  option routers 192.168.2.1;
  option domain-name-servers 192.168.2.1;
  option domain-name "sample.co.jp";
  option ip-forwarding off;
}

のように設定すると,192.168.1.0/24のセグメントではMACアドレスを登録したマシンだけにIPアドレスがリースされます。

そうそう,重要な点が2つ。
■注意1■
 「deny unknown clients;」と併用しない。これを定義すると,表にあるようにhost定義が別途必要になります。

■注意2■
「subclass」でMACアドレスを定義しますが,MACアドレスの前に「1:」が必要です。この「1:」が「EthernetのMACアドレス情報である」ことを示すフラグだからです。
[PR]

by ji3faf | 2007-05-23 12:33 | システム管理


<< 教育機器を利用するときに気遣う...      危機管理は誰が立案するのか? >>


にほんブログ村 教育ブログへ




Map