4.wide-dhcp-1.4.0p5 (DHCPサーバ&クライアント)のインストール&設定 [目次へ]

 ed1は、wide-dhcpのなかのdhcpc(dhcpクライアント)を使用して、アドレスを取得できるようにする。起動時は、192.168.13.7という仮のアドレスを設定しているので、それを置き換えるようにします。

 1) wide-dhcp-1.4.0p5のインストール

  CD-Rで作成したCD-ROMを入れてください。

  #/stand/sysinstall
  「c.Configure」「P.Packages」「1.CD-ROM」[All]「[X]wide-dhcp-1.4.0p5」
  「OK」「Install」「OK」
  インストールが終了したら「Exit」「OK」「Exit Install」

  通常は、この方法で出来るのですが、自分で作成したCD-ROMからのpackageのインストールに問題がありますので、次の方法で行ってください。

  #mount /cdrom
  #cd /cdrom/3.2-release/packages/net
  #pkg_add wide-dhcp-1.4.0p5.tgz
  #cd /
  #/umount /cdrom

 2)カーネルを再構築

 カーネルに bpfilter を追加してなければ、"pseudo-device bpfilter 4" を追加してカーネルを再構築する。すでに前項でbpfilter 4にしていればカーネルの再構築ありません。

  bpf0〜bpf3 のデバイスファイルがあるか確認する

  #cd /dev
  #ls bpf* ←でbpf0〜bpf3 のデバイスファイルがあるか確認する

  なければ

  ./MAKEDEV bpf0
  ./MAKEDEV bpf1 bpf2 bpf3 ←で3つ一度にできる

 3) DHCP ServerおよびClient が起動するようにSetup

 インストールすると/usr/local/etc/rc.d/wide-dhcps.sh-sample が出来ますので書き換えます。
 #cd /usr/local/etc/rc.d/
 #mv wide-dhcps.sh-sample wide-dhcp.sh
 #ee wide-dhcp.sh

  元のファイルの変更点は、
  下の例の10行目/usr/local/sbin/dhcps fe0のように、[fe0]をdhcpサーバーを動かしたいポートに変更します。
  最後の2行を追加し、dhcpクライアントソフトも起動するようにします。

#!/bin/sh
DB_POOL=/etc/dhcpdb.pool
DB_RELAY=/etc/dhcpdb.relay
DB_BIND=/var/db/dhcpdb.bind
if [ -f ${DB_POOL} -a -f ${DB_RELAY} \
-a -x /usr/local/sbin/dhcps ]; then
if [ -f ${DB_BIND} ]; then
find ${DB_POOL} -newer ${DB_BIND} -exec rm ${DB_BIND} \;
fi
/usr/local/sbin/dhcps fe0
echo -n ' dhcps'
fi
echo -n ' dhcpc '
/usr/local/sbin/dhcpc -r -n ed1

 次のファイルを作らなければ、dhcpcのクライアントのみが動きます。

 WIDE-DHCP の設定は /etc/dhcpdb.pool と /etc/dhcpdb.relay という2つのファイルで行なう。
 relay の方は、今回の場合はリレーエージェントの設定の必要がないので、0バイトファイルとして作成する。

  #touch /etc/dhcpdb.relay

/etc/dhcpdb.pool の変更
 #ee /etc/dhcpdb.pool

   # define a global entry which specifies the stuff every host uses.
   global:!snmk=255.255.255.0:tmof=32400:

   # define different master entries for each subnet.
   internal:tblc=global:rout=192.168.13.11:dht1=500:dht2=850:\(←半角)
       :brda=192.168.13.255:\(←半角)
       :dnsv=210.ddd.nnn.sss(CATV側のDNS)

   # entries for dynamic / automatic allocation (DHCP)
   1001: :ipad=192.168.13.32:dfll=3600:maxl=7200:tblc=internal:
   1002: :ipad=192.168.13.33:dfll=3600:maxl=7200:tblc=internal:
   1003: :ipad=192.168.13.34:dfll=3600:maxl=7200:tblc=internal:
   1004: :ipad=192.168.13.35:dfll=3600:maxl=7200:tblc=internal:

  上記のように、192.168.13.32〜192.168.1.35 の 4つのアドレスを DHCP アドレスに割り当てる。



  snmk:割り当てられるIPアドレスのサブネット
  tmof:UTCからのオフセットを秒数で示す
  tblc:別エントリへの参照
  rout:クライアントのいるサブネット上のルータのIPアドレスのリスト
  dht1:DHCP クライアントがユニキャストにより割り当て期限の延長を開始する時期を指定する
  (WIDE-DHCPでは、サーバが返す割り当て期間に対する千分率で示す)
  dht2:DHCP クライアントがブロードキャストにより割り当て期限の延長を開始する時期を指定する
  (WIDE-DHCPでは、サーバが返す割り当て期間に対する千分率で示す)
  brda:クライアントの接続されたサブネットのブロードキャスト・アドレス
  dnsv:DNSサーバのIPアドレスのリスト
  nmsv:nameサーバのIPアドレスのリスト
  ipad: 割り当てるIPアドレス
  dfll:デフォルトの割り当て期間
  maxl:許容する最大の割り当て期間を秒数で記述

 dhcpsをすぐ動かしてみたい場合は、 #/usr/local/sbin/dhcps fe0 で起動します。(ep0は内部LAN側)

 dhcpcをすぐ動かしてみたい場合は、 #/usr/local/sbin/dhcpc -r -n ed1 で起動します。(ed1は外部CATV側)

  -r:/etc/resolv.confを、dhcpサーバーから知らされたDNSサーバーアドレスに書き換える
  -n:クライアントのホスト名をdhcpサーバーから知らされた名前に書き換える。

  これにより、ed1に192.168.13.7 を仮設定しておいたものを、FreeBSDの立ち上げ時に、
  CATVのグローバルのIPアドレスをCATVのDHCPサーバーからのグローバルなIPアドレスに置き換える。

 5) 確認

  #ifconfig -a でed1のIPアドレスを確認する 192.168.13.7のはずです
  #/usr/local/sbin/dhcpc -r -n ed1
  #ifconfig -a でed1のIPアドレスを確認する 210.rrr.uuu.abcのはずです

  OKなら

  #reboot した後

  #ps ax でdhcpsとdhcpcが動いているかを確認する
  #ifconfig -a で、ed1 がDHCPからグローバルなアドレスが割り当てられているかを確認する。
  pingがfe0,ed1のどちらも通るか確認する。

  #ping -c 3 210.rrr.uuu.ttt (CATVのルータなどにpingを3回くらいかけてみる)
  #ping -c 3 192.168.13.1 (MN128SOHOのアドレスなどにpingを3回くらいかけてみる)


 [目次へ]