(ドメイン名)サブドメインにアンダースコア「_」を含めることはできますか?


212

サブドメイン(ドメイン名)にアンダースコアを含めること_はできますか?


12
私はあなたの質問を文字通り取りました:あなたは本当にドメイン名を意味していたということです。代わりに、ホスト名を意味する場合は、回答が異なるため、質問を編集してください。
bortzmeyer 2010

回答:


362

ここで与えられるほとんどの答えは誤りです。ドメイン名にアンダースコアを含めることは完全に合法です。標準、RFC 2181、セクション11、「名前の構文」を引用させてください。

DNS自体は、リソースレコードの識別に使用できる特定のラベルに1つの制限のみを課します。その1つの制限は、ラベルの長さとフルネームに関連しています。[...] DNSプロトコルの実装は、使用できるラベルに制限を課してはなりません。特に、DNSサーバーには、一部のDNSクライアントプログラムでは受け入れられないラベルが含まれているため、ゾーンの提供を拒否してはなりません。

元のDNS仕様、RFC 1034、セクション3.5「優先名の構文」も参照してください。ただし、注意深く読んでください。

アンダースコアのあるドメインは、一般的に非常に一般的です。_jabber._tcp.gmail.comまたはを確認し_sip._udp.apnic.netます。

ここで言及されている他のRFCは、さまざまなことを扱っています。元々の質問はドメイン名に関するものでした。質問がホスト名(またはホスト名を含むURL)に関するものである場合、これは異なります。関連する規格は、ホスト名を英字、数字、ハイフンに制限するRFC 1123セクション2.1「ホスト名と番号」です。


73
「ドメイン名」と「ホスト名」の違いの+1
Alnitak

3
(編集されていない限り)質問はサブドメインに関するものです。ホスト名。質問が現在どのように述べられているかに基づいて、答えが偽であることを指摘することを除いて、あなたはあなたの事実の発言について間違っていません。
redreinard 14

4
1034は「ラベルはARPANETホスト名の規則に従う必要があります。ラベルは文字で始まり、文字または数字で終わり、文字、数字、およびハイフンのみを内部文字として持つ必要がある」と混乱しています。アンダースコアを使用できるのはどの部分ですか?
claudekennilol 2016

2
言葉遣いが混乱しています。URLにアンダースコアを含めることはできません。URLは常にFQDNであり、ホスト名ではありません。FQDNは空のホスト名を持つことができます。この場合、FQDN =ドメインです。_jabber._tcp.gmail.comはドメインではなく、FQDNです。URLにアンダースコアを含めることはできないため、アンダースコアが含まれているドメインを購入することはできません。したがって、DNS構文の観点から見ると、ドメインにもアンダースコアが含まれる可能性があります。ローカルのアンダースコアでない限り、アンダースコアは発生しません。
カプセル

1
ハイフンが許可されていることについて言及しているrfc1123の2.1の引用を見ることができません。rfc952で、名前に<let-or-digit-or-hyphen>を使用できることがわかります。それはあなたが言っていたものですか?
AJP 2017

93

ボルツマイヤーの答えを助長する用語に関するメモ

定義について明確にする必要があります。ここで使用されるように:

  • ドメイン名DNSデータベース内のリソース識別子です
  • ラベル、ドットの間のドメイン名の一部です
  • ホスト名は、インターネットホストを識別する特別なタイプのドメイン名です。

ホスト名はの制限の対象であるRFC 952およびRFC 1123のわずかな緩和

RFC 2181では、ドメイン名とホスト名に違いがあることが明記されています。

... [という事実]バイナリラベルがMXレコードを持つことができるということは、バイナリ名が電子メールアドレスのホスト部分として使用できることを意味しません...

したがって、ホスト名の下線はドメイン名の下線ではありません

実際には、アンダースコア付きのホスト名が表示される場合があります。堅牢性の原則として「送信するものは保守的に、受け入れるものは寛大に」です。

エンコードに関する注意

21世紀には、ホスト名ドメイン名が国際化される可能性があることが判明しました。これは、ラベルの場合はエンコーディングに頼ることを意味します、許可されたセットの外にある文字を含むします。

