Linux의 Dig 명령(DNS 찾기)

Linux의 Dig 명령(DNS 찾기)

2022-06-01 last update

14 minutes reading dig terminal
Dig(도메인 정보 브라우저)는 DNS 이름 서버를 질의하는 강력한 명령행 도구입니다.dig 명령을 사용하면 호스트 주소, 메일 교환, 이름 서버 등 각종 DNS 기록에 대한 정보를 조회할 수 있습니다.유연성과 사용 편이성 때문에 시스템 관리자가 DNS 문제를 해결하는 데 가장 자주 사용하는 도구입니다.이 강좌는 가장 흔히 볼 수 있는 dig 옵션의 실제 예시와 상세한 설명을 통해 dig 유틸리티를 어떻게 사용하는지 설명한다.

설치 발굴

시스템에 dig 명령이 있는지 확인하려면 입력:
dig -v
출력은 다음과 같이 해야 합니다.
DiG 9.11.3-1ubuntu1.1-Ubuntu
시스템에 dig이 없으면 위의 명령은 "dig: 명령을 찾을 수 없습니다."를 출력합니다.릴리스 패키지 관리자를 사용하여 dig 도구를 설치할 수 있습니다.

Ubuntu 및 Debian에 dig 설치

sudo apt update && sudo apt install dnsutils

CentOS 및 Fedora에 dig 설치

sudo yum install bind-utils
sudo pacman -S bind-tools
dig linux.org

발굴 출력 이해

