dhcpサーバー
dhcpd.conf
dhcpd.confの設定項目 | 説明 |
---|---|
option domain-name | ドメイン名 |
option domain-name-servers | DNSサーバー |
option routers | デフォルトゲートウェイのIP |
option subnet-mask | サブネットマスク |
option broadcast-address | ブロードキャスト |
option ntp-servers | NTPサーバーのIP |
option netbios-name-servers | WINSサーバーのIP |
default-lease-time | クライアントに貸し出すデフォルトリース期限 |
max-lease-time | クライアントから貸し出す期間を要求してきた場合の最大リース期限 |
range | 範囲 |
host | クライアントで固定IPアドレスを使用 |
fixed-address | 固定で割り当てるIPアドレス |
hardware | クライアントを特定するためのMACアドレス |
設定例
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.100;
option subnet-mask 255.255.255.0;
option domain-name "example.com";
option domain-name-servers 8.8.8.8;
option ntp-servers 210.173.160.27;
range 192.168.1.101 192.168.1.200;
default-lease-time 21600;
max-lease-time 43200;
host subnet {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.1.99;
}
}
※ systemctl status dhcpd で、
WARNING: Host declarations are global. They are not limited to the scope you dec...hem in
のように表示された場合。
特定のPCに固定のIPアドレスを割り当てたい時に使う「host」宣言を「subnet」区内に記述すると「Host」宣言はグローバルである。と、ワーニング出力されてしまいます。
一応動作はしますが「subnet」区外(グローバル宣言区)に定義し、dhcpdサービスを再起動すれば出力されなくなります。
リース期間
dhcpd が現在貸し出しているIPアドレスは、dhcpd.leases に記録されています。
このファイルが存在しない場合は、あらかじめ作成しておく必要があります。
# touch /var/lib/dhcp/dhcpd.leases
dhcpクライアント
CentOS の場合は、次のように設定します。
BOOTPROTO=dhcp
nmcli もしくは、dhclient
# nmcli connection modify ihcfg-eth0 ipv4.method auto
# dhclient -d ihcfg-eth0
dhcpリレーエージェント
次の例は、ihcfg-eth1 で受け取ったDHCPリクエストを、192.168.0.100 にリレーするようにしています。
# dhcrealy -i ihcfg-eth1 192.168.0.100
IPv6の自動設定
IPv6クライアントは、IPv6ルーターに対して、RSを送り、それに対してルーターはRSを返します。
IPv6クライアントは、ルーターからの情報(プレフィックス)と自身のMACアドレスから生成される情報(インターフェースID)に基づいて、IPv6アドレスを生成します。
また、RA発信元のルーターをデフォルトゲートウェイに設定します。
Linuxでは、radvd をを導入することで、RAを送信できるようになります。
interface ihcfg-eth3
{
AdvSendAdvert on;
prefix 2001:db8:0:1::/64
}
IPアドレス以外の情報(DNSサーバーのIPアドレスなど)を割り当てる場合は、DHCPサーバーが必要となります。