特に、それは1つが符号化することを可能_ホスト名(更新2017から07:コメントを参照。これは、疑わしい、ザ_。まだホスト名に使用することはできません確かに、それも国際化ラベルで使用することはできません。)

国際化のための最初のRFCは 、2003年3月のRFC 3490、「Internationalizing Domain Names in Applications(IDNA)」でした。今日、私たちは持っています:

  • RFC 5890「IDNA:定義とドキュメントフレームワーク」
  • RFC 5891「IDNA:プロトコル」
  • RFC 5892「UnicodeコードポイントとIDNA」
  • RFC 5893「IDNAの右から左へのスクリプト」
  • RFC 5894「IDNA:背景、説明、および理論的根拠」
  • RFC 5895「IDNA 2008のマッピング文字」

あなたもチェックしたいかもしれません ウィキペディアのエントリー

RFC 5890が導入期LDH(レター桁-ハイフン)ラベルのラベルに使用されるホスト名とは述べています:

これは、いくつかの追加の制限はありますが、ホスト名で使用される従来のラベル形式です(RFC 952)。その構文は、RFC 1123によって変更された、RFC 1034のセクション3.5の「優先名構文」として説明されているものと同じです。簡単に言えば、ASCII文字、数字、およびハイフンで構成される文字列であり、ハイフンはさらに制限できません。文字列の最初または最後に表示されます。すべてのDNSラベルと同様に、その全長は63オクテットを超えてはなりません。

より単純な時代に戻ると、このインターネットドラフトは、ホスト名の国際化に関する初期の提案です。国際文字を含むホスト名は、「RACE」エンコーディングなどを使用してエンコードできます。

「RACEエンコーディング」提案の著者は次のように述べています。

RFC 1035によると、ホストパーツは大文字と小文字を区別せず、文字と数字で開始および終了し、文字、数字、およびハイフン文字( "-")のみを含む必要があります。もちろん、これには、国際化された文字だけでなく、ASCII文字レパートリーの他の多くの文字も含まれません。さらに、ドメイン名の部分は63オクテット以下の長さである必要があります...国際化された文字を含むすべての変換後の名前の部分は、文字列 "bq--"で始まります。(...)文字列 "bq--"が選択されたのは、この仕様が作成される前は、ホストパーツに存在する可能性が非常に低いためです。


補足として、「DomainKeysやサービスレコードなどのシステムでは、アンダースコアを使用して、特殊文字がホスト名と混同されないようにします。たとえば、_http._sctp.www.example.comはSCTPのサービスポインタを指定します。ドメインexample.comの対応ウェブサーバーホスト(www)。」(リンク
x-yuri

RACEエンコード部分は無視してください。IDNは、「xn--」接頭辞を使用して、内部化された文字変換をASCIIにすでに設定しています。
mootmoot 2017

2
Nelda.techspiress @それはいくつかの時間が、に従ってをされているRFC 1034:ドメイン名-概念と施設、ドメインの「サブドメイン」と呼ばれるものbar.baz.の下に階層的にされているドメイン名の単なるコレクション(例えば)されbar.baz.、例えばa.bar.baz.f.g.bar.baz.h.bar.baz.など。この「サブドメイン」には、実際のホスト名が含まれている場合と含まれていない場合があります。
David Tonhofer 2017

2
日常の使用では、文字列a.bar.baz(ドメイン名)を文字列bar.baz(別のドメイン名)の「サブドメイン」と誤って呼ぶ傾向があります。ドメイン名(DNSデータベースのリソース)a.bar.bazbar.bazかであってもなくてもよいのホスト名
David Tonhofer 2017

1
上のRFC 1034の8ページ:、我々は読んドメインは、ドメイン名で識別され、およびドメインを指定するドメイン名またはそれ以下であるドメイン名空間の一部で構成されています。ドメインは、そのドメイン内に含まれている場合、別のドメインのサブドメインです。この関係は、サブドメインの名前が包含ドメインの名前で終わっているかどうかを確認することでテストできます。たとえば、ABCDはBCD、CD、D、および ""のサブドメインです。
David Tonhofer 2017

47

知っておく必要のあることがもう1つあります。URLのホストまたはサブドメインの部分にアンダースコアが含まれている場合、IE9(他のバージョンをテストしていない)はCookieを書き込むことができません。

ですので注意してください。:-)