은 가장 간단한 형식에서 단일 호스트(도메인)를 조회하는 데 사용할 때 다른 옵션이 필요하지 않을 때 dig 명령이 상당히 지루하다.다음 예시에서 우리는 dig 도메인에서 실행하고 있습니다.
; <<>> DiG 9.13.3 <<>> linux.org
;; global options: +cmd
출력은 다음과 같습니다. 명령의 출력:
  • 출력의 첫 줄은 설치된 linux.org 버전과 조회된 도메인 이름을 인쇄합니다.두 번째 줄은 전역 옵션을 표시합니다. (기본적으로 cmd만)
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37159
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 5
    이 줄이 출력에 포함되지 않으려면 dig 옵션을 사용하십시오.이 옵션은 dig 명령 이후의 첫 번째 옵션이어야 합니다.
  • 다음 절은 요청 기구(DNS 서버)로부터 받은 답안에 대한 기술 상세 정보를 포함합니다.제목은 작업 코드(+nocmd에서 수행한 작업)와 작업 상태를 표시합니다.이 예에서 상태는 dig으로 요청한 권한이 조회에 서비스를 제공했고 아무런 문제가 없다는 것을 의미한다.
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    dig 옵션을 사용하여 이 섹션을 삭제할 수 있으며, 이 옵션은 다른 섹션의 제목도 사용하지 않습니다.
  • "OPT"위조 세그먼트는 NOERROR 유틸리티의 최신 버전에만 표시됩니다.DNS(EDN) here 확장 메커니즘에 대한 자세한 내용을 볼 수 있습니다.
    .
    ;; QUESTION SECTION:
    ;linux.org.			IN	A
    출력에서 이 부분을 제외하려면 +nocomments 옵션을 사용하십시오.
  • "문제"부분 dig은 조회(문제)를 표시합니다.기본적으로 +noedns은 A 레코드를 요청합니다.
    ;; ANSWER SECTION:
    linux.org.		300	IN	A	104.18.59.123
    linux.org.		300	IN	A	104.18.58.123
    dig 옵션을 사용하여 이 섹션을 비활성화할 수 있습니다.
  • '답안'부분은 우리에게 문제의 답안을 제공했다.앞에서 설명한 대로 기본적으로 dig은 A 레코드를 요청합니다.여기서 도메인 +noquestiondig IP 주소를 가리키는 것을 볼 수 있습니다.
    ;; AUTHORITY SECTION:
    linux.org.		86379	IN	NS	lia.ns.cloudflare.com.
    linux.org.		86379	IN	NS	mark.ns.cloudflare.com.
    은 일반적으로 답을 닫고 싶지 않지만 linux.org 옵션을 사용하여 출력에서 이 부분을 삭제할 수 있습니다.
  • "권한"부분에서 어떤 서버가 조회 영역에 대한 DNS 조회에 대답하는 권한인지 알려 줍니다.
    ;; ADDITIONAL SECTION:
    lia.ns.cloudflare.com.	84354	IN	A	173.245.58.185
    lia.ns.cloudflare.com.	170762	IN	AAAA	2400:cb00:2049:1::adf5:3ab9
    mark.ns.cloudflare.com.	170734	IN	A	173.245.59.130
    mark.ns.cloudflare.com.	170734	IN	AAAA	2400:cb00:2049:1::adf5:3b82
    104.18.59.123 옵션을 사용하여 출력의 이 부분을 비활성화할 수 있습니다.
  • "추가"부분은 권한 수여 부분에 표시된 권위 있는 DNS 서버의 IP 주소에 대한 정보를 제공합니다.
    ;; Query time: 58 msec
    ;; SERVER: 192.168.1.1#53(192.168.1.1)
    ;; WHEN: Fri Oct 12 11:46:46 CEST 2018
    ;; MSG SIZE  rcvd: 212
    +noanswer 옵션은 응답의 추가 부분을 비활성화합니다.
  • +noauthority 출력의 마지막 부분은 조회에 관한 통계 정보를 포함한다.
    dig linux.org +short
    +noadditional 옵션을 사용하여 이 부품을 비활성화할 수 있습니다.
  • 답안만 인쇄

    일반적으로, 당신은 dig 조회의 간단한 답안만 얻고 싶습니다.

    Arch Linux에 +nostats 설치

    조회의 간단한 답안을 얻으려면 dig 옵션을 사용하십시오.
    104.18.59.123
    104.18.58.123
    
    dig linux.org +noall +answer
    출력은 a기록된 IP 주소만 포함됩니다.

    1. 간단한 답안 얻기

    에 대한 자세한 답안은 +short 옵션을 사용하여 모든 결과를 닫고 +noall 옵션만 사용하여 답안 부분을 엽니다.
    ; <<>> DiG 9.13.3 <<>> linux.org +noall +answer
    ;; global options: +cmd
    linux.org.		67	IN	A	104.18.58.123
    linux.org.		67	IN	A	104.18.59.123
    
    dig linux.org @8.8.8.8

    특정 이름 서버 질의

    기본적으로 이름 서버가 지정되지 않으면 +answerdig 파일에 열거된 서버를 사용합니다.질의를 수행할 이름 서버를 지정하려면 /etc/resolv.conf (at) 기호를 사용하고 이름 서버 IP 주소나 호스트 이름을 따릅니다.예를 들어, Google name server(8.8.8)에 @ 도메인에 대한 정보를 조회하려면
    ; <<>> DiG 9.13.3 <<>> linux.org @8.8.8.8
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39110
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 512
    ;; QUESTION SECTION:
    ;linux.org.			IN	A
    
    ;; ANSWER SECTION:
    linux.org.		299	IN	A	104.18.58.123
    linux.org.		299	IN	A	104.18.59.123
    
    ;; Query time: 54 msec
    ;; SERVER: 8.8.8.8#53(8.8.8.8)
    ;; WHEN: Fri Oct 12 14:28:01 CEST 2018
    ;; MSG SIZE  rcvd: 70
    
    dig +nocmd google.com a +noall +answer

    질의 레코드 유형

    Dig를 사용하여 질의 끝에 레코드 유형을 추가하여 유효한 DNS 조회를 수행할 수 있습니다.다음 절에서는 A (IP 주소), CNAME (사양 이름), TXT (텍스트 레코드), MX (메일 교환기) 및 NS (이름 서버) 와 같은 가장 일반적인 레코드를 검색하는 방법을 보여 드리겠습니다.

    2、자세한 답변 얻기

    도메인 이름의 모든 주소 목록을 가져오려면 linux.org 옵션을 사용하십시오: (adsbygoogle = window.adsbygoogle | []).푸시({});
    google.com.		128	IN	A	216.58.206.206
    
    dig +nocmd mail.google.com cname +noall +answer
    아시다시피 DNS 레코드 유형을 지정하지 않으면 a이 A 레코드를 요청합니다.dig 옵션을 지정하지 않고도 A 레코드를 조회할 수 있습니다.

    1. A 레코드 조회

    별칭 도메인 이름 찾기 a 옵션:
    mail.google.com.	553482	IN	CNAME	googlemail.l.google.com.
    

    2. CNAME 레코드 조회

    cname 옵션으로 특정 도메인의 모든 TXT 레코드 검색:
    dig +nocmd google.com txt +noall +answer
    google.com.		300	IN	TXT	"facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95"
    google.com.		300	IN	TXT	"v=spf1 include:_spf.google.com ~all"
    google.com.		300	IN	TXT	"docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e"
    

    3. TXT 레코드 조회

    특정 도메인의 모든 메일 서버 목록 가져오기 txt 옵션:
    dig +nocmd google.com mx +noall +answer
    google.com.		494	IN	MX	30 alt2.aspmx.l.google.com.
    google.com.		494	IN	MX	10 aspmx.l.google.com.
    google.com.		494	IN	MX	40 alt3.aspmx.l.google.com.
    google.com.		494	IN	MX	50 alt4.aspmx.l.google.com.
    google.com.		494	IN	MX	20 alt1.aspmx.l.google.com.
    

    4. MX 레코드 조회

    권위 있는 이름 서버 찾기특정 도메인의 경우 mx 옵션:
    dig +nocmd google.com ns +noall +answer
    google.com.		84527	IN	NS	ns1.google.com.
    google.com.		84527	IN	NS	ns2.google.com.
    google.com.		84527	IN	NS	ns4.google.com.
    google.com.		84527	IN	NS	ns3.google.com.
    

    5, NS 레코드 조회

    ns 옵션을 사용하여 특정 도메인의 모든 DNS 레코드 목록을 가져옵니다.
    dig +nocmd google.com any +noall +answer
    google.com.		299	IN	A	216.58.212.14
    google.com.		299	IN	AAAA	2a00:1450:4017:804::200e
    google.com.		21599	IN	NS	ns2.google.com.
    google.com.		21599	IN	NS	ns1.google.com.
    google.com.		599	IN	MX	30 alt2.aspmx.l.google.com.
    google.com.		21599	IN	NS	ns4.google.com.
    google.com.		599	IN	MX	50 alt4.aspmx.l.google.com.
    google.com.		599	IN	MX	20 alt1.aspmx.l.google.com.
    google.com.		299	IN	TXT	"docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e"
    google.com.		21599	IN	CAA	0 issue "pki.goog"
    google.com.		599	IN	MX	40 alt3.aspmx.l.google.com.
    google.com.		3599	IN	TXT	"facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95"
    google.com.		21599	IN	NS	ns3.google.com.
    google.com.		599	IN	MX	10 aspmx.l.google.com.
    google.com.		3599	IN	TXT	"v=spf1 include:_spf.google.com ~all"
    google.com.		59	IN	SOA	ns1.google.com. dns-admin.google.com. 216967258 900 900 1800 60
    

    DNS 찾기 대칭 이동

    조회hostnameany 옵션을 사용하여 특정 IP 주소와 연결합니다.예를 들어 -x에서 역방향 검색을 수행하려면:
    dig -x 208.118.235.148 +noall +answer
    을 입력하십시오. 아래 출력에서 볼 수 있듯이 IP 주소 208.118.235.148은 호스트 이름 208.118.235.148과 관련이 있습니다.
    ; <<>> DiG 9.13.3 <<>> -x 208.118.235.148 +noall +answer
    ;; global options: +cmd
    148.235.118.208.in-addr.arpa. 245 IN	PTR	wildebeest.gnu.org.
    

    대량 조회

    대량의 도메인을 조회하려면 파일에 추가할 수 있습니다. (줄마다 하나의 도메인) wildebeest.gnu.org 옵션을 사용하면 파일 이름과 함께 사용할 수 있습니다.다음 예제에서 -f 파일에 열거된 도메인을 조회하고 있습니다.도메인txt
    lxer.com
    linuxtoday.com
    tuxmachines.org
    
    dig -f domains.txt +short
    108.166.170.171
    70.42.23.121
    204.68.122.43
    

    이것digrc 파일

    domains.txt 파일에 사용자 옵션을 설정하여 dig 명령의 행위를 제어할 수 있습니다.사용자의 홈 디렉토리에 ${HOME}/.digrc 파일이 있는 경우 명령줄 매개변수 앞에 지정된 옵션을 적용합니다.예를 들어, 답변 섹션만 표시하려면 text editor을 엽니다.
    다음 .digrc 파일을 만듭니다. ~/.dgrc
    +nocmd +noall +answer
    

    결론

    ~/.digrc은 DNS 정보를 조회하고 DNS와 관련된 문제를 해결하는 명령행 도구입니다.질문이나 피드백이 있으면 언제든지 의견을 발표하십시오.