Linux에서 dig 명령을 사용하는 방법

그 부분을 분석해 봅시다.

; > DiG 9.11.3-1ubuntu1.11-Ubuntu > wdzwdz.com ;; 전역 옵션: +cmd ;; 답변을 받았습니다: ;; ->>헤더

이제 이 모든 것이 의미하는 바는 다음과 같습니다.

첫 번째 줄: dig 버전 및 쿼리된 도메인입니다.
전역 옵션: 앞으로 살펴보겠지만 dig를 사용하여 여러 도메인을 동시에 쿼리할 수 있습니다. 이 줄은 모든 도메인 쿼리에 적용된 옵션을 보여줍니다. 우리의 간단한 예에서는 기본 +cmd(명령) 옵션일 뿐입니다.
Opcode: 쿼리: 요청된 작업 유형이며 이 경우 쿼리였습니다. 이 값은 역 쿼리의 경우 쿼리일 수도 있고 DNS 시스템의 상태를 테스트하는 경우 상태일 수도 있습니다.
상태: 오류 없음: 오류가 없고 요청이 올바르게 해결되었습니다.
ID: 12017: 이 임의의 ID는 요청과 응답을 함께 묶습니다.
플래그: qr rd ra: 쿼리, 원하는 재귀, 사용 가능한 재귀를 나타냅니다. 재귀는 DNS 조회의 한 형태입니다(다른 하나는 반복적임). 또한 AA(Authoritative Answer의 약자)가 표시될 수 있습니다. 이는 신뢰할 수 있는 이름 서버가 응답을 제공했음을 의미합니다.
쿼리: 1: 이 세션의 쿼리 수(1개)입니다.
답변: 4: 이 응답의 답변 수는 4입니다.
Authority: 0: 이 경우 0인 Authoritative Name Server에서 온 응답의 수입니다. DNS 전구체 서버의 캐시에서 응답이 반환되었습니다. 응답에는 권위 있는 섹션이 없습니다.
추가: 1: 추가 정보가 하나 있습니다. (이상하게도 이 값이 2 이상이 아니면 아무것도 나열되지 않습니다.)

의사 섹션 선택

다음으로 Opt Pseudosection에서 다음을 볼 수 있습니다.

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494

이를 분해해 보겠습니다.

EDNS: 버전 0: 버전 DNS용 확장 시스템 사용중입니다. EDNS는 크기를 확장하여 확장된 데이터와 플래그를 전송합니다. 사용자 데이터그램 프로토콜 (UDP) 패킷. 이것은 가변 크기 플래그로 표시됩니다.
flags: 사용 중인 플래그가 없습니다.
udp: 4096: UDP 패킷 크기입니다.

질문 섹션

질문 섹션에는 다음이 표시됩니다.

;; QUESTION SECTION:
;wdzwdz.com. IN A

이것이 의미하는 바는 다음과 같습니다.

wdzwdz.com: 쿼리 중인 도메인 이름입니다.
IN: 우리는 인터넷 수업 쿼리를 만들고 있습니다.
A: 달리 지정하지 않는 한 dig는 DNS 서버에서 A(주소) 레코드를 요청합니다.

  Nintendo Switch 스크린샷을 스마트폰으로 무선으로 전송하는 방법

답변 섹션

답변 섹션에는 DNS 서버에서 받은 다음 네 가지 답변이 포함되어 있습니다.

wdzwdz.com. 3551 IN A 151.101.194.217
wdzwdz.com. 3551 IN A 151.101.130.217
wdzwdz.com. 3551 IN A 151.101.66.217
wdzwdz.com. 3551 IN A 151.101.2.217

다음은 이러한 답변의 의미입니다.

3551: TTL(Time to Live)은 레코드를 캐시할 수 있는 시간 간격을 보유하는 32비트 부호 있는 정수입니다. 만료되면 DNS 서버에서 데이터를 새로 고칠 때까지 요청에 대한 응답으로 데이터를 사용해야 합니다.
IN: 우리는 인터넷 클래스 쿼리를 만들었습니다.
A: DNS 서버에서 A 레코드를 요청했습니다.

통계 섹션

통계는 마지막 섹션이며 다음 정보를 포함합니다.

;; Query time: 0 msec 
;; SERVER: 127.0.0.53#53(127.0.0.53) 
;; WHEN: Sun Mar 22 07:44:37 EDT 2020 
;; MSG SIZE rcvd: 106

여기 우리가 가진 것이 있습니다:

