Kea DHCP Serverとは
Kea DHCP Server(以下Kea)とは、ISC(Internet Systems Consortium)によって開発されたオープンソースのDHCPサーバである。同じくISCが開発したISC DHCPの後継として、高性能で拡張可能なDHCPサーバを目指して開発・リリースされた。
Keaの開発背景
ISC DHCPは古くからISP(インターネットサービスプロバイダ)や企業など広い範囲で使用されてきたが、設定変更時にサーバの再起動が必要であった。プロバイダなど大規模なネットワークを持つ組織の場合、DHCPサーバが持つ情報は非常に大きく、起動に時間がかかるため、その間サービスが停止状態になり、大きな影響があった。
Keaは、こうしたISC DHCPの課題を解決し、サービスプロバイダ、大学等の教育機関、企業で利用することを想定して、高い性能のDHCPサービスを提供できるように設計されている。開発元のISCは、今後はより将来性のあるKeaのサポートに注力する必要があると判断し、2022年にISC DHCPのクライアントおよびリレーエージェントのサポートを終了している。ISC DHCPサーバは引き続きメンテナンスが続くものの、ユーザへはKeaへの移行を促している。
Keaの特徴
Keaには以下のような特徴がある。
設定変更時のサーバ再起動が不要
Keaは、ISC DHCPと異なり、サブネットやIPプールの追加・変更などの設定をする際にサーバの再起動を行う必要がない。そのため、DHCPサーバを停止することなく、サービス無停止で安定してシステムを運用することができる。
API連携が可能
Keaでは、control agentと呼ばれるサービスによって、REST APIの機能を提供している。REST APIを利用することで、外部プログラムからKeaを操作することが可能となり、システムを簡単に拡張することができる。例えば、管理UIの開発、DHCPシステムの調査や更新など、様々な場面でAPIを活用することができる。
データベース連携
Keaは、用途に応じてリースファイルの保存先を選択することができる。メモリファイルデータベースやMySQL、PostgreSQL等のRDBMSを選択可能である。この機能を利用することで、リースファイルを検索・表示するためのアプリケーション等を容易に作成することができる。
また、ホスト固定IPアドレスをデータベースから参照することもできる。ホストを新たに追加する場合、データベースにエントリを追加すれば、DHCPサーバの再起動や設定再読み込みの操作が不要となり、安心で便利なDHCPサービスを運用できる。
クライアント機能を使える
KeaではDHCPクライアント機能を提供していないが、ISC DHCPのDHCPクライアントなど、標準的なDHCPクライアントであれば対応することができる。
Keaの主な機能
Keaでは次のような機能をサポートしている。
- DHCPv4、DHCPv6
- Linux、BSD、Mac OSオペレーティングシステムのサポート
- IPv6プレフィックスデリゲーション
- ホストへの固定IPアドレス割り当て
- PXEブート
- メモリ上ファイル、MySQL、PostgreSQL等へのリース情報の保存
- JSON形式設定ファイル、MySQL(DHCPv4のみ)等へのホスト毎IPアドレスの保存
- JSON設定ファイル、MySQLでのホスト固定IPアドレスの設定(DHCPv4のみ)
- アプリケーションAPI
- システム再起動を伴わないオンライン設定
- 統計情報の取得
Keaのフックライブラリ
Keaには、フックライブラリと呼ばれるプラグイン機構が存在する。フックライブラリを導入することで、Keaに機能を追加することができる。フックライブラリの中には、OSSとして提供されているものと、有償で提供されているものがある。有償のフックライブラリの中には、購入したサポートレベルに応じて利用できるもの・できないものがある。フックを使うことで、以下のような機能を利用することができる。
OSSフックで利用可能
- BOOTPのサポート
- 条件式によるダイナミックなオプション値の設定
- HA(High Availability)機能
- REST APIによるリース情報の操作
- MySQLの利用
- PostgreSQLの利用
- パケットの状態によって任意のコマンドを実行
- REST APIによる統計情報の取得
なお、HA機能は当初、有償フック(ISC premium加入)の扱いだったが、コミュニティからの強い要望により現在はOSSのフックとして提供されている。
有償フックで利用可能(ISC support customers加入の場合)
- REST APIによるクラスの操作
- REST APIによるDBの登録などの操作
- GSS-TSIGを使用してDNS更新に署名をする。DHCP-DDNSの場合に利用。
- DBの情報のキャッシュ機能
- RFC4388定義のLeaseQueryの実装
- パケットのレートリミットの設定
- REST APIによるサブネットの操作
有償フックで利用可能(ISC premium加入の場合)
- DDNSに関する挙動のチューニング
- HWaddr/Circuit-id/client-idなどの任意の組み合わせによるflex-idの実装
- より柔軟なログの実装
- REST APIによるホスト予約の実施
Keaの課題点
OSSのフックライブラリで用意されているHA機能は、一定のレベル・制限の中で利用できることがわかっているが、現段階では有用性を認めることはできていない。また、ISC DHCPと異なり、一部の機能は有償として提供されている点も課題の1つである。中にはHA機能のようにOSS化されたものもあるが、依然として重要機能の多くは有償フックライブラリとして提供されている。
ただし、全体としてDHCPサーバの基本機能は備えているため、一般的な用途であれば困ることは少ない。逆に、OSS版のKeaを高度利用していくためには、管理用のツールやUIを独自で用意したり、オリジナルのフックライブラリを開発したりするなどの工夫が必要となる。
デージーネットの取り組み
デージーネットでは、Kea DHCPの外部アプリケーション連携機能を利用して、管理Webインタフェース「KeaKeeper」を開発し、オープンソースとして公開している。KeaKeeperを活用することで、Linuxやデータベースの知識がなくても、Web上でKea DHCPのデータベース管理を安全かつ便利に行うことが可能となる。インストール方法や詳しい機能については、以下から確認することができる。
また、デージーネットでは、Keaについて調査を行い「Kea調査報告書」として公開している。調査では、Kea単体とHAモードを利用した場合の性能を比較した検証結果についても記載している。調査報告書は無料でダウンロード可能である。
さらにデージーネットでは、ISC DHCPのサポート終了に伴い、Kea DHCPへDHCPサーバの移行を行った事例がある。
【カテゴリ】:ネットワークインフラ  ネットワーク  
【Webセミナー】LinuxOS最新情報2024年版!LinuxOS紹介セミナー
日程: | 9月19日(木)Webセミナー「BigBlueButton」を使用します。 |
内容: | LinuxOSの最新情報をお届けします。 |
ご興味のあるかたはぜひご参加ください。 |