1文字のホスト名は有効ですか?


14

RFC-952(仮定の下のポイント1の最後の文)は単一文字のホスト名を禁止しており、いくつかのサービスが単一文字のホスト名で動作することを拒否する経験がありました(7年以上前の2002年)標準に準拠していません)が、過去数年間で多くの単一文字のホスト名が使用されているのを見てきました。現在、単一文字のホスト名は有効ですか?(もしそうなら、適切な検証リファレンスは何ですか?)

編集(答えからいくつかの情報を統合する):DNSのさまざまな側面を含むいくつかのRFCで定義されているように見える1035年1123年、そして2181年RFC-2181セクション11

Note however, that the various applications that make use of DNS data
can have restrictions imposed on what particular values are
acceptable in their environment.  For example, that any binary label
can have an MX record does not imply that any binary name can be used
as the host part of an e-mail address.
[ ... ]
See also [RFC1123] section 6.1.3.5.

RFC-1123セクション6.1.3.5

The DNS defines domain name syntax very generally -- a
string of labels each containing up to 63 8-bit octets,
separated by dots, and with a maximum total of 255
octets.  Particular applications of the DNS are
permitted to further constrain the syntax of the domain
names they use, although the DNS deployment has led to
some applications allowing more general names.  In
particular, Section 2.1 of this document liberalizes
slightly the syntax of a legal Internet host name that
was defined in RFC-952 [DNS:4].

RFC-1123セクション2.1

The syntax of a legal Internet host name was specified in RFC-952
[DNS:4].  One aspect of host name syntax is hereby changed: the
restriction on the first character is relaxed to allow either a
letter or a digit.  Host software MUST support this more liberal
syntax.

そして最後に、当初参照されたように、RFC-952から:

1. A "name" (Net, Host, Gateway, or Domain name) is a text string up
to 24 characters drawn from the alphabet (A-Z), digits (0-9), minus
sign (-), and period (.).  Note that periods are only allowed when
they serve to delimit components of "domain style names". (See
RFC-921, "Domain Name System Implementation Schedule", for
background).  No blank or space characters are permitted as part of a
name. No distinction is made between upper and lower case.  The first
character must be an alpha character.  The last character must not be
a minus sign or period.
[ ... ]
Single character names or nicknames are not allowed.

RFC-952が単一文字のホスト名を禁止していると最初に言ったのは、このチェーンに従うことです。

回答:


2

「有効」と「機能する」には違いがあります。ホスト名が単一の文字である場合、ホスト名が有効と見なされない可能性があります(以前の投稿に耐えられません)。ただし、非常に多くのシステムで許可されています。主要なシステムの1つであるMicrosoftのAD / DNSシステムには、単一の文字名を許可するという従来の理由があります。

古い学校のNetBIOS名の長さは1〜15文字です。この仕様はRFC952から独立して開発されたもので、lmhostsと呼ばれる別のファイルに基づいているため、機能します。この問題は、MicrosoftがNetBEUI(実際にはNBF、NetBIOSフレームプロトコル)からTCP / IP(実際にはNBT)に移行したときに発生し、MicrosoftはTCP / IPネットワークでの名前解決を許可する必要がありました。MSは、RFC952準拠のホストの必要性を回避して、WINSサーバーでNetBIOSスタイルの解像度を維持することを選択しました。

次に、Active DirectoryとそのDNS依存関係が登場しました。ダイナミックDNSがルールであったため、クライアントはDNSドメインにComputerName(最初の15文字もNetBIOS名)を登録する必要がありました。MSでは、単一文字のNetBIOS名をDNSに登録できるため、RFC952と競合するようになりました。これを許可するようにシステムをコーディングすることにしました。これは、WINSの時代に常に使用されていた方法をエミュレートするためです。

BIND DNSは、単一文字のホスト名も許可します。しかし、RFC2181は、アプリケーションがDNSではなく、独自のデータを詳細に調べる必要があることを明確に述べています。そのため、1文字のホスト名で十分なデバイスとソフトウェアが多数存在し、RFC952で許可されない外れ値がいくつかあります。


There is a difference between 'valid' and 'it works'. 最終的に、私はそれが最も合理的な答えだと思いますが、私は生成されたすべての議論に非常に感謝しています。私が描く結論は、1文字のホスト名はまだ技術的には無効ですが、この時点ではほぼ普遍的に機能するということです。(同様に、アンダースコアは禁止されていますが、ほとんどの場合は動作します。)
アイザック

11

ルートネームサーバーはすべて1文字のホスト(a.root-servers.net)であり、DNS仕様はそれらの特定の例外を作成しないため、それらは有効だと思うでしょう。問題のRFCは、ホストファイル形式専用であり、DNSではありません。DNSは後のRFCで定義されました(RFC 1035が開始します)。RFC 1123(1989)には明確に記載されています。

 The syntax of a legal Internet host name was specified in RFC-952
 [DNS:4].  One aspect of host name syntax is hereby changed: the
 restriction on the first character is relaxed to allow either a
 letter or a digit.  Host software MUST support this more liberal
 syntax.

したがって、1文字のホスト名はDNSベースのシステムで有効であり、スパムが発明される前から使用されていました。RFCに準拠していないシステムはm笑される可能性があります。DNSをまったく使用せず、hostsファイルのみを使用する場合を除き、その時点で哀れみをお勧めします。


