커피닉스, 시스템 엔지니어의 쉼터 커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
* HanIRC의 #coffeenix 방
[ 장비 및 회선 후원 ]
HOME > 네트워크(network) > 네임서버(name server, dns, bind) 도움말
검색 : 사이트 WHOIS 웹서버 종류


  DNS 질의 TimeOut의 진실은.. 작성일 : 2010/11/03 20:14
 
  • 글쓴이 : 범냉이
  • 조회수 : 8968
          [ 이전화면 / 수정 ]   비밀번호 :     인쇄용 화면
      커피닉스 채널 irc 채널(http://coffeenix.net/bbs/viewtopic.php?p=1114#1114) 에서 sCag님이 DNS 세미나에서 보니 "DNS 질의 timeout이 디폴트 값이 5초가 아니라 실지로 1초미만의 결과"가 나왔다 라는 말의 시초로 확인해 본 사항입니다.

    과연 DNS 질의 timeout이 디폴트가 5초 일까요? 1초 미만일까요? 이에 테스트를 해보았습니다.

    0. 기본 정보
    - default 값은 /usr/include/resolv.h 의 지정
    - RES_TIMEOUT  5 <-- /* min. seconds between retries */  <- 5초?
    - RES_DFLRETRY 2 <-- /* Default #/tries. */  <-- 2번?


    1. 테스트 환경

      OS : Centos 4
      도구 : dig, nslookup


    2. 테스트 내역(dig, nslookup 각각)
    1) Primary 정상, Secondary 정상
    2) Primary 비정상, Secondary 정상
    3) Primary 정상
    4) Primary 비정상


    3. 테스트 결과

    1) Primary 정상, Secondary 정상
    =========================================
    # cat /etc/resolv.conf
    serarch xxxxxxxx.com
    nameserver 58.227.193.227   <-- 하나로 캐싱?
    nameserver 164.124.101.2    <-- 파워콤?

    # time dig www.naver.com
    거두절미(특별히 결과를 적지 않고 시간만 기재합니다. )

    real    0m0.006s
    user    0m0.002s
    sys     0m0.004s
    (primary dns에서 가져온 값)

    # time nslookup www.naver.com
    이것도 거두절미(해보면 아시죠? 특별히 결과를 적을 필요는..ㅎㅎ)

    real    0m0.005s
    user    0m0.000s
    sys     0m0.005s
    (primary dns에서 가져온 값)
    ===========================================
    ** 둘다 정상적으로 잘 가져옵니다. 물론 Primary 에 정상적으로 가져온 거죠!!


    2) Primary 비정상, Secondary 정상
    =========================================
    # cat /etc/resolv.conf
    serarch xxxxxxxx.com
    nameserver xxx.xxx.xxx.xxx   <-- 아무 IP나 ㅎㅎ;
    nameserver 164.124.101.2    <-- 파워콤?

    # time dig www.naver.com
    거두절미하고

    real    0m1.010s
    user    0m0.000s
    sys     0m0.005s
    (secondary dns에서 가져온 값)


    # time nslookup www.naver.com
    거두절미

    real    0m1.009s
    user    0m0.000s
    sys     0m0.004s
    (secondary dns에서 가져온 값)
    ===========================================
    ** 1초의 Delay가 걸립니다. (몇 수십번 해봐도 딱 1초 delay가 걸립니다.)


    3) Primary 정상(primary만 지정.)
    =========================================
    # cat /etc/resolv.conf
    serarch xxxxxxxx.com
    nameserver 58.227.193.227   <-- 하나로 캐싱 서버


    # time dig www.naver.com
    거두절미

    real    0m0.006s
    user    0m0.003s
    sys     0m0.002s
    (primary dns에서 가져온 값)

    # time nslookup www.naver.com
    이것도 거두절미

    real    0m0.006s
    user    0m0.002s
    sys     0m0.003s
    (primary dns에서 가져온 값)
    ===========================================
    ** primary에서 정상적으로 잘 가져옵니다.


    4) Primary 비정상(primary 만 지정)
    =========================================
    # cat /etc/resolv.conf
    serarch xxxxxxxx.com
    nameserver xxx.xxx.xxx.xxx   <-- 아무 IP나!!


    # time dig www.naver.com
    거두절미

    real    0m15.010s
    user    0m0.001s
    sys     0m0.003s


    # time nslookup www.naver.com
    이것도 거두절미

    real    0m15.010s
    user    0m0.001s
    sys     0m0.003s
    ===========================================
    ** 15초 걸립니다. 15초나 걸립니다. 왜 15초나 걸릴까요..???
    이건 retry가 있기 때문입니다. 기다렸는데 안 되었다고 한 번만 보내는것이 아니라 몇 번 보내는것이죠. 이와 관련해서는 시간 날때 따로 올려 보겠습니다.


    4. 결론
    결론은 간단 합니다. dig, nslookup의 경우

    1. secondary가 존재하면 Primary 쿼리의 결과가 오기를 1초만 기다리고 바로 secondary로 쿼리 요청을 합니다.
    2. secondary가 존재하지 않으면? 우리가 흔히 말하는 Default 값에 충실합니다. 5초 와 retry 수에 따라 변하게 되는 것이죠.

    간단하죠?

    ** DNS 쿼리 Timeout은 사용하는 어플리케이션에 영향을 받는다는걸 기억하시면 됩니다. 다른 툴에서는 다르게 동작할 수 있습니다. 그러나, 대부분의 툴은 Primary DNS의 응답을 5초 기다리고 retry 까지 하지는 않겠죠?? Secondary가 있는데~~~


      커피닉스 카페 최근 글
    [08/18] Самое лучшее средст
    [08/12] Красивые фотографии
    [08/12] Красивые фотографии
    [08/12] Красивые фотографии
    [08/12] Красивые фотографии
    [08/10] ио€Ð¸ иг
    [08/10] €Ð¾Ð казин
    [08/09] 피부&#4
    [08/05] 피부&#4
    [08/05] 수원&#5
    [08/02] 수원&#5
    [07/16] You don't want to m
    [10/20] Cross Compiler 깔
    [07/14] SSL АО
    [04/26] Re: 도스화면 원격조종 여부
      New!   최근에 등록한 페이지
      KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
      오픈캐스케이드 캐드 (OpenCASCADE CAD)
      QCad for Windows --- GNU GPL (Free Software)
      The Hello World Collection
      IPMI를 활용한 리눅스 서버관리
      DNS 설정 검사
      nagiosgraph 설치 방법
      Slony-I 설치 방법 (postgresql replication tool)
      Qmail기반의 Anti spam 시스템 구축하기
      clusterssh

    [ 함께하는 사이트 ]




    운영진 : 좋은진호(truefeel), 야수(yasu), 범냉이, sCag
    2003년 8월 4일~