自宅サーバを公開するにしろ、自宅から普通にパソコンでインターネットに接続するにしろ、DNSというのは非常に重要な役割を果たします。自宅からパソコンでインターネットに接続する場合には、あまり意識しない事が多いです。最近のブロードバンドルータのDHCP機能によって、DNSをあまり意識的にパソコンに設定する機会が減ったからです。
ここで言う、DNSには2つの意味合いがあります。ひとつは自宅などからクライアントとしてアクセスする場合、とあるサーバの名前をIPアドレスに変換するDNSサーバ。例えばブロードバンドルータのDNS機能(と呼べないかもしれない)がそれにあたります。この場合のDNSサーバの役目は、クライアントのパソコンなどから名前解決を要求されてそれに対してIPアドレスを返す機能。多くの場合は、キャッシュサーバ、フォワーダーとして機能し、自身はドメインの管理もしていないしキャッシュされている情報以外を持ちません。こんな役目のDNSサーバが必要ない。と思う方もいるかもしれませんが、いまどきのインターネットのスケーラビリティを考えると、必然的に必要ですね。
二つ目は、DNSサーバとして、そのドメインの情報を持つ場合。とあるドメイン(例えば nitty-gritty.org )などが存在する条件として、インターネットのどこかでとあるドメイン(nitty-gritty.org )の情報を持つDNSサーバが存在する必要があります。
さて、自宅でサーバを構築する場合には後者の機能、つまりサーバのIPアドレスとしてなんらかのDNSにドメインの情報として登録される必要があります。この場合にも実際には2つの方法があります。大きく自分でドメインを持つ場合、持たない場合に分けられます。
■ドメインを持たない場合:ダイナミックDNS
独自のドメインを自分で持たない場合には、DNSサーバを構築する必要はありません。どこかのDNSサーバにIPアドレスを登録してもらう必要はあります。多くの場合はダイナミックDNSによって解決することが可能です。ダイナミックDNSとは、もちろんDNSサーバの機能を持ちますが、自宅にサーバを構築する場合プロバイダからアサインされるIPアドレスが固定ではありません(もちろん、固定IPアドレスサービス利用している場合には固定IPアドレスがアサインされるでしょうが・・・)。その際に、プロバイダからアサインされたIPアドレスをこのダイナミックDNSサーバにある一定の時間毎、もしくはその都度通知します。通知することによって、サーバ側に登録されているホスト名とIPアドレスのバインド(関連性)を保ちます。
ただ、ダイナミックDNSを使う場合、提供者側が決定するドメイン名(ホスト名は別)を利用することになるので、自分で自由にドメインを決定することは出来ません。
■独自のドメインを持つ場合
自宅サーバプロジェクトの場合、nitty-gritty.org という独自ドメインを取得して運用しています。独自ドメインを持って運用する場合でも、
1. 自分でDNSサーバをもってドメインの情報を管理する
2. 他のDNSサービスに委ねる
方法があります。もちろん、1の場合、自宅にサーバがあれば料金は電気代程度でしょうか(笑)。2の場合、プロバイダーが提供してくれるDNSサービスもありますが、有料のケースが多いです(もちろん無料の場合もあります)。
DNSサーバについては1と2の両方について説明していこうと思います。
