DHCP とは
動的ホスト構成プロトコル (DHCP) クライアント マシンがネットワークに接続するたびに、DHCP サーバーからネットワーク構成情報を自動的に取得できるようにします。 DHCP サーバーは、一連の IP アドレスとその他のネットワーク構成パラメーターで構成されます。
クライアント マシンが DHCP を使用するように構成されている場合、クライアント デーモン dhclient は、サーバー デーモン dhcpd にアクセスして、ネットワーク パラメータを取得します。 DHCP はブロードキャスト ベースであるため、クライアントとサーバーの両方が同じサブネット上にある必要があります。
クライアント マシンが DHCP を使用するように構成されている場合、クライアント デーモン dhclient は、サーバー デーモン dhcpd に接続してネットワーク パラメータを取得します。 DHCP はブロードキャスト ベースであるため、クライアントとサーバーの両方が同じサブネット上にある必要があります。
DHCP を使用する利点には、新しいクライアント マシンをネットワークに簡単に追加できることと、IP アドレスを集中管理できることが含まれます。さらに、IP アドレスを再利用できるため、必要な IP アドレスの総数が削減されます。 DHCP は、多数のシステムの IP アドレスを変更する場合にも役立ちます。各システムを個別に再構成する代わりに、サーバー上の DHCP 構成ファイルを編集し、新しい IP アドレスのセットを入力してください。
DHCP サーバーの構成
システムを DHCP サーバーとして構成するには、dhcp パッケージをインストールします:
# yum install dhcp
DHCP の主な構成ファイルは /etc/dhcp/dhcpd.conf です。 .このファイルを使用して、クライアントのネットワーク情報を保存します。サンプル構成ファイルも dhcp パッケージと共にインストールされます:/usr/share/doc/dhcp-[version]/dhcpd.conf.sample .このファイルを /etc/dhcp/dhcpd.conf にコピーして、テンプレートとして使用できます。構成ファイル /etc/dhcp/dhcpd.conf の構成パラメーターの詳細については、以下の投稿を参照してください。
DHCP 構成ファイル /etc/dhcp/dhcpd.conf の説明DHCP サーバーの開始/停止
systemctl コマンドを使用して、ブート時に dhcpd サービスを開始できるようにします:
# systemctl enable dhcpd ln –s ‘/usr/lib/systemd/system/dhcpd.service’ ‘/etc/systemd/system/multi-user.target.wants/dhcpd.service’
このコマンドは、サービスが開始される最下位レベルのシステム状態ターゲットのシンボリック リンクを作成することによって、サービスを有効にすることに注意してください。この例では、コマンドはマルチユーザー ターゲットのシンボリック リンク dhcpd.service を作成します。
systemctl コマンドを使用して、起動時に dhcpd サービスが開始されないようにします。サービスが無効になると、シンボリック リンクは削除されます:
# systemctl disable httpd rm ‘/etc/systemd/system/multi-user.target.wants/httpd.service’
systemctl コマンドを使用して dhcpd サービスを開始します:
# systemctl start httpd
/var/lib/dhcpd/dhcpd.leases の場合、dhcpd サービスの開始に失敗します ファイルが存在しません。 touch コマンドを使用してファイルを作成できます。 dhcpd.leases ファイルには、クライアントのリース情報が格納されます。このファイルを手動で編集しないでください。
CentOS / RHEL 7 :dhcpd サービスの開始時にコマンドライン引数とオプションを指定する方法DHCP クライアントの構成
1. システムを DHCP クライアントとして構成するには、dhclient パッケージをインストールします。
# yum install dhclient
2. BOOTPROTO を変更します /etc/sysconfig/network-scripts/ifcfg-[interface] のディレクティブ dhcp へのデバイスのファイル .たとえば、ens33 で DHCP を使用するには、次の手順を実行します。
# cat /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=Ethernet BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=bbe539aa-5042-4d28-a0e6-2a4d4f5dd744 DEVICE=ens33 ONBOOT=no PEERDNS=yes PEERROUTES=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes
3. DHCP クライアントでネットワーク サービスを再起動する必要もあります。
# systemctl restart network
4. 次にクライアント システムがネットワークに接続するときに、dhclient は DHCP サーバーにリースを要求し、クライアントのネットワーク インターフェイスを構成します。 dhclient を実行することもできます コマンドラインからリースをリクエストし、接続を確立します:
# dhclient
5. 特定のインターフェースで要求するには、そのインターフェースを引数として含めます。次の例では、ens33 のリースのみを要求しています:
# dhclient ens33
DHCP クライアント構成ファイル /etc/dhcp/dhclient.conf 、カスタム構成の場合にのみ必要です。サンプル ファイルは /usr/share/doc/dhclient-[version]/dhclient.conf.example にあります。 .クライアントがリースを要求して確立すると、リースに関する情報が /var/lib/dhclient/dhclient.leases に保存されます .例:
# cat /var/lib/dhclient/dhclient.leases lease { interface "ens33"; fixed-address 192.168.219.149; option subnet-mask 255.255.255.0; option routers 192.168.219.2; option dhcp-lease-time 1800; option dhcp-message-type 5; option domain-name-servers 192.168.219.2; option dhcp-server-identifier 192.168.219.254; option broadcast-address 192.168.219.255; option domain-name "localdomain"; renew 5 2017/10/20 06:50:39; rebind 5 2017/10/20 07:02:37; expire 5 2017/10/20 07:06:22; }