DHCPサーバーにする

First Edition 2001.4.22
Last Update 2002.8.13

まず最初に、DHCPサーバーを設定しようとするときは、外部のネットワークと物理的に切断して作業しましょう。 数台つなげただけのネットワークを作り、そこでテストして外部のネットワークと接続しましょう。そうしないと、 外部のネットワークに迷惑をかけてしまいます。気をつけましょう。

本格的なDHCPサーバーにするのは詳細に調査、設定しなければいけませんが、家庭内のLANに向けて DHCPサーバーを設定するのであれば簡単です。
これにより前項、DHCPクライアントにするとの組み合わせにより、Linux Boxにおいて DHCPクライアントとDHCPサーバーが混在することになります。
下の図において、eth1にDHCPサーバーを設定します。



Vine2.1.5とVine2.5では若干設定が異なります。
Vine2.1.5の場合は、1→2→4と読み進んでください
Vine2.5の場合は、1→3→4と読み進んでください
  1. アドレスを割り当てるネットワーク情報を集める(対象:2.1.5、2.5)(2001.4.22)
  2. ファイルを編集する(Vine2.1.5)(対象:2.1.5)(2001.4.22)
  3. ファイルを編集する(Vine2.5)(対象:2.5、2.6)(2002.8.13)
  4. デーモンを設定する(対象:2.1.5、2.5)(2001.5.22)

アドレスを割り当てるネットワーク情報を集める

DHCPによってアドレスを割り当てたいネットワークの情報を集めましょう。

1. ネットワーク
 割り当てるネットワークを設定します。192.168.1.0を割り当てるため、192.168.1.0を設定します。

2.ネットマスク
 255.255.255.0を設定します。

3. ゲートウェイのアドレス
 Client Boxのコンピュータはこのアドレスを経由してインターネットにアクセスします。 eth1に192.168.1.1を割り当ててありますので、この値を設定することにより、Client Boxは、eth1→eth0→Cable Modem→Internet という風にインターネットにアクセスします。なお、eth1→eth0への通信はIPマスカレードを設定します。

4. ドメイン名
 割り当てるネットワークにもドメイン名を与えてあげなくてはいけません。 家庭内LANなので試しに"home.org"とします。

5. DNSサーバーのアドレス
 この値は適当ではいけません。決めるというよりも、私の家では、CATVから教えてもらった DNSサーバーのアドレスがありますので、それを設定します。プライマリ(例:aaa.bbb.ccc.ddd) 、セカンダリ(例:eee.fff.ggg.hhh)の2つありました。 6. ブロードキャストアドレス
 ネットワークアドレスは192.168.1.0であり、ネットマスクが255.255.255.0なので、192.168.1.255を設定します。

7. リースするアドレスの範囲
 192.168.1.10から192.168.1.20を設定します。これは、割り当てる台数にしたがって増減させてください。

8. デフォルトリース時間
 単位は秒です。デフォルトでは6000秒です。DHCPクライアントはこの時間を知る事により、 時間が過ぎるとまたDHCPサーバーにアドレス要求を出します。DHCPサーバーは同じクライアントにはできるだけ同じアドレスを割り当てようとします。 9. 最大リース時間
 単位は秒です。デフォルトでは72000秒です。DHCPサーバーは同じDHCPクライアントに対して この時間を越えてアドレスをリースしません。

ファイルを編集する(Vine2.1.5)

作成するファイルが2つ。編集するファイルが1つあります。ルートになって作業します。

1. まずはDHCPサーバーの設定ファイルを作成します。

/etc/dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0
{
 option routers 192.168.1.1;
 option  subnet-mask 255.255.255.0;
 option domain-name "home.org";
 option domain-name-servers aaa.bbb.ccc.ddd,eee.fff.ggg.hhh;
 option broadcast-address 92.168.1.255;
 range dynamic-bootp 192.168.1.10 192.168.1.20;
 default-lease-time 21600;
 max-lease-time 43200;
}
ネットワークとネットマスク

ルータ(ゲートウェイ)のアドレス
ネットマスク
ドメイン名
DNSサーバーアドレス(プライマリとセカンダリ)
ブロードキャストアドレス
リースアドレス範囲
デフォルトリース時間
最大リース時間

2. ディストリビューションによっては、/etc/dhcpd.leases というファイルがあるかも知れませんが、 Vine Linuxでは /var/state/dhcp/dhcpd.leases が必要です。無ければ空のファイルで良いので作成します。

3. /etc/rc.d/init.d/dhcp を変更します
(省略)
# See how we were called.
case "$1" in
start)
# Start daemons.
echo -n "Starting dhcpd: "
daemon /usr/sbin/dhcpd eth1
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/dhcpd
;;
stop)
# Stop daemons.
echo -n "Shutting down dhcpd: "
killproc dhcpd
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/dhcpd
;;
(省略)

家庭内LAN側のインターフェイスのeth1を付け加えます。 これを付け加えないと、「eth0の設定がない」とdhcpサーバーが立ち上がったときにエラーが出ます。

以上、3つのファイルを設定し、dhcpサーバーを再起動しましょう。
# /etc/rc.d/init.d/dhcp restart
eth1側に接続されたコンピュータにIPアドレスが割り振られる事を確認しましょう。 ここでの例でいうと、Client Boxから、192.168.1.1(ゲートウェイ)にpingが通ることを確認しましょう。

ファイルを編集する(Vine2.5、2.6)

作成するファイルが1つ。編集するファイルが1つあります。ルートになって作業します。

1. まずはDHCPサーバーの設定ファイルを作成します。これはVine2.1.5と共通です。

/etc/dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0
{
 option routers 192.168.1.1;
 option subnet-mask 255.255.255.0;
 option domain-name "home.org";
 option domain-name-servers aaa.bbb.ccc.ddd,eee.fff.ggg.hhh;
 option broadcast-address 192.168.1.255;
 range dynamic-bootp 192.168.1.10 192.168.1.20;
 default-lease-time 21600;
 max-lease-time 43200;
}
ネットワークとネットマスク

ルータ(ゲートウェイ)のアドレス
ネットマスク
ドメイン名
DNSサーバーアドレス(プライマリとセカンダリ)
ブロードキャストアドレス
リースアドレス範囲
デフォルトリース時間
最大リース時間

2. Vine2.5、2.6では、/var/lib/dhcp/dhcpd.leasesがすでに存在していますので、作成する必要はありません。

3. /etc/sysconfig/dhcpを変更します(この設定によりVine2.1.5で必要だった/etc/rc.d/init.d/dhcp の修正が不要になります)

# Command line options here
DHCPDARGS=eth1

家庭内LAN側のインターフェイスのeth1を付け加えます。 これを付け加えないと、「eth0の設定がない」とdhcpサーバーが立ち上がったときにエラーが出ます。

以上、3つのファイルを設定し、dhcpサーバーを再起動しましょう。
# /etc/rc.d/init.d/dhcp restart
eth1側に接続されたコンピュータにIPアドレスが割り振られる事を確認しましょう。 ここでの例でいうと、Client Boxから、192.168.1.1(ゲートウェイ)にpingが通ることを確認しましょう。

デーモンを設定する

ルートになって以下のコマンドを打ちます。
# /usr/sbin/ntsysv &


カーソルを移動し、dhcpdにチェック(*マーク)を入れます。これで、コンピュータを起動した際に 自動的にdhcpデーモンが立ち上がるようになります。


[HOME]
since 2001.4.22