BINDはBerkeley Internet Name Domainの頭文字をとったもの。
いわゆるDNSサーバとリゾルバライブラリ、各種ツールの集合体。
DNSはDomain Name System
DNSの目的は、ホスト名とIPアドレスを関連づけること。
そしてその仕掛けは、名前空間の階層化と権限委譲による分散型データベースに集約される。
もともとTCP/IPベースのネットワークとしてのインターネットでは、すべてのホストは
IPアドレスで区別される。
0~255の数値を4つ、ピリオドで区切って並べて表記するが、人間にとっては覚えやすいものではない。
分かりやすい名前でアクセスできるように対応表が用意されたが、インターネットに接続されるホストが
増えると、これを人手でメンテナンスするのは不可能になった。
そこで名前空間を階層化するとともに分散型データベースとしてのDNSサーバが導入された。
名前空間の階層化は、要するにピリオドで区切ること。
習慣でより広範囲を表すラベルを右側に書くので、右から左に行くにつれて徐々に範囲が狭くなっていく。
こうすることで、各ドメインごとに一意の名前を使いさえすれば、インターネット全体を通して名前が
重複せずに済む。
この階層に対応したサーバを用意することで、権限の委譲も可能になる。
各サーバはインターネット上のホストすべてを知る必要はなく、下位のドメインに関する権限を持った
サーバを知っているだけで済む。
知らない情報に対してはルートネームサーバを始点としたたらい回しで処理されるが、それこそ電子的な
速度で処理されるので人間からすれば大した遅れには見えない。
DNSにおける問い合わせの方法はRFCによって標準化されている。
この問い合わせに答えるプログラムの1つが、BIND。
4.2BSDで実装されて以来、事実上DNSサーバのリファレンス実装として扱われている。
もちろん、ほかにもDNSサーバとして動作するプログラムはあるが、情報が豊富という意味でも、
まずはBINDを動かすことをお勧めする。