wide-dhcp のインストールおよび設定

戻る


 DHCPサーバを立ち上げるのに必要なwide-dhcpのインストール、設定の覚書である。
 
 DHCPとは何か? 簡単に言えばIPの自動取得である(何の略称かは忘れた。DはおそらくDynamicであろう。PはProcessだろうか?)。

 あるLAN内にてDHCPサーバが立ち上がっていれば、ユーザーは計算機をLANに接続するだけで、IPを取得することができる(DHCP接続のためにユーザーもネットワークの設定を変更する必要があるが極めて容易である。)。他のLANに移動した場合、そこでもDHCPサーバが立ち上がっていれば、設定を変更せずにLANに接続するだけでIPを取得できる。計算機をLANから外せば、取得していたIPは開放され、新たに接続された計算機に回される。
 管理者にとっても利点はある。たとえば新たに計算機を購入した時にDNSのデータベースを書き換える必要があるが、DHCPサーバを立ち上げていれば、もはやその必要はない。

 しかしながら、以下の点には注意すべきである。DHCP接続できるクライアントの台数にも制限はある。この制限は後述するが管理者が決定するものである(なお管理者がどう頑張っても127台以上のクライアントをDHCP接続するわけにはいかない)。従って、この制限を越えた台数のクライアントがLANに接続された場合、何らかの障害が起こることが予想される(以前、6系のLANがたびたび止まっていた原因の一つでもある)。

 こうなると、果たしてDHCP接続が良いものなのかわからなくなってくる。しかし、現在の研究室の状況を考えれば、127台ものクライアントがLANに接続されることはなさそうである。従って、「管理者の負担軽減に繋がるかどうか」のみがDHCP接続を採用するか否かの分かれ目となるだろう。


(1)カーネルのコンパイル
 wide-dhcpを動かすにはカーネルにBPF(Berkley Packet Filter)を組み込み、コンパイルしておく必要がある。

%cd /usr/src/sys/i386/conf
%vi MyKernel

 今回は例題であるため、ファイル名をMyKernelとしている。各自、自分の環境に合わせて変更すること。

 現在では、既に次の行がデフォルトで組み込まれている。もしコメントアウトされているようならば、コメントアウトを外してコンパイルする。

pseudo-device    bpfilter    4

 これがおわったら、コンパイルをはじめよう。

%config MyKernel

 ちょっと待つと「don't forget "make depend"」といわれるので、そのとおりにする。

%cd ../../compile/MyKernel
%make depend

 しばらく待つ。これにかかる時間は計算機の性能によるが、結構待たされる事だけは確かである。終わり次第、

%make

 と入力し、コンパイル開始。これもかなり待たされる。勉強でもして待っているとよいだろう。終了したら、

%make install

 としてインストール開始。これは、あまり時間がかからない。

 因みに、作者は、make depend と make をまとめて

%make depend ; make

としている。

 これだけ終わったら、計算機をリブート。これでwide-dhcpのインストール準備完了。


(2)パッケージの展開と設定。
 wide-dhcp-1.4.0.6.tgzを/usr/localにて展開する。

%tar zxvf wide-dhcp-1.4.0.6.tgz

 設定ファイルが置かれているディレクトリに移動する。

%cd /usr/local/share/examples/dhcp

設定ファイル dhcpdb.pool , dhcpdc.relay , dhcpdb.server のサンプルがある。今回、用いるのは dhcpdb.pool のみであるので、これを/etc にコピーする。

%cp dhcpdb.pool.sample /etc/dhcpdb.pool

dhcpdb.pool の例を示す。どのようなLANを対象としているかは、bindの覚書の「(2)設定ファイル」を参照されたい。ただし、dhcpのために割り振られるIPは ppp.qqq.rrr.21〜ppp.qqq.rrr.30 とする。

 なお、他の2つの設定ファイルは、複雑な設定を行うときに必要となる。今回はそんな事やらないので、空のファイルを作成しておく。

%touch /etc/dhcpdb.relay
%touch /etc/dhcpdb.server


(3)起動
 DHCPをどのLANで起動させるか? また、この問題をどのように解決するか? 
 回答はDHCPを起動させたいLANに繋がっているネットワークカードを指定してDHCPを起動してやればよい、である。
今回はサーバのネットワークカードが1枚だけで、そのデバイスが ed0 であるとする。DHCPの実行形式は dhcps である。

%/usr/local/sbin/dhcps ed0

 また、サーバの起動時にDHCPが自動で立ち上がるようにするには /etc/rc.local に以下の行を加えておく。

/usr/local/sbin/dhcps ed0 ; echo " Starting dhcps ed0"


admin@st.tutrp.tut.ac.jp