2017-03-05 6 views
0

dig 쿼리 ID는 어떻게 계산 되나요? 아니면 무작위입니까?dig query id는 어떻게 작동합니까?

특히

$ dig google.co.uk 

; <<>> DiG 9.11.0-P3 <<>> google.co.uk 
;; global options: +cmd 
;; Got answer: 
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63375 

ID : 63375 의 의미는 무엇입니까? 그것이 무작위 인 경우에 그것의 점은 무엇인가?


내가 글을 쓰는 이유는 솔직히 Google에서 이에 대한 세부 정보를 찾을 수 없었기 때문입니다. 그래서 질문의 품질에 사과드립니다.

+0

그러나 그것은 귀하의 질문은 프로그래밍 질문하지 않습니다는 DNS 트랜잭션 ID - 그리고 oftopic 여기 – nos

+1

나는 내가 할 프로그램의 일부 기능에 대한 발굴을 사용하지만, 모든 항목에보고하지 않았다 발굴 결과, 그래서 나 자신을 위해서만 말하면, 이것은 실제로 프로그래밍과 직접적으로 관련이 있습니다.이 산출물은 소프트웨어가 분석 한 결과물입니다. 그래서 제게 이것은 유용한 프로그래밍 질문이었습니다. – Lizardx

답변

0

dig는 debian/gnu linux dig 기본 출력에 비해 출력이 거의없는 것 같습니다. 이는 혼란의 원인 일 수 있지만 어쨌든 괜찮은 질문입니다.

https://technet.microsoft.com/en-us/library/dd197470(v=ws.10).aspx

Query Identifier (Transaction ID) 

Set to a unique number to enable the DNS client resolver to match the response to the query. 

이 출력이 터치 더 명확합니다. 보시다시피, 'id'는 DNS 서버의 '응답'에 있습니다. 그리고 놀랍게도 반환 된 값과 사용 된 값의 관점에서 technet 기사를 살펴보면 위의 내용이 'id'의 의미 일 가능성이 높다는 것을 알 수 있습니다. 그렇지 않은 경우 누군가가이를 수정하게됩니다.

Zytrax가 더 명확한 경우 쿼리 ID는 요청하는 것으로 생성되며 16 비트 숫자입니다. 그래서 dig가 그것을 생성하고, dns 서버는 그것을 dig로 돌려 보내서 실제로 요청과 응답이 일치하는지 확인합니다. http://www.zytrax.com/books/dns/ch15/

Message ID 16 bit message ID supplied by the requestion (the questioner) and reflected back unchanged by the responder (answerer). Identifies the transaction. 

은 그래서 ID가, 파고,이 경우에, 무작위로 생성 된 것입니다. 나는 이것을 시험해 보았습니다. 사실, 그렇습니다. 0과 2를 가정하는 사이의 임의의 숫자입니다.^16 (65536). 단지 5 번, 10 번 발굴 요청에서 500과 62000 사이의 값을 얻었습니다. 이는 무작위로 번호 생성을 통해 예상되는 값입니다.

dig google.co.uk 
; <<>> DiG 9.10.3-P4-Debian <<>> google.co.uk 
;; global options: +cmd 
;; Got answer: 
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56947 
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 

;; OPT PSEUDOSECTION: 
; EDNS: version: 0, flags:; udp: 512 
;; QUESTION SECTION: 
;google.co.uk.   IN A 

;; ANSWER SECTION: 
google.co.uk.  300 IN A 172.217.6.35 

;; Query time: 34 msec 
;; SERVER: 68.87.76.178#53(68.87.76.178) 
;; WHEN: Sun Mar 05 10:59:13 PST 2017 
;; MSG SIZE rcvd: 57 

이것은 데비안의 기본 설정입니다.

이 설명이 맞는지 확인하기 위해 다시 dig 요청을 실행했습니다. 보시다시피, ID가 다시 변경되었습니다. 즉, 실제로 technet dns 구문 기사에서 말한 것과 정확히 일치하는 무작위 응답 ID가 쿼리를 응답에 바인드하는 데 도움이되므로 가장 적합한 ID를 얻습니다. 분명히 하나의 요청이 하나의 대답과 일치하도록하기 위해 충분히 큰 숫자 일 필요는 없습니다.

dig google.co.uk 

; <<>> DiG 9.10.3-P4-Debian <<>> google.co.uk 
;; global options: +cmd 
;; Got answer: 
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29674 
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 

;; OPT PSEUDOSECTION: 
; EDNS: version: 0, flags:; udp: 512 
;; QUESTION SECTION: 
;google.co.uk.   IN A 

;; ANSWER SECTION: 
google.co.uk.  260 IN A 172.217.6.35 

;; Query time: 12 msec 
;; SERVER: 68.87.76.178#53(68.87.76.178) 
;; WHEN: Sun Mar 05 11:05:04 PST 2017 
;; MSG SIZE rcvd: 57 
+0

쿼리 ID에만 관심이 있었기 때문에 나머지 출력을 삭제했습니다. (내 결과물은 마지막 것이 었습니다). 명확히 해주셔서 감사합니다! – Mark

+0

질문 해 주셔서 감사합니다. 이 출력을 프로그램에서 사용하지만 실제로 구문을 완전히 읽지는 않았으므로이를 수행하기위한 좋은 변명이었습니다. – Lizardx

관련 문제