サブドメイン(ドメイン名)にアンダースコアを含めること_
はできますか?
サブドメイン(ドメイン名)にアンダースコアを含めること_
はできますか?
回答:
ここで与えられるほとんどの答えは誤りです。ドメイン名にアンダースコアを含めることは完全に合法です。標準、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「ホスト名と番号」です。
_jabber._tcp.gmail.com
はドメインではなく、FQDNです。URLにアンダースコアを含めることはできないため、アンダースコアが含まれているドメインを購入することはできません。したがって、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が導入期LDH(レター桁-ハイフン)ラベル用のラベルに使用されるホスト名とは述べています:
これは、いくつかの追加の制限はありますが、ホスト名で使用される従来のラベル形式です(RFC 952)。その構文は、RFC 1123によって変更された、RFC 1034のセクション3.5の「優先名構文」として説明されているものと同じです。簡単に言えば、ASCII文字、数字、およびハイフンで構成される文字列であり、ハイフンはさらに制限できません。文字列の最初または最後に表示されます。すべてのDNSラベルと同様に、その全長は63オクテットを超えてはなりません。
より単純な時代に戻ると、このインターネットドラフトは、ホスト名の国際化に関する初期の提案です。国際文字を含むホスト名は、「RACE」エンコーディングなどを使用してエンコードできます。
「RACEエンコーディング」提案の著者は次のように述べています。
RFC 1035によると、ホストパーツは大文字と小文字を区別せず、文字と数字で開始および終了し、文字、数字、およびハイフン文字( "-")のみを含む必要があります。もちろん、これには、国際化された文字だけでなく、ASCII文字レパートリーの他の多くの文字も含まれません。さらに、ドメイン名の部分は63オクテット以下の長さである必要があります...国際化された文字を含むすべての変換後の名前の部分は、文字列 "bq--"で始まります。(...)文字列 "bq--"が選択されたのは、この仕様が作成される前は、ホストパーツに存在する可能性が非常に低いためです。
bar.baz.
の下に階層的にされているドメイン名の単なるコレクション(例えば)されbar.baz.
、例えばa.bar.baz.
、f.g.bar.baz.
、h.bar.baz.
など。この「サブドメイン」には、実際のホスト名が含まれている場合と含まれていない場合があります。
a.bar.baz
(ドメイン名)を文字列bar.baz
(別のドメイン名)の「サブドメイン」と誤って呼ぶ傾向があります。ドメイン名(DNSデータベースのリソース)a.bar.baz
とbar.baz
かであってもなくてもよいのホスト名。
知っておく必要のあることがもう1つあります。URLのホストまたはサブドメインの部分にアンダースコアが含まれている場合、IE9(他のバージョンをテストしていない)はCookieを書き込むことができません。
ですので注意してください。:-)
bortzmeyerとDavid Tonhoferを明確にすると、ドメイン名とサブドメイン名のラベルには先頭にアンダースコアを含めることができますが、それ以外の場所には含めることができません。
デビッドTonhoferが書いた、ラベルは、これらの間-期間の部分であり、LDHのルールに従うべきである以外、通常のラベルからそれらを区別するために、サービスラベルとポートのラベルを指定するとき。次に、ラベルの先頭に出現する必要があります。これは、サービス名およびポート番号レジストリの「短縮名」、先頭に0がないポート番号、またはプロトコル(tcp、udp)である必要があります。これらのサービスラベルはさらに15文字に制限されています。
反しデビッド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によって標準として受け入れられなかったため、使用しないでください。
私はRFC1034へのリンクをたどり、そのほとんどを読み、これを見て驚いた:
ラベルは、ARPANETホスト名の規則に従う必要があります。文字で始まり、文字または数字で終わり、文字、数字、ハイフンのみを内部文字として使用する必要があります。長さにいくつかの制限もあります。ラベルは63文字以下にする必要があります。
明確にするために、ドメイン名はドット「。」で区切られたラベルで構成されています。アンダースコアの使用については触れられていないため、この仕様は古くなっているはずです。この仕様が古くなっていることを知らずに誰かがつまずくと、混乱を理解できます。時代遅れですね。
RFC2181へのリンクをたどり、その一部を読みました。特に、信頼できる、または正規の名前とは何か、有効なDNSラベルを作成するものとは何かという問題に関係しています。
以前に投稿したように、それは長さの制限のみがあると述べ、それを要約すると次のようになります
(名前と有効なラベルについて)
これらはすでに適切に指定されていますが、仕様が無視される場合があります。既存仕様の強化を図っています。
「長さのみの制限」が「適切」なのかと思いました。@#$%のようなドメイン名が表示されるようになりますか?すぐに?インターネットは十分に台無しにされていませんか?
最近、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)で定義されている証明書利用者)。
個々のTLDは、ローカル言語に対応するなど、適切と思われるドメイン名に独自のルールと制限を設定できます。
たとえば、CIRAによると、カナダの.ca
ドメイン名は許可されています:
手紙
a
を通してz
、および以下のアクセント付き文字:é ë ê è â à æ ô œ ù û ü ç î ï ÿ
。ドメイン名では大文字と小文字が区別されないことに注意してください。つまり、大文字と小文字(A
=a
)は区別されません。番号
0123456789
、およびハイフン文字( "
-
)(ドメイン名の開始または終了には使用できません)。
最大長は63文字です。ただし、アクセント付きの各文字はその制限を4つ減らします。文字ます。
(出典)
ちなみに、これにより、dot-caドメインで約4 Quadragintillionドメイン名の可能性(サブドメインは含まない)が可能になります。
ここに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
それは間違いなく悪い考えです^^
インターネットで解決したい場合はそうではありません。
持つことはできません:http : //my_subdomain.example.comは無効です。
次のようにすることができます:http : //my-subdomain.example.com、ハイフン。