it-swarm.com.de

Können Subdomains (Domainnamen) einen Unterstrich "_" enthalten?

Können Subdomains (Domainnamen) _ in ihnen unterstrichen werden?

173

Die meisten hier gegebenen Antworten sind false. Es ist absolut legal, einen Domainnamen unterstrichen zu haben. Lassen Sie mich den Standard, RFC 2181, Abschnitt 11, "Namenssyntax" zitieren.

Der DNS selbst setzt nur eine Einschränkung für die jeweiligen Labels ein das kann verwendet werden, um Ressourceneinträge zu identifizieren. Das hier Die Einschränkung bezieht sich auf die Länge des Etiketts und die vollständige Name. [...] Implementierungen der DNS-Protokolle dürfen keine .__ einfügen. Einschränkungen für die Etiketten, die verwendet werden können. Insbesondere DNS Server dürfen sich nicht weigern, eine Zone zu bedienen, da sie Labels enthält Dies ist möglicherweise für einige DNS-Clientprogramme nicht akzeptabel.

Siehe auch die ursprüngliche DNS-Spezifikation, RFC 1034 , Abschnitt 3.5. "Bevorzugte Namenssyntax", aber lesen Sie sie sorgfältig durch.

Domänen mit Unterstrichen sind in der Natur sehr häufig. Überprüfen Sie _Jabber._tcp.gmail.com oder _sip._udp.apnic.net.

Andere hier erwähnte RFC behandeln verschiedene Dinge. Die ursprüngliche -Frage war für Domain-Namen. Wenn die Frage an Host Names (oder an URLs, die einen Hostnamen enthalten) betrifft, ist dies Anders. Der relevante Standard ist RFC 1123 , Abschnitt 2.1 "Host Namen und Nummern ", die Hostnamen auf Buchstaben-Ziffern-Bindestrich beschränken.

304
bortzmeyer

Ein Hinweis zur Terminologie in Anlehnung an Bortzmeyers Antwort

Man sollte klare Definitionen haben. Wie hier verwendet:

  • Domänenname ist der Bezeichner einer Ressource in einer DNS-Datenbank
  • label ist der Teil eines Domainnamens zwischen Punkten 
  • hostname ist ein spezieller Typ eines Domainnamens, der Internet-Hosts identifiziert

Der hostname unterliegt den Einschränkungen von RFC 952 und der leichten Relaxation von RFC 1123

RFC 2181 macht deutlich, dass es einen Unterschied zwischen einem Domainnamen und einem Hostnamen gibt: 

... [die Tatsache, dass] jede binäre Bezeichnung einen MX-Eintrag haben kann, bedeutet nicht, dass ein beliebiger binärer Name als Host-Teil einer E-Mail-Adresse verwendet werden kann.

Unterstriche in Hostnamen sind also kein Nein, Unterstriche in Domänennamen sind ok.

In der Praxis kann man Hostnamen mit Unterstrichen sehen. Wie das Robustness-Prinzip sagt: "Sei konservativ in dem, was du sendest, liberal in dem, was du akzeptierst".

Ein Hinweis zur Kodierung

Im 21. Jahrhundert stellt sich heraus, dass Hostnamen sowie Domainnamen internationalisiert sein können! Dies bedeutet, dass bei labels auf Kodierungen zurückgegriffen werden muss, die Zeichen enthalten, die außerhalb des zulässigen Satzes liegen.

Insbesondere kann der _ in Hostnamencodiert werden. (Update 2017-07: Dies ist zweifelhaft, siehe Kommentare. Der _ kann nicht in Hostnamen verwendet werden. Tatsächlich kann er nicht in internationalisierten Labels verwendet werden .)

Der erste RFC für die Internationalisierung war RFC 3490 vom März 2003 "Internationalisierung von Domänennamen in Anwendungen (IDNA)". Heute haben wir:

  • RFC 5890 "IDNA: Definitionen und Dokumentationsrahmen"
  • RFC 5891 "IDNA: Protokoll"
  • RFC 5892 "Die Unicode-Codepunkte und IDNA"
  • RFC 5893 "Rechts nach links-Skripts für IDNA"
  • RFC 5894 "IDNA: Hintergrund, Erklärung und Begründung"
  • RFC 5895 "Zuordnen von Zeichen für IDNA 2008"

Möglicherweise möchten Sie auch den Wikipedia-Eintrag überprüfen.

RFC 5890 führt den Begriff LDH (Letter-Digit-Hypen) ein für labels, das in Hostnamen verwendet wird, und sagt:

