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桁だと長すぎるケースがあったため。
ところが、「MACアドレス」はクラウドVMでは使えない。
たとえばGoogle Compute EngineのVMマシン名をつけるケースを考える。
VMの名前は変更できない。一方、VMのMACアドレスを事前に知ることはできないし、VMをコピーしたりするとMACアドレスは変わるからだ。
(MACアドレスが永続化しないのは https://cloud.google.com/compute/docs/images?hl=ja に書いてある)
もっというと、VPCのアドレスレンジも多くてせいぜい/16で、実際には #GoogleCloud だとリージョンごとに/20で切られているので、下3桁を使えば確実に一意になる(内部FQDNはリージョン名が入るので、リージョンのネットマスク(?)部分を考慮する必要はない)。
補足。「実際には #GoogleCloud だとリージョンごとに/20で切られている」のは自動モードのVPCネットワークで自動的に作成されるサブネットで、リージョンごとに 1 つのサブネットとして構築されている。
なお #AirPods と #AppleWatch は「****」の箇所に「 #Bluetooth アドレスの下16ビット」を使っている。
で、 #blueutil でアドレスを確認して…と書こうと思っていたら、 #Bluetooth のキャッシュにいまは関知することのないデバイスが多数残っていたのを発見した。
そこで、
/Library/Preferences/com.apple.Bluetooth.plist
と
/Users/h12o/Library/Preferences/ByHost/com.apple.Bluetooth.${UUID}.plist
を #Xcode で開いてちまちま編集、そして #macOS をリブートしてキャッシュ削除に成功。
ホスト名について最初に考えたのは大学のころ。
ワークステーションに最初に触れたのは大学(所在地は千葉県内)で、そのワークステーションは8台あったことから、里見八犬士がホスト名の元ネタになった。
(ファイルサーバが伏姫)
そこからコードネーム的な付け方に親しんできたし、RFC 1178も当然読んだことはあるのだけど、最近はもはやコードネームっぽい付け方も流行らないだろうなあと思っている。