web-dev-qa-db-ja.com

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

RFC-952 (仮定の下のポイント1の最後の文)は1文字のホスト名を禁止しており、私は経験があります(7年以上前 2002年の夏)一部のサービスは単一文字のホスト名での動作を拒否します(そのような名前は標準に準拠していないため)。 1文字のホスト名は有効になりましたか? (もしそうなら、適切な検証リファレンスは何ですか?)

edit(回答からいくつかの情報を統合するため):DNSのさまざまな側面は​​、 1035 を含むいくつかのRFCで定義されているようです。 、 112 、および 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では1文字のホスト名が禁止されていると私が最初に言ったのは、このチェーンをたどることからです。

14
Isaac

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

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

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

BIND DNSでは、1文字のホスト名も使用できます。しかし、RFC2181は、アプリケーションがDNSではなく、独自のデータを精査する必要があることをほぼ明確に述べています。これにより、1文字のホスト名で十分な多数のデバイスとソフトウェアが残り、RFC952に厳密で、それを許可しないいくつかの外れ値があります。

2
sysadmin1138

ルートネームサーバーはすべて1文字のホスト(a.root-servers.net)であり、DNS仕様はそれらに特定の例外を作成しないため、それらは有効だと思います。問題のRFCは、DNSではなく、ホストファイル形式専用です。 DNSは後のRFCで定義されました( RFC 1035 で開始)。 RFC 112 (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に準拠していないシステムは、モックされる可能性があります。 DNSをまったく使用せず、hostsファイルのみを使用する場合を除いて、その時点では残念な選択が適しています。

11
sysadmin1138

ホスト名は、RFCを作成することを考える前から存在していたため、1文字のホスト名が突然「違法」になる理由はわかりません。その特定のRFCは、それが述べたときに私を失いました

このRFCは公式仕様です

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

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

2
John Gardeniers

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

セクション RFC1034の次のように述べています。

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

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

そして RFC 2181のセクション11 では、アドレスの各ノードの命名について明確化しています:

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

したがって、DNS仕様に照らして、a.domain.tldを持つことができます

1
coredump

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

セクション2.1は次のように述べています。

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

このテキストはRFC952のテキストを事実上完全に上書きするため、any最大255文字の長さが有効であることを意味するものと解釈する必要があります。

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

1
Alnitak