3
私たちはプロジェクトでそれをちょうど持っていました-そして私はそこで奇妙なIEの問題に夢中になりそうでした。サブドメインにアンダースコアが見つかるまで。; o)
Kai Mattern

3
IE10にはまだ問題があります。MSはこれについて知っていますか?
Piotr Kula 14

15
より関連性:MSはこれを気にしていますか?
Ajax


11

bortzmeyerDavid Tonhoferを明確にすると、ドメイン名とサブドメイン名のラベルには先頭にアンダースコアを含めることができますが、それ以外の場所には含めることができません。

デビッドTonhoferが書いた、ラベルは、これらの間-期間の部分であり、LDHのルールに従うべきである以外、通常のラベルからそれらを区別するために、サービスラベルとポートのラベルを指定するとき。次に、ラベルの先頭に出現する必要があります。これは、サービス名およびポート番号レジストリの「短縮名」、先頭に0がないポート番号、またはプロトコル(tcp、udp)である必要があります。これらのサービスラベルはさらに15文字に制限されています。

  • RFC2782では、サービスレコードのサブドメインの先頭にアンダースコアを付けています。
  • RFC6698は、TLSA証明書レコードでアンダースコアをポート番号の前に付けることを指定しています。

反しデビッドTonhoferの回答とは、IDNはアンダースコア( '_' U + 005F LOW LINE)またはその他の無効なASCII文字のエンコードを許可していません。

RFC5890から

[..] IDNAの導入により、LDHラベルの2つの新しいサブセットが作成されます。これらは、予約済みLDHラベル(R-LDHラベル)および非予約済みLDHラベル(NR-LDHラベル)と呼ばれます。他のコンテキストでは「タグ付きドメイン名」と呼ばれる予約済みのLDHラベルには、3番目と4番目の文字に「-」が含まれるが、それ以外の場合はLDHラベルルールに準拠するというプロパティがあります

Punycodeは、アンダースコアを含むすべてのASCIIコードポイントをASCIIとして直接エンコードします。結果のR-LDHは、LDHラベル規則に準拠しません。たとえば、ルールに違反するものΣ_.comとしてエンコードされxn--_-zmb.comます。合法的にコード化できるアンダースコアのように見えるホモグラフィックコードポイントがある可能性があります(多分「_」U + FF3F全角ローライン)。これらの種類のコードポイントは、2.3 IgnorablePropertiesでRFC5892 により、Noncharacter_Code_PointとしてDISALLOWEDとして分類されます。

RACE(他の提案されたIDNエンコード方式)は、IETFによって標準として受け入れられなかったため、使用しないでください。


1
最後に。これがページ全体でpunycodeについてさえ話している唯一の投稿であるとは信じられません。
パセリエ2017年

6

私はRFC1034へのリンクをたどり、そのほとんどを読み、これを見て驚いた:

ラベルは、ARPANETホスト名の規則に従う必要があります。文字で始まり、文字または数字で終わり、文字、数字、ハイフンのみを内部文字として使用する必要があります。長さにいくつかの制限もあります。ラベルは63文字以下にする必要があります。

明確にするために、ドメイン名はドット「。」で区切られたラベルで構成されています。アンダースコアの使用については触れられていないため、この仕様は古くなっているはずです。この仕様が古くなっていることを知らずに誰かがつまずくと、混乱を理解できます。時代遅れですね。

RFC2181へのリンクをたどり、その一部を読みました。特に、信頼できる、または正規の名前とは何か、有効なDNSラベルを作成するものとは何かという問題に関係しています。

以前に投稿したように、それは長さの制限のみがあると述べ、それを要約すると次のようになります

(名前と有効なラベルについて)

これらはすでに適切に指定されていますが、仕様が無視される場合があります。既存仕様の強化を図っています。

「長さのみの制限」が「適切」なのかと思いました。@#$%のようなドメイン名が表示されるようになりますか?すぐに?インターネットは十分に台無しにされていませんか?


