さて、今回はDHCPサーバのお話です。
DHCPサーバってなに? なんて事は聞かないで下さいませ(爆)
でも、簡単に説明を・・・。
DHCP(Dynamic Host Configuration Pro-tocol)
普通、ネットワーク(特にインターネット)はTCP/IPと言うプロトコル(
コンピュータの方言)で情報のやり取りを行います。
でも、このコンピュータは何処のだれそれさんだと言う住所(名前)が必
要です。
この住所(名前)がIPアドレスと言う物なのですが、3桁の数字の4配列
なので、全世界のコンピュータの数には足りませんです。
そこで考えられたのが・・・普段使わないパソコン(常時起動では無い)
にも、IPアドレスをフルに割り当てするのでは無く、使う時だけ割れ当てれ
ば良い・・・と言う事です。
では、割り当てる方(サーバ)だけがIPアドレス管理をすれば良いので、
サーバソフトを開発しようと、考えられて作られたのが、DHCPサーバです。
UNIXの世界ではフリーソフトの「wide-dhcp-1.3b.tgz」が有名ですので、
此方の簡単な解説をば。
FreeBSD の「2.2.*」 以後ではポートファイル化されているので、「make
」一発でインストールは出来ます。
インストールはとても簡単ですが、設定がチト面倒です(汗)
弄るファイルは以下に。
/etc/dhcpdb.pool
/etc/dhcpdb.relay
ターゲットは「/etc/dhcpdb.pool」です。
普通に「wide-dhcp-1.3b.tgz」をインストールすると、「/usr/local/share
/dhcp」 にサンプルである「dhcpdb.pool.sample」があるので、コピーして
使いましょう。
「cp /usr/local/share/dhcp/dhcpdb.pool.sample /etc/dhcpdb.pool」
で、書き換えます。
(注)「dhcp.pool」の場合もあります。
「ee /etc/dhcpdb.pool」もしくは
「vi /etc/dhcpdb.pool」
global:!snmk=255.255.255.0:tmof=32400:
# 此れは、字の如しでネットマスクです。
# 私の様にOCNエコノミー自前ドメインの場合は、「255.255.255.240」
# です、普通のCクラスIPを割り当ての場合は表記の通りでOKです。
# 「tmof」はグリニッジ時間と日本時間の差分秒の9時間の事です。
subnet0:tblc=global:rout=210.145.169.161:dht1=500:dht2=850:|
:brda=210.145.169.176:|
:dnsv=210.145.169.162:dnsd="toride.com"
# 此処は、サーバやルータの指定です。
# 書き方によっては、処理が重くなるそうなので、気を付けましょう(爆)
# 「rout」はルーターの指定です。
# 「dht1」はdhcpクライアントの割り当て有効期限の延長要求の開始時期を
# 指定しています。
# 「dht2」も大体は、同じ意味です。
# 「brda」は、ブロードキャストアドレスを書き込みます。
0165 :ipad=210.145.169.165:dfll=7200:tblc=subnet0:
0166 :ipad=210.145.169.166:dfll=7200:tblc=subnet0:
0167 :ipad=210.145.169.167:dfll=7200:tblc=subnet0:
# クライアントに割り当てるIPアドレスの用意です。
# 「ipad」で割り当てるアドレスを指定します。
# 「dfll」で期間を指定します。
その他の詳細設定に拘りたい人の為に「dhcpdb.pool」 用のフィールドを
用意します。
ipad・・・・クライアントに割り当てる、IPアドレス。
maxl・・・・割り当てアドレスの最長有効期限(秒)
dfll・・・・クライアントからの要求が無い場合の有効期限。
snmk・・・・割り当てするIPアドレスのネットマスク。
rout・・・・デフォルトゲートウェイ・アドレス。
dnsv・・・・DNSサーバのアドレス。
hstn・・・・クライアントホスト名。
dnsd・・・・DNSドメイン名。
brda・・・・ネットワーク・ブロード・キャスト。
strt・・・・静的ルーティング用、宛先&ゲートウェイの組みアドレス。
nisd・・・・NISドメイン名。
nisv・・・・NISサーバのIPアドレス。
後は、「/etc/dhcpdb.relay」と「/etc/dhcpdb.server」 がありますがリ
レーエージェントを使用しない限りは、必要ありません。
但し、「/etc/dhcpdb.relay」 は空ファイルを入れて置かなくては、サー
バの調子が悪くなるので、下記の様に作成しましょう。
touch /etc/dhcpdb.relay
それと、先回言い忘れたデバイスファイルの用意も・・・。
cd /dev
./MAKEDEV bpf1 bpf2 bpf3
と、元々あった「bpf0」と合わせて、4つは用意して下さい。
あっと、忘れる所でした(汗)
「wide-dhcp-1.3b.tgz」をインストールすると、警告が出たと思います。
「カーネルに何らかが、入っていない!」見たいな感じな警告です。
言われた通りに、カーネルを構築しなおしましょう。
AT互換機の場合は、 「/usr/src/sys/i386/conf/GENERIC」。
98シリーズの場合は、「/usr/src/sys/pc98/conf/GENERIC」。
を別名にコピーして使用します。
上記のディレクトリに移動して。
「cp GENERIC AYASII」とか(爆)
で、エディタで別名コピーしたファイルを開きます。
「ee AYASII」 とか・・・。
それで、「pseudo-device bpfilter4」 を追加します。
さて、コンパイルしましょう。
「config AYASII」終わったら、指定のディレクトリに移動して。
「cd ../../compile/AYASII」
メークしましょう。
「make depend」
「make」
無事、メーク終わったら新しいカーネルをインストールしましょう。
「make install」
さて、リブートしましょう。
「reboot」
後は、確認です。
環境ファイルを確認しましょう。
ターゲットは「/etc/services」です。
「/etc/services」 は内容の確認だけで済むはずです。
「/etc/services」 に下記の内容があるか、確認して無ければ、追加して下
さい。
bootps 67/udp dhcps
bootpc 68/udp dhcpc
次は、自動起動です。
ターゲットファイルは、「/etc/rc.local」です。
難しい事は解らないで、良いです(汗)
下記を追加して下さい。
# DHCP server
if [ -f /etc/dhcpdb.pool ]; then
/usr/local/sbin/dhcps ed1
fi
書き換えたら、リブートしましょう。
やっと、DHCPサーバのインストールが終わりました。
話しが前後していましましたが、DHCPサーバを動かすには、DNSサ
ーバが動いている状態で行って下さいね(爆)