isLandcenter 非番中

ブログトップ | ログイン

ホスト名の命名規則? 15文字の制限と63バイト、ホスト名の命名権利はあなたにある。

- ホスト名は「花鳥風月」 -

数十年前に初めて、お客さんのネットワークシステムを構築したとき

「コンピューター名どうしましょ」

となった時に

「ま、花鳥風月でいいんじゃないっすか?」

と申し上げた事がありました。




英国軍艦の装甲艦コルベットには「フラワー級コルベット」というのがあり、「立派な海軍の男がパンジー(三色スミレ、男色者の隠語)なんかぁで戦えるか」というくだりが、よく英国の海洋冒険小説に出てきます。でもこの「花の名前」のフラワー級コルベット。使い勝手の悪さと居住性の悪さにも関わらず、構造が簡素で大量生産できたため、大戦中の大西洋でのドイツの潜水艦との地味で退屈で危険な戦いでは大活躍したんです。

※ちなみに英国海軍の場合は、必ず正式名に HMS が付きます。

そこで戦後に初めてアメリカの GM が作った小型スポーツカーにつけられた名前が「コルベット」。

ま、余談はここまで。「花」はこんなものですが、「鳥」は何だかメンド臭そう。「月」は moon 以外に見つからず、じゃ「風」の名前はどうなんだろうと調べたら、結構、コンパクトで魅力的な風の名前(地方風)の語には蠱惑的な単語が結構あるんですね。

特にヨーロッパ古代から中世史に興味があったので、地中海の船乗りに関する「風の名前」「船乗り用語」「船乗りが嫌がるもの」など地中海の船乗りが使う語彙が豊富になりました。という事で、ウチのコンピュータや Wifi の SSID なんかには、いいも悪いも含めて地中海の船乗りになじみのある自然現象などの名詞が使われています。

ちなみにSSIDの文字列の最大長は32バイトだそうです。そういえば、電車の中でスマートフォンのSSIDを変えて、見知らぬ他人と会話する、という話が一時期話題になったように、2バイト文字も使えますが、お勧めはできません。


軍艦の命名規則には、それぞれお国柄があるようです。特に海軍国である英国艦艇の補助艦には、フラワー級だけではなくリバー級とかタウン級なんて命名規則がありました。アメリカ海軍の場合 USS で始まり、州の名前とか政治家とか、頑張って戦死した二等水兵の名前とか。

ま、そのうち風の名前のセンスに苦しんで、コンピューターのホスト名には北欧の物語に出てくる妖精の名前をかたっぱしから付ける様になりました。英国空軍の機種名やエンジンの名前によく使われています。英国人のセンスですね。名前を見るとユニークでインパクトがあるものをよく見ます。



- よくある命名規則 -

社内ネットワークが構築され始めたころ、良く客先で見かけたのが「星の名前」や「ギリシャ神話の神」をルールにしているところが多かった。これは単純に使いやすいのと、ゲームの主人公なんかによく使われるんですね。どうも、「天体名」は人気があるそうです。

でもその名前の由来を調べたら、縁起の悪いものもあるので、気を付けたいところです。こういった命名規則を作った趣味人の命名規則。

例えば、片っ端から「ガンダム名」にしてしまうと、

「シャーが死んだ」とか「ザクにバグがある」「ホワイトベースが堕ちた」

なんていう楽しい会話ができます。私にはそんな趣味ありませんけどね。まぁ”ウルトラマンに出てくる怪獣の名前”とか、ま、やめときましょう。最後には倒されるンですから...

フォネティックコードを使うのも一つのアイディアです。短くて誤読、認識性が高い。さすが軍隊の通信に使われるだけあってよく考えてある。

ですが、欠点はアルファベットの26種類しかない事。


明確で単純ですがあまり人気はありません。

自社の製品名、自社のサービス名を使うケースもあるのですが「xxx(自社製品名)が死んでいる」とか「xxxがおかしい」なんて会話が飛び交うと、社内で変な誤解を生んでしまいます。あまり流行らないようですね。

また、プロジェクト名などを付けると、後でそのプロジェクトがポシャって、プロジェクト名が付いたホストが残ると淋しいものです。

また、いくら花鳥風月でも "chrysanthemum" (菊)なんて言うような、舌を噛むような難読名は避けるべきでしょう。私なら「薔薇」って書けません。

- 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 名の命名規則と異なる機械的な命名方法でも構わないでしょう。

- PC端末の命名規則 -

「NetBiosの都合」というややこしい制限があるので、それぞれエンドユーザさんが使うPC一台一台には工夫が必要でしょうね。クライアントPCはネットワーク上では、将棋の「歩」です。それぞれの足軽は「姓」を名乗らない「歩」なので「貫太郎」とか「強右衛門」の様なユニークな名前を与得る場合もある訳です。私も自分のコンピュータ名を「タマちゃん」と呼んでいた時期がありました。

英米の海軍でもこれらの「歩」の様な哨戒艇などには PT-109 とか MTBnnn の様な、記号+通し番号が正式名称だったのですが、実部隊の現場ではお互いを「愛称」や「コールサイン」で識別していたようです。

所詮「足軽」なので、端末は3~4年で入れ替わってしまいます。永続的にホスト名やIPアドレスが使われる、DNSやメールサーバーの様に厳密にする必要はありません。

