dig유틸리티를 이용한 도메인설정정보 검색실무
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,340 조회
- 0 추천
-
목록
본문
dig유틸리티를 이용한 도메인설정정보 검색실무
dig라는 유틸리티를 이용하면 특정 DNS서버의 설치정보와 설정정보를 확인해 볼 수 있다.
특히 특정 DNS서버의 BIND버전을 확인할 때에도 dig라는 명령어를 이용하면 매우 편리하다.
이 명령어의 사용형식은 다음과 같다.
사용형식 : dig @server domain query-type query-class
위 형식중 server는 확인코자하는 DNS서버의 domain이나 IP주소를 적어주면 된다.
실제 예를보면 다음과 같다.
먼저 도메인으로 확인할 수 있음을 보여준 것이다.
[root@RockyLinux ~]# dig @ns.superuser.co.kr txt chaos version bind
; <<>> DiG 9.16.23-RH <<>> @ns.superuser.co.kr txt chaos version bind ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 3000 ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 ;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: a8c1ddd0e1d8d25191a9739064acacd1fcb69d043a235b52 (good) ;; QUESTION SECTION: ;version. CH TXT
;; Query time: 14 msec ;; SERVER: 222.97.189.1#53(222.97.189.1) ;; WHEN: Tue Jul 11 10:13:53 KST 2023 ;; MSG SIZE rcvd: 64
;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 32666 ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 ;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: a8c1ddd0e1d8d2514dab6ebf64acacd1deb97baaead140a1 (good) ;; QUESTION SECTION: ;bind. CH TXT
;; Query time: 15 msec ;; SERVER: 222.97.189.1#53(222.97.189.1) ;; WHEN: Tue Jul 11 10:13:53 KST 2023 ;; MSG SIZE rcvd: 61
[root@RockyLinux ~]# |
위의 결과를 보면 9.16.23-RH 이라는 문자열을 볼 수 있다.
이 문자열이 BIND의 버전이다.
다음은 이 부분만을 grep으로 확인해 본 것이다.
[root@RockyLinux ~]# dig @ns.superuser.co.kr txt chaos version bind | grep version ; <<>> DiG 9.16.23-RH <<>> @ns.superuser.co.kr txt chaos version bind ; EDNS: version: 0, flags:; udp: 4096 ;version. CH TXT ; EDNS: version: 0, flags:; udp: 4096 [root@RockyLinux ~]# |
다음은 앞의 테스트를 IP주소로도 가능하다는 것을 보여 준 것이다.
[root@sulinux ~]#dig @192.168.0.250 chaos version bind
; <<>> DiG 9.6.1b1 <<>> @192.168.0.250 chaos version bind ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 37048 ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; WARNING: recursion requested but not available
;; QUESTION SECTION: ;version. CH A
;; Query time: 1 msec ;; SERVER: 192.168.0.250#53(192.168.0.250) ;; WHEN: Mon Apr 27 08:59:22 2009 ;; MSG SIZE rcvd: 25
;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 18557 ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; WARNING: recursion requested but not available
;; QUESTION SECTION: ;bind. CH A
;; Query time: 1 msec ;; SERVER: 192.168.0.250#53(192.168.0.250) ;; WHEN: Mon Apr 27 08:59:22 2009 ;; MSG SIZE rcvd: 22
[root@sulinux ~]# |
또다른 방법으로 grep을 사용하여 다음과 같이 할 수도 있다.
[root@sulinux ~]#dig @localhost txt chaos version bind | grep version ; <<>> DiG 9.6.1b1 <<>> @localhost txt chaos version bind ;version. CH TXT [root@sulinux ~]# |
그럼 본격적으로 dig명령어의 다양한 사용법에 대해서 설명하도록 하겠다.
명령어 사용형식을 다시 한번보면 다음과 같다.
사용형식 : dig @server domain query-type query-class
여기서 query-type에 올수 있는 것에는 다음과 같은 것들이 있다.
- a : 네트워크주소를
의미함.
- any : 지정한
도메인의 모든 정보를 의미함.
- mx : 지정한
도메인의 메일서버 정보를 의미함.
- ns : 네임서버를
의미함.
- soa : SOA정보를
의미함.
- hinfo : HINFO레코드에
대한 정보를 의미함.
이외에도 앞서 예를 들었던 txt와 axfr등이 올수 있다.
그럼 이들 옵션들에 대한 사용 예를들어 보겠다.
먼저 any옵션을 사용한 예로써 192.168.0.200이라는 네임서버의 기본설정 내용들을 모두 확인한 것이다.
[root@sulinux ~]#dig @192.168.0.250 any
; <<>> DiG 9.6.1b1 <<>> @192.168.0.250 any ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60831 ;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 14
;; QUESTION SECTION: ;. IN NS
;; ANSWER SECTION: . 518246 IN NS L.ROOT-SERVERS.NET. . 518246 IN NS M.ROOT-SERVERS.NET. . 518246 IN NS A.ROOT-SERVERS.NET. . 518246 IN NS B.ROOT-SERVERS.NET. . 518246 IN NS C.ROOT-SERVERS.NET. . 518246 IN NS D.ROOT-SERVERS.NET. . 518246 IN NS E.ROOT-SERVERS.NET. . 518246 IN NS F.ROOT-SERVERS.NET. . 518246 IN NS G.ROOT-SERVERS.NET. . 518246 IN NS H.ROOT-SERVERS.NET. . 518246 IN NS I.ROOT-SERVERS.NET. . 518246 IN NS J.ROOT-SERVERS.NET. . 518246 IN NS K.ROOT-SERVERS.NET.
;; ADDITIONAL SECTION: A.ROOT-SERVERS.NET. 604646 IN A 198.41.0.4 A.ROOT-SERVERS.NET. 604646 IN AAAA 2001:503:ba3e::2:30 B.ROOT-SERVERS.NET. 604646 IN A 192.228.79.201 C.ROOT-SERVERS.NET. 604646 IN A 192.33.4.12 D.ROOT-SERVERS.NET. 604646 IN A 128.8.10.90 E.ROOT-SERVERS.NET. 604646 IN A 192.203.230.10 F.ROOT-SERVERS.NET. 604646 IN A 192.5.5.241 F.ROOT-SERVERS.NET. 604646 IN AAAA 2001:500:2f::f G.ROOT-SERVERS.NET. 604646 IN A 192.112.36.4 H.ROOT-SERVERS.NET. 604646 IN A 128.63.2.53 H.ROOT-SERVERS.NET. 604646 IN AAAA 2001:500:1::803f:235 I.ROOT-SERVERS.NET. 604646 IN A 192.36.148.17 J.ROOT-SERVERS.NET. 604646 IN A 192.58.128.30 J.ROOT-SERVERS.NET. 604646 IN AAAA 2001:503:c27::2:30
;; Query time: 27 msec ;; SERVER: 192.168.0.250#53(192.168.0.250) ;; WHEN: Mon Apr 27 09:00:47 2009 ;; MSG SIZE rcvd: 500
[root@sulinux ~]# |
그리고 any옵션에 대한 것으로 picasso.co.kr이라는 도메인에 대하여 DNS의 모든 정보를 조회한 것이다.
[root@RockyLinux ~]# dig @ns.superuser.co.kr any picasso.co.kr
; <<>> DiG 9.16.23-RH <<>> @ns.superuser.co.kr any picasso.co.kr ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25076 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 3
;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: 8dd59f72f2217ad5e65339c264acad6ee00009fdbd52c306 (good) ;; QUESTION SECTION: ;picasso.co.kr. IN ANY
;; ANSWER SECTION: picasso.co.kr. 400 IN SOA ns.suidc.comr. root.suidc.com. 2005030517 21600 900 604800 400 picasso.co.kr. 400 IN NS ns.suidc.com. picasso.co.kr. 400 IN NS ns2.suidc.com. picasso.co.kr. 400 IN A 222.97.189.21
;; ADDITIONAL SECTION: ns.suidc.com. 200 IN A 222.97.189.1 ns2.suidc.com. 200 IN A 210.127.209.11
;; Query time: 14 msec ;; SERVER: 222.97.189.1#53(222.97.189.1) ;; WHEN: Tue Jul 11 10:16:30 KST 2023 ;; MSG SIZE rcvd: 216
[root@RockyLinux ~]# |
다음은 picasso.co.kr이라는 도메인에 대하여 DNS에 설정된 mx레코드를 dig로 조회한 예 이다.
[root@RockyLinux ~]# dig @ns.superuser.co.kr mx picasso.co.kr
; <<>> DiG 9.16.23-RH <<>> @ns.superuser.co.kr mx picasso.co.kr ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57630 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: 54b6bc792a5a5e0e2d25c2ec64acad8bc43172d739bb29e8 (good) ;; QUESTION SECTION: ;picasso.co.kr. IN MX
;; AUTHORITY SECTION: picasso.co.kr. 400 IN SOA ns.suidc.comr. root.suidc.com. 2005030517 21600 900 604800 400
;; Query time: 16 msec ;; SERVER: 222.97.189.1#53(222.97.189.1) ;; WHEN: Tue Jul 11 10:16:59 KST 2023 ;; MSG SIZE rcvd: 133
[root@RockyLinux ~]# |
다음은 picasso.co.kr이라는 도메인의 ns레코드를 dig로 조회한 예이다.
[root@sulinux ~]#dig @ns.linux.co.kr ns picasso.co.kr
; <<>> DiG 9.6.1b1 <<>> @ns.linux.co.kr ns picasso.co.kr ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45621 ;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 2 ;; WARNING: recursion requested but not available
;; QUESTION SECTION: ;picasso.co.kr. IN NS
;; ANSWER SECTION: picasso.co.kr. 400 IN NS ns2.suidc.com. picasso.co.kr. 400 IN NS ns.suidc.com.
;; ADDITIONAL SECTION: ns.suidc.com. 800 IN A 222.97.189.1 ns2.suidc.com. 800 IN A 210.127.209.11
;; Query time: 7 msec ;; SERVER: 222.97.189.1#53(222.97.189.1) ;; WHEN: Mon Apr 27 09:02:32 2009 ;; MSG SIZE rcvd: 107
[root@sulinux ~]# |
다음은 picasso.co.kr이라는 도메인의 a레코드를 dig로 조회한 예이다.
[root@sulinux ~]#dig @ns.linux.co.kr a picasso.co.kr
; <<>> DiG 9.6.1b1 <<>> @ns.linux.co.kr a picasso.co.kr ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48893 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 ;; WARNING: recursion requested but not available
;; QUESTION SECTION: ;picasso.co.kr. IN A
;; ANSWER SECTION: picasso.co.kr. 400 IN A 222.97.189.14
;; AUTHORITY SECTION: picasso.co.kr. 400 IN NS ns2.suidc.com. picasso.co.kr. 400 IN NS ns.suidc.com.
;; ADDITIONAL SECTION: ns.suidc.com. 800 IN A 222.97.189.1 ns2.suidc.com. 800 IN A 210.127.209.11
;; Query time: 4 msec ;; SERVER: 222.97.189.1#53(222.97.189.1) ;; WHEN: Mon Apr 27 09:02:48 2009 ;; MSG SIZE rcvd: 123
[root@sulinux ~]# |
이처럼 dig라는 명령어를 이용하면 네임서버에 대한 다양한 정보를 확인해 볼 수 있다.
여기서 설명한 dig유틸리티와 함께 host유틸리티 그리고 nslookup이라는 유틸리티도 함께 알아두기 바란다.
관련자료
-
이전
-
다음