11.1. DHCPの設定

11.1.1. dhcpdの設定

DHCPサーバにはdhcpdが、DHCPクライアントにはdhclient,pump,dhcpcdが利用される。
dhcpdの設定はdhcpd.confで行う。

項目説明
option domain-nameドメイン名
option domain-name-serversDNSサーバ
option routesDGWのIPアドレス
option subnet-maskサブネットマスク
option broadcast-addressブロードキャストアドレス
option ntp-serversNTPサーバのIPアドレス
option nis-domainNISドメイン名
option nis-serversNISサーバのIPアドレス
option netbios-name-serversWINSサーバのIPアドレス
default-lease-timeDHCPクライアントが期限を求めない場合のデフォルトリース期間
max-lease-timeDHCPクライアントが上限を求めた場合の最大リース期間
range [dynamic-bootp]クライアントに割り当てるIPアドレス範囲
hostクライアントで固定IPアドレスを使用
fixed-address固定で割り当てるIPアドレス
hardwareクライアントを特定するためのMACアドレス

dhcpdの設定例は以下の通り、サブネットごとに設定を記述する。

subnet 192.168.0.0 netmask 255.255.255.0 {
    option routers 192.168.0.1;
    option subnet-mask 255.255.255.0;
    option nis-domain "example.net";
    option domain-name "example.net";
    option domain-name-servers 192.168.1.1, 192.168.2.1;
    option ntp-servers 192.168.1.1;
    option netbios-name-servers 192.168.1.1;

    range 192.168.0.128 192.168.0.254;
    defaut-realse-time 21600;
    max-lease-time 43200;

    host hostmachine1 {
        hardware ethernet 01:23:34:2A:89:0A;
        fixed address 192.168.0.100;
    }

}

サブネット毎の設定

サブネットごとに割り当てるIPアドレス範囲や特定のマシンに固定IPアドレスを割り当てる設定を行う。
固定IPアドレスの割り当てはMACアドレスで識別を行う。

リース期間

リース期間はIPアドレスをクライアントに貸し出す期間のこと。
指定は秒数で指定する

なおdhcpdが貸し出しているIPアドレスはdhcpd.leasesに記録される。
作成はtouch /var/lib/dhcop/dhcpd.leaseなどで行える。

11.1.2. DHCPクライアントの設定

クライアント側でDHCPを有効にするには設定を行う必要がある。
またdhclientコマンドでもIPアドレスの取得が可能。

RedHat系の場合

/etc/sysconfig/network-scripts/ifcfg-eth0などで以下のように設定する。

BOOTPROTO=dhcp

Debian系の場合

/etc/network/interfacesなどで以下のように設定する。

iface eth0 inet dhcp

11.1.3. DHCPリレーエージェント

DHCPリレーエージェントは異なるネットワーク間でDHCPサーバを利用する際に設定するプログラムのこと。
使用するデーモンはdhcrelay

設定例ではIPアドレスが172.16.0.2のDHCPサーバにeth1で受け取ったDHCPリクエストをリレーする設定例。

dhcrelay -i eth1 172.16.0.2

11.1.4. IPv6アドレスの自動設定

IPv6の場合はDHCPを使わずにIPアドレスの自動設定ができる。
これはIPv6の仕組みが以下のようになっているからである

  1. IPv6クライアントはIPv6ルータにルータ要請(RS)を送信
  2. IPv6ルータはルータ通知(RA)をIPv6クライアントに返送
  3. IPv6クライアントはルータ情報(prefix)と自身のMACアドレスから生成されるインターフェースIDよりIPv6アドレスを生成する

LinuxではradvdパッケージによりRAを送信できるようにすることができる。
設定ファイルは/etc/radvd.confとなり以下のように記述する。

inteface eth0 {
    AdvSendvert on; #RAの定期的送信の有効化
    prefix 2001:db8:0:1::/64; #ローカルアドレス
}