CentOS7 Kea-DHCPサーバのインストール

スポンサーリンク

OSSのDHCPサーバといえばISC-DHCPサーバが有名ですが、これの開発が終了し今後はKea-DHCPサーバとして引き継がれていくそうです。

Kea-DHCPサーバはバックエンドにMySQLなどのデータベースを利用し、IPの払い出しなどのパフォーマンスがかなり向上しているようです。今後は是非、こちらを利用していきたいと思ったのでインストールおよび設定のメモ書きを残します。

■Key-DHCPサーバのインストール

CentOS7の場合はEPELリポジトリからyumでインストール可能です。

# yum install kea
# rpm -qa | grep kea
kea-1.1.0-1.el7.x86_64
kea-libs-1.1.0-1.el7.x86_64

バックエンドのデータベースとしてMariaDBを使用しますので、こちらもインストールを行います。

# yum install mariadb-server
# rpm -qa | grep mariadb
mariadb-5.5.56-2.el7.x86_64
mariadb-libs-5.5.56-2.el7.x86_64
mariadb-devel-5.5.56-2.el7.x86_64
mariadb-server-5.5.56-2.el7.x86_64

■MariaDBの初期設定


MariaDBの初期設定を行います。設定ファイルは/etc/my.cnfになり、/etc/my.cnf.d以下の設定ファイルがインクルードされる形となっています。この中で/etc/my.cnfを編集し文字コードを設定しておきます。

# vi /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
character-set-server=utf8


systemctlコマンドでmariadbを有効にしてから起動します。 ( 有効にしてからでないと起動しませんでした )

# systemctl enable mariadb.service
# systemctl start mariadb.service

続いてMariaDBの初期設定を行います。初期セットアップコマンドがあり対話形式に進めていきますので、それを実行します。rootパスワードを設定するところのみ入力する必要がありますが、その他についてはそのままEnterで大丈夫です。

# mysql_secure_installation
/usr/bin/mysql_secure_installation: 行 379: find_mysql_client: コマンドが見つかりません

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):[enter]
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n][enter]
New password:[パスワード入力]
Re-enter new password:[パスワード入力]
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n][enter]
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n][enter]
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n][enter]
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n][enter]
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

次にKea用のデータベースを作成します。

# mysql -u root -p
Enter password:【rootパスワード入力】
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 1850013
Server version: 5.5.56-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> CREATE DATABASE kea;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> GRANT ALL ON kea.* TO keauser@localhost IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.03 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> QUIT;
Bye

続いてKeaデータベースにテーブルを作成します。

# kea-admin lease-init mysql -u keauser -p password -n kea
Checking if there is a database initialized already. Please ignore errors.
Initializing database using script /usr/share/kea/scripts/mysql/dhcpdb_create.mysql
mysql returned status code 0
Lease DB version reported after initialization: 5.0

■Kea-DHCPサーバの設定

Keaの設定を行います。設定ファイルは/etc/kea/kea.confとなります。まず先程作成したデータベースへのアクセスユーザやパスワードについて設定します。

# vi /etc/kea/kea.conf
<省略>
18行目あたり
 Use Memfile lease database backend to store leases in a CSV file.
#  "lease-database": {
#    "type": "memfile"
#  },
  "lease-database": {
    "type": "mysql",
    "host": "localhost",
    "name": "kea",
    "user": "keauser",
    "password": "password"
  },

続けてDHCPで固定IP割当を実施することもあるかと思うので、以下の設定を続けて記載します。

  "hosts-database": {
    "type": "mysql",
    "host": "localhost",
    "name": "kea",
    "user": "keauser",
    "password": "password"
  },

次にDHCPサーバでIPを払い出すインターフェイス名を指定します。インターフェイス名はCentOS7ではip addr showで確認することが可能です。これに表示されているインターフェイス名を以下の箇所に追記してください。

# vi /etc/kea/kea.conf
<省略>
10行目あたり
# DHCPv4 configuration starts here.
"Dhcp4":
{
# Add names of interfaces to listen on.
  "interfaces-config": {
    "interfaces": ["enp3s4f0"]
  },

次に払い出しIPセグメントの設定を行います。

# vi /etc/kea/kea.conf
<省略>
60行目あたり
  "subnet4": [
  {
       "id" : 1,
       "subnet": "192.168.18.0/24", ※サブネット指定
       "pools": [ { "pool": "192.168.18.20 - 192.168.18.30" } ], ※リース範囲
       "valid-lifetime": 600, ※リースタイム(10分)
       "option-data":[
         {"name": "routers", "data": "192.168.18.1"}, ※デフォルトゲートウェイ
         {"name": "domain-name-servers", "data": "192.168.6.17,192.168.6.18"}, ※DNSサーバ
         {"name": "domain-name", "data": "xxxxxxx.jp"} ] ※ドメインネーム
  },
  ]
},

ここまできたらKea-DHCPサーバを有効にして起動します。

# systemctl enable kea-dhcp4
# systemctl start kea-dhcp4
# ps ax | grep kea
 5544 ?        Ssl    0:00 /usr/sbin/kea-dhcp4 -c /etc/kea/kea.conf

無事起動したらDHCP端末を接続してDHCPでIPがとれるか確認してみましょう。リース履歴は/var/log/kea-dhcp4.logに出力されます。

【参考URL】

https://kea.isc.org/docs/kea-guide.html
https://blog.tsurai.work/2018/02/286/
https://www.designet.co.jp/open_source/keakeeper/

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする