¿Determinar FQDN cuando el nombre de host no lo proporciona?

¿Determinar FQDN cuando el nombre de host no lo proporciona?

Enotra pregunta, descubrí que Puppet estaba generando certificados para el FQDN de mi máquina, pero no el nombre de host simple. En ese ejemplo, kungfumasterera el nombre de host y el valor recuperado al ejecutar hostname. Puppet estaba generando certificados que especificaban el FQDN kungfumaster.domain.com.

¿Cómo determinó Puppet que este era mi FQDN? Probé todo lo siguiente y no vi nada que coincidiera *.domain.com:

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

kungfumaster
kungfumaster
kungfumaster 
kungfumaster

¿Cómo puedo obtener kungfumaster.domain.comde Bash? Me he dado cuenta de que, domain.comde hecho, existe en /etc/resolv.conf, pero no he podido encontrarlo en ningún otro lugar.

Básicamente quiero obtener el FQDN de la máquina actual como una cadena. Las otras soluciones aquí en unix.se no me han funcionado. (es decir: dnsdomainname, domainname, etc.)

Respuesta1

Parece que, bajo el capó, Puppet usa Facter para evaluar los nombres de dominio:

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

La respuesta está enel código fuente de Factor relevante.

Hace lo siguiente en orden y utiliza el primero que parece contener un nombre de dominio:

  1. nombre de host -f
  2. nombre de dominio dns
  3. analizando resolv.conf para una entrada de "dominio" o "búsqueda"

Respuesta2

Probablemente porque su sistema es parte de una red de dominio que asigna un nombre de dominio. Por ejemplo, en mi caso, mi enrutador resuelve todos los nombres de host en forma de host.lan"lan" siendo mi dominio y "host" el nombre de mi sistema.

Lo más probable es que el FQDN provenga del DNS de su enrutador, simplemente ejecute lo que desee de estos comandos:

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

Un ejemplo usando 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

Como uso mi propio DNS y no el del enrutador, tengo que configurar el dominio para consultar en la @parte. Estoy consultando el nombre de dominio propio de los enrutadores.

Descubrirá que le devolverá el nombre de dominio tal como lo ve su DNS/enrutador. Hay varias formas de desactivar esto en el enrutador, pero descubrí que la forma más sencilla es simplemente usar otro DNS.

información relacionada