쿼리 시간: 0 msec: 응답을 받는 데 걸린 시간입니다.
SERVER: 127.0.0.53#53(127.0.0.53): 응답한 DNS 서버의 IP 주소와 포트 번호입니다. 이 경우 로컬 캐싱 스텁 해석기를 가리키고 있습니다. 이렇게 하면 구성된 업스트림 DNS 서버로 DNS 요청이 전달됩니다. Manajro 테스트 컴퓨터에서 여기에 나열된 주소는 8.8.8.8#53입니다. Google의 공개 DNS 서비스.
언제: 2020년 3월 22일 일요일 07:44:37 EDT: 요청이 이루어졌을 때.
MSG SIZE rcvd: 106: DNS 서버에서 받은 메시지의 크기.

선택적이기

입술이 다물고 수다스럽다는 두 가지 극단에 안주할 필요는 없습니다. dig 명령을 사용하면 결과에서 섹션을 선택적으로 포함하거나 제외할 수 있습니다.

다음 쿼리 옵션은 결과에서 해당 섹션을 제거합니다.

+nocomments: 주석 줄을 표시하지 않습니다.
+noauthority: 권한 섹션을 표시하지 않습니다.
+noadditional: 추가 섹션을 표시하지 않습니다.
+nostats: 통계 섹션을 표시하지 않습니다.
+noanswer: 답변 섹션을 표시하지 않습니다.
+noall: 아무것도 보여주지 마세요!

+noall 쿼리 옵션은 일반적으로 결과에 섹션을 포함하기 위해 위의 옵션 중 하나와 결합됩니다. 따라서 여러 섹션을 끄기 위해 긴 쿼리 옵션 문자열을 입력하는 대신 +noall을 사용하여 모든 섹션을 끌 수 있습니다.

그런 다음 다음 포괄적인 쿼리 옵션을 사용하여 다시 보고 싶은 옵션을 켤 수 있습니다.

+comments: 코멘트 라인을 보여줍니다.
+authority: 권한 섹션을 표시합니다.
+additional: 추가 섹션을 표시합니다.
+stats: 통계 섹션을 표시합니다.
+answer: 답변 섹션을 표시합니다.
+all: 모든 것을 보여줍니다.

다음을 입력하여 요청하고 주석 줄을 제외합니다.

dig wdzwdz.com +nocomments

그만큼

아래와 같이 +noall 쿼리 옵션을 단독으로 사용하면 유용한 출력을 얻을 수 없습니다.

dig wdzwdz.com +noall

그만큼

보고 싶은 섹션을 선택적으로 추가할 수 있습니다. 답변 섹션을 추가하려면 다음을 입력합니다.

dig wdzwdz.com +noall +answer

그만큼

+stats를 켜기 위해 다음을 입력하면 통계 섹션도 표시됩니다.

dig wdzwdz.com +noall +answer +stats

그만큼

+noall +answer 조합이 자주 사용됩니다. 필요에 따라 명령줄에 다른 섹션을 추가할 수 있습니다. dig를 사용할 때마다 명령줄에 +noall +answer를 입력하지 않으려면 “.digrc”라는 구성 파일에 넣을 수 있습니다. 홈 디렉토리에 있습니다.

  Intel Mac vs. Apple Silicon ARM Mac: 무엇을 사야 할까요?

echo로 생성하기 위해 다음을 입력합니다:

echo "+noall +answer" > $HOME/.digrc

그런 다음 다음을 입력하여 내용을 확인할 수 있습니다.

cat .digrc

그만큼 터미널 창에서 $HOME/.digrc” 및 “cat .digrc” 명령.” 너비=”646″ 높이=”122″ >

이 두 옵션은 이제 아래와 같이 dig의 모든 향후 사용에 적용됩니다.

dig ubuntu.org
dig linux.org
dig github.com

이 dig 구성 파일은 이 문서의 나머지 예제에 사용됩니다.

DNS 레코드

발굴 요청에 반환된 정보는 DNS 서버에 보관된 다양한 유형의 레코드에서 가져옵니다. 다른 것을 요구하지 않는 한 dig는 A(주소) 레코드를 쿼리합니다. 다음은 dig와 함께 일반적으로 사용되는 레코드 유형입니다.

A 레코드: 도메인을 IP 버전 4 주소에 연결합니다.
MX 레코드: 메일 교환 레코드는 도메인으로 보낸 이메일을 올바른 메일 서버로 보냅니다.
NS 레코드: 네임 서버 레코드는 도메인(또는 하위 도메인)을 DNS 서버 세트에 위임합니다.
TXT 레코드: 텍스트 레코드는 도메인에 관한 텍스트 기반 정보를 저장합니다. 일반적으로 스푸핑되거나 위조된 이메일을 억제하는 데 사용될 수 있습니다.
SOA 레코드: 전거 레코드의 시작은 도메인에 대한 많은 정보를 보유할 수 있습니다. 여기에서 기본 이름 서버, 책임 당사자, 변경에 대한 타임스탬프, 영역 새로 고침 빈도, 재시도 및 포기에 대한 일련의 시간 제한을 찾을 수 있습니다.
TTL: TTL은 DNS 전구체 서버가 각 DNS 쿼리를 캐시할 수 있는 기간을 지정하는 각 DNS 레코드의 설정입니다. 해당 시간이 만료되면 후속 요청을 위해 데이터를 새로 고쳐야 합니다.
ANY: 이것은 가능한 모든 유형의 DNS 레코드를 반환하도록 dig에 지시합니다.

