FQDN ermitteln, wenn der Hostname ihn nicht angibt?

FQDN ermitteln, wenn der Hostname ihn nicht angibt?

Ineine andere Fragehabe ich festgestellt, dass Puppet Zertifikate für den FQDN meines Computers generierte, aber nicht für den einfachen Hostnamen. In diesem Beispiel kungfumasterwar der Hostname und der durch Ausführen abgerufene Wert hostname. Puppet generierte Zertifikate, die den FQDN angaben kungfumaster.domain.com.

Wie hat Puppet festgestellt, dass dies mein FQDN war? Ich habe alles Folgende versucht und nichts Passendes gefunden *.domain.com:

$ hostname -a && hostname -d && hostname --domain && hostname -f && \ 
    hostname --fqdn && hostname -A && hostname --long

kungfumaster
kungfumaster
kungfumaster 
kungfumaster

Wie kann ich kungfumaster.domain.comvon Bash darauf zugreifen? Mir ist aufgefallen, dass domain.comes tatsächlich in existiert /etc/resolv.conf, aber ich konnte es nirgendwo anders finden.

Ich möchte grundsätzlich den FQDN der aktuellen Maschine als Zeichenfolge erhalten. Die anderen Lösungen hier auf unix.se haben bei mir nicht funktioniert. (z. B.: dnsdomainname, domainname, usw.)

Antwort1

Es scheint, dass Puppet im Hintergrund Facter verwendet, um die Domänennamen auszuwerten:

$ facter domain
domain.com
$ facter hostname
kungfumaster
$ facter fqdn
kungfumaster.domain.com

Die Antwort liegt inder relevante Factor-Quellcode.

Dabei werden die folgenden Schritte der Reihe nach ausgeführt, und der erste Name wird verwendet, der einen Domänennamen zu enthalten scheint:

  1. Hostname -f
  2. DNS-Domänenname
  3. Parsen von resolv.conf für einen „Domain“- oder „Search“-Eintrag

Antwort2

Wahrscheinlich, weil Ihr System Teil eines Domänennetzwerks ist, das einen Domänennamen zuweist. In meinem Fall löst mein Router beispielsweise alle Hostnamen in der Form auf host.lan, wobei „lan“ meine Domäne und „host“ der Name meines Systems ist.

Der FQDN stammt höchstwahrscheinlich vom DNS Ihres Routers. Führen Sie einfach einen der folgenden Befehle aus:

nslookup your-ip-here
dig -x your-ip-here
host your-ip-here

Ein Beispiel mit dig:

dig @10.0.0.1 -x 10.0.0.1

; <<>> DiG 9.9.5-4-Debian <<>> @10.0.0.1 -x 10.0.0.1
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11384
;; flags: qr aa rd ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;1.0.0.10.in-addr.arpa.     IN  PTR

;; ADDITIONAL SECTION:
1.0.0.10.in-addr.arpa.  86400   IN  PTR dsldevice.lan.

;; Query time: 2181 msec
;; SERVER: 10.0.0.1#53(10.0.0.1)
;; WHEN: Thu Jun 19 20:01:32 AST 2014
;; MSG SIZE  rcvd: 77

Da ich meinen eigenen DNS verwende und nicht den des Routers, muss ich im Abschnitt die abzufragende Domäne festlegen @. Ich frage den eigenen Domänennamen des Routers ab.

Sie werden feststellen, dass der Domänenname so zurückgegeben wird, wie Ihr DNS/Router Sie sieht. Es gibt verschiedene Möglichkeiten, dies im Router zu deaktivieren, aber ich habe festgestellt, dass die einfachste Möglichkeit darin besteht, einfach einen anderen DNS zu verwenden.

verwandte Informationen