Route 53 프라이빗 호스팅 영역에 대해 ‘.local’ 접미사를 사용하는 도메인 이름을 확인하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2022년 7월 5일

Elastic Compute Cloud(Amazon EC2) 인스턴스를 사용하여 Amazon Route 53 프라이빗 호스팅 영역 레코드를 확인할 수 없습니다.

간략한 설명

systemd-resolved 서비스를 사용하는 Linux OS 배포판은 스텁 해석기를 사용하여 DNS 쿼리를 처리합니다. 스텁 해석기 IP는 /etc/resolv.conf에 있습니다. 로컬 DNS 스텁 리스너는 ‘.local’ 접미사를 사용하는 도메인 이름에 대한 DNS 요청을 전달하지 않습니다. 다음 출력과 유사한 응답 코드 ‘ServFail’이 표시되면서 DNS 요청이 실패합니다.

### failed ###
ubuntu@ip-172-31-2-3:~$ dig example.local.

; <<>> DiG 9.18.1-1ubuntu1.1-Ubuntu <<>> example.local.
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 29563    ### status: SERVFAIL ###
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;example.local.            IN    A

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)            ### 127.0.0.53 is systemd-resolved ###
;; WHEN: Thu Jun 30 12:34:56 UTC 2022
;; MSG SIZE  rcvd: 42

### success ###
ubuntu@ip-172-31-2-3:~$ dig example.local. @172.31.0.2        ### dig to @172.31.0.2 AmazonProvidedDNS / Route 53 Resolver ###

; <<>> DiG 9.18.1-1ubuntu1.1-Ubuntu <<>> example.local. @172.31.0.2
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29352    ### status: NOERROR ###
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.local.            IN    A

;; ANSWER SECTION:
example.local.        300    IN    A    192.0.2.1

;; Query time: 4 msec
;; SERVER: 172.31.0.2#53(172.31.0.2) (UDP)            ### 172.31.0.2 is AmazonProvidedDNS / Route 53 Resolver ###
;; WHEN: Thu Jun 30 12:34:56 UTC 2022
;; MSG SIZE  rcvd: 58

해결 방법

‘.local’ 접미사를 사용하는 도메인 이름을 확인하려면 로컬 DNS 스텁 리스너 대신 외부 해석기를 사용합니다.

참고: RFC 6762는 독점적인 멀티캐스트 DNS 사용을 위해 이 도메인 이름을 예약하므로 도메인 이름 ‘.local’ 접미사를 사용하지 않는 것이 좋습니다.

1.    DNS 해석기를 로컬 DNS 스텁 리스너에서 외부 DNS 해석기(AmazonProvidedDNS)로 변경합니다.

cd /etc/
sudo ln -sf ../run/systemd/resolve/resolv.conf

2.    .conf를 변경하여 로컬 DNS 스텁 리스너를 중지합니다.

cd /etc/systemd/
sudo cp -ip resolved.conf resolved.conf.org
sudo sed -i -e 's/#DNSStubListener=yes/DNSStubListener=no/' resolved.conf

3.    systemd-resolved를 다시 시작합니다.

sudo systemctl restart systemd-resolved