[RHEL6] 네트워크 명령어 2탄(dig, dnsdomainname, ethtool)
본문 바로가기
IT 이야기/Linux 명령어

[RHEL6] 네트워크 명령어 2탄(dig, dnsdomainname, ethtool)

by 찬찬이 아빠 2020. 1. 22.
반응형
  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이기 때문입니다.

반응형

댓글