ネットワークの名前を考えてみた

DNSサーバを立てた。DNSへの問い合わせはドメイン名を使うので、ホスト名だけではなくネットワークの名前が必要になる。正式にドメイン名を取得している場合はそれを使えばいいが、ドメイン名を取得していない場合 192.168.0.0 のプライベートアドレスの様に“プライベートドメイン名”みたいなものが欲しい。
今まではホスト名だけを考えていれば良く、あまり真面目にネットワーク名を考えたことはなかったので、ちょっと調べてみた。ユーザが明確に指定して名前を付けない限り多くのシステムで“localdomain”が使われている。例えば、インストールしたてのhostsは

127.0.0.1       localhost.localdomain localhost

等となっている場合がある。そこで、最初は何も考えずにlocaldomainを使おうとしたが、よく考えると上のような表現をした場合、localdomain は 127.0.0.0/8 のネットワークに付けられた名前で、例えばLANに 192.168.0.0/24 というネットワークアドレスを使うのであれば localdomain とは別の名前を与えるのが筋である。localhost127.0.0.1(正確には127.0.0.0/8にあるマシンのIPアドレス)を表すものとしてRFCの中でも使われているが、どうもlocaldomainというのは定義が曖昧で、127.0.0.0/8 を表すこともあれば、LANで使うローカルなネットワークアドレスを表すという意味合いで使われていることもある。

本来であれば 127.0.0.0/8 は“loopback”という名前にして次のようにしたいところだが、

127.0.0.1       localhost.loopback
192.168.0.1     server.localdomain

localhost.localdomainというのが定着しているのでLANには別のネットワーク名を割り当てた方がいいだろう。(無理やりloopbackに変更するとどんな弊害がでるか分からないし。)では、どんな名前にするか?(別に決まりがあるわけではないので、例えば自分の名前でもいいわけだが。)

DNSサーバのドキュメントを見ていると、組織内の複数のネットワーク(ZONE)をまとめて“localnets”と表現してるらしい。これに習ってネットワークが1つの場合はlocalnet、複数ある場合は“localnet0”、“localnet1”という風に名前をつけるのが良さそうだ。

127.0.0.1       localhost.localdomain
192.168.0.1     server-a.localnet0
192.168.1.1     server-b.localnet1

という感じだろうか。この場合、/etc/networksの中身は次のようになる。

localdomain     127.0.0.0 loopback

localnet0       192.168.0.0
localnet1       192.168.1.0