A 레코드 유형을 지정하면 아래와 같이 주소 레코드를 쿼리하고 IP 주소를 얻는 기본 작업이 변경되지 않습니다.

dig redhat.com A

그만큼

메일 교환 기록을 조회하기 위해 다음 MX 플래그를 사용합니다.

dig yahoo.com MX

그만큼

이름 서버 플래그는 최상위 도메인과 연결된 루트 이름 서버의 다음 이름을 반환합니다.

dig fedora.com NS

그만큼

전거 레코드의 시작을 조회하기 위해 다음 SOA 플래그를 입력합니다.

dig manjaro.com SOA

그만큼

TTL 플래그는 DNS 서버 캐시에 있는 데이터의 TTL(Time to Live)을 보여줍니다. 일련의 요청을 수행하면 TTL(Time to Live)이 아무것도 아닌 것으로 감소한 다음 시작 값으로 다시 이동합니다.

  Android에서 앱의 앱 캐시를 삭제하는 방법

다음을 입력합니다.

dig usa.gov TTL

그만큼

텍스트 레코드를 보려면 TX 플래그를 입력합니다.

dig usa.gov TXT

그만큼

DNS 서버 지정

요청에 특정 DNS 서버를 사용하려는 경우 at 기호(@)를 사용하여 명령줄 매개변수로 dig에 전달할 수 있습니다.

기본 DNS 서버(아래 참조)에서 dig는 127.0.0.53의 로컬 캐싱 스텁 확인자를 참조합니다.

dig usa.gov +stats

이제 8.8.8.8에서 Google의 공개 DNS 서버를 사용하기 위해 다음을 입력합니다.

dig @8.8.8.8 usa.gov +stats

그만큼

여러 도메인에서 dig 사용

아래와 같이 명령줄에서 dig를 위해 여러 도메인을 전달할 수 있습니다.

dig ubuntu.org fedora.org manjaro.com

그만큼

정기적으로 도메인 집합을 확인하면 텍스트 파일에 저장하고 dig에 전달할 수 있습니다. 파일의 모든 도메인이 차례로 확인됩니다.

파일 이름은 “domains.txt”입니다. cat을 사용하여 내용을 표시한 다음 -f(파일) 옵션을 사용하여 dig에 전달합니다. 다음을 입력합니다.

cat domains.txt
dig -f domains.txt

그만큼

역방향 DNS 조회

IP 주소가 있고 주소가 어디로 가는지 알고 싶다면 역방향 DNS 조회를 시도할 수 있습니다. DNS 서버에 등록된 서버로 확인되면 해당 도메인을 찾을 수 있습니다.

가능 여부는 PTR(포인터 레코드)의 존재 여부에 달려 있습니다. PTR은 IP 주소를 정규화된 도메인 이름. 그러나 필수 항목이 아니기 때문에 도메인에 항상 존재하는 것은 아닙니다.

IP 주소 209.51.188.148이 우리를 어디로 데려가는지 알아봅시다. -x(역방향 조회) 옵션을 사용하여 다음을 입력합니다.

dig -x 209.51.188.148

그만큼

프레스토 악장! IP 주소는 gnu.org로 확인됩니다.

PTR은 DNS 레코드이고 dig가 지정된 DNS 레코드를 요청할 수 있다는 것을 알고 있기 때문에 dig에 PTR을 검색하도록 요청할 수 없습니까? 예, 할 수 있지만 작업이 조금 더 필요합니다.

아래와 같이 IP 주소를 역순으로 제공하고 끝에 .in-addr.arpa를 붙여야 합니다.

dig ptr 148.188.51.209.in-addr.arpa

그만큼

우리는 같은 결과를 얻습니다. 조금 더 노력했을 뿐입니다.

당신은 그것을 파낼 수 있습니까?

우리 모두는 매일 인터넷을 사용하며 호기심 많은 사람들은 종종 우리가 브라우저에 웹사이트 이름을 입력할 때 마술이 어떻게 일어나는지 궁금해합니다. dig를 사용하면 네트워크 구성 프로세스를 탐색할 수 있습니다.