~ 안에다른 질문, 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.com
Bash에서 어떻게 얻을 수 있나요 ? domain.com
실제로 에 존재한다는 것을 알았지 /etc/resolv.conf
만 다른 곳에서는 찾을 수 없었습니다.
기본적으로 현재 컴퓨터의 FQDN을 문자열로 가져오고 싶습니다. unix.se의 다른 솔루션은 저에게 효과적이지 않았습니다. (예: dnsdomainname
, domainname
등)
답변1
내부적으로 Puppet은 Facter를 사용하여 도메인 이름을 평가하는 것으로 보입니다.
$ facter domain
domain.com
$ facter hostname
kungfumaster
$ facter fqdn
kungfumaster.domain.com
답은 에 있습니다관련 Factor 소스 코드.
다음을 순서대로 수행하고 도메인 이름이 포함된 것으로 보이는 첫 번째 이름을 사용합니다.
- 호스트 이름 -f
- DNS도메인 이름
- "도메인" 또는 "검색" 항목에 대한 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를 사용하는 것입니다.