Kea〜ISC DHCPに代わる次世代OSS〜
DHCPサーバのソフトウェアとしてISC DHCPが多く利用されてきました。しかし、Red Hat Enterprise Linux10のベータ版では、ISC DHCPは標準パッケージではなくなり、Keaに変更されています。今後は、DHCPサーバとしてKeaが主流になってくることが予想されます。ここでは、DHCPサーバのKeaについて特徴や機能を解説します。なお、Keaの管理用WebUIについては「KeaKeeper」のページで詳しく紹介しています。
- +
目次
Kea DHCPサーバとは
Kea DHCPサーバ(以下Kea)とは、オープンソースソフトウェアのDHCPv4/DHCPv6サーバです。ネットワークに接続する機器に、IPアドレスやルーティングなどの必要な情報を自動的に割り当てる機能を提供します。オープンソースのDHCPサーバと言えば、ISC DHCPが有名ですが、KeaはISC DHCPに代わるDHCPサーバとして、ISC(Internet Systems Consortium)が開発しリリースしています。サービスプロバイダ、大学等の教育機関、企業など広い範囲で利用することを想定して開発されており、高い性能のDHCPサービスを提供できるように設計されています。
Keaの開発背景
ISC DHCPは古くからISP(インターネットサービスプロバイダ)や企業など広い範囲で使用されてきましたが、設定変更時にサーバの再起動が必要でした。プロバイダなど大規模なネットワークを持つ組織の場合、DHCPサーバが持つ情報は非常に大きく、起動に時間がかかるため、その間サービスが停止状態になり、大きな影響がありました。
Keaは、こうしたISC DHCPの課題を解決し、サービスプロバイダ、大学等の教育機関、企業で利用することを想定して、高い性能のDHCPサービスを提供できるように設計されています。開発元のISCは、今後はより将来性のあるKeaのサポートに注力する必要があると判断し、2022年にISC DHCPのクライアントおよびリレーエージェントのサポートを終了しています。ISC DHCPサーバは引き続きメンテナンスが続くものの、ユーザへはKeaへの移行を促しています。
Keaの特徴
Keaには、以下の特徴があります。
再起動せず設定の追加や変更が可能
従来のISC DHCPでは、DHCPサーバの設定変更を行う時はDHCPサーバの再起動が必要でした。プロバイダなど大規模なネットワークを持つ組織の場合、DHCPサーバが持つ情報は非常に大きく、起動に時間がかかるため、その間にサービスが停止状態になることは大きな影響がありました。一方Keaは、DHCPサーバを再起動することなくサブネットやIPプールの追加・変更を行うことができます。DHCPサーバを停止することなくリロードを行うことができるため、システムを安定的に稼働させることができます。
APIで外部システムと連携
外部システムと連携するためのAPIを提供しており、このAPIを利用することで、システムを簡単に拡張できるように設計されています。APIはDHCPシステムを調査したり、更新したりするため、DHCP処理中のいろいろな箇所で呼び出すことができます。また、用途に応じてリースファイルの保存先を選択することができます。保存先としてRDBMS(リレーショナルデータベース管理システム)が利用でき、メモリファイルデータベースやMySQL、PostgreSQL等を選択することができます。データベース連携ができるようになったことで、リース情報を簡単に検索でき、管理用アプリケーションからKeaのホスト毎設定を行うことができるようになります。
KeaはDHCPクライアント機能を提供していませんが、ISC DHCPのDHCPクライアント等、標準的なDHCPクライアントに対応することができます。
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調査報告書1.1版に掲載しています。
Keaの機能
Keaの主な機能は以下があります。
- +
DHCPv4、DHCPv6形式に対応
- ★
DHCPv4、DHCPv6形式に対応しています。
- +
KeaのHA機能
- ★
- ロードバランシングモード
ロードバランシングモードとは、DHCPのリクエストを2つのKeaサーバで分散して処理するモードです。クライアントとサーバが1対1で通信を行い、再リースの処理を行うため、負荷を分散することができます。またリース情報は、お互いにエージェントを通して同期されるか、もしくはDBによって自動的に整合性が保たれます。
※ロードバランシングモードの注意点
ロードバランシングモードでは、リース情報を同期しますが、大量の処理によって同期が遅延すると、両方のKeaサーバで同じIPアドレスを貸し出す危険性があります。この危険性を抑制するために、KeaのHA機能では、サーバ毎にIPアドレスのプールを分割することを推奨しています。 - ホットスタンバイモード
ホットスタンバイモードとは、通常時はプライマリのKeaサーバが全てのリクエストを処理し、故障時にスタンバイのKeaサーバに機能を引き継ぐ構成です。DHCPクライアントは、ブロードキャストでDHCP DISCOVERメッセージをネットワークに流します。2つのKeaサーバは、どちらもメッセージを受信します。ホットスタンバイモードでは、プライマリのKeaサーバが反応し、IPアドレスのリース情報を返します。一方でセカンダリのサーバは、リクエストを無視します。リース情報は、お互いにエージェントを通して同期され、自動的に整合性が保たれます。
KeaのHA機能には2つのモードがありますがこの機能を調査した結果、一定のレベル・制限の中で利用できることがわかりましたが、現段階では、有用性を認めることはできませんでした。そのため、Keaのロードバランシングモードを利用するよりは、DRBD/PacemakerなどによるHA機能を利用した方が、Keaの設定がわかりやすくなり、運用面でも性能が劣化しにくいと考えられます。
- ロードバランシングモード
- +
オペレーティングシステムのサポート
- ★
Linux、BSD、Mac OSなどのオペレーティングシステムをサポートしています。
- +
IPv6プレフィックスデリゲーション
- ★
DHCPv6サーバがクライアントにIPv6プレフィックスを割り当てます。
- +
ホストへの固定IPアドレス割り当て
- ★
クライアントのMACアドレスなどを条件にして、固定のIPアドレスを払い出すことができます。
- +
リース情報の保存
- ★
リースファイルの保存先として、メモリ上ファイル、MySQL、PostgreSQLを選択できます。
- +
ホスト予約情報の保存
- ★
ホスト毎IPアドレスの保存先として、JSON形式設定ファイル、MySQL(DHCPv4のみ)を選択できます。
- +
クライアントの分類
- ★
受信したパケットの情報に基づいて、クライアント(パケット) をクラスによって分類するクライアントクラスという機能があります。クラスは、大きく2つの使い方をします。
- クラスによって、サブネット・プールの利用を制限する
- クラスによって、オプションを付与する
- +
APIの提供
- ★
REST APIの機能を利用することで管理UIの開発、DHCPシステムの調査や更新などを行うことができます。
- +
システム再起動を伴わないオンライン設定
- ★
サーバの再起動やサービスを停止することなく設定の反映を行うことができます。
- +
統計情報の取得
- ★
IPアドレスなどの自動的に割り当てした統計情報を表示できます。
デージーネットの取り組み
デージーネットでは、Keaの外部アプリケーション連携機能を利用して、Keaの管理用WebUIとして「KeaKeeper」というソフトウェアを開発し、オープンソースとして公開しています。KeaKeeperを活用することで、Linuxやデータベースの知識がなくても、Web上でKeaのデータベース管理を安全かつ便利に行うことが可能になります。例えば、ホスト毎の設定やリース情報の検索などをWebから行うことができます。インストール方法や設定、詳しい機能や使い方を掲載した「KeaKeeperマニュアルページ」を作成し、ホームページ上で公開しています。
また、Keaについて調査を行い「Kea調査報告書」として公開しています。調査報告書では、Keaの基本的な設定や様々な設定例を解説しています。また、Kea単体とHAモードを利用した場合の性能を比較した検証結果についても記載しています。調査報告書は無料でダウンロード可能なため、KeaKeeperのマニュアルと併せてぜひ参照してください。
デージーネットでは、Kea、KeaKeeperを連携させたDHCPサーバの導入・保守を行っています。OSSはライセンス費用が基本的に無償であり、商用ソフトウェアに比べて初期費用や運用コストを大幅に削減できます。お客様のご要件や利用規模を細かく確認し、ご要望に合わせて、蓄積されたノウハウと最新の技術を組み合わせた最適なシステムの構築を行います。ISC DHCPのサポート終了に伴い、DHCPサーバからKea DHCPへの移行を行った事例もあります。
Kea「情報の一覧」
Kea調査報告書