Dies ist das klassische Etikettenformular, das in Hostnamen (RFC 952) mit einigen zusätzlichen Einschränkungen verwendet wird. Seine Syntax ist identisch mit der als "Vorzugsnamensyntax" in Abschnitt 3.5 von RFC 1034 beschriebenen, geändert durch RFC 1123. Kurz gesagt, besteht sie aus ASCII Buchstaben, Ziffern und dem Bindestrich mit der weiteren Einschränkung Der Bindestrich darf nicht am Anfang oder Ende der Zeichenfolge stehen. Wie alle DNS-Labels darf die Gesamtlänge 63 Oktette nicht überschreiten.

Zurück zu einfacheren Zeiten, dieser Internetentwurf ist ein früher Vorschlag für die Internationalisierung von Hostname. Hostnamen mit internationalen Zeichen können beispielsweise mit 'RACE'-Codierung codiert werden.

Der Autor des Vorschlags "RACE-Codierung" stellt fest:

Gemäß RFC 1035 müssen Host-Teile die Groß- und Kleinschreibung nicht beachten, mit einem Buchstaben oder einer Ziffer beginnen und enden und nur Buchstaben, Ziffern und das Bindestrichzeichen ("-") enthalten. Dies schließt natürlich alle internationalisierten Zeichen sowie viele andere Zeichen im Zeichenrepertoire ASCII aus. Außerdem müssen Domänennamensteile in .__ 63 Oktette oder kürzer sein. length .... Alle nachkonvertierten Namensteile, die internationalisierte Zeichen enthalten, beginnen mit der Zeichenfolge "bq--". (...) Die Zeichenfolge "bq--" wurde gewählt, da dies äußerst unwahrscheinlich ist in Host-Teilen vorhanden sein, bevor diese Spezifikation erstellt wurde.

82
David Tonhofer

Es gibt noch eine weitere Sache, die Sie möglicherweise wissen müssen: Wenn der Host- oder Unterdomänenabschnitt der URL einen Unterstrich enthält, können keine Cookies vom IE9 (andere Versionen wurden nicht getestet).

Seien Sie also vorsichtig. :-)

47
Kai Mattern

Die Veranschaulichung der Beschriftungen von bortzmeyer und David Tonhofer , Domainnamen und Subdomain-Namen kann führende Unterstriche enthalten, aber nirgendwo sonst.

Wie David Tonhofer schrieb, sind Labels die Elemente zwischen den Perioden und sollten der LDH-Regel außer folgen, wenn Service-Labels und Port-Labels angegeben werden, um sie von regulären Labels zu unterscheiden. Sie müssen dann am Anfang des Etiketts vorkommen, wobei es sich um die "Kurznamen" aus der Dienstnamen- und Portnummer-Registrierung der Portnummer ohne führende Nullen oder um das Protokoll (dh. Tcp, udp) handeln muss. Diese Service-Labels sind außerdem auf 15 Zeichen begrenzt.

  • RFC2782 gibt das Präfix von Service-Datensatz-Subdomains mit Unterstrichen an.
  • RFC6698 gibt das Präfix Portnummern mit Unterstrichen in TLSA-Zertifikatsdatensätzen an.

Im Gegensatz zur Antwort von David Tonhofer erlaubt IDN keine Unterstriche ('_' U + 005F LOW LINE) oder andere ungültige Zeichen ASCII.

Von RFC5890

[..] Zwei neue Teilmengen von LDH-Labels werden von der .__ erstellt. Einführung von IDNA. Diese werden als reservierte LDH-Etiketten (R-LDH ) Und nicht reservierte LDH-Etiketten (NR-LDH-Etiketten) bezeichnet. Reserviertes LDH Labels, in anderen Kontexten auch als "markierte Domänennamen" bezeichnet, haben die Eigenschaft, die sie enthalten "-" in der dritten und vierten Zeichen , die aber sonst den LDH-Labelregeln entsprechen.

Punycode codiert alle ASCII - Codepunkte direkt als ASCII, einschließlich Unterstrich. Das resultierende R-LDH würde den LDH-Label-Regeln nicht entsprechen. Beispielsweise würde Σ_.com als xn--_-zmb.com codiert, was gegen die Regeln verstößt. Es kann einen homografischen Codepunkt geben, der wie ein Unterstrich aussieht, der legal codiert werden kann (möglicherweise 'FF' U + FF3F mit voller Breite und niedriger Linie), aber diese Codepunkte würden als/Discrowert von RFC5892 unter 2.3 IgnorableProperties als Noncharacter_Code_Point.

