3. dig(네임서버 진단 유틸리티) |
1) 경로 : /usr/bin/dig
2) 요약 : 네임 서버(DNS) 진단을 위한 룩업 유틸리티
3) 사용 방법 : dig [@서버] [옵션] [쿼리 대상 도메인 이름] [타임] [클래스] [쿼리 옵션]
4) 옵션
-b IP주소 : 쿼리를 위한 소스IP 주소를 설정
-c 클래스 : 클래스는 IN(internet), CS(CSnet), CJ(Chaos), HS(HeSiod)가 있고 주로 상용하는 것은 IN임ㅁ
-f 파일명 : 파일에 정의된 쿼리를 일괄 처리
-p 포트번호 : 쿼리를 위한 포트 번호 선택, 기본값은 기본 DNS 포트 번호인 53임
-t 타임 : 쿼리 인수와 함께 쿼리 타입 설정, 기본값은 A이지만 BIND9에서 유효한 값을 설정할 수 있음
-x IP주소 : IPv4나 IPv6의 IP 주소를 이용하여 역으로 룩업할 수 있음, 이름, 클래스, 타입 등의 인수는필요없음
5) 추가 설명
TCP/IP 명령어로써 네임 서버로부터 다양한 정보를 얻어 오는데 사용됩니다. nslookup보다 다양하고 정확한 동작을 수행합니다. 다음 세 인수를 잘 활용하면 웬만한 기본 동작은 쓸 수 있습니다. 만약 인수를 넣지 않으면 root 서버를 검색하게 됩니다.
@서버 | 네임 서버에서 dig 명령어가 쿼리를 합니다. 만약 네임서버 주소를 넣지 않을 경우 시스템의 /etc/resolv.con 파일 안에 있는 네임서버 정보를 이용하고, 네임 서버 설정이 안되어 있는 경우localhost를 이용합니다. IPv4와 IPv6 주소도 지원합니다. |
쿼리 대상 도메인 이름 |
쿼리의 대상이 되는 도메인 이름을 입력합니다. 만약 지정하지 않으면 루트 도메인에 대한쿼리를 수행합니다. |
타입 |
쿼리 타입을 지정합니다. A, ANY, MX, NS 등이 있으며 지정하지 않으면 기본값은 A입니다. - A : IPv4의 32비트인 IP주소 - AAAA : IPv6의 128비트인 IP 주소 - ANY : 지정된 도메인의 모든 정보 - MX : 지정된 도메인의 메일 서버 정보 - NS : 네임 서버 정보 - SOA : 권한 개시 정보 |
dig 명령어를 이용하여 google.com의 네임서버 정보를 알아봅니다. 쿼리를 수행하는데 KT의 DNS 서버를 이용하며 네임서버 정보 타입인 NS를 인수로 사용합니다.
$ dig @kns.kornet.net google.com NS
; <<>> DiG 9.2.4 <<>> @kns.kornet.net google.com NS
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58231
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; QUESTION SECTION:
;google.com. IN NS
;; ANSWER SECTION:
google.com. 155360 IN NS ns1.google.com.
;; ADDITIONAL SECTION:
ns1.google.com. 152958 IN A 216.239.32.10
;; Query time: 2 msec
;; SERVER: 168.126.63.1#53(168.126.63.1)
;; WHEN: Wed Jan 31 15:55:25 2020
;; MSG SIZE rcvd: 164
각 주요 항목별 의미는 다음과 같다.
QUESTION SECTION: |
요청한 쿼리 내용을 출력합니다. 여기서는 google.com의 NS 타입을 쿼리한 것을 알 수 있습니다. |
ANSWER SECTION: |
쿼리에 대한 답을 출력합니다. google.com의 DNS 서버 정보는 ns1.google.com이을 알 수 있습니다. |
ADDITIONAL SECTION: |
추가 정보를 제공합니다. 여기서는 ns1.google.com의 네트워크 정보(A)를 출력합니다. |
헤더 부분에 주요 정보는 다음과 같다.
DiG 9.2.4 | dig 버전 정보를 출력합니다. |
opcode |
DNS 응답 메시지의 연산 코드를 뜻하는 말로 쿼리 타입을 출력합니다. - QUERY : Standard Query - STATUS : Server Status Request - NOTIFY : DNS Notify Message - UPDATE : DNS Dynaminc Update Messagest |
status |
응답 메시지에 쿼리 결과를 R(Response)CODE로 표시합니다. - NOERROR : 정상 응답 메시지 - NXDOMAIN : 존재 하지 않는 도메인 - REFUSED : 쿼리 거부 |
그 외에도 마지막 부분을 보고 응답 소요 시간(Query time), 쿼리를 수행한 서버 주소(SERVER), 응답 메시지 수신 시간(WHEN), 메시지 사이즈(MSG SIZE) 등을 알 수 있습니다.
IP 주소를 이용해 쿼리하여 도메인 네임 등을 찾고자 한다면 -x 옵션을 사용합니다. 아래 예제는 네임 서버와 타입을 지정하지 않았기 때문에 기본값으로 사용자 시스템에 등록된 네임 서버를 이용하여 A 타입을 검색한 결과를 출력합니다.
$ dig-x 2001:DCC:5::100
;<<>> DiG 9.2.4 <<>> -x 2001:DCC:5::100
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20162
;; flags: qr rd ra; QUERY: 1, ANSWER:1, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;0.0.1.0.0.0.5.0.0.0.c.c.d.0.1.0.0.2.ip6.arpa.IN PTR
;; ANSWER SECTION:
0.0.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.5.0.0.0.c.c.d.0.1.0.0.2.ip6.arpa.42908 IN PTR e.dns.kr.
;; AUTHORITY SECTION:
c.c.d.0.1.0.0.2.ip6.arpa. 86108 IN NS ns2.nic.or.kr.
c.c.d.0.1.0.0.2.ip6.arpa. 86108 IN NS ns1.nic.or.kr.
;; ADDTIONAL SECTION:
ns1.nic.or.kr. 8 IN A 202.30.50.51
ns2.nic.or.kr. 8 IN A 41.24.22.11
;; Query time: 0msec
;; SERVER: 222.122.46.224#53(222.122.46.224)
;; WHEN: Wed Jun 22 12:32:22 2020
;; MSG SIZE rcvd: 187
얻어온 정보를 반대로 응용하면 서버가 IPv6로 잘 등록되었는지 확인할 수 있습니다.
$ dig e.dns.kr AAAA
' <<>> DiG 9.2.4 <<>> e.dns.kr AAAA
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20070
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 6, ADDITIONAL: 5
;; QUESTION SECTION
;e.nds.kr. IN AAAA
;; ANSWER SECTION:
e.dns.kr. 85834 IN AAAA 2001:dcc:5::100
;; AUTHORITY SECTION:
dns.kr. 50731 IN NS f.dns.kr.
dns.kr. 50731 IN NS g.dns.kr.
dns.kr. 50731 IN NS b.dns.kr.
dns.kr. 50731 IN NS c.dns.kr.
dns.kr. 50731 IN NS d.dns.kr.
dns.kr. 50731 IN NS e.dns.kr.
;; ADDITIONAL SECTION:
b.dns.kr. 50731 IN A 61.43.21.2
c.dns.kr. 50731 IN A 201.234.231.111
d.dns.kr. 50731 IN A 203.34.143.1
e.dns.kr. 50731 IN A 200.30.121.22
f.dns.kr. 50731 IN A 21.22.45.75
;; Query time: 0 msec
;; SERVER: 222.122.46.222#43(222.122.46.224)
;; WHEN: Wed Jun 22 13:11:12 2020
;; MSG SIZE rcvd: 228
<쿼리 옵션>
+tcp (+notcp) |
TCP 프로토콜을 이용 기본값은 +notcp로 UDP를 이용 |
+domain=searchdomain +search(+nosearch) |
명시된 도메인에서 검색 수행 두 옵션은 같은 기능을 수행하며 +search의 경우 /tc/resolv.conf 파일 내의 도메인을 검색 기본값은 +nosearch |
+time=t |
쿼리 타임아웃을 지정한 t초로 설정 단위는 초이며 기본값은 5초 최소 1초부터 설정할 수 있음 |
+tries=n |
UDP 쿼리를 시도하는 횟수를 -n으로 설정 기본값은 3번이며, 최소값은 1 |
<dig 출력 내용 설정>
+cmd(+nocmd) | 명령행 출력 혹은 출력 안함(기본값 : +cmd) |
+comments(+nocomments) | 주석 출력 혹은 출력 안함(기본값 : +comments) |
+question(+noquestion) +answer(+noanswer) +authority(+noauthority) +additional(+noadditional) |
Question, Answer, Authority, Additional Section 내용 출력 혹은 출력 안함 (기본값 : +question +answer +authority +additional) |
+stats(+nostats) |
마지막 부분에 표시되는 쿼리 소요 시간 등 출력 혹은 출력 안함(기본값 : +stats) |
+short(+noshort) |
간단한 결과만 요약 출력 혹은 요약 안한(기본값 : +noshort) |
short+identity |
요약 출력시 쿼리를 수행한 네임 서버 주소 출력 |
+qr(+noqr) |
Question Section에 대한 자세한 쿼리 내용 출력 혹은 출력 안함(기본값 : +noqr) |
+multiline(+nomultiline) |
리소스 레코드(Resource Record) 출력 시 확장된 형식으로 출력(기본값 : +nomultiline) |
4. dnsdomainname(DNS 도메인 확인) |
1) 경로 : /bin/dnsdomainname
2) 요약 : 시스템의 DNS 도메인 이름을 출력
3) 사용 방법 : dnsdominname [옵션]
4) 옵션
-v : 상세한 정보 출력
5) 추가 설명
dnsdomainname 명령어는 시스템의 DNS 서버에 대한 정보를 출력합니다.
# dnsdomainname
chanchan.co.kr
# dnsdomainname -v
gethostname( ) = 'ns.chanchan.co.kr'
Resolving 'ns.chanchan.co.kr' ...
Result: h_name='ns.chanchan.co.kr'
Result: h_addr_list = 'xxx.xxx.xxx.xxx'
chanchan.co.kr
5. ethtool(이더넷 카드 설정, 보기 및 변경) |
1) 경로 : /usr/sbin/ethtool
2) 요약 : 이더넷 카드의 설정을 출력하거나 변경
3) 사용 방법 : ethtool ethX
ethtool -A | --pause ethX [autoneg on|off] [rx on|off] [tx on|off]
ethtool -s ethX speed N [duplex half|full] [port tp|aui|bnc|mii] [autoneg on|off] [wol p|u|m|b|a|g|s|d...]
4) 옵션
-a, --show-pause : 지정한 이더넷 디바이스에서 pause 파라미터 정보를 쿼리
-A, --pause : 지정한 이더넷 디바이스의 pause 파라미터를 변경
-h, --help : 도움말 출력
5) 파라미터
autoneg on|off : autonegotiation을 on/off 설정
rx on|off : RX를 on/off 설정
tx on|off : TX를 on/off 설정
sg on|off : scatter-gather를 on/off 설정
tso on|off : TCP segmentation offload를 on/off 설정
ufo on|off : UDP fragmentation offload를 on/off 설정
gso on|off : generic segmentation offload를 on/off 설정
gro on|off : generic receive offload를 on/off 설정
lro on|off : large receive offload를 on/off 설정
speed N : 전송 속도를 Mb/s 단위로 설정
duplex half|full : full/half도 duplex 모드를 설정
port tp|aui|bnc|mii : 디바이스 포트를 선택
wol p|u|m|b|a|g|s|d... : Wake-on-LAN 옵션을 설정
-p : 물리적 액티비를 활성화
-u : 유니캐스트 메시지를 활성화
-m : 멀티캐스트 메시지를 활성화
-b : 브로드캐스트 메시지를 활성화
-a : ARP를 활성화
-g : 매직 패킷을 활성화
-s : 매직 패킷을 위한 시큐어 패스워드를 활성화
-d : wol를 비활성화
※ 매직 패킷 : 포트 0, 7, 9번 중에 하나를 통해 보내는 브로트 캐스트로 UDP에서 자주 사용
6) 추가 설명
ethtool 명령어는 이더넷의 설정 내용을 보거나 세부적인 설정을 위해 이더넷 장치를 지정합니다.
# ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Link partner advertised link modes: Not reported
Link partner advertised pause frame use: No
Link partner advertised auto-negotiation: No
Speed: 100Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: Unknown
Supports Wake-on: pg
Wake-on : d
Current messge level: 0x000000ff (255)
Link detected: yes
아래와 같이 현재 네트워크 전송 속도가 100Mb/s로 되어 있다면 이를 1000Mb/s로 설정할수 있습니다.
# ethtool -s eth0 speed 1000 autoneg off
# ethtool eth0|grep Speed
Speed: 1000Mb/s
참고로 autoneg 옵션을 다시 on으로 하고, eth0 카드를 확인하면 100Mb/s로 바뀔때가 있습니다. 이럴 때는 eth0 카드와 연결된 네트워크의 스위치 설정이 Full Duplex이기 때문입니다.
'IT 이야기 > Linux 명령어' 카테고리의 다른 글
[RHEL6] 네트워크 명령어 4탄(ifconfig, mii-tool, nc) (0) | 2020.01.22 |
---|---|
[RHEL6] 네트워크 명령어 3탄(ftp, host, hostid, hostname) (0) | 2020.01.22 |
[RHEL6] 네트워크 명령어 1탄(arp, arping) (0) | 2020.01.02 |
[RHEL6] 계정관리 명령어들 9탄(users, w, who, whoami) (0) | 2020.01.02 |
[RHEL6] 계정관리 명령어들 8탄(pwconv, su, useradd, userdel) (0) | 2020.01.02 |
댓글