DHCPサーバ(dhcp-2.0pl5-6vl1)の設定

[サーバの実験室 Redhat/Fedora]

作成 : 2002/10/15

"サーバの実験室"の検索


DHCPサーバを構築すると、クライアントPCにIPアドレスやサブネットマスク、DNSサーバアドレスを動的に付与することができるようになる。 DHCPクライアントにするには、dhcpcパッケージが必要になる。

dhcp-2.0pl5-6vl1のインストール

パッケージdhcp-2.0pl5-6vl1-i386.rpmをインストールする。

# rpm -qlp dhcp-2.0pl5-6vl1.i386.rpm

/etc/rc.d/init.d/dhcpd
/etc/sysconfig/dhcpd
/usr/doc/dhcp-2.0pl5
/usr/doc/dhcp-2.0pl5/CHANGES
/usr/doc/dhcp-2.0pl5/README
/usr/doc/dhcp-2.0pl5/RELNOTES
/usr/doc/dhcp-2.0pl5/dhcpd.conf.sample
/usr/sbin/dhcpd
/usr/sbin/dhcrelay
/usr/share/man/man5/dhcp-options.5.gz
/usr/share/man/man5/dhcpd.conf.5.gz
/usr/share/man/man5/dhcpd.leases.5.gz
/usr/share/man/man8/dhcpd.8.gz
/usr/share/man/man8/dhcrelay.8.gz
/var/lib/dhcp
/var/lib/dhcp/dhcpd.leases

# rpm -Uvh dhcp-2.0pl5-6vl1-i386.rpm
Preparing...                ########################################### [100%]
   1:dhcp                   ########################################### [100%]

/etc/dhcpd.confの設定

次のように記述する。

default-lease-time 86400;
max-lease-time 259200;

subnet 192.168.0.0 netmask 255.255.255.0 {
    range 192.168.0.10 192.168.0.250;
    option subnet-mask 255.255.255.0;
    option broadcast-address 192.168.0.255;
    option routers 192.168.0.1;
    option domain-name-servers 192.168.0.1;
    option domain-name "nina.jp";
}

host static-host {
    hardware ethernet 00:00:00:00:00:00;
    fixed-address 192.168.0.2;
}

default-lease-time: デフォルトのリース時間で、単位は秒。 86400(秒)なら1日。

max-lease-time: 最大リース時間で、単位は秒。 259200(秒)なら3日。

subnet X.X.X.X netmask X.X.X.X { }: ネットワークを定義。 サーバのNICが接続されるネットワークを記述。

range min_address max_address: クライアントに動的に割り当てるIPアドレスを定義。 min_addressからmax_addressの間を割り当てる。

option subnet-mask X.X.X.X: クライアントに付与するネットマスクを定義。

option broadcast-address X.X.X.X: クライアントに付与するブロードキャストアドレスを定義。

option routers X.X.X.X: クライアントに付与するゲートウェイアドレスを定義。

option domain-name-servers X.X.X.X: クライアントに付与するDNSサーバアドレスを定義。

option domain-name "XXXX": クライアントに付与するドメインを定義。

option netbios-name-servers X.X.X.X: クライアントに付与するWINSサーバアドレスを定義。

option netbios-node-type 1/2/4/8: クライアントに付与するWINSノードタイプを定義。 1:WINSを使用しない / 2:ブロードキャストを使用しない / 4:ブロードキャスト優先 / 8:WINS優先

host XXXX { }: ホストを定義。

hardware ethernet XX:XX:XX:XX:XX:XX: MACアドレスを指定。

fixed-address X.X.X.X: 指定されたMACアドレスクライアントに割り当てるIPアドレス。 rangeで記述した、動的に割り当てるIPアドレスと、重複しないようにする。

2枚のNICが設置されている場合の設定

DHCPサーバにNICが2枚設置されているばあい、このままDHCPサーバサービスを開始しようとすると、エラーになってしまう。

No subnet declaration for eth1 (192.168.1.0).
Please write a subnet declaration in your dhcpd.conf file for the
network segment to which interface eth1 is attached.
exiting

上の例では、eth1インターフェースのネットワークがdhcpd.confに定義されていないため、エラーになっている。 エラーを避けるには、次の方法がある。

インターフェースの数だけネットワークを定義する

2枚のインターフェースに接続されている、両方のネットワークにDHCPサービスを提供したい場合は、/etc/dhcpd.confで2つのネットワークを定義する。

default-lease-time 86400;
max-lease-time 259200;

subnet 192.168.0.0 netmask 255.255.255.0 {
    range 192.168.0.10 192.168.0.250;
    option subnet-mask 255.255.255.0;
    option broadcast-address 192.168.0.255;
    option routers 192.168.0.1;
    option domain-name-servers 192.168.0.1;
    option domain-name "nina.jp";
}

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.10 192.168.1.250;
    option subnet-mask 255.255.255.0;
    option broadcast-address 192.168.1.255;
    option routers 192.168.1.1;
    option domain-name-servers 192.168.1.1;
    option domain-name "nina.jp";
}

DHCPサービスを提供するインターフェースを指定する

一方のインターフェースがLAN、もう一方のインターフェースがWAN(またはDMZ)に接続されている場合は、DHCPサービスを提供するのはLAN側インターフェースだけでよい。 DHCPサービスを提供するインターフェースを指定するには、dhcpdデーモンを起動するとき、インターフェース名(eth0,eth1,...)をパラメータに指定する。 具体的にeth0インターフェースにDHCPサービスを提供するには、/etc/sysconfig/dhcpdファイルに、次のように記述する。

DHCPDARGS=eth0

ipchainsの設定

すべてのホストから67番ポートへの接続を許可するよう、ipchainsを設定する。詳細は、ipchainsの設定を見てね。 NICを2枚積んでいて、片方のネットワークにだけDHCPサービスを提供するなら、-iオプションでインターフェースを指定しておく。

-A input -s 0/0 -d 0/0 67 -p tcp -i eth0 -j ACCEPT

デスティネーションアドレス(-d)にホストIPアドレスを指定しないこと! クライアントはDHCPサーバを探すため、255.255.255.255:67宛にパケット(DHCPDISCOVER)を送信するので、ホストIPを指定するとREJECTされてしまう。

dhcpdを起動時開始サービスに追加

dhcpdサービスがサーバ起動時に開始されるように、ntsysvコマンドなどで設定する。


[サーバの実験室 Redhat/Fedora]