3
いいえ、それは時代遅れではありません。RFC1034は、ホスト名ドメイン名の特殊なケースに関する仕様であり、DNSデータベース内のリソースの一般的な識別子です。たとえば、URIの「ホスト」の部分はかなり緩やかに定義されていますが(tools.ietf.org/html/rfc3986#section-3.2.2)、RFCの警告:「登録された名前で識別されるホストは通常​​、文字のシーケンスですローカルで定義されたホストまたはサービス名レジストリ内での検索を目的としています... DNSでの検索を目的とした登録名は、[RFC1034]のセクション3.5および[RFC1123]のセクション2.1で定義された構文を使用します。
David Tonhofer 2013年

3

最近、CABフォーラム(*)は、

dNSNameエントリにアンダースコア文字を含み、有効期間が30日を超えるすべての証明書は、2019年1月15日より前に失効する必要があります。https: //cabforum.org/2018/11/12/ballot-sc-12- sunset-of-underscores-in-dnsnames /

つまり、ssl / tls証明書を持つドメインではアンダースコアを使用できなくなります。

(*)証明機関ブラウザーフォーラム(CA /ブラウザーフォーラム)は、主要な証明書発行者(以下のセクション2.1(a)(1)および(2)で定義)およびインターネットブラウザーソフトウェアおよびその他のアプリケーションのベンダーの自発的な集まりです証明書を使用する(以下のセクション2.1(a)(3)で定義されている証明書利用者)。


1

個々のTLDは、ローカル言語に対応するなど、適切と思われるドメイン名に独自のルールと制限を設定できます

たとえば、CIRAによると、カナダの.caドメイン名は許可されています:

  • 手紙aを通してz、および以下のアクセント付き文字:é ë ê è â à æ ô œ ù û ü ç î ï ÿ。ドメイン名では大文字と小文字が区別されないことに注意してください。つまり、大文字と小文字(A= a)は区別されません。

  • 番号0123456789、および

  • ハイフン文字( " -)(ドメイン名の開始または終了には使用できません)。

最大長は63文字です。ただし、アクセント付きの各文字はその制限を4つ減らします。文字ます。

出典


ちなみに、これにより、dot-caドメインで約4 Quadragintillionドメイン名の可能性(サブドメインは含まない)が可能になります。


0

ここにJavaの世界からの私の2セント:

Java 8を搭載したSpark Scalaコンソールから:

scala> new java.net.URI("spark://spark_master").getHost
res10: String = null

scala> new java.net.URI("spark://spark-master").getHost
res11: String = spark-master

scala> new java.net.URI("spark://spark_master.google.fr").getHost
res12: String = null

scala> new java.net.URI("spark://spark.master.google.fr").getHost
res13: String = spark.master.google.fr

scala> new java.net.URI("spark://spark-master.google.fr:3434").getHost
res14: String = spark-master.google.fr

scala> new java.net.URI("spark://spark-master.goo_gle.fr:3434").getHost
res15: String = null

それは間違いなく悪い考えです^^


0

ローカルプロジェクトを(浮浪者で)作成し、IPアドレスを介してアクセスすると完全に機能しました。次に、somes_name.testをhostsファイルに追加して、その方法でアクセスしようとしましたが、常に「不正なリクエスト-400」が発生していました。ドメイン名をsome-name.testに変更するだけで問題が解決することがわかるまで、何時間も無駄にしました。したがって、少なくともMac OSではローカルでは機能しません。


0

いいえ、サブドメインではアンダースコアは使用できませんが、ハイフン(ダッシュ)は使用できます。つまり、my-subdomain.agahost.comは受け入れられ、my_subdomain.agahost.comは受け入れられません。


-2

インターネットで解決したい場合はそうではありません。

持つことはできません:http : //my_subdomain.example.comは無効です。

次のようにすることができます:http : //my-subdomain.example.com、ハイフン。


2019年1月15日以降です。カウンターの例は機能しません。
Joe Inwap

@JoeInwapコメントのソースを教えていただけますか?
ankshah

私はcabforum.org/2018/11/12/…を通りました、そしてo_o.lgms.nlがそのホスト名に対して有効でない証明書を提示するという事実。ただし、名前は解決されます。
Joe Inwap
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.