OK単一文字の名前の禁止)。ルートサーバーに関しては、ある時点で、それらがルールに対する何らかの特別な例外であると言われました。
アイザック

2

ホスト名は、RFCの記述について考える前から存在していたため、単一文字のホスト名が突然「不正」になる理由はわかりません。それが述べられたとき、その特定のRFCは私を失いました

このRFCは公式の仕様です

RFCは標準ではないからです。程遠い。

上記にも関わらず、問題のRFCは比較的小さなグループ、つまり国防総省(おそらく米国)に適用するために作成されたことに注意する必要があります。


厳密に定義すると、RFCは標準ではありません。「コメントのリクエスト」は、「標準」を誰にも正確に叫びません。興味深いことに、彼らは自分の文書でそれを逃れました。
マークヘンダーソン

1
en.wikipedia.org/wiki/Domain_name_system#Internet_standardsには、DNSプロトコルを「定義」する多くのRFCがリストされています。RFC-1123(sysadmin1138で言及されている)はリストされているものの1つであり、RFC-952を参照しています。RFCは要求ですが、RFCは受け入れられると定義になります。
アイザック

@Farseeker、ここではそうではありませんが、RFCを特定の主題に関する究極の権威であるかのように引用する人々、ほとんどの人はよく知っているべきです。どこかにRFCがあると確信しています。;)
ジョンガーデニアーズ

1
いくつかのRFCは実際には標準です-たとえば、RFC 1034と1035は一緒にSTD0013を構成します。彼らが「コメントのリクエスト」と呼ばれる理由は歴史的であり、本質的には、60年代後半に上司をチェックしたくなかった多くの低学年の卒業生と関係がありました(私は直接、 RFC 1の著者。
アルニタック

2
@John私は、RFC 2026を読むことをお勧めします。「標準のステータスに達する仕様には、RFC番号を保持しながら、STDシリーズの番号が割り当てられます」。私の仕事のためにIETF文書を書きます。
アルニタック

1

DNSはほとんどの人がネットワークまたはインターネットで使用するものであるため、現在のホスト名はDNS仕様により依存していると思います。つまり、3つのRFCが思い浮かびます(1034-概念、1035-実装、2181-DNSに関する説明)。

RFC 1034のセクション3には次のように記載されています。

ドメインネームスペースはツリー構造です。ツリー上の各ノードとリーフは、リソースセット(空の場合もあります)に対応しています。ドメインシステムは内部ノードとリーフの使用を区別せず、このメモでは「ノード」という用語を使用して両方を指します。

各ノードには、長さが0〜63オクテットのラベルがあります。兄弟ノードは同じラベルを持たない場合がありますが、兄弟ではないノードには同じラベルを使用できます。1つのラベルが予約されています。これは、ルートに使用されるnull(つまり、長さゼロ)ラベルです。

また、RFC 2181のセクション11には、アドレスの各ノードの命名に関する説明があります。

DNS自体は、
リソースレコードの識別に使用できる特定のラベルに1つの制限のみを設定します。その1つの制限
は、ラベルの長さとフルネームに関連しています。1つのラベルの長さは1〜63オクテットに制限されています。完全なドメイン名は255オクテット(区切り文字を含む)に制限されています

したがって、DNS仕様の観点から、a.domain.tldを持つことができます


RFC-2181のセクション11の次の段落から:Note however, that the various applications that make use of DNS data can have restrictions imposed on what particular values are acceptable in their environment. For example, that any binary label can have an MX record does not imply that any binary name can be used as the host part of an e-mail address. 基本的に、a.domain.tldはDNSで有効であるため、有効なホスト名にはなりません。セクション11の終わりは、RFC-1123のセクション6.1.3.5を参照しており、sysadmin1138の回答で説明されているように、セクション2.1とRFC-952を引用しています。
アイザック

セクション6.1.3.5の最後の引用では、952で定義されている命名規則の制約が少ないことについて説明しています。また、952ではDODホストテーブルが定義されており、DNS仕様よりも関連性が高いとは完全に確信していません。
コアダンプ

6.1.3.5の終わりで言及された制約の自由化は、最初の文字を数字にすることを指すだけだと思います。これは、同じRFCのセクション2.1(6.1。 3.5参照)。そのセクション2.1で、RFC-952の定義が正当なホスト名の定義として参照されています。
アイザック

また、古いDARPAからドメイン名への移行を扱うRFC 920および921も確認してください。
コアダンプ

1

あなたが決定したように、RFC 1123はこの長さの問題について完全に明確ではありません。

セクション2.1には次のように書かれています。

ホストソフトウェアは最大63文字のホスト名を処理する必要があり、最大255文字のホスト名を処理する必要があります。

このテキストは効果的に完全にRFC 952からのテキストが上書きされますので、またことを意味すると取られるべきである任意の 255文字までの長さが合法です。

残念なことに、1989年のインターネットドラフトでは、現在のように非常に厳密なレビューが行われていなかったため、あいまいさはおそらく簡単には見つかりませんでした。


1
しかし、2.1 The syntax of a legal Internet host name was specified in RFC-952 [DNS:4]. One aspect of host name syntax is hereby changed: the restriction on the first character is relaxed to allow either a letter or a digit. では、これを解釈してRFC-952のテキストを完全にオーバーライドしないことを意味すると解釈するのは妥当ではないとも述べています。
アイザック

それはそれを言うが、それは明らかに間違っている。RFC 1123 は、ホスト名の許容される長さ明示的に変更します。
アルニタック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.