HOME / 日記 / Solaris11にdhcpサーバ(dhcpd)をインストールする
Date: 2011/11/16 | | Tags: Solaris11, dhcpd
ご家庭サーバを作る際に、必要なdnsをやったので、次はdhcpサーバをやってみます。これだけやれば、defaultgatewayをルータにしておいて、ルータビルトインのdns/dhcpを無効にできると思います。
Solaris11には、dhcpdは2つ入っています。
pkg list -a | grep dhcp network/dhcp/dhcpmgr 0.5.11-0.175.0.0.0.2.0 i-- network/dhcp/dhcpmgr/locale 0.5.11-0.175.0.0.0.2.765 --- service/network/dhcp 0.5.11-0.175.0.0.0.2.0 i-- service/network/dhcp/isc-dhcp 4.1-0.175.0.0.0.2.530 i--
service/network/dhcpが、Solarisに元々あったdhcpdです。
このdhcpサーバはGUIとCLIで設定ができるのが特徴ですが、設定ファイルを書くのではなく、コマンドで制御できるので、設定ミスによってdhcpdが落ちてしまったりすることを防げるメリットもあります。
isc-dhcpdをつかってもいいのですが、それは至る所に説明があるとおもうので、こっちを使ってみましょう。GUIは設定するまでもないので、CLIでの設定を記述します。
sudo pkg install -v pkg:/service/network/dhcp
manは、下記のように見ることができます。
man -s 4 dhcpsvc.conf
初期化はコマンドで行います。-Dでconfigure、-rはdatastore形式、-pはPATHを設定します。datastoreにSUNWfiles形式を選べば、設定ファイルが/var/dhcp以下に保存されます。技術的には、dhcpdをdisableし、このファイルを勝手に書き換えてenableすれば設定は読み込まれますが、基本はdhcpconfigをつかうように。
sudo /usr/sbin/dhcpconfig -D -r SUNWfiles -p /var/dhcp
dhcpリクエストを受け取るINTERFACESの設定、-Pで設定します。
sudo /usr/sbin/dhcpconfig -P INTERFACES=net0
基本的なネットワーク設定。-Nは、ネットワーク、-mはネットマスク、-tは、デフォルトルータですね。
sudo /usr/sbin/dhcpconfig -N 192.168.10.0 -m 255.255.255.0 -t 192.168.10.254
ICMP_VERIFYを有効にします。これは好き好きですね。
sudo /usr/sbin/dhcpconfig -P ICMP_VERIFY=TRUE
とりあえず、ログをたくさんもらっておく。これも好き好きですね。
sudo /usr/sbin/dhcpconfig -P VERBOSE=TRUE sudo /usr/sbin/dhcpconfig -P LOGGING_FACILITY=0
DHCPのリース条件に名前をつけます。ここではHOMEDHCPという名前にしています。ここからさきは、dhtadmを利用します。
何が配れるかは、/etc/dhcp/initabを参照してください。
sudo dhtadm -A -m HOMEDHCP -d ':LeaseNeg : Timeserv=192.168.10.1 : NTPservs=192.168.10.1 : Router=192.168.10.254 : DNSserv=192.168.10.1 : DNSdmain=ドメイン名 : IRCservs=192.168.10.11 : WWWservs=192.168.10.5 : Logserv=192.168.1.3:' -g
:区切りは、デザインの都合上、スペースを入れていますが、実際には連続して書いてください。
値を変更するには次のように行います。
sudo dhtadm -M -m HOMEDHCP -d '〜〜〜' -g
設定値の一覧を取ります。
sudo dhtadm -P
サーバ再起動方法。
sudo /usr/sbin/dhcpconfig -S -e
ただ、流儀的にはdhcp-serverをrefreshかrestartするのがいいのではないでしょうか?
svcs -a | grep dhcp
disabled 10月_29 svc:/network/dhcp/server:ipv4 disabled 10月_29 svc:/network/dhcp/server:ipv6 disabled 10月_29 svc:/network/dhcp/relay:ipv4 disabled 10月_29 svc:/network/dhcp/relay:ipv6 online 11月_06 svc:/network/dhcp-server:default
sudo svcadm refresh svc:/network/dhcp-server:default
予約のためのIPプールはpntadmで設定します。
このようにやると、192.168.10.51をリースアドレスにすることができます。
sudo pntadm -A 192.168.10.51 -m HOMEDHCP 192.168.1.0
pntadmは複数の範囲設定できなそうなので、シェルの機能を使ってこんな風に設定します。これはzshの例です。かんたん :D
echo 192.168.10.{51..100} | xargs -n1 | sudo xargs -i pntadm -A \{\} -m HOMEDHCP 192.168.10.0
MACアドレスで固定値を与えることも簡単にできます。-iの値はMACアドレスですが、全て大文字でコロン抜きにし、最初に01をつける必要がアリアス。
たとえば、こんな感じ・・・・*は、適当に。
sudo pntadm -A 192.168.10.35 -i 015C********** -s 192.168.10.1 -m HOMEDHCP 192.168.10.0 sudo pntadm -A 192.168.10.36 -i 015855******** -s 192.168.10.1 -m HOMEDHCP 192.168.10.0 sudo pntadm -A 192.168.10.37 -i 010*********** -s 192.168.10.1 -m HOMEDHCP 192.168.10.0
修正はこんな感じ
sudo pntadm -M 192.168.10.35 -i 015C********** -s 192.168.10.1 -m HOMEDHCP 192.168.10.0
削除はこんな感じ
sudo pntadm -D 192.168.10.35
プールの一覧は、これで取得ができます。
sudo pntadm -P 192.168.10.0
設定は直ちに反映されます。
sudo /usr/sbin/dhcpconfig -U sudo rm /var/dhcp/*
これで、完全にいなくなります。
かんたんでしょ?
なお、dhcpmgrを叩くと、GUIでの設定ができます。。X系がいるので、ssh -Xなどではいったりしてみるのもありかと。