KeaはオープンソースソフトウェアのDHCPv4/DHCPv6サーバです。ISCが開発しリリースしています。IPアドレスの動的割り当て、ホスト毎の固定IPアドレスの割り当て等の基本的な動作が行えます。本書は、Kea2.4系を再調査し、インストール方法と基本的な使用方法を調査した結果をまとめたものです。無料でダウンロードできます。
Kea DHCP(冗長化)とKeaKeeperの導入事例

お客様は、DHCPサーバとしてISC DHCPを利用していました。しかしISC DHCPは既にサポートが終了しており、将来的な運用に不安があったため、ISP DHCPの後継として開発されたKea DHCP serverへの移行を検討されていました。同時に、移行時の既存サービスへの影響、DHCPの設定・管理方法、障害の検知などについても懸念されていました。
ISC DHCPからKea DHCPへのDHCPサーバ移行事例

開発が終了したISC DHCP Serverを利用していたお客様に、現行サーバから設定を引き継ぎ、Keaへの移行を行った構築事例です。お客様は固定IPアドレスの払い出しや、利用しているIPアドレスや有効なIPアドレスの残数の管理も行いたいという要望もありました。弊社からは冗長化構成の提案や、IPアドレスの利用残数を調べるツールの開発などを行いました。
冗長化設定をしたDHCPサーバ(IPv6対応)構築事例

エンドユーザ向けにIPv6のIPアドレスの払い出しをしていくため、IPv6対応のDHCPサーバ構築の依頼を受けた事例をご紹介します。重要なサービスであるため、冗長化も実現し、障害発生時にも継続して運用できるようになりました。
IPv6対応DHCPサーバとログ確認の課題を解決したシステム導入事例

IPv6のサービス提供を検討していたお客様に、IPv4/IPv6両方の設定に対応した、ログも確認できるDHCPサーバを構築した事例についての記事です。 IPv6用のDHCPは、DNSサーバなどの付加情報を自動で配布したり、ホストに割り当てるIPアドレスを管理したりすることができる点が特徴です。
Kea DHCPサーバの情報をWeb UIで管理〜KeaKeeper〜

今後、DHCPサーバーは、ISC DHCPに代わり後継のKeaが主流になると見込まれています。Keaは多彩なDHCPの管理機能を備えていますが、コマンド操作による設定が必要です。デージーネットでは、Keaと連携してGUIベースで設定やリース情報の確認、操作ができるKeaKeeperを開発しました。KeaKeeperを導入することで、データベースの管理作業の負担を削減することができます。
KeaKeeper

KeaKeeperとは、DHCPv4/DHCPv6サーバのOSSである「Kea」を管理するための、Webインタフェースのソフトウェアです。デージーネットが開発を行い、オープンソースソフトウェアとして公開しています。Keaは非常に多彩なDHCPの管理機能を備えていますが、コマンド操作による設定が必要です。ここではKeaと連携してGUIベースで設定やリース情報の確認、操作ができるKeaKeeperの利用手順や機能、使い方を紹介します。


