Kann ich Punkte in einem Hostnamen haben?

23

Ich benutze Namen wie a.alpha für den Hostnamen meiner Linux-Box, aber es scheint, dass diese Namen nicht vollständig verwendbar sind. Die Antwort eines Hostnamen-Shell-Befehls ist korrekt (a.alpha). Der nach meinem Benutzerkonto aufgedruckte Name lautet jedoch "user @ a" anstelle von "[email protected]". Wenn ich avahi benutze, kann ich a.alpha erreichen, aber nicht b.alpha. Ist das normal?

Benzol
quelle

Antworten:

23

Chopper ist richtig. Aufgrund der Funktionsweise von DNS wird die "Alpha" -Komponente von "a.alpha" in DNS als eigenständige "Bezeichnung" betrachtet. Die Verwendung eines Hostnamens mit einem Punkt führt zu inkonsistenten Ergebnissen auf allen Systemen, die DNS verbrauchen.

Avahi interagiert mit DNS-Namen. Insbesondere muss in der <host-name>Direktive der DNS-FQDN des Dienstes enthalten sein, sodass DNS-Inkonsistenzen mit gepunkteten Namen auftreten können.

Verwenden Sie keinen gepunkteten Namen.

sysadmin1138
quelle
Dies ist richtig, erfordert jedoch Verweise, um als zuverlässige Antwort zu gelten. Jemand, der bei Stack Overflow sagt, dass DNS funktioniert, beweist nichts.
Mikemaccana
Ist es eine starre Regel, dass der Hostname kein '.' Enthalten darf? ?
Dinesh Kumar P
1
@DineshKumarP Ja. Die DNS-RFCs beschreiben das Punktzeichen als Trennzeichen zwischen DNS-Labels. Nicht-DNS-Dienste wie Avahi oder SLP erlauben dies möglicherweise, DNS selbst jedoch nicht.
sysadmin1138
Das ist nicht ganz richtig. DNS ist durchaus erfreut, Punkte in Beschriftungen zuzulassen, schlägt jedoch die Einhaltung einer eingeschränkten Syntax vor (die "LDH-Regel"; siehe tools.ietf.org/html/rfc1035#section-2.3.1 ). Bei DNS- Anwendungen - beispielsweise beim Speichern von Hostnamen in DNS - kommt es zu Einschränkungen bei der DNS-Labelsyntax.
Tony Garnock-Jones
17

Sie fragen nach Problemen mit diesem Benennungsschema aufgrund von DNS. Ziehen Sie stattdessen a-alpha in Betracht.

Chopper3
quelle
Ich habe die gleiche Frage auf askubuntu gestellt, und niemand kann mir weiter antworten. Also werde ich diese Methode
anwenden
1

Wie andere bereits erwähnt haben, möchten Sie Punkte in Ihren Hostnamen aufgrund von DNS auf jeden Fall vermeiden, und ich habe auch festgestellt, dass dies ein Problem darstellen kann, wenn Sie Platzhalterzertifikate für die Ausführung von SSL verwenden, da Platzhalterzertifikate nur für eine Ebene von a verwendet werden Subdomain. Wenn Ihr Platzhalterzertifikat für * .mycompany.com ist, Sie jedoch einen Hostnamen mit dem Namen a.alpha haben, funktioniert das Platzhalterzertifikat möglicherweise nicht, wenn "alpha" als Unterdomäne behandelt wird.

Mitchell Tracy
quelle
1

Der vollständige Hostname eines Hosts ist in der Regel der mit einer Domäne ausgestattete FQDN (vollständig qualifizierter Domänenname). Unter Linux sollte dies die Ausgabe von sein host --fqdn, wobei der Teil vor dem ersten Punkt als Spitzname des Hosts betrachtet wird. Verschiedene Systeme (Linux, SunOS, was auch immer) haben das "Hostnick" -Konzept jedoch auf verschiedene Arten implementiert. Sowie:

  • / etc / hostname enthält nur das Hostnick und der Rest befindet sich in / etc / domainname
  • / etc / hostname enthält den gesamten vollqualifizierten Domänennamen, und die Domäne befindet sich auch in / etc / domainname
  • Der Domänenname ist nur in der YP / NIS-Konfiguration vorhanden
  • Der Domänenname ist nur in bestimmten Subsystemen vorhanden, anstatt ein globales System zu sein
  • (andere, allgemein seltsamere Ansätze)

Darüber hinaus ist die Idee eines Hostnicks ein wenig variabel:

  • Der Teil des FQDN vor dem ersten Punkt
  • Ein Teil des vollqualifizierten Domänennamens auf der linken Seite, der ausschließlich ohne abschließenden Punkt angegeben wird
  • Der Teil des vollqualifizierten Domänennamens vor dem tatsächlichen Domänennamen (wie irgendwo festgelegt)

Und um die Sache noch komplizierter zu machen, hostverletzt der Befehl von bind9-host die DNS-Standards, indem er die -N <int>Option hat, zu steuern, ob Suchdomänen verwendet werden oder nicht. Dadurch werden DNS-Suchvorgänge je nach Szenario auf verschiedene Arten unterbrochen. DNS soll jede Suche nach einem Namen mit einem abschließenden Punkt buchstäblich als eine Suche nach einem Namen und nach anderen Namen mit angehängten Domains ab dem /etc/resolv.confbis eine Übereinstimmung gefunden wird oder alle fehlschlagen (diese Domains haben implizit ein abschließender Punkt). [Dies ist aus dem Speicher, bitte kommentieren Sie, wenn der allgemeine Prozess in einem RFC geändert wurde, den ich verpasst habe]

Wenn Sie also Punkte in Ihrem Hostnick verwenden, wird der hostBefehl wahrscheinlich die Sache verpfuschen und Skripte brechen, die ihn für Nachschlagezwecke verwenden. Ich persönlich finde es unergründlich, dass ein Systemfehler vorliegt host, und es scheint auch heute noch so, als würde ein Suchvorgang auf einem System in meinem Heimnetzwerk unterbrochen, da ich sowohl IPv4 als auch -v6 zu Hause habe und Namen wie .v4 habe. als Extra versionsspezifische Kurzformulare, die hostnicht nachschlagen, obwohl pingsie in Ordnung sind.

Es war ohnehin äußerst selten zu versuchen, Punkte in Hostnicks einzufügen, daher hosthätte ich auch ohne großen Schaden aus einer einfachen semantischen Perspektive empfohlen, bei punktlosen Hostnicks zu bleiben.

Alex North-Keys
quelle
0

Die richtige Antwort lautet definitiv "Mach das nicht", wie oben angegeben.

Für eine möglicherweise nützliche und definitiv tangentiale Lektüre fahren Sie bitte fort:

Sprechen Sie über DNS-Auflösung oder Ihre Eingabeaufforderung? Wenn Sie die Eingabeaufforderung korrigieren möchten, spielen Sie einfach mit $ PS1 (oder einem ähnlichen Nicht-Bash / Sh-Äquivalent, sofern zutreffend).

Wenn Sie wirklich möchten, dass a.alpha ein Hostname ist, der in eine IP-Adresse in den Interwebs aufgelöst wird, können Sie dies tun, aber dies kann eine Unterdomäne für jedes Hostnamensuffix (z. B. Alpha, Beta usw.) beinhalten.

Es ist sogar möglich, dass Sie Ihren DNS-Server so konfigurieren, dass er funktioniert, ohne Unterdomänen zu erstellen. Sie können die IP-Adresse der Nameserver einer Unterdomäne in den Zonendateien der übergeordneten Domäne bereitstellen, sodass sie möglicherweise "nur funktioniert". Dies liegt daran, dass jemand, der Ihren DNS-Server nach der IP-Adresse von a.alpha.examaple.com fragt, den DNS-Server nach example.com fragt. Wenn auf diesem DNS-Server die Adresse bereits hängt, antwortet er mit der Antwort anstatt zu versuchen, Sie an den autorisierenden Server der Subdomain weiterzuleiten. Möglicherweise kommt es zu Problemen mit der fehlenden SOA. Fügen Sie daher einen A-Datensatz für jedes Host-Präfix und eine SOA für jedes Host-Suffix hinzu. Ja, das ist das Ticket ...

Alles im Internet denkt immer noch, dass Ihr Hostname "a" ist und Ihre Domain "alpha.example.com".

Dylan Martin
quelle