DHCPサーバとクライアントの管理

目次

クライアント数が多いネットワークではDHCPが主流になっています。SolarisをDHCPクライアントとして利用するのはごくまれですが、DHCPとはどういったものかを理解していくと同時にSolarisのDHCPサーバーとクライアントそして中継サーバーについて紹介します。尚、この章はSCNAとLPIC2の出題範囲です。

DHCPクライアントの設定
ISC DHCPサーバーの設定
Solaris DHCPサーバーの設定
戻る

DHCPクライアントの設定

滅多な事でWSをDHCPクライアント機能を使う事はありませんが、必要な場合ではSolaris WSをDHCPクライアントとして動作させる事は可能です。nsswitch.confの記述を確認して下記の様に/etc/dncp.[NICの名前]をいうファイルを作成して下さい。

# touch /etc/dhcp.[NIC]
# vi dhcp.[NIC]
primary

# reboot

これによりDHCPクライアントが機能するはずです。しかしDHCP client にした場合,ホスト名が unknown になってしまう不具合が発生する場合があります。Solaris は,DHCPサーバーに対してdhcpinfo Hostname送りホスト名を取得します。しかしこれに対応していない DHCPサーバーの場合、ホスト名を取得できません。/etc/nodenameなどによりIPアドレスに依らずホスト名をつけることも可能ですが、グローバルIPアドレスを配るプロバイダー等のDHCPサーバーを利用している場合は下記のようなスクリプトを使うことで対応できます。

#!/bin/sh
hostname=`dhcpinfo Hostname 2> /dev/null`
ipaddr=`dhcpinfo Yiaddr 2> /dev/null`
if [ -z "$hostname" -a ! -z "${ipaddr}" ]; then
/sbin/nslookup ${ipaddr} |\
/bin/grep '^Name:' |\
/bin/sed 's!^Name: *\([a-z].*\)$!\1!'
else
echo $hostname
fi

このスクリプトを保存し/etc/init.d/inetsvcおよび/etc/init.d/network内の`dhcpinfo Hostname`の部分でこれを使うよう変更して下さい。

DHCPサーバーは次の情報を提供します。
IPアドレス
サブネットマスク
デフォルトゲートウェイ
DNSドメイン名
DNSサーバー

それぞれの情報はdncpinfoコマンドから引いてくることができます。DHCPクライアントとはその値をセットしているにすぎません。/etc/init.d/inetsvcの記述をみれば、次のことが分かります。

# /sbin/dncpinfo DNSdmain
# /sbin/dhcpinfo DNSserv

DNSdomainではなくDNSdmainであることに注意してください。

ISC DHCPサーバーの設定

DHCPサーバーで最も一般に使われているのがISC DHCPサーバーです。Linux環境ではDHCPサーバーを構築するにあたりソフトウェアを選ぶ余地はありません。ISCで決まりでしょう。Solaris環境ではSun DHCP ServerとISC DHCPを管理者の好みで採用してください。ちなみにISC DHCPではNICが3枚以上でも問題なく動作するのに対しSun DHCP ServerではNICが2枚以下でないと動作しませんでした。Routerとの併用ではISCが向いているのかもしれません。

インストールはメインページのインストールログを参考にしてください。

/etc/dhcpd.conf

#server-identifier gateway-m01;
option domain-name "office.syns.net";
option domain-name-servers 192.168.0.101;
default-lease-time 3600;
max-lease-time 86400;
#ddns-update-style interim;
ddns-update-style none;
log-facility local7;
subnet 192.168.3.0 netmask 255.255.255.0 {
range 192.168.3.100 192.168.3.200;
option routers 192.168.3.254;
option broadcast-address 192.168.3.255;
}
/var/run/dhcpd.leases

それぞれの値はその名の通りです。上の例はネットワーク192.168.3.100-200に対してネームサーバー192.168.0.101にしてルーターは192.168.3.254の場合です。最後のdhcpd.leasesはDHCPクライアント情報を格納するファイルを指しており、指定の場所にそのファイルが作成されます。dhcpd.confファイルとdhcpd.leasesファイルの用意ができればdncpd.rcを作成して、起動してみましょう。dncpd.rcの例は下記にしめします。

#!/sbin/sh
#
# Make sure that /usr is mounted
[ ! -d /usr/bin ] && exit 1
case "$1" in
'start')
if [ -x /usr/sbin/dhcpd ]; then
if [ -f /etc/dhcpd.conf ]; then
/usr/sbin/dhcpd > /dev/console 2>&1
fi
fi
;;
'stop')
/usr/bin/pkill -x -u 0 dhcpd
;;
*)
echo "Usage: $0 { start | stop }"
exit 1
;;esac
exit 0

Solaris DHCPサーバーの設定

Solarisを使ってDHCPサーバーを立てる場合は、やはりSunの力を借りて便利なGUIのDHCP環境を構築したいところです。通常はインストールされているはずですが、もしも立ち上がらない場合は次のパッケージを確認してください。

SUNWdhcm DHCP Manager
SUNWdhcsb Binary File Format Data Module for BOOTP/DHCP Services
SUNWdhcsr BOOTP/DHCP Server Services, (Root)
SUNWdhcsu BOOTP/DHCP Server Services, (Usr)
SUNWjdhcm Japanese DHCP Manager

DHCPマネージャーを起動するには次のコマンドラインを実行して下さい。

# /usr/sadm/admin/bin/dhcpmgr &

 


<戻る>