|
리눅스용 DIG 사용법
|
|
업데이트 : 2019-05-13 (월) 11:35 조회 : 25,639
|
Dig(Domain Information Groper)는 nslookup과의 기능적 차이는 크게 없지만, 리눅스 머신 상에서 사용이 간결하고,출력이 상세한 특징이 있습니다. 또한 dig명령어는 dns query lookup을 하기 위한 bind-utils 패키지에 속해 있는 유틸리티입니다.향후 리눅스 배포판에서는 nslookup이 사라지고 dig로 대체될 예정이라고 합니다.
dig (domain information groper) 는 DNS 네임서버에 쿼리를 보내기 위한 유용한 툴로서 DNS lookup 과 쿼리를 보낸 네임서버로부터 돌아오는 응답을 출력하게 되며 보통 dig는 명령어 라인 인자들과 함께 사용합니다.
dig 명령은 DNS 네임서버 구성과 도메인 설정이 완료된 후, 일반 사용자의 입장에서 설정한 도메인네임에 대한 DNS 질의응답이 정상적으로 이루어지는지를 확인 점검하는 경우에 많이 사용합니다.
특히 dig의 유연하고 편리하기 때문에 대부분의 DNS 관리자들은 DNS장애 시 troubleshoot 를 위해 dig를 사용합니다. [명령어 형식] dig @ server domain query-type query-class
구분 |
포트 범위 |
설명 |
@server |
질의를 하고자 하는 DNS 서버로 만약 name server를 명시하지 않으면 시스템의 resolv.conf 에 있는 네임서버에 query를 시도합니다. |
local DNS (/etc/resolv.conf) |
domain |
질의 대상 도메인 또는 도메인호스트 이름 |
|
type |
질의에 사용할 Resource Record 타입 (ANY, A, AAAA, NS, MX, SOA, HINFO, TXT, AXFT, ZONETRANFER…) |
A record | query-type a : 도메인의 아이피 정보 ( network address ) any : 지정된 도메인의 모두/임의의 정보 mx : mail exchanger 정보 ns : name server 정보 soa : Zone 파일 상단의 authority 레코드 hinfo : host 정보 axft : zone transfer ( authority를 갖는 특정 네임서버에 질의 ) txt : 임의의 수의 캐릭터 라인 (arbitrary number of strings) zone transfer : 해당 도메인의 zone 에 대한 복사본을 얻기 위해,primary 로부터 zone 데이타베이스를 끌어오는 작업을 zone transfer라 합니다.
query-class – query의 network class 부분(확인하고자 하는 도메인),생략하면 in 이 default 가 됩니다.(in = internet ) in : 인터넷 클래스 도메인 (internet class domain) any : 모든 클래스 정보 (all/any class information) zone transfer : 해당 도메인의 zone 에 대한 복사본을 얻기 위해,primary 로부터 zone 데이타베이스를 끌어오는 작업을 zone transfer라 합니다.
DIG 옵션 - DIG 명령어에는 ‘-‘ 옵션과 ‘+’ 옵션이 있으며, 주요 옵션의 내용은 다음과 같다
옵션 |
설명 |
비고 |
-b |
source IP를 다른 IP로 설정 |
interface IP |
-f |
batch 모두 동작시 파일이름을 지정 |
|
-m |
debugging |
|
-p |
53 이외의 포트번호를 지정 |
|
-4 or -6 |
IPv4 또는 IPv6 강제 지정 |
|
-t |
Type을 지정 |
기본 문법에 포함 |
-c |
Class를 지정 |
사실상 무의미 (IN) |
-x |
reverse lookup |
IP to name |
+tcp |
TCP 프로토콜 사용 |
+notcp |
+trace |
delegation path 추적 |
+notrace |
+short |
Answer Section 결과만을 표시 |
+noshort |
+comments |
Comments Section 표시 |
+nocomments |
+question |
Question Section 표시 |
+noquestion |
+answer |
Answer Section 표시 |
+noanswer |
+authority |
Authority Section 표시 |
+noauthority |
+additional |
Additional Section 표시 |
+noadditional |
+stats |
Statistics Section 표시 |
+nostats |
+all |
Comments부터 Statistics Section 모두 표시 |
+noall |
+multiline |
긴 record를 여러 줄로 보기 좋게 표시 |
+nomultiline | 특정 도메인 확인 예제 - 도메인주소를 입력하면 /etc/resolv.conf에 등록된 네임서버를 이용하여 도메인을 조회합니다.
[root@web ~]# dig google.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6_8.4 <<>> google.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26833 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4 ;; QUESTION SECTION: ;google.com. IN A ;; ANSWER SECTION: google.com. 5 IN A 172.217.25.238 ;; AUTHORITY SECTION: google.com. 5 IN NS ns2.google.com. google.com. 5 IN NS ns4.google.com. google.com. 5 IN NS ns1.google.com. google.com. 5 IN NS ns3.google.com. ;; ADDITIONAL SECTION: ns1.google.com. 5 IN A 216.239.32.10 ns2.google.com. 5 IN A 216.239.34.10 ns3.google.com. 5 IN A 216.239.36.10 ns4.google.com. 5 IN A 216.239.38.10 ;; Query time: 4 msec ;; SERVER: 192.168.59.2#53(192.168.59.2) ;; WHEN: Tue Mar 14 02:32:40 2017 ;; MSG SIZE rcvd: 180 | 특정 네임서버를 통한 도메인 확인 예제 - 도메인주소를 특정 네임서버를 통해 조회합니다.
[root@web ~]# dig @8.8.8.8 google.com ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.4 <<>> @8.8.8.8 google.com ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32960 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;google.com. IN A ;; ANSWER SECTION: google.com. 299 IN A 172.217.25.238 ;; Query time: 67 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: 화 3월 14 12:49:22 KST 2017 ;; MSG SIZE rcvd: 55 |
도메인Trace 추적 확인 예제- +trace 옵션은 요청한 도메인의 대한 전 과정을 추적한 결과를 보여주는 옵션입니다. Root에서부터 TLD를 거쳐 최종 lookup 결과를 찾아내기 까지 Answer Section과 Authority Section을 일목요연하게 확인할 수 있습니다.
[root@web ~]# dig google.com +trace ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6_8.4 <<>> google.com +trace ;; global options: +cmd . 5 IN NS a.root-servers.net. . 5 IN NS b.root-servers.net. . 5 IN NS i.root-servers.net. . 5 IN NS l.root-servers.net. . 5 IN NS j.root-servers.net. . 5 IN NS e.root-servers.net. . 5 IN NS d.root-servers.net. . 5 IN NS f.root-servers.net. . 5 IN NS g.root-servers.net. . 5 IN NS c.root-servers.net. . 5 IN NS k.root-servers.net. . 5 IN NS m.root-servers.net. . 5 IN NS h.root-servers.net. ;; Received 492 bytes from 192.168.59.2#53(192.168.59.2) in 232 ms com. 172800 IN NS g.gtld-servers.net. com. 172800 IN NS a.gtld-servers.net. com. 172800 IN NS c.gtld-servers.net. com. 172800 IN NS j.gtld-servers.net. com. 172800 IN NS m.gtld-servers.net. com. 172800 IN NS b.gtld-servers.net. com. 172800 IN NS i.gtld-servers.net. com. 172800 IN NS h.gtld-servers.net. com. 172800 IN NS d.gtld-servers.net. com. 172800 IN NS f.gtld-servers.net. com. 172800 IN NS k.gtld-servers.net. com. 172800 IN NS l.gtld-servers.net. com. 172800 IN NS e.gtld-servers.net. ;; Received 488 bytes from 199.7.91.13#53(199.7.91.13) in 700 ms google.com. 172800 IN NS ns2.google.com. google.com. 172800 IN NS ns1.google.com. google.com. 172800 IN NS ns3.google.com. google.com. 172800 IN NS ns4.google.com. ;; Received 164 bytes from 192.43.172.30#53(192.43.172.30) in 139 ms google.com. 300 IN A 216.58.200.206 ;; Received 44 bytes from 216.239.32.10#53(216.239.32.10) in 59 ms | MX 레코드 확인 예제 - mx 옵션은 mx(메일 레코드)가 올바르게 설정이 되었는지 확인할수 있는 옵션입니다.
[root@web ~]# dig mx google.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6_8.4 <<>> mx google.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45386 ;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 4, ADDITIONAL: 13 ;; QUESTION SECTION: ;google.com. IN MX ;; ANSWER SECTION: google.com. 5 IN MX 20 alt1.aspmx.l.google.com. google.com. 5 IN MX 50 alt4.aspmx.l.google.com. google.com. 5 IN MX 30 alt2.aspmx.l.google.com. google.com. 5 IN MX 40 alt3.aspmx.l.google.com. google.com. 5 IN MX 10 aspmx.l.google.com. ;; AUTHORITY SECTION: google.com. 5 IN NS ns2.google.com. google.com. 5 IN NS ns4.google.com. google.com. 5 IN NS ns3.google.com. google.com. 5 IN NS ns1.google.com. ;; ADDITIONAL SECTION: ASPMX.l.google.com. 5 IN A 74.125.203.26 alt1.ASPMX.l.google.com. 5 IN A 74.125.30.27 alt2.ASPMX.l.google.com. 5 IN A 173.194.193.26 ALT3.ASPMX.l.google.com. 5 IN A 173.194.219.27 ALT4.ASPMX.l.google.com. 5 IN A 173.194.68.27 ns1.google.com. 5 IN A 216.239.32.10 ns2.google.com. 5 IN A 216.239.34.10 ns3.google.com. 5 IN A 216.239.36.10 ns4.google.com. 5 IN A 216.239.38.10 ASPMX.l.google.com. 5 IN AAAA 2404:6800:4008:c07::1b alt1.ASPMX.l.google.com. 5 IN AAAA 2607:f8b0:4003:c03::1b alt2.ASPMX.l.google.com. 5 IN AAAA 2607:f8b0:4001:c0f::1a ALT3.ASPMX.l.google.com. 5 IN AAAA 2607:f8b0:4002:c03::1a ;; Query time: 66 msec ;; SERVER: 192.168.59.2#53(192.168.59.2) ;; WHEN: Tue Mar 14 03:10:32 2017 ;; MSG SIZE rcvd: 490 |
IDN SUPPORT- dig 명령은 국제화 도메인 이름(IDN) 지원과 함께 빌드 된 경우 ASCII가 아닌 도메인 이름을 허용하고 표시할 수 있습니다. dig 명령은 요청을 DNS 서버로 전송하거나 서버의 응답을 표시하기 전에 도메인 이름의 문자 인코딩을 퓨니코드로 변환하여 질의하시면 됩니다.
코디엔에스 기술팀 - 2017-05-13일 등록
|
|
|