CentOS 7でDHCPサーバーを構築する。古いPCや老朽化したサーバーの再利用にお勧めです。

2019/06/27 CentOS, dhcpd, Linux, サーバー構築

centos76-dhcpd-top
前回の記事ではActive Directory環境でのWindowsによるDHCPサーバーの構築手順を紹介しました。

上記の記事でも記載した通り、Active Directory環境ではWindows Serverに実装されているDHCPサーバーを利用することが第一選択になりますが、それ以外の環境でDHCPサーバーを利用する場合には幾つかの選択肢が考えられます。

スポンサーリンク

DHCPサーバーはルーター等で実装されていることが多いので別途、構築を行うようなパターンは少ないと思いますが、 細かい制御やDHCPの動作を理解するためにLinuxで構築を行ってみることは良いと思います。  今回の記事ではセットアップ済みのCentOS環境を利用してDHCPサーバーを構築する手順を紹介します。
それ程、手間をかけずに比較的容易に構築できますので、 老朽化したサーバーや余ったPCなどにLinuxをインストールして利用してみては如何でしょうか。 

1.DHCPサーバーを構築する環境

DHCPサーバーはセットアップ済みのLinuxシステムに展開します。ディストリビューションはCentOSを選択しました。CentOSの基本的なセットアップ手順は別の記事

OSセットアップ後の設定については

で紹介しています。まだLinuxが動作する環境がない場合には、本記事と合わせて参照下さい。
DHCPサーバーとして設定する内容は、以下の内容を前提としています。
構成図
centos76_dhcp_map
構成の詳細

  • DHCPでIPの割り当てを行うサブネットは192.168.241.0/24
  • デフォルトゲートウェイのルーターがキャッシュDNSを兼ねている
  • サブネット内で割り振るIPアドレスレンジは192.168.241.50から192.168.241.70まで
  • デフォルトゲートウェイ(192.168.241.254)とDNSサーバー(192.168.241.254)の割り当てを行う
  • オプションのドメイン名はローカル内で利用するため”int.rem-system.com”を指定
  • リース時間はモバイルが多い環境を前提として8時間

※DHCPサーバーは一つのサブネットに複数あるとIPアドレスのバッティング(重複)が発生します。DHCPサーバーの起動前には既存のDHCPサーバーを停止する、または機能を無効にするなどを行って下さい。
それでは次章から具体的なDHCPサーバーのセットアップ手順を紹介していきます。

2.ホスト名の設定

まずはLinuxシステム(OS)に対して任意のホスト名を設定します。ホスト名の設定には nmcliコマンドを以下のように実行します。ここではホスト名としてdhcp7を設定します。

エラーが出力されなければ、コマンドは正常に完了しています。設定パラメータの確認はhostnameコマンドを利用します。オプション無しでコマンドを実行すると、設定値が表示されます。

設定値としてnmcliコマンドで設定したホスト名が表示されれば、ホスト名の設定確認は完了です。

3.DHCPサーバー用パッケージの確認

DHCPサーバーを構築するのに利用するアプリケーションは”dhcp”という名前でパッケージ化されています。dhcpパッケージをインストールする前にパッケージの詳細を確認します。

3-1.dhcpd関連パッケージリストの確認

先ずはCentOSに含まれるdhcpと名前の付くパッケージのリストを確認します。パッケージリストの確認はyumコマンドにオプションのsearchを付けて実行します。

上記の出力結果からわかるように、dhcpと名前の付くパッケージは複数あります。この中でDHCPサーバー構築に最低限インストールが必要になるパッケージは

  • dhcp.x86_64 : Dynamic host configuration protocol software

になります。上記パッケージについて詳細を確認します。

3-2.dhcpパッケージの詳細を確認

インストール前にパッケージの内容に間違いないか、念のためにdhcpのパッケージ詳細を確認します。

表示された説明からdhcpパッケージがDHCPサーバー構築に必要であることが確認できました。

4.dhcpパッケージのインストールと確認

本章では項目3.で確認したDHCPサーバーに関するパッケージをyumコマンドでインストールする手順と確認の方法を記載していきます。

4-1.dhcpパッケージのインストール

dhcpパッケージは yumコマンドにinstallオプションを付けることでインストールすることができます。 項目3-2.で必要なパッケージが確認できましたので、yumコマンドでインストールします。

上記ではyumコマンドに-yオプションを付けることでインストール時の確認応答を省いています。パッケージを複数インストールする場合はスペースを入れてパッケージ名を列記します。コマンドを実行すると、以下のようにインストールが開始されます。

エラーの出力がなく”完了しました!”と表示されれば、dhcpパッケージはインストールされています。

4-2.インストール後の確認

dhcpパッケージがインストールされたことを確認します。インストールされているパッケージはyum listコマンドで確認できます。以下のように実行することで、dhcpパッケージがインストールされていることを確認します。

出力結果としてdhcpパッケージが表示されることを確認します。

続いてdhcpがインストールされた場所を確認します。dhcpのプログラム本体はdhcpdという名前になります。インストールされた場所(パス)を確認するためにはwhichコマンドを利用します。以下のようにwhichを実行することでインストールパスを確認できます。

この結果からdhcpdが/sbin以下にインストールされたことが確認できます。これでdhcpパッケージのインストールと確認が終了しました。

5.dhcpdの基本的な設定

項目4の手順まででdhcpパッケージの導入までが完了しました。 dhcpdの場合、サービスを起動させる前に設定を行う必要があります。本記事ではDHCPサーバーを運用するにあたって必要になる基本的な設定を行います。 項目1でも記載していますが再度、設定の前提を記載します。

  • DHCPでIPの割り当てを行うサブネットは192.168.241.0/24
  • サブネット内で割り振るIPアドレスレンジは192.168.241.50から192.168.241.70まで
  • デフォルトゲートウェイとDNSサーバーの割り当てを行う
  • リース時間はモバイルが多い環境を前提として8時間

