ホスト名が指定されていない場合は、FQDNを決定しますか?

ホスト名が指定されていない場合は、FQDNを決定しますか?

存在する別の問題、Puppetは私のコンピュータのFQDNの証明書を生成していますが、単純なホスト名は生成しません。この例では、kungfumasterホスト名、およびを実行して取得された値ですhostname。 Puppetは指定されたFQDNの証明書を生成していますkungfumaster.domain.com

Puppetはこれが私のFQDNであるかどうかを決定しますか?以下をすべて試しましたが、一致するものはありません*.domain.com

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

kungfumaster
kungfumaster
kungfumaster 
kungfumaster

kungfumaster.domain.comBashからどのように入手しますか?domain.comに存在することがわかりました /etc/resolv.confが、他の場所では見つかりません。

デフォルトでは、現在のコンピュータのFQDNを文字列として取得したいと思います。 unix.seの他のソリューションは私には適していませんでした。 (例:dnsdomainnamedomainnameなど)

答え1

Puppetは、ドメイン名を評価するために後ろにFacterを使用しているようです。

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

答えは嘘です関連ファクタのソースコード

以下を順番に実行し、ドメイン名が含まれているように見える最初の名前を使用します。

  1. ホスト名-f
  2. DNSドメイン名
  3. resolv.confの「ドメイン」または「検索」エントリを解析します。

答え2

システムは、ドメイン名が割り当てられているドメインネットワークの一部である可能性があります。たとえば、私の場合、ルータはhost.lan「lan」が私のドメインで、「host」が私のシステム名である形式ですべてのホスト名を解決します。

FQDNはルータDNSから出る可能性が高いです。必要な次のコマンドを実行します。

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

使用された例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

ルータのDNSではなく独自のDNSを使用しているため、その@セクションでクエリするドメインを設定する必要があります。ルータ自体のドメイン名を問い合わせています。

あなたのDNS /ルーターがあなたを見つけた場合は、ドメイン名を返すことがわかります。ルータでこの機能を無効にする方法はいくつかありますが、私が見つけた最も簡単な方法は別のDNSを使用することです。

関連情報