2019年 11月 04日
コンピュータ名(ホスト)の命名規則? 15文字の63バイト制限、ホスト名の命名権利はだれの権利?責任?(パソコン名)
数十年前に初めて、お客さんのネットワークシステムを構築したとき「コンピューター名どうしましょ」となった時に「ま、花鳥風月でいいんじゃないっすか?」と申し上げた事がありました。コンピュータ、ホスト名、パソコンの名前の命名規則のお話です。
英国軍艦の装甲艦コルベットには「フラワー級コルベット」というのがあり、「立派な海軍の男がパンジー(三色スミレ、男色者の隠語)なんかぁで戦えるか」というくだりが、よく英国の海洋冒険小説に出てきます。でもこの「花の名前」のフラワー級コルベット。使い勝手の悪さと居住性の悪さにも関わらず、構造が簡素で大量生産できたため、大戦中の大西洋でのドイツの潜水艦との地味で退屈で危険な戦いでは大活躍したんです。沢山作るンだから、花の名前でも付ければいいでしょ、みたいな安易なネーミングスタンダードですが、実用的な命名規則でした。
※ちなみに英国海軍の場合は、必ず正式名に HMS が付きます。カナダ海軍は HMCS です。艦船接頭辞と言うそうです。
そこで戦後に初めてアメリカの GM が作った小型スポーツカーにつけられた名前が「コルベット」。
旧日本海軍では軍艦の命名規則は、律令時代の「国名」が戦艦、「河川名」が巡洋艦。空母は「喜ばしい架空の鳥の名前」駆逐艦は「洋上の自然現象」と決まっていたようです。
ま、余談はここまで。「花」はこんなものですが、「鳥」は何だかメンド臭そう。「月」は "ナントカ moon" 以外に見つからず、じゃ「風」の名前はどうなんだろうと調べたら、結構、コンパクトで魅力的な風の名前(地方風)の語には蠱惑的な単語が結構あるんですね。
List of local winds
特にヨーロッパ古代から中世史に興味があったので、地中海の船乗りに関する「風の名前」「船乗り用語」「船乗りが嫌がるもの」など地中海の船乗りが使う語彙が豊富になりました。という事で、ウチのコンピュータや Wifi の SSID なんかには、いいも悪いも含めて地中海の船乗りになじみのある自然現象などの名詞が使われています。ちなみにSSIDの文字列の最大長は32バイトだそうです。そういえば、電車の中でスマートフォンのSSIDを変えて、見知らぬ他人と会話する、という話が一時期話題になったように、2バイト文字も使えますが、お勧めはできません。
WifiのSSIDで隣人とコミュニケーションしよう
軍艦の命名規則には、それぞれお国柄があるようです。特に海軍国である英国艦艇の補助艦には、フラワー級だけではなくリバー級とかタウン級なんて命名規則がありました。アメリカ海軍の場合 USS で始まり、州の名前とか政治家とか、頑張って戦死した二等水兵の名前とか。ま、そのうち風の名前のセンスに苦しんで、コンピューターのホスト名には北欧の物語に出てくる妖精の名前をかたっぱしから付ける様になりました。英国空軍の機種名やエンジンの名前によく使われています。英国人のセンスですね。名前を見るとユニークでインパクトがあるものをよく見ます。
- あわせて読みたい -
ユーザアカウント名は8文字以内にすべきか?ユーザの命名規則の理由パスワード強化ポリシーの色々、最大最小値、文字種、使い回し、Windows、mac, Linux
社内ネットワークが構築され始めたころ、良く客先で見かけた命名規則が「星の名前」や「ギリシャ神話の神」をルールにしているところが多かった。これは単純に使いやすいのと、ゲームの主人公なんかによく使われるんですね。どうも、「天体名」は人気があるそうです。でもその名前の由来を調べたら、縁起の悪いものもあるので、気を付けたいところです。こういった命名規則を作った趣味人の命名規則。例えば、片っ端から「ガンダム名」にしてしまうと、
「シャーが死んだ」とか「ザクにバグがある」「ホワイトベースが堕ちた」
なんていう楽しい会話ができます。私にはそんな趣味ありませんけどね。まぁ”ウルトラマンに出てくる怪獣の名前”とか、ま、やめときましょう。最後には倒されるンですから...フォネティックコードを使うのも一つのアイディアです。短くて誤読、認識性が高い。さすが軍隊の通信に使われるだけあってよく考えてある。ですが、欠点はアルファベットの26種類しかない事。
明確で単純ですがあまり人気はありません。自社の製品名、自社のサービス名を使うケースもあるのですが「xxx(自社製品名)が死んでいる」とか「xxxがおかしい」なんて会話が飛び交うと、社内で変な誤解を生んでしまいます。あまり流行らないようですね。また、プロジェクト名などを付けると、後でそのプロジェクトがポシャって、プロジェクト名が付いたホストが残ると淋しいものです。また、いくら花鳥風月でも "chrysanthemum" (菊)なんて言うような、舌を噛むような難読名は命名規則には避けるべきでしょう。私なら「薔薇」って書けません。植物の名前は豊富ですが、微妙な花言葉だと、使う側もビミョーな気持ちになります。でも語彙は豊富です。鶏の名前は英語だとピンときませんね。
List of garden plantsList of birds of Japan
プロ野球のチーム名をつけていたお客さんがいました。中々良いセンスでした。難点は、せ・パどちらにするか、12チームしかないことです。JリーグならJ1,J2,J3合わせて 50 数チームあるのでちょっとした組織でも充分でしょう。東京の様に2チームある場合は FCTokyoo、TokyuV の様に名前をつける。まぁ重要度に応じてJ1チームの名前を与えるというのもありますし、本物のJチームが出世するように、サーバも重要度が増してくるのは、「システムを育てているんだ!」みたいな楽しみでもあります。応用を利かせて、大リーグのチーム名、都市名、欧州サッカーのチーム名なんかも使えそうです。ただし、本物の野球チームが不調だったり、ついでにその名前のサーバが落ちたりするのは、あまり気持ちの良いものでは有りません.私なら贔屓のチームがJ2落ちしたり、その名前のサーバがサービス終了してなくなってしまうのはちょっと悲しい想いをするでしょう
かっこいい言葉を選びたいので哲学用語や仏教のお経の言葉も良さそうですが、やっぱり複雑で専門性が高いのは結構難しいでしょう。担当者が変わると使われなくなります。シアン、マゼンタの様な色名も良いかもしれません。デザイン系の職場のネットワークでは良い命名方式かもしれません。あるゼネコンさんで、建築用語を使っているケースがありましたが、部外者のワタシにはチンプンカンプンで馴染めなかった事があります。やはり業界ではポピュラーな言葉でも外部の協力会社さんにも判りやすい命名規則だと有り難いですね。また所属する業界特有の専門用語は文字数が長すぎる気配があります。くれぐれも4〜6文字程度に収まる1ワードの単語がある語彙集を見つけるべきでしょう。花鳥風月が良いと言っても2ワードになっては面白くありませんどうしても男社会では、かっこいい名前が受けますが、若い女性が多い組織では洋菓子の名前なんかは受けが良いかもしれません。何らかの略語4文字とかも良いのでしょうが、"F" で始まる4文字熟語はたいてい下品になるようなので、よしたほうが良い。
- Mnemonic Word listによる命名規則 -
ここでリストアップされた単語は、アクセントや綴りに重複や読み間違えを生みにくい4~7文字の単語のリストです。1626語ありますから選択は自由です。命名規則に関わらず、任意にコンピュータ名に付けたい時には参考になるリストです。
これは、どこの現場でも良く見る命名規則です。通し番号は最低2桁、できれば3桁の通し番号を付けます。この方法のメリットは、 # grep | sort した時に見やすい事です。
例えば
- PRNnnn - プリンタ
- WPCnnn - Windows 端末
- DNSnnn - DNS サーバー
- APSnnn - アプリケーションサーバ
- FSVnnn - ファイルサーバー
ただ、これだとユーザや管理者から即時認識できないので、[SRV+nnn+PANSY]の様な、共通接頭辞+ユニークで機械的な通し番号+ユニークな愛称はいいアイディアだと思います。愛称があると判りやすいし、Nattou とか Umeboshi なんてミヤビな名前があれば愛着も沸くものです。でも、自分のPC名が「鶏レバー」だったら愛着は湧きませんが....実際、意味のない文字列+数字の場合は担当者はさておき、協力会社の担当者さんやエンドユーザは即座に識別できないので、何等かの愛称があると識別性が高いという事になります。ホスト名は「記号化」してしまうと、認識度が低くなり、伝達性を損ないミスタイプを誘います。一意にするための"記号+理解可能な単語"の組み合わせが良いだろうと思いますけどね。まぁ Linux の場合、ホスト名が影響するのは Samba の Netbios 名程度(設定でホスト名とは違う名前を付けられる)で、後は DNS 名ですから、 DNS 名の命名規則と異なる機械的な命名方法でも構わないでしょう。
テスト用だから、"SVtest001" なんて名前を付けるのはいいアイディアとは思えません。作り込んで本番運用するときに至って、名前を書き換える手間を考えると恐ろしいほどの後戻りが発生します。 いつまでテスト用なンだ? ってことになります。
プリンタの場合、ベンダー名や機種名、機能(FAX付き、スキャナ付き)などがわかると良いこともあります。ドライバを選択するにも、印刷やスキャン取り込みなどの目的が判りやすいのがいいでしょう。PRNCNN(キヤノンプリンタ専用機)、 PFSEPS(FAXスキャナ付きエプソン複合機)、ベンダー名よりプリンタのシリーズ名で機能がわかるわけですから、シリーズ型番+SKU3桁+花鳥風月。ちょっと長いかな。しかし機能がわかると協力会社さんや外部のヒトにも判りやすいと思います。こうした周辺機器は、リースが切れて交換すると、次の世代にアップグレードされるので、サーバ名とはまた違う、ユーザにも初見のヒトにも判りやすい命名規則でも構わないと思います。ただしプリンタはあまり設置フロアとか部門名はつけない方がいい。部門の再編とか、社内引っ越しで設置場所が変わってしまう事もあるのですね。
Windows では「NetBiosの都合」というややこしい制限があるので、それぞれエンドユーザさんが使うPC一台一台には工夫が必要でしょうね。クライアントPCはネットワーク上では、将棋の「歩」です。それぞれの足軽は「姓」を名乗らない「歩」なので「貫太郎」とか「強右衛門」の様なユニークな名前を与得る場合もある訳です。私も自分のコンピュータ名を「タマちゃん」と呼んでいた時期がありました。コンピューターに名前を付けるのは、ペットに名前を付けるのと同じくらいのセンスが要求されます。機械的な命名では、利用者から愛着をもって使ってもらえません。英米の海軍でもこれらの「歩」の様な哨戒艇などには PT-109 とか MTBnnn の様な、記号+通し番号が正式名称だったのですが、実部隊の現場ではお互いを「愛称」や「コールサイン」「ペナントナンバー」で識別していたようです。所詮「足軽」なので、端末は3~4年で入れ替わってしまいます。永続的にホスト名やIPアドレスが使われる、DNSやメールサーバーの様に厳密にする必要はありません。端末のホスト名は、アセット管理とヘルプデスク、ワークグループの使い勝手を優先目的とします。「PC+導入年度下二けた+シリアル番号(SKU)下4けた+数バイトの認識名」とかも良いでしょうか。コツは、先頭のバイト数は必ず揃えて、接尾に付ける認識名の始まりは何文字目、と決めておくことです。認識名としては、3バイトの空港コードのように短くて聞き間違えがなく認識性が高いものが良いでしょう。「WPC+3桁の通し番号+3桁の空港コード(HND-羽田,CTS-千歳,NRT-成田)」などです。桁が揃った一意の綴り3文字なので、応用が利きそうです。3文字だと記号っぽいので、5文字の英単語(名詞)とかも桁が揃ってよさそうです。ただ、あまりに不吉だったり、非常識な単語は避けるべきです。修理でマザーボードを交換したとか、USBドングルアダプタで有線化した場合はMACアドレスが変わります。IP や MACアドレス、利用者名などを使うと何れ破綻します。
例えば通し番号を数字二けたとすると 00から99 までの 100 個の個体を識別できるわけですが、これを16進数にすれば 00 ~ FF まで二けたで 256 個の個体を識別できます。 256 はクラスCのひとセグメントですから、大体の中小組織では十分な数です。3桁 000 ~ FFF を使うと全部で 4096 の識別個体を作れます。中堅企業以上では、これで十分ですね。ただし3桁の先頭文字にアルファベットはつかわないのがいいでしょう。000 ~ 9FF までです。また、不吉な数字は欠番にすべきかもしれません。中華系のユーザのPC符号が WPC4444 だったり、まじめなカソリック教徒にWPC013というPCを与えるのはいかがなものでしょう。13番が似合うのはゴルゴ13くらいです。
OS 種別を命名規則に取り入れると、例えばWindows で動いていたサービスを Linux に置き換えた場合はちょっと面倒なことになります。また機器のベンダー名や型番を命名規則に使うと機器のリプレースの時に面倒な事になります。設置したオフィスや部門の所在地を使うと、オフィスが移転したときに問題となります。nnnn の通し番号に IP アドレスを指定している所がありました。リーズナブルなようで、後でハードウェアのリプレースで問題となります。あまり IP や Mac アドレスをコンピュータのホスト名に使うべきではないと思います。仮想化時代なのでいずれ破綻します。また、「会社名」も避けるべきです。会社名なんてしょっちゅう変わるものなんですね。Windows ドメイン名に「会社名」を付けてすぐに買収されて、泣く泣くドメインを再構築したお客さんがありました。
「社内向けドメイン?」何ンか変だな。まぁ Microsoft Active Directory を始めとして、イントラネット向けのドメイン名なんですが、".local" は禁忌ドメイン名です。ローカルネットワーク、AD ドメイン名に絶対に使ってはいけません。間違っても AD では ”mycompany.local” で作ると問題が出ます。 Mac があるネットワークでは Bonjour ネットワークで使われています。 TimeMachine バックアップでや iTunes や iPhone の同期でトラブルが出ます、Google 大魔神の投票結果なので、探してみてください。
Apple ネットワークに Linux:Avahi on SUSE Linux
そもそも、"mycompany" という、アナタの所属する組織名は移ろいやすいのですね。ローカルネットワークで使うFQDNに含まれる、ドメイン名、ホスト名はもう少し真面目に考えてもいいのではないのかなと思います。例えばですよ、あくまでも例えば。社内向けのDNSのADのローカルドメイン名に local.google.com なんてオレオレドメイン付けてしまって、prn01.local.google.com に印刷してしまった場合、オレオレじゃない本物の Google さんの prn01.local.google.com から極秘文書がジーコジーコとプリントアウトされる可能性があるのですね。ま、考えにくいけど。だから、社内向けのドメイン名は、インターネットにおいてユニークで唯一無二で、しかも将来においては他人に使われない、変更される可能性がないドメイン名を指定すべきでしょう。会社名.com なんかはよした方がいい。どうせ会社名なんて、いつCIされて変わってしまうかわからないのです。その後 Windows ドメイン名を変えてしまうのは恐ろしく手間がかかる作業になってしまうでしょう。これは社内ドメインの工夫。アクティブディレクトリの命名規則のポイントですね。だから、Active Directory のドメイン名に組織名はつかうべきではないと思うのですが、唯一無二という事なら、思い切って”花鳥風月”の一般名で公式な名詞をオレオレなインターネットドメインを取ってしまい、そのサブドメインをイントラネット用ドメイン名にしてしまえば、社名が変わっても将来にわたって使えるわけですね。.NET とか .SITE とかはかなり安く取得できるので、例えば pansy.site なんかを1円で取得して fsv001plum.ad01.pansy.site というドメインやFQDNを AD や社内向けサービスの名称にするというのも思い切った手段です。これなら会社名が変わろうが、組織が改変されたり、引っ越しても使い続けられます。zzzzzzzz.com みたいな単純なドメインでも格安です。
オレオレドメインがもたらす当たり前な問題
AD ドメイン名のベストプラクティスとしては、絶対に組織名や、所在地、組織名など、将来変わる可能性がある名称を使わないことです。どうせいつかは変わることが予想されるんですね。花鳥風月な名詞の中から決めたほうがいい。
- ドメイン名の命名規則からの HOSTNAME の制限 -
FQDNではゾーン名を含め1バイトから最大253文字です。FQDN は hostname.mydomain.com となりますが、ドットの間の「ラベル」に使われる最大文字数は63文字です。従って、「コンピュータのホスト名」の公約数は「1から63文字以内で、かつFQDNも含めて253文字に収まること」がまず条件になります。SUSE Linux では getconf コマンドで確認できます。Linux のホスト名は最大で64バイトですが、最後は Null なので63バイトという事です。suse15:~ # getconf -a | grep HOSTHOST_NAME_MAX 64suse15:~ #ラベルに使われる文字は、英数字とハイフン、ただしハイフンは「ラベルの先頭と末尾」には使えません。基本的には使わないのが無難。 Windows では "_"(アンダースコア)も利用可能ですが、他との公約数として"_"も Windows でも使わない方が無難でしょう。Windows DNS では AD 環境で動いてしまいますが bind DNS と混在する環境では確実にトラブルが起こります。この63文字の文字制限は hostname コマンドのマニュアルには記載がないのですが、 limit.h に定義されているそうです。63文字以内です。ドメイン名の構成ただし、いくら 253 文字使えるとは言え、長すぎる FQDN 名は避けるべきでしょう。解りやすく、短くが原則です。そもそも文字列が長いと、タイプミスしやすいし、メンドクサイものです。
重要なのは、命名規則で使える文字種、最大、最小文字数などは、&&条件で最小公約数で決める事です。Windows や NetBios で許されても、FQDN の条件に合わない命名規則は、好ましいことではありません。Windows から、他のシステムに移行した場合に問題となる可能性があります。逆に 63 文字のホスト名が付いたシステムを Windows に移植したら、これも問題が出てきます。
Windows におけるコンピュータ名も同じく63文字の様です。
Enter your computer name
ただし15バイト以上の「コンピュータ名」はトランケート(丸められる)ようなので、15バイト以内が無難なようです。なぜなら、"Netbios" という20世紀に作られたDOS時代のレガシーなシステムの残骸を引きずっていて、 FQDN での制限である63バイトより、短い「Windows は15バイトのコンピュータ名」をつけた方が良い様ですね。しかもNetbios では特殊文字のドットも可能。勿論、ドット(ピリオド)はFQDNのラベルの区切りになるので、NetBiosでは許されてもコンピュータ名で使うべきではありません。だからADの命名規則では禁止されているという矛盾。また RFC では "_" (アンダースコア)は積極的に推奨されていないようなので、Windows では認められても使うべきではないようです。Active Directory におけるコンピューター、ドメイン、サイト、および OU の名前付け規則この Netbios 名の制限は、当然 Linux/Unix 系OSで使われる Samba にも影響しますから、 Linux で SMB/CIFS を使う場合は Linux のホスト名とは別に Netbios 名も英数字 15 バイトに収めるのが無難である、ということになります。もっとも BIND なんかで名前解決するなら問題ありませんが、Windows ガチガチなネットワークの場合、制限は
「NetBiosに従え」
ということになりそうです。
システム的には許せても、日本語や非ラテン文字、例えばキリル文字などは使わないことです。他のシステムでは受けつかなかったり、例えば ping するときに面倒です。
林檎マーク > システム環境設定 > 共有、より「コンピュータ名」を編集できます。ComputerName.local と拡張子に .local が付きます。もし Microsoft Active Directory のドメイン名が "MyCompany.local" だった場合、確実に Mac のネットワークにトラブルが出るでしょう。Mac があるネットワークでは(それだけの理由でもなく) AD のドメイン名に .local は使ってはいけません。未だに古い Windows の教科書通りに MyCompany.local をつかっているなら AD ドメイン名の変更を考えるべきです。
ヘルプには
”コンピュータのローカルホスト名を変更するローカルホスト名またはローカルネットワーク名は、「共有」環境設定パネルの一番上にあるコンピュータの名前の少し下に表示されます。Bonjour対応のサービスでは、この名前でお使いのMacが識別されます。ローカルホスト名は、コンピュータ名に.localを追加した名前であり、スペースはハイフンで置き換えられます。たとえば、My Computerという名前は、My-Computer.localというローカルホスト名になります。ローカルホスト名では、大文字と小文字は区別されません。したがって、my-computer.localはMy-computer.localと同じです。
1. Macでアップルメニュー >「システム環境設定」と選択し、「共有」をクリックします。"
とあります。
ところで、macOS の場合、日本語のコンピュータ名は使えるのでしょうか? macOS 11.4 big Sur の事例です。
既定の文字数以上の長いコンピュータ名は、設定できませんでした。ニホンゴのコンピュータ名は使えるようですが、システム的には"KanaMoji-Alphabet.local" となってしまいます。上の例では、英数字 36 バイトで拒否されました。短くすると設定できますが、2バイトコードを使ったホスト名のコンソールのプロンプトは見事に英数字です。
ネットワークから見ると、見事に全然違います。ちょっと笑えない状態です。これでは認識性が全く損なわれます。
古いドキュメントの様ですが、一応次のような文書を見つけました。
macOS Serverでサーバの名前を変更する
”ローカルホスト名の最初の部分は変更できますが、拡張子は常に「.local」です。ローカルホスト名にスペースを含めることはできません。ハイフン(-)に置き換えられます。ローカルホスト名では大文字小文字は区別されません。-中略-とあります。どっちにせよ、Windows ネットワークと共存する環境では NetBios の15文字、2バイトコードは使えても、楽しい事にも悲しい事にもなるので使わない事。コンピュータ名は、63文字以下の英字です。空白を含めることはできますが、「=」、「:」、または「@」は使用しないでください。"
たとえ使えても、2バイトコードや、空白(スペース文字)、空白が置き換えられる "-" (ハイフン) や "_" (アンダースコア)を使わない”英数字のみ15文字以内”が最小公約数で無難でしょう。
もし、スタバでドヤリたいのなら、無難な一般名詞を使ったホスト名の方がいいでしょう。「オレオレたまちゃんのmac Book M1 Air」なんて名前で、公共の Wifi 環境につなげると、一発で「あ、mac Book 使っているアイツか」ってバレることもあり得るという事です。いずれにせよ、俗人的な固有名詞は使わない事です。まぁ、これは mac の場合だけではないんですけどね。Windows の自腹マシンでも、公共の Wifi 使う場合は「みんなオトモダチになる事もある」気を付けるべきです。
大体、コンピュータのホスト名の命名規則というのは、管理している人間の趣味で作られるものです。まぁほとんどはその場の思い付きなんですね。
例えば、先頭6バイトの文字規則(ナンバリング規)+愛称名の利用可能なリスト
命名規則の原則は、文書化と認証。必ず文書化して、担当マネージャーのハンコをもらっておく事です。
- grep | sort したり、正規表現での検索、スプレッドシートでソートしやすい様、先頭 4 ~ 6 バイトには特殊記号のない規則性を持たせる
- 基本は英数字のみ15バイト以内に抑える。もっとも短い方がいいのは勿論。2バイト文字は使わない。
- 特殊文字は "-" ハイフン以外使わない、と言うより正規表現で特殊処理が必要な文字なので "-" , ”_” の利用も控える。
- 後半部には規則性のある任意のニンゲンが認識可能な文字を付け加えても構わないが、4~5文字に控え長い文字列は避ける。
- 数字で始まるホスト名は避ける。
- オフィスのストリート、住所、部署名、社名など、将来も使い続ける可能性がない略字、語句は使わない。
- 恥ずかしい名前や、難読性なもの、「そういう面白い趣味か」「不吉な単語」といった名前は避ける。
- IP アドレスや Mac アドレスの様な変化する可能性のある命名規則はそのうち破綻する。
- 愛称のストックは常にためておく事。花鳥風月、空港コード、フォネティックコードの様なリスト、文字数を決めておく。
※ バイト数なのか、マルチバイト Unicode の ”文字数” なのか? 書いている私も混乱しています。UTF8 と UTF16 では、同じ漢字コードでも、バイト数が違うそうです。8ビット英数字限定なら「単純バイト数」なので、「英数字nバイト」と決め打ちするのが良いかも知れません。
まぁ、RFC1178 に、べき論とべからず論があるので、一読しておくことです。
Choosing a Name for Your Computer
ITにおける標準化策定:機能のクラス分け
https://islandcnt.exblog.jp/241843280/
ファイルサーバーをゴミ箱にしない工夫
PCDAサイクルから考えるセキュリティポリシーの見直しファイル名とパスの最大長の色々