RACE (das andere vorgeschlagene IDN-Codierungsschema) wurde von der IETF nicht als Standard akzeptiert und sollte nicht verwendet werden.

8
Andrew Domaszek

Ich folgte dem Link zu RFC1034 und las das meiste davon und war überrascht, dies zu sehen:

Die Labels müssen den Regeln für ARPANET-Hostnamen entsprechen. Sie müssen Mit einem Buchstaben beginnen, mit einem Buchstaben oder einer Ziffer enden und als innere Zeichen nur Buchstaben, Ziffern und einen Bindestrich enthalten. Es gibt auch einige Einschränkungen in Bezug auf die Länge. Beschriftungen dürfen höchstens 63 Zeichen umfassen.

Zur Verdeutlichung bestehen Domänennamen aus Bezeichnungen, die durch Punkte "." Getrennt sind. Diese Spezifikation muss veraltet sein, da die Verwendung von Unterstrichen nicht erwähnt wird. Ich kann die Verwirrung verstehen, wenn jemand über diese Spezifikation stolpert, ohne zu wissen, dass sie veraltet ist. Es ist veraltet, nicht wahr?

Ich folgte der Verbindung zu RFC2181 und las einige davon. Insbesondere, wenn es um die Frage nach dem autoritären oder kanonischen Namen und der Frage nach dem, was ein gültiges DNS-Label ausmacht, handelt.

Wie bereits erwähnt, gibt es nur eine Längenbeschränkung, um es zusammenzufassen:

(über Namen und gültige Labels)

Diese sind bereits ausreichend angegeben, die Angaben scheinen jedoch manchmal zu ignorieren. Wir möchten die bestehenden Spezifikationen verstärken.

Irgendwie frage ich mich, ob "eine Längeneinschränkung" "ausreichend" ist. Werden wir Domainnamen wie @ # $% sehen !! bald? Ist das Internet nicht vermasselt?

6
Ted Cambron

Hier meine 2 Cent aus der Java-Welt:

Von einer Spark Scala-Konsole aus mit Java 8:

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

Das ist definitiv eine schlechte Idee ^^

1
Thomas Decaux

Das CAB-Forum (*) hat dies kürzlich entschieden 

Alle Zertifikate, die in einem dNSName-Eintrag einen Unterstrich enthalten und eine Gültigkeitsdauer von mehr als 30 Tagen haben, MÜSSEN vor dem 15. Januar 2019 widerrufen werden. https://cabforum.org/2018/11/12/ballot-sc- 12-sunset-of-unterstriche-in-dnsnames/

Das bedeutet, dass Sie keine Unterstriche mehr in Domänen verwenden dürfen, die über ein SSL-Zertifikat verfügen.

(*) Das Browserforum der Zertifizierungsstelle (CA/Browser Forum) ist eine freiwillige Zusammenkunft führender Zertifikataussteller (wie in Abschnitt 2.1 (a) (1) und (2) definiert) und Anbietern von Internet-Browsersoftware und anderen Anwendungen Zertifikate verwenden (Zertifikat Verbraucher, wie in Abschnitt 2.1 (a) (3) unten definiert).

0
user906489

Einzelne TLD - s können ihre eigenen Regeln und Beschränkungen für Domänennamen festlegen je nach Bedarf, z. B. zur Anpassung an lokale Sprachen.

Gemäß der CIRA sind die .ca - Domänennamen in Kanada zulässig:

  • Buchstaben a bis z und die folgenden Zeichen mit Akzent: é ë ê è â à æ ô œ ù û ü ç î ï ÿ. Beachten Sie, dass Domänennamen nicht zwischen Groß- und Kleinschreibung unterscheiden. Das heißt, es wird nicht zwischen Großbuchstaben und Kleinbuchstaben unterschieden (A = a);

  • Die Nummern 0123456789 und

  • Das Bindestrichzeichen ("-) (obwohl kann nicht zum Starten oder Beenden eines Domänennamens verwendet werden).

Die maximale Länge beträgt 63 Zeichen, außer dass jedes Zeichen mit Akzent dieses Limit um 4 Zeichen reduziert.

( Quelle )


Im Übrigen erlaubt dies etwa 4 Quadragintillion - Domänennamensmöglichkeiten (ohne Subdomains) für dot-ca-Domains.

0
ashleedawg