いろいろバックエンドな人の備忘録

といいつつレイヤーのネタ書いてます。Ruby(RoR)、自宅サーバー,PCパーツ、ネットワーク、ピアノまで。

<ひとりごと>ホスト名にIPアドレスつける?

ちょっと疑問におもったから書く。

命名するシチュエーション

IT業界で働いていると何かと一意の名前が必要になることが多い。 たとえば、

  1. プログラミングにおける変数名
  2. サーバーのホスト名
  3. ルーターのアクセスコントロールリスト(ACL)名
  4. アプリケーションのプロファイル名

など。

一般に業務でそれらを取り扱う場合は 命名規則 なるものを定義すると思う。 もしくは過去の慣習にしたがって命名すると思う。

今回はホスト名を例にだす。 命名問題はAWSGCPなどのクラウドに移行したとしても、命名の問題はずっとつき続ける。 皆さんはどのように命名しているだろう。

ホスト名にIPアドレス必要か

以前自分が担当してきたシステムではホスト名(VMのインベントリ名も)にIPアドレスの第4オクテットつける慣習があった。
例えば 10.11.12.13 のメールサーバーは mail13 という具合に。

自分はこの慣習がとても気持ち悪かった。

なぜなら、

  • IPアドレスは可変な性質がある
  • 増強時に構築の時期によって連番にならないことがある
  • その情報にあまり意味がない
IPアドレスは可変な性質がある

IPアドレスを固定にすればいいじゃんと思うかもしれない。
もちろん原則はそうなのだが、企業の買収などでシステム統合や移転などはIPアドレスを変更する必要がある場合が多い。 NATなどで無理やりIPアドレスの変更をしない設計もできなくもないが、通常はIPアドレスの変更で対処するはず。

増強時に構築の時期によって連番にならないことがある

例えば、はじめはシングル構成のWebサーバー(web2:192.168.0.2)をで運用し、 アクセス増加に伴い増強しようとした時、通常は(web3:192.168.0.3)などのように連番をつけると思う。

しかし、社内システムなどおなじセグメントに複数のシステムを入れている場合は、 既に別のシステムが使おうとしているIPアドレスを使用していることがある。

この場合、例えば192.168.0.4 で Webサーバーを構築し、先程の法則にそった場合は web2とweb4 になってしまう。

その情報にあまり意味がない

そもそも、ホスト名にIPアドレスの情報が必要だろうか。 重複排除目的にしてはには 1/256 の確率でで重複するし、 メリットといえばログインして ip addr コマンドで第4オクテットとホスト名が一致してたらちょっと安心するくらいである。

単語の羅列も悩ましい

他のシステムを担当しているものは [システム-構成名] 星の名前が多いと聞いた。 水金地火木土天海…の順番で命名すると決めた場合は web-mercury, web-venus, web-earth, という具合だそうだ。

これもちょっと疑問がある。僕みたいに星に詳しくない人はまず読みにくいし、 上記の例にメールサーバーを追加するときはまた水星から振り直しになって mail-mercry, mail-venus にするのか webで使った名称を継承して、mail-mers にするのかも決めて置かなければならない。

っというか、そもそもweb-01 web-02 では不都合があるのだろうか。。。

どこまで意味を持たすか

その情報に別の意味を付け加える時(ちょっとカッコつけて多重化とでもいおう)するときはよく考えたほうがいい。 iSCSIのターゲット名に日付が入っていたりすることがある。一見日付は無意味な情報に見えるが重複排除するという意味では意味があると思うし そもそも、iSCSIのターゲット名なんてそんなに見ないしのでそこまで考えなくていいような気もする。 (まあ、滅多にみないからこそ、忘れた頃にみてわかる命名が必要なのだが。)