オルタナティブ・ブログ > プログラマー社長のブログ >

プログラミングでメシが食えるか!?

DHCPサーバを製品化した背景

»

当社のソフトウェア製品の一つである、ProDHCPは、DHCPサーバを製品として販売しているものです。DHCPサーバはWindowsやルーターなどにも付属しているものですし、LinuxなどのUNIX系OS向けにはISCがオープンソースで公開しているものが付属しています。そんなDHCPサーバを、なぜ製品化したのかを紹介してみましょう。

DHCPとは、Dynamic Host Configuration Protocolの略で、動的にホストの設定を行うためのプロトコルです。一般的には主にネットワーク関連の設定を自動化するのに使われていますが、BOOTP(Bootstrap Protocol)を拡張する感じで登場し、多くの設定を自動化できるようになっています。

DHCPが使われるケースとしては、家庭内ではルーターなどでインターネットに接続するために使われたり、公衆無線LANアクセスポイントで自動的にネットワーク設定を得たり、企業でのネットワーク設定の自動化などが中心でしたが、許可された端末のみにネットワーク設定を与えるという設定にして、不正PC対策にも使われています。

当社がDHCPサーバを開発するきっかけとなったのは、「ある用途で非常に大規模なアドレス管理をしているDHCPサーバを運用しているが、設定変更に時間がかかるので何とかできないか?」という相談をいただいたことでした。ISCのDHCPサーバを使っていたのですが、10万件のIPアドレスをリースしている状態で設定変更を行うと、2〜3分再起動に時間がかかってしまうという問題がありました。ISCのDHCPサーバは設定変更を反映させるためには、一度プロセスを終了させ、再び起動しなければならないのですが、その際にリース情報を再構成するのに非常に時間がかかるのです。当然その間IPアドレスを払い出せなくなるので、サービスに影響が出てしまいます。要求としては、2〜3秒で設定変更を反映して欲しい、というものでした。

最初はISCのプログラムを改良して欲しいという相談だったのですが、その要求は難しいとISCのReadme(ドキュメント)にも書かれていますし、実際にソースを見ても、根幹部分を変更しなければ高速化は難しい感じでした。そこで、「フルスクラッチで作って良いなら受けるが」という返答をしたところ、「2週間後に評価をはじめるが、間に合うか?」と言われ、「やってみる」と回答し、3日で基本部分のみ作って性能面で問題ない速度を実現できる目処を付け、評価開始に間に合わせました。設定変更は10万件程度なら1秒もかからずに終えます。その後必要な機能から拡張していき、ほぼ実用レベルになるまではもう少し長くかかりましたが、お客さんとしては、他に選択肢がないので、当社が作るものを使うしかないということで、テストをクリアーした後にすぐ実運用をはじめました。すでに5年前くらいの出来事ですが、このシステムは今でもお客さんの方で拡張などしながら稼働し続けています。

その後、ソースの権利は当社が持つことになったので、ProDHCPとして製品化し、一応ホームページなどで宣伝もしたのですが、さっぱり問い合わせはなく、社内ではもちろん便利に使っていましたが、何か使い道はないかと考えていた時に、不正接続検知IntraGuardianを開発するきっかけになるなどしましたが、結局IntraGuardianは単独で製品化したのでProDHCPは鳴かず飛ばずでした。そんなあるとき、ソリトンシステムズさんがDHCP製品をアプライアンスで販売していて、そこで使っているISCのDHCPサーバのある問題で困っているということを知り合い経由で聞き、ProDHCPをOEM提供することになりました。

ソリトンシステムズさんの製品で使うためには足りない機能がいくつかあったのと、さらに念入りな細かい動作の検証を重ねて修正などを行い、現在Net'AttestD3に採用いただいています。このときに、ソリトンシステムズの鎌田社長にもお願いし、ソリトンシステムズさんの名前を出させて欲しいと言うことと、D3でProDHCPを採用していると書いて欲しいと言うことをお願いし、「ソリトンの名前なんかそんなに価値ないぞ」と鎌田社長に言われながらも了承いただき、ProDHCPの紹介にソリトンシステムズさんの名前を出したところ、なんとほぼ問い合わせがない状態だったのが、続々と大規模運用向けのお問い合わせが来るようになったのです。ブランド力の大切さを痛感しました。

お客さんに喜んでいただいているのは、設定変更が超高速というのはもちろん、100万件のリース管理でもそれなりに動くということなどもあるのですが、実は一番大きいのは、
「きちんとサポートできること」
「カスタマイズにも対応してもらえること」

のようです。サポートは自分たちで開発したものですから当然迅速で、お問い合わせいただいて日をまたぐことはないくらいのスピードで返答できることがほとんどですし、まず回答できない問題はありません。カスタマイズも、DHCPのRFCから完全に外れたようなご要望であっても、設定によって動くように組み込むなど、柔軟に対応をしています。実はすでに5年位の間に渡って仕様変更や機能拡張を繰り返しているので、ソースは美しい状態ではないのですが、大規模運用なおかつ止められない運用での実績があるソースですので、丁寧に使い続けています。

DHCPなんかわざわざフルスクラッチで作る意味はないでしょ、と、WIDEプロジェクトでも言われたことがありました。しかし、ニッチながらも需要はちゃんとあるものです。オープンソースは私もたくさん使っていますが、自己責任の範囲で使うにはとても便利なのですが、それを完全にサポートしろと言われるとやっぱり難しい面もあります。自作したものなら100%サポートできます。運用でカバーできる範囲なのかどうかによって、使い分ける必要があるという感じでしょう。特にお客さんからお金をいただきながら提供しているサービスとなると、サポートの確実さは重要なのです。

実はDHCPサーバ製品はアプライアンスではソリトンシステムズさんのD3以外にもたくさんあります。海外製品もよく使われています。そんな中で当社のProDHCPを選択いただく理由は、
「アプライアンスはアドレス数やセグメント数でライセンスが決まったり、制限が厳しいことが多い」
「アプライアンスはハードのみ自分で高性能なものに入れ替えるわけにはいかず、数年で高性能になるたびに買い直すと非常に高い」
「カスタマイズに対応してもらえない、もしくは、対応が高い」
「海外製品はサポートが迅速でない」

などの背景があり、ソフトウェア製品のProDHCPは、実はトータルで考えるとかなり安い、という評価をいただいてます。
どうも当社の製品は、なんでも安く提供しすぎているのかも知れませんが、自分たちとしては、どうであれ製品が役立って、喜んでいただけるのはとてもうれしいものです。

先日ProDHCP本稼働をはじめたあるお客様のところでは、セグメント数700以上、リース可能アドレス数33万個以上、という大規模な状態ですが、バーチャルマシンで動かしています。もちろん冗長化もしていますし、様々な監視のご要望などにも対応したりしています。すでに何回訪問したか数えられないくらい、伺って設定のお手伝いをしたり、拡張したりしていますが、単に出来合いの製品を売っておしまい、というのもビジネスとしては良いのかも知れませんが、やっぱりお客さんとコミュニケーションしながらじっくりと良いものに仕上げるのも楽しい仕事です。運用ノウハウなどもたくさん教わることができます。

当社は技術者自身が販売・サポートもしているものが多く、その特徴を活かす製品開発販売を今後も楽しんでいきたいと考えています。

Comment(0)