この条件に合わせてDHCPサーバーの設定を行っていきます。

スポンサーリンク

5-1.dhcpd.confの変更

dhcpdの設定は/etc/dhcp/以下にあるdhcpd.confで行います。 dhcpd.confはデフォルトで設定が何も入っていない状態 になっています。
サンプルの設定ファイルが“/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example”に入っています。このファイルを参考しても良いのですが、 設定の内容が多岐に渡るため、こちらは利用せずに最低限の設定をdhcpd.confに追記します。  dhcpd.confの変更前に元のファイルをバックアップしておきます。バックアップは以下の手順で元ファイルのコピーを行います。

バックアップの完了後、エディタで設定ファイルを開いて変更を行います。本環境ではOSの標準的なエディタである、viエディタを利用しています。

5-1-1.サブネットの追加

dhcpd.confファイルにサブネットの追記を行います。サブネットはWindows DHCPのスコープと同じ意味合いでサブネットに対して配布するIPアドレスのレンジとオプション類を一つのグループとして記載します。
ここでは項目5.の要件を元に以下のようにサブネットを追加しました。

記載したパラメーターは以下のような内容になります。

  • subnet:IPアドレスを配布するサブネットとネットマスクを指定します。
  • range:割り当てるIPアドレスのレンジになります。
  • option domain-name-servers:ネームサーバーを指定します。(192.168.241.254)
  • option domain-name:ドメインのサフィックスを指定します。(任意)
  • option routers:デフォルトゲートウェイを指定します
  • option broadcast-address:ブロードキャストアドレスを指定します。
  • default-lease-time:リース時間を指定します。

※実際の設定は運用や環境に合わせて変更が必要になります。
これでdhcpd.confの設定は完了です。設定を行った後のdhcpd.confは以下のようになっています。

確認して問題なければ追記した設定ファイルを保存します。

5-2.設定ファイルの確認

dhcpd.confに設定できる内容は多岐にわたるため、設定ファイル自体に間違いがないかを確認するオプションが用意されています。DHCPサーバーの起動前にdhcpdコマンドに“-t”オプションをつけて設定ファイルをチェックします。以下、実行例になります。

エラーが出力されなければ、設定ファイルの確認は完了です。

6.DHCPサーバー起動と自動起動設定

本章では設定したdhcpdが起動することを確認します。CentOSでは7系からsystemctlコマンドでサービスの起動、停止を行います。

6-1.DHCPサーバーの起動

dhcpdは以下のように実行することで起動できます。

コマンドを実行してエラーが出力されなければ、dhcpdは起動しています。
続いて、サービスの状態を確認します。systemctlコマンドにstatusオプションを付けて実行することで、起動したサービスの状態について、詳細な情報を取得することができます。
以下が実行例です。

上記では分かり難いかもしれませんが、黒丸(●)の部分が正常な起動状態の場合、緑色で表示されます。 Active項目に(running)と表示されていますので、起動していることが確認できます。  稼働しているプロセスを表示するpsコマンドでもdhcpdが起動していることを確認できます。以下のように実行します。

これでdhcpdの起動は完了です。

6-2.dhcpd自動起動の設定

dhcpdの起動が確認できましたので サーバーの再起動や停止の復旧時にdhcpdが自動的に起動するように設定します。 サービスの自動起動を設定するにもsystemctlコマンドを利用します。自動起動は以下のようにsystemctlコマンドを実行します。

エラーが出力されなければ、自動起動は設定が完了しています。
続いて自動起動が設定されたことを確認します。こちらもsystemctlコマンドから確認できます。以下のように実行します。

実行結果として “enabled”と表示されれば自動起動の設定は完了です。

7.DHCPサーバーの動作確認

設定したDHCPサーバーからクライアントがIPアドレスが取得できるかを確認してみます。使用するOSはWindows10です。クライアント側のネットワーク設定についてはIPアドレスの自動取得を設定します。
centos76_dhcp-server-01

7-1.クライアント側からの確認

クライアントコンピューター:win10-testにログオンしてコマンドプロンプトからIPアドレスをDHCPで取得するための

コマンドを実行してIPアドレスを取得します。
ipconfig /renewコマンドの実行後に

コマンドで割り当てられたIPアドレスを確認するとdhcpdのサブネットに設定した範囲のIPアドレスやDNSサフィックス、リース時間などが割り当てられていることが確認できます。
centos76_dhcp-server-02

7-2.DHCP リース状況の確認

DHCPサーバー:dhcp7側でもDHCP割り当て状況の確認ができます。DHCPの割り当て状況はsyslogの

または

に出力されます。
/var/log/messageには以下のように出力されます。lessコマンドやmoreコマンドで閲覧できます。

dhcpd.leaseにはもう少し詳細な情報が記載されています。このファイルもlessコマンドやmoreコマンドで閲覧できます。

サーバー側でもDHCPによるIPアドレスのリース状況が確認できました。

8.まとめ

本記事ではCentOS7でのDHCPサーバー構築手順を紹介しました。 Windows Serverが無いSOHO環境やスモールオフィスにはLinuxでDHCPサーバーを利用することもあるかと思います。それ程、設定の手間も掛からないこともあり、手軽に利用できます。  DHCPサーバーは一つのサブネットに一つという決まりだけ守っていただければ導入後はそれ程、設定変更することもないかと思います。是非、ネットワークの理解を深める上でもDHCPサーバーを構築してみて下さい。

関連する記事


Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  • スポンサーリンク