端末のホスト名は、アセット管理とヘルプデスク、ワークグループの使い勝手を優先目的とします。

「PC+導入年度下二けた+シリアル番号(SKU)下4けた+数バイトの認識名」とかも良いでしょうか。

認識名としては、3バイトの空港コードのように短くて聞き間違えがなく認識性が高いものが良いでしょう。「WPC+3桁の通し番号+3桁の空港コード(HND-羽田,CTS-千歳,NRT-成田)」などです。桁が揃った一意の綴り3文字なので、応用が利きそうです。


修理でマザーボードを交換したとか、USBドングルアダプタで有線化した場合はMACアドレスが変わります。IP や MACアドレス、利用者名などを使うと何れ破綻します。

ー 数字は16進数を使う ー

例えば通し番号を数字二けたとすると 00から99 までの 100 個の個体を識別できるわけですが、これを16進数にすれば 00 ~ FF まで二けたで 256 個の個体を識別できます。 256 はクラスCのひとセグメントですから、大体の中小組織では十分な数です。

3桁 000 ~ FFF を使うと全部で 4096 の識別個体を作れます。中堅企業以上では、これで十分ですね。

ただし先頭には数字を使うべきではありません。

- OS、機種、機能、設置部署、場所、企業名は使わない -

OS 種別を命名規則に取り入れると、例えばWindows で動いていたサービスを Linux に置き換えた場合はちょっと面倒なことになります。

また機器のベンダー名や型番を使うと機器のリプレースの時に面倒な事になります。

設置したオフィスや部門の所在地を使うと、オフィスが移転したときに問題となります。

nnnn の通し番号に IP アドレスを指定している所がありました。リーズナブルなようで、後でハードウェアのリプレースで問題となります。あまり IP や Mac アドレスをコンピュータのホスト名に使うべきではないと思います。仮想化時代なのでいずれ破綻します。

また、「会社名」も避けるべきです。会社名なんてしょっちゅう変わるものなんですね。Windows ドメイン名に「会社名」を付けてすぐに買収されて、泣く泣くドメインを再構築したお客さんがありました。

- 社内向けドメイン名、アクティブディレクトリ(AD)の命名規則 -

「社内向けドメイン?」何ンか変だな。まぁ Microsoft Active Directory を始めとして、イントラネット向けのドメイン名なんですが、

".local" は禁忌ドメイン名です。絶対に使ってはいけません。間違っても AD では ”mycompany.local” で作ると問題がありそうです。Google 大魔神の投票結果なので、探してみてください。

そもそも、"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 なんかを取得して ad1.ad.pansy.site というドメインを 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 HOST
HOST_NAME_MAX 64
suse15:~ #

ラベルに使われる文字は、英数字とハイフン、ただしハイフンは「ラベルの先頭と末尾」には使えません。基本的には使わないのが無難。 Windows では "_"(アンダースコア)も利用可能ですが、"_"も Windows では使わない方が無難でしょう。

この63文字の文字制限は hostname コマンドのマニュアルには記載がないのですが、 limit.h に定義されているそうです。

63文字以内です。

ドメイン名の構成

ただし、いくら 253 文字使えるとは言え、長すぎる FQDN 名は避けるべきでしょう。解りやすく、短くが原則です。そもそも文字列が長いと、タイプミスしやすいし、メンドクサイものです。


重要なのは、命名規則で使える文字種、最大、最小文字数などは、&&条件で最小公約数で決める事です。Windows や Netbios で許されても、FQDN の条件に合わない命名規則は、好ましいことではありません。Windows から、他のシステムに移行した場合に問題となる可能性があります。逆に 63 文字のホスト名が付いたシステムを Windows に移植したら、これも問題が出てきます。

- 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に従え」

ということになりそうです。


- 重要なのは文書化しておく事 -

大体、コンピュータのホスト名の命名規則というのは、管理している人間の趣味で作られるものです。まぁほとんどはその場の思い付きなんですね。

例えば、先頭6バイトの文字規則(ナンバリング規)+愛称名の利用可能なリスト

命名規則の原則は、文書化と認証。必ず文書化して、担当マネージャーのハンコをもらっておく事です。


- まとめ -

  • grep | sort したり、正規表現での検索、スプレッドシートでソートしやすい様、先頭 4 ~ 6 バイトには特殊記号のない規則性を持たせる
  • 基本は英数字のみ15バイト以内に抑える。もっとも短い方がいいのは勿論。
  • 特殊文字は "-" ハイフン以外使わない、と言うより正規表現で特殊処理が必要な文字なので "-" , ”_” の利用も控える。
  • 後半部には規則性のある任意のニンゲンが認識可能な文字を付け加えても構わないが、長い文字列は避ける。
  • 数字で始まるホスト名は避ける。
  • オフィスのストリート名、部署名、社名など、将来も使い続ける可能性がない略字、語句は使わない。
  • 恥ずかしい名前や、難読性なもの、「そういう面白い趣味か」といった名前は避ける。
  • IP アドレスや Mac アドレスの様な変化する可能性のある命名規則はそのうち破綻する。
  • 愛称のストックは常にためておく事。空港コード、フォネティックコードの様なリストを決めておく。


まぁ、RFC1178 に、べき論べからず論があるので、一読しておくことです。

Choosing a Name for Your Computer






by islandcenter | 2019-11-04 13:16 | プライベートクラウド | Comments(0)