필자에게 메일을 보내기 전에 아래 내용을 읽어 주길 바란다.
여러분은 어뚱한 HOWTO를 읽고 있다. bind-4에 관한 HOWTO는 http://www.math.uio.no/~janl/DNS/에서 찾을 수 있다.
힌트: `forwarders', `slave', 그리고 이 HOWTO의 마지막에 있는
참고 문헌들을 살펴 보기 바란다.
캐시 전용 네임 서버 절의 예에서
제안한 것처럼 named.conf
파일의 옵션 부분에 아래 코드가 필요한
경우도 있다.
query-source port 53;
www.busy.site와 주소를 매핑하는 A 레코드를 여러 개 만든다. 그리고 bind는 4.9.3 또는 그 이후 버젼을 사용해야 한다. 그러면 bind가 알아서 www.busy.site에 매핑된 주소를 하나씩 차례로 응답할 것이다. 그 이전 버전의 bind에서는 이렇게 작동하지 않을 것이다.
root.hints 파일은 빼고 존 파일만 사용한다. 이것은 또한 항상 새로운 hint 파일을 가져올 필요가 없음을 뜻한다.
만약 primary 서버의 주소가 127.0.0.1이라면 secondary 서버의 named.conf 파일에 다음과 같이 입력한다.
zone "linux.bogus" { type slave; file "sz/linux.bogus"; masters { 127.0.0.1; }; };
여기에 마스터 서버 여러 개를 ';' (세미콜론)으로 분리하여 나열하면, 여러 서버로부터 linux.bogus의 설정을 복사하게 된다. 물론 여기에 나열하는 마스터 서버에는 linux.bogus가 설정되어 있어야 한다.
이 주제에 관한 해답(설명)은 두 가지가 있다.
나는 'Masquerading'을 사용하는 컴퓨터에서 named를 운영한다. 나는
root.hints 파일을 두개 사용한다. 실제 루트 네임 서버의 이름들을 가진
root.hints.real과 아래와 같은 내용의 root.hints.fake를 사용한다.
----
; root.hints.fake
; this file contains no information
----
네트웍과 연결이 끊어질 때 root.hints.fake 파일을 root.hints로 복사하고 named를
재시작한다.
네트웍과 연결될 때는 root.hints.real 파일을 root.hints로 복사하고 named
를재시작한다.
ip-down과 ip-up이라는 스크립트를 각각 만들어서 사용한다.
네트웍과 단절되었을 때 named에 상세한 정보가 없는 도메인
네임에 관해 쿼리를 보내면 messages 파일에 같은 내용을 기록한다.
Jan 28 20:10:11 hazchem named[10147]: No root nameserver for class IN
이상이 내가 사용하는 것이다.
확실히 나에게는 제대로 작동하는 것 같다. 나는 네트웍과 단절되었을 때도 지역
컴퓨터을 위한 네임서버를 외부의 도메인 네임으로 인한 타임아웃 지연 없이
사용할 수 있다. 그리고 네트웍과 연결된 동안에는 일반적인 외부 도메인에 대한
쿼리를 실행할 수 있다.
가끔 모뎀으로 인터넷에 접속하는 모든 컴퓨터에 named를
운영하고 있다. 네임 서버는 캐시 전용 서버로만 작동하며,
인증 영역이 없어서 모든 쿼리를 root.cache 파일에 명시된 네임 서버(들)에게
질의한다. 그리고 named는 nfsd와 mountd가 기동하기 전에 시작하는데, 이 방식은
슬랙웨어에서는 일반적이다.
LAN에 연결된 다른 컴퓨터가 내 컴퓨터 중 하나(Libretto 30 노트북)를 가끔
마운트하지 못하는 문제가 있었다. 그런데 그 가끔이 실제로는 대부분이었다.
이러한 현상은 PLIP, PCMCIA 랜카드, 시리얼 인터페이스를 통한 PPP 모두에서
일어나는 공통적인 현상이 었다.
몇 시간 동안 생각하고 실험을 거친 후에, 부팅될 때 named가 nfsd와 mountd의
등록 과정과 뒤죽박죽이 되어서 포트매퍼에 등록되었기 때문에 이런 문제가
생긴다는 것을 알았다. (나는 보통 이 데몬들을 부틸할 때 실행한다.)
nfsd와 mountd를 먼저 실행한 다음 named를 실행하니 이러한 문제가 없어졌다.
부팅 순서를 위와 같이 바꾸어도 그로 인한 아무런 문제가 생기지 않으니, 모두들
이렇게 바꾸어서 잠재적인 문제점을 해결해 두는 것이 좋을 것 같다.
캐시된 정보는 모두 메모리에 저장된다. 디스크에는 기록되지 않는다. named를 죽일 때마다 캐시는 사라진다. 캐시 정보는 어떤 방법으로든 제어할 수 없다. named는 어떤 간단한 규칙에 따라 캐시를 다루는데 다음과 같다. 어떤 목적으로든 캐시 정보나 캐시 크기를 제어할 방법은 없다. 그러고 싶다면 named를 해킹해서 수정하면 된다. 그러나 권하지는 않는다.
없다. named는 멈출 때 캐시를 저장하지 않는다. 즉, named가 멈추었다가 다시 시작할 때마다 캐시는 새로 만들어 진다. named로 하여금 캐시를 파일로 저장하게 할 수는 없다. 그러고 싶다면 named를 해킹해서 수정하면 된다. 그러나 권하지는 않는다.