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

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

自作DHCPサーバ

»

今日も暑い一日でしたが、一日エアコンの効いた会社で、しかもお客さんがお盆休みのためか、平和な一日です。

今日はプログラミングをかなりの時間やってました。当社のProDHCPというDHCPサーバの機能追加などです。ProDHCPはUNIX系OSで動作するDHCPサーバで、UNIX系ですとほとんどの場合、ISCのDHCPサーバかそれをカスタマイズしたものを使うと思いますが、数年前に某通信事業者さんからの依頼で、12万件アドレスをリースしている状態で、パラメーター変更を限りなくリアルタイムに反映させたい、という要望があり、フルスクラッチで作ったものです。ISCのDHCPサーバでは10万件クラスのアドレスを管理していると、設定変更するには3分から5分かかってしまうというのですが、それを3秒程度でやって欲しい、ということで、最初はISCのDHCPのカスタマイズでやって、と言われたのですが、ソースを見ても非常に難解で、しかもreadmeかなにかに、その要求は対応できない、と書いてあったので諦め、自作しました。

3日でプロトタイプを作って速度的にいけそうだという感触を得て、2週間でテスト開始という、非常に短い期間で作ったのですが、性能面はばっちりでした。実際はテストを開始してからDHCPの動作自体の理解が足りなかったため、機能追加などの調整がかなり必要でしたが、元請けのSIerさんのスケジュール的にはなんとか間に合ったようです。その後何回か機能追加などを行いながら、今でも連続稼働しています。

このところProDHCPをいじっているのは、OEM供給をご希望のお客さんからの要望で、HA対応を行っているのと、より広い用途で使えるように、あまり使わない機能を省略している部分の対応などを行っているからです。

DHCPは単にアドレスを貸し出すだけ、と思っていると痛い目にあうほど実は機能が多く、設定ファイルだけでも非常に高機能です。ProDHCPは基本的にISCのDHCPサーバとほぼ同じ設定ファイルを扱うようにしていますので、なかなかソースの規模も大きく、C言語で2万行くらいあります。業務系のシステムでは2万行は小さい方ですが、単機能のネットワークサーバとしてはなかなか巨大です。

DHCPサーバを自作したと話すと、大抵の方は唖然とします。私にしてみれば、社内のファイアーウォールも全て自作ですし、昔は社内で使うCADシステムも作ってましたから、必要なものは自分で作る、というのは当たり前なのですが、最近では自作する人が少なくなってしまった気がします。もちろん、OSやオフィスなどまで作るのは時間がかかりますが、自分が興味のある分野であれば自作することによりノウハウがたまりますし、使う際にも自分の好み通りに運用できます。プログラミング教育でWEBシステムなどばかりやっていると、誰かが用意したフレームワークの元で、いかに組み合わせるか、探してくるか、などが勝負になるような技術ばかりになってしまいます。もう少し自力で考えて何とかしなければならないプログラミングを経験することが、自ら創造するために大切なのだと思いますが・・・。

Comment(0)