10. 질문과 답변

솔찍히 이해가 안가는 부분이 많은 부분입니다. 원문도 같이 살펴봐 주세요. 우선 나에게 메일 보내기 전에 이부분을 읽기를 바란다.

  1. 내 네임서버가 named.boot를 찾고 있어요.

    이 HOWTO문서를 제대로 읽지 않은 경우이다. 이전 버젼인 BIND 4의 HOWTO를 보려면 아래를 참고하라. http://www.math.uio.no/~janl/DNS/

  2. 방화벽 안에 있는 DNS를 사용하는 방법은?

    A hint: forward only;forward 밖에 없다.;. 또한

      query-source port 53;
      

    named.conf의 "option" 부분안에 넣으면 된다. caching 부분에 기술했었다.

  3. 예를들어 www.busy.site같이 어떻게 해야 부하를 효과적이거나 비슷하게 유지하면서 DNS를 돌릴수 있는지?

    www.busy.site에 맞는 A 레코드를 사용하고 BIND 4.9.3 이나 그 이후 버젼을 사용하라. 그러면 BIND 가 알아서 돌면서 질의를 답해줄 것이며 이전 버젼에서는 작동하지 않을 것이다.

  4. 인트라넷에(외부와 단절된) DNS 를 설정하고자 합니다. 뭘 해야 하는지?

    root.hints 파일을 제외하고 zone파일을 만들어라. 이것은 항상 새 hints 파일을 갱신할 필요가 없다는 이야기이다.

  5. 2차(slave) 네임서버를 어떻게 설정합니까?

    만약에 1차 네임서버(primary/master)가 127.0.0.1 이면 당신의 2차 네임서버의 named.conf에 다음을 추가하면 된다.

      zone "linux.bogus" {
    	type slave;
    	file "sz/linux.bogus";
    	masters { 127.0.0.1; };
      };
      

    masters 부분에 ';' (semicolon)으로 구분해서 여러 대체 master를 넣으면 그것도 같이 복사가 된다.

  6. 넷상의 접속을 끊고 나서도 BIND가 구동되게 하고 싶다면.

    4가지 방법이 있다.

    • BIND 8을 특별화하기, Adam L Rice가 내게 다이얼업 컴퓨터에서 DNS를 문제없이 사용하는 방법을 email로 알려왔다.
      나는 새 BIND 버젼에서 [<em/shuffeling files, -ed/] 이 더이상 필요하지 않다는 
      것을 알았다. "forwarders"를 포함한 "forward" 로 어떻게 이것을 통제하는지를 알았다. 
      기본설정은 "forward first"로 이것은 각각의 forwarders들에게 질의를 하고, 이것이 
      실패하면 일반적으로 자신을 철저하게 조사한다. 이것은 gethostbyname()와 유사한 
      결과를 주며 일반적으로 링크가 안될 때 오랜 시간을 허비한다.그러나 "forward only" 가 
      설정되면, forwarders로 부터 응답이 없을 경우 바로 포기를 하고 gethostbyname() 로 
      넘어간다. 고로 /etc파일을 솜씨있게 설정할 필요도 없고 서버를 재시작할 필요도 없다.
      
      내 경우에는 단지 몇줄만을 추가했다.
      
      forward only;
      forwarders { 193.133.58.5; };
      
      내 named.conf file에 설정했고 잘 작동된다. 이것의 단점은 단지 dump cache 상황을 
      보는 DNS 프로그램의 정확도를 낮춘다는 것이다.좀더 확장성을 갖기 위해, 이러한 dump 
      cache 프로그램을 돌리고 싶지만 리눅스에서 그다지 필요한 프로그램은 아닌 것 같다.

    • Ian Clark에게서도 편지를 받았다. 그는 그가 한 방식을 설명한다.
      나는 named를 'Masquerading'상태에서 구동한다.나는 2개의 root.hints file이 있고 
      하나는 root.hints.real로 명명했다. 이것은 실제  root server 이름을 가지고 있고 
      그리고 root.hints.fake 라 불리는 다른 파일은...
      
      ----
      ; root.hints.fake
      ; this file contains no information
      ----
      
      내가 off라인일때 나는 root.hints.fake file 를 root.hints 로 복사하고 named를 
      구동 시킨다..
      
      내가 online일때 root.hints.real 을 root.hints 로 복사하고 named를 재시작한다.
      
      
      이것은 ip-down & ip-up 일 경우 행해진다.
      
      내가 처음으로 off line 에서 질의를 했을 때 정밀하게 작동하지 않았으며 아래와 같은 
      메시지만 출력榮.
      
      Jan 28 20:10:11 hazchem named[10147]: No root nameserver for class IN
      
      which I can live with.
               
      잘 작동하는 것 같다. 외부 도메인에 대한 지연시간 없이 로컬 컴퓨터에서 네임서버를 
      운영할 수 있었으며 외부 도메인이 작동하는지 질의를 보낼 수 있었다.

      Peter Denison 은 Ian 이 충분치 못하다고 생각하고 글을 보냈다.

      연결되었을때  ) 캐쉬되어진(지역네트워크 포함) 목록은 즉시 서비스
                      캐쉬되어지지 않은 부분은 ISP의 네임서버로 포워딩된다.
      연결되지않을때) 지역네트워크 질의는 즉시 이루어짐
                      다른 질의는 즉시 실패함
      
      루트 캐쉬파일과 포워딩 질의의 변경조합은 잘 작동하지 않는다.
      
      그래서 나는 내부LUG들과 토론을 해서 2개의 nameds를 다음과 같이 만들었다:
      
      
      named-online:   forwards to ISPs nameserver
                      master for localnet zone
                      master for localnet reverse zone (1.168.192.in-addr.arpa)
                      master for 0.0.127.in-addr.arpa
                      listens on port 60053
      
      named-offline:  no forwarding
                      "fake" root cache file
                      slave for 3 local zones (master is 127.0.0.1:60053)
                      listens on port 61053
      
      그리고 이것을 포트 포워딩과 결합해서 off라인일때 port 53 부터 61053 까지 보내며 
      온라인일 경우는 port 60053 을 사용했다. (나는 2.3.18대의 새 netfilter를 사용했지만 
      옛날 (ipchains) 방식이 작동되었다.)
      
      구버젼에서는 작동하지 않고 BIND 8.2에는 약간의 버그가 있다는 것을 명심해라.
      슬레이브와 마스터가 비록 포트가 다른 경우라 해도 같은 IP를 쓰지 말아야 한다. 이것은 
      trial 버젼이며 곳 나아질 것이다.

    • Karl-Max Wanger로부터 BIND가 오프라인에서 NFS와 port mapper와 상호작용하는 법에 대한 정보를 받았다:
      나는 모뎀으로 내 nameserver를 돌리고 네임서버는 cache 네임서버의 기능만을 한다.
      인증이나 모든 root.cache file에 대한 재질의는 없다. Slackware처럼 nfsd 나 mountd
      이전에 구동된다.
      
      내 컴퓨터중 하나로 (a Libretto 30 notebook) 내 local LAN을 통해 다른 시스템에
      마운트를 할수 있는데 대부분은 그렇게 되지 않는 문제를 가지고 있다. 직렬포트에서
      작동하는 PLIP, a PCMCIA ethernet card 나 PPP 등을 무시해도 같은 결과가 나온다.
      
      계속 추측하고 실험하면서 나는 무의미한 nfsd와 mountd 등록과정이 portmapper가
      시작파일에서 실행될 때 계속 진행된다는 것을 알았다.(이러한 daemons 들을 의례히
      부트부분에 넣었다.) named 를 nfsd 와 mountd 이후에 수행하면 이러한 문제는 사라진다.
      
      이러한 boot sequence를 수정하는데 특별한 불이익은 없다.이러한 방식을 권유해서
      문제점을 방지했으면 한다.

    • 마지막으로, 이 부분에 관한 HOWTO 정보이다. Ask Mr. DNS at에서 찾아보길. BIND 4 에 대한 정보이지만 BIND 8에도 많이 적용된다고 이야기 한다.

  7. 캐쉬 전용 네임 서버는 그 캐쉬 정보를 어디에 저장하나? 캐쉬 크기를 제어할수 있는 방법은 없는가?

    캐시된 정보는 모두 메모리에 저장된다. 디스크에는 기록되지 않는다. named를 죽일 때마다 캐시는 사라진다. 캐시 정보는 어떤 방법으로든 제어할 수 없다. named는 어떤 간단한 규칙에 따라 캐시를 다루는데 다음과 같다. 어떤 목적으로든 캐시 정보나 캐시 크기를 제어할 방법은 없다. 그러고 싶다면 named를 해킹해서 수정하면 된다. 그러나 권하지는 않는다.

  8. named가 재시작되는 동안은 캐시를 저장하는가? 저장하도록 할 수 있는가?

    없다. named는 멈출 때 캐시를 저장하지 않는다. 즉, named가 멈추었다가 다시 시작할 때마다 캐시는 새로 만들어 진다. named로 하여금 캐시를 파일로 저장하게 할 수는 없다. 그러고 싶다면 named를 해킹해서 수정하면 된다. 그러나 권하지는 않는다.

  9. 어떻게 도메인을 얻어야 하고, 예를들어 linux-rules.net같은 도메인을 어떻게 구축해야 하며, 어떻게 하면 나에게 적합한 도메인을 할당할 수 있는가?

    서비스 공급업체에 연락을 해라. 이러한 부분들을 도와줄 것이다.대부분은 도메인을 얻기 위해 돈을 지불한다는 사실을 명심해라.

  10. DNS server의 보안을 높히고 DNS를 분리하는 방법은?

    둘다 진보한 주제이다. 둘다 http://www.etherboy.com/dns/chrootdns.html 에 기술 되어 있다. 여기서는 더이상 설명하지 않는다.