パッケージからISC Kea DHCP サーバのインストール方法

本投稿は、ISC社のKea DHCPサーバ1.6をリポジトリからインストールする手順を記述したものです。

インストール方法のみ知りたい方は、[作業手順](#作業手順)に進んでください。

# ISC Kea DHCPサーバとは

Bindで有名なISC社から提供しているDHCPサーバであり従来のISC DHCPでは対応できなくなったモダンなオペレーションにも対応可能なDHCPサーバです。

# Kea DHCPサーバのインストールについて

2019年9月現在 Keaの最新バージョンは1.6ですが各Linuxの標準のレポジトリからインストールすると古いバージョンがインストールされます。そのため、最新のイメージをインストールするためにはソースからコンパイルするかISC社の[Cloudsmithリポジトリ](https://cloudsmith.io/~isc/repos/)からインストールする必要があります。

* 本投稿はDebian/Ubuntuを利用したaptでのインストール方法を記載しています。Redhat/CentOSのyumを利用している場合はyum install isc-keaでインストールしてください。
  （作者はyumレポジトリは未検証ですのでご注意ください)

# 作業手順

以下のコマンドを入力してCloudsmith ISC Kea-1.6リポジトリの登録

    curl -1sLf \ 
    'https://dl.cloudsmith.io/public/isc/kea-1-6/cfg/setup/bash.deb.sh' \
    | sudo bash

yumリポジトリの場合

    curl -1sLf \
    'https://dl.cloudsmith.io/public/isc/kea-1-6/cfg/setup/bash.rpm.sh' \
    | sudo bash

パッケージリストのアップデートを行いパッケージをリストをキャッシュする

    sudo apt update

DHCP4サーバのインストール

    sudo apt install isc-kea-dhcp4-server

設定ファイルの編集 (/etc/kea/kea-dhcp4.conf) サンプル

```
{

"Dhcp4": {
    "interfaces-config": {
        "interfaces": [ "eth0" ]  // ココにインターフェース名を追加
    },
    "control-socket": {
        "socket-type": "unix",
        "socket-name": "/tmp/kea-dhcp4-ctrl.sock"
    },
    "lease-database": {
        "type": "memfile",
        "lfc-interval": 3600
    },
    "expired-leases-processing": {
        "reclaim-timer-wait-time": 10,
        "flush-reclaimed-timer-wait-time": 25,
        "hold-reclaimed-time": 3600,
        "max-reclaim-leases": 100,
        "max-reclaim-time": 250,
        "unwarned-reclaim-cycles": 5
    },
    "renew-timer": 900,
    "rebind-timer": 1800,
    "valid-lifetime": 3600,
    "option-data": [
        {
            "name": "domain-name-servers",
            "data": "8.8.8.8, 8.8.4.4"    // DNSサーバのIPアドレスへ変更
        },
        {
            "name": "default-ip-ttl",
            "data": "0xf0"
        }
    ],
    "subnet4": [
        {
            "subnet": "192.168.0.0/24",   // サブネットを変更
            "pools": [ { "pool": "192.168.0.101 - 192.168.0.200" } ], // DHCPプールの変更
            "option-data": [
                {
                    "name": "routers",
                    "data": "192.168.0.1"   // デフォルトゲートウェイの変更
                }
            ],
        }
    ],
    "loggers": [{
        "name": "kea-dhcp4",
        "output_options": [
            {
                "output": "stdout",
                "pattern": "%-5p %m\n"
            }
        ],
        "severity": "INFO",
        "debuglevel": 0
    }]
  }
}
```

DHCPサーバの再起動

    sudo systemctl restart isc-kea-dhcp4-server


## 補足 apt 関連パッケージ一覧

* isc-kea-common     : keaの共通パッケージ
* isc-kea-dev        : kea 開発用ヘッダとライブラリ
* isc-kea-ctrl-agent : REST APIサービス
* isc-kea-dhcp-ddns-server: DHCP ダイナミックDNSサービス
* isc-kea-dhcp4-server : DHCPv4サーバ
* isc-kea-dhcp6-server : DHCPv6サーバ
* isc-kea-admin　: 管理者用ユーティリティ
* isc-kea-doc : オンラインドキュメント


# 参考

* [ISC Kea ドキュメンテーション](https://kea.readthedocs.io/en/latest/index.html)

## 追伸 Version 1.7の場合

Kea DHCP の Version 1.7のリポジトリが公開されていましたので、1.7のリポジトリのコマンドを追記しておきます。 -
※ 動作確認を行っていないので予めご了承ください。

aptリポジトリの場合　

    curl -1sLf \ 
    'https://dl.cloudsmith.io/public/isc/kea-1-7/cfg/setup/bash.deb.sh' \
    | sudo bash

yumリポジトリの場合

    curl -1sLf \
    'https://dl.cloudsmith.io/public/isc/kea-1-7/cfg/setup/bash.rpm.sh' \
    | sudo bash