SSHの鍵のコメントの話から派生して、ホスト名の付け方について再考している。
QT: https://mastodon.blessedgeeks.org/@h12o/103963761988494415
で、いまは。機種名とMACアドレスの下16ビット(2^16=65536=16^4、下4桁)を使っている。
- AirPods→AirPods-****
- Apple Watch→Watch-****
- iPad→iPad-****
- iPhone→iPhone-****
- Mac→Mac-****
- MacBook→MacBook-****
ちょっと前までは機種名とMACアドレスの下24ビット(2^24=16777216=16^6、下6桁)を使っていたが、16ビットに短縮した。
理由は、二段階認証/二要素認証を省略する機能でブラウザを登録する際、
{ブラウザ}@{ホスト名}
という登録をしているのだけど、文字数制限があるせいで、下6桁だと長すぎるケースがあったため。
考察続き。
Google CloudにもAWSにも(AWS使ってないけど)静的内部IP(v4)アドレスを予約する機能がある。
Linux以外を使うことはほぼ考えられないし、LinuxのhostidはVMが最初に認識するネットワークインタフェースのIPアドレスになる。
VMが最初に認識するネットワークインタフェースはたいていeth0で、eth0はVPCネットワークにつながっている。
静的内部IP(v4)アドレスを予約してからVMを作るようにすれば、「<機能名>-<ランダム16進数>」形式のホスト名兼VM名が設定可能である。
もっというと、VPCのアドレスレンジも多くてせいぜい/16で、実際には #GoogleCloud だとリージョンごとに/20で切られているので、下3桁を使えば確実に一意になる(内部FQDNはリージョン名が入るので、リージョンのネットマスク(?)部分を考慮する必要はない)。
補足。「実際には #GoogleCloud だとリージョンごとに/20で切られている」のは自動モードのVPCネットワークで自動的に作成されるサブネットで、リージョンごとに 1 つのサブネットとして構築されている。
まあ別にhostid使う必要もなくて、静的内部IPアドレス使えばいいという話もある。