Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

15.2.2.2. 일반적인 설명 유형

다음 유형의 설명은 /etc/named.conf 에서 일반적으로 사용됩니다:
acl
acl (Access Control List) 문을 사용하면 이름 서버에 대한 액세스를 허용하거나 거부할 수 있도록 호스트 그룹을 정의할 수 있습니다. 다음 형식을 취합니다.
acl acl-name {
  match-element;
  ...
};
acl-name 문 이름은 액세스 제어 목록의 이름이며 match-element 옵션은 일반적으로 개별 IP 주소(예: 10.0.1.1) 또는CIDR( Classless Inter-Domain Routing ) 네트워크 표기법(예: 10.0.1.0/24)입니다. 이미 정의된 키워드 목록은 표 15.2. “사전 정의된 액세스 제어 목록” 를 참조하십시오.

표 15.2. 사전 정의된 액세스 제어 목록

키워드 Description
Any 모든 IP 주소와 일치합니다.
localhost 로컬 시스템에서 사용 중인 모든 IP 주소와 일치합니다.
localnets 로컬 시스템이 연결된 모든 네트워크의 IP 주소와 일치합니다.
none IP 주소와 일치하지 않습니다.
acl 문은 옵션과 같은 다른 문과 함께 특히 유용할 수 있습니다.예 15.2. “Conjunction with Options에서 acl 사용” 는 두 가지 액세스 제어 목록인 Black-hatsred-hats 를 정의하고 차단 목록에 차단형을 추가하고 빨간색-hats의 일반 액세스를 부여합니다.

예 15.2. Conjunction with Options에서 acl 사용

acl black-hats {
  10.0.2.0/24;
  192.168.0.0/24;
  1234:5678::9abc/24;
};
acl red-hats {
  10.0.1.0/24;
};
options {
  blackhole { black-hats; };
  allow-query { red-hats; };
  allow-query-cache { red-hats; };
};
include
include 문을 사용하면 /etc/named.conf 에 파일을 포함할 수 있으므로 잠재적으로 민감한 데이터를 제한된 권한이 있는 별도의 파일에 배치할 수 있습니다. 다음 형식을 취합니다.
include "file-name"
file-name 문 이름은 파일의 절대 경로입니다.

예 15.3. /etc/named.conf에 파일 포함

include "/etc/named.rfc1912.zones";
옵션
options 문을 사용하면 글로벌 서버 구성 옵션을 정의하고 다른 문에 대한 기본값을 설정할 수 있습니다. 지정된 작업 디렉터리의 위치, 허용된 쿼리 유형 등을 지정하는 데 사용할 수 있습니다. 다음 형식을 취합니다.
options {
  option;
  ...
};
자주 사용되는 옵션 지시문 목록은 아래의 표 15.3. “일반적으로 사용되는 구성 옵션” 를 참조하십시오.

표 15.3. 일반적으로 사용되는 구성 옵션

옵션 Description
allow-query 권한 있는 리소스 레코드에 대한 이름 서버를 쿼리할 수 있는 호스트를 지정합니다. CIDR 표기법의 액세스 제어 목록, IP 주소 컬렉션 또는 네트워크를 허용합니다. 모든 호스트는 기본적으로 허용됩니다.
allow-query-cache 재귀 쿼리와 같이 신뢰할 수 없는 데이터에 대해 이름 서버를 쿼리할 수 있는 호스트를 지정합니다. 기본적으로 localhostlocalnet만 허용됩니다.
blackhole 이름 서버를 쿼리할 수 없는 호스트를 지정합니다. 이 옵션은 특정 호스트 또는 네트워크가 서버에 요청으로 급증할 때 사용해야 합니다. 기본 옵션은 none 입니다.
디렉토리 named 서비스의 작업 디렉터리를 지정합니다. 기본 옵션은 /var/named/ 입니다.
disable-empty-zone 사용되는 기본 접두사 목록에서 하나 이상의 빈 영역을 비활성화하는 데 사용됩니다. options 문 및 뷰 문에서도 지정할 수 있습니다. 여러 번 사용할 수 있습니다.
dnssec-enable DNSSEC 관련 리소스 레코드를 반환할지 여부를 지정합니다. 기본 옵션은 yes 입니다.
dnssec-validation DNSSEC를 통해 리소스 레코드를 인증할지 여부를 지정합니다. 기본 옵션은 yes 입니다.
empty-zones-enable 빈 영역이 생성되는지 여부를 제어합니다. options 문에서만 지정할 수 있습니다.
forwarders 확인을 위해 요청을 전달해야 하는 이름 서버의 유효한 IP 주소 목록을 지정합니다.
forward
forwarders 지시문의 동작을 지정합니다. 다음 옵션을 허용합니다.
  • first - 서버에서 이름 자체 확인을 시도하기 전에 forwarders 지시문에 나열된 이름 서버를 쿼리합니다.
  • only - forwarders 지시문에 나열된 이름 서버를 쿼리할 수 없으면 서버에서 이름 자체 확인을 시도하지 않습니다.
listen-on 쿼리를 수신 대기할 IPv4 네트워크 인터페이스를 지정합니다. 게이트웨이 역할을 하는 DNS 서버에서는 이 옵션을 사용하여 단일 네트워크에서만 발생하는 쿼리에 응답할 수 있습니다. 모든 IPv4 인터페이스는 기본적으로 사용됩니다.
listen-on-v6 쿼리를 수신 대기할 IPv6 네트워크 인터페이스를 지정합니다. 게이트웨이 역할을 하는 DNS 서버에서는 이 옵션을 사용하여 단일 네트워크에서만 발생하는 쿼리에 응답할 수 있습니다. 모든 IPv6 인터페이스는 기본적으로 사용됩니다.
max-cache-size 서버 캐시에 사용할 최대 메모리 양을 지정합니다. 제한에 도달하면 서버에서 레코드가 조기 만료되도록 하여 제한이 초과되지 않도록 합니다. 여러 뷰가 있는 서버에서 제한은 각 뷰의 캐시에 별도로 적용됩니다. 기본 옵션은 32M 입니다.
알림
영역이 업데이트될 때 보조 이름 서버에 알릴지 여부를 지정합니다. 다음 옵션을 허용합니다.
  • - 서버는 모든 보조 이름 서버에 알립니다.
  • 아니요 - 서버가 보조 이름 서버에 알리지 않습니다.
  • master-only - 서버가 영역에 대해 기본 서버에만 알립니다.
  • 명시적 - 서버는 zone 문 내에 지정된 보조 서버만 알립니다.
pid-file named 서비스에서 생성한 프로세스 ID 파일의 위치를 지정합니다.
재귀 재귀적 서버로 사용할지 여부를 지정합니다. 기본 옵션은 yes 입니다.
statistics-file 통계 파일의 대체 위치를 지정합니다. 기본적으로 /var/named/named.stats 파일이 사용됩니다.
참고
에서 런타임 데이터에 대해 명명된 디렉터리가 BIND 기본 위치인 /var/run/named/ 에서 새 위치 /run/named/ 로 이동되었습니다. 그 결과 PID 파일이 기본 위치 /var/run/named/named.pid 에서 새 위치 /run/named/named.pid 로 이동되었습니다. 또한 session-key 파일이 /run/named/session.key 로 이동되었습니다. 이러한 위치는 options 섹션의 문에 의해 지정해야 합니다. 예 15.4. “옵션 문 사용” 의 내용을 참조하십시오.
중요
DDoS(분산 서비스 거부) 공격을 방지하려면 allow-query-cache 옵션을 사용하여 클라이언트의 특정 하위 집합에 대해서만 재귀적 DNS 서비스를 제한하는 것이 좋습니다.
사용 가능한 옵션의 전체 목록은 15.2.8.1절. “설치된 문서” 에서 참조한 BIND 9 관리자 참조 설명서와 named.conf 도움말 페이지를 참조하십시오.

예 15.4. 옵션 문 사용

options {
  allow-query       { localhost; };
  listen-on port    53 { 127.0.0.1; };
  listen-on-v6 port 53 { ::1; };
  max-cache-size    256M;
  directory         "/var/named";
  statistics-file   "/var/named/data/named_stats.txt";

  recursion         yes;
  dnssec-enable     yes;
  dnssec-validation yes;

  pid-file          "/run/named/named.pid";
  session-keyfile   "/run/named/session.key";
};
영역
zone 문을 사용하면 구성 파일 및 영역별 옵션의 위치와 같은 영역의 특성을 정의할 수 있으며 글로벌 옵션 문을 재정의하는 데 사용할 수 있습니다. 다음 형식을 취합니다.
zone zone-name [zone-class] {
  option;
  ...
};
zone-name 특성은 영역 이름이고 zone-class 는 영역의 선택적 클래스이며 옵션은 표 15.4. “일반적으로 영역 문에 사용되는 옵션” 에 설명된 zone 문 옵션입니다.
zone-name 특성은 /var/named/ 디렉터리에 있는 해당 영역 파일 내에서 사용되는 $ORIGIN 지시문에 할당된 기본값이므로 특히 중요합니다. 명명된 데몬은 영역 파일에 나열된 정규화된 도메인 이름에 영역 이름을 추가합니다. 예를 들어 zone 문에서 example .com 의 네임스페이스를 정의하는 경우 example.com이 example.com 영역 파일 내에 있는 호스트 이름의 끝에 배치되도록 example.comzone-name 으로 사용합니다.
영역 파일에 대한 자세한 내용은 15.2.3절. “영역 파일 편집” 을 참조하십시오.

표 15.4. 일반적으로 영역 문에 사용되는 옵션

옵션 Description
allow-query 이 영역에 대한 정보를 요청할 수 있는 클라이언트를 지정합니다. 이 옵션은 글로벌 allow-query 옵션을 재정의합니다. 모든 쿼리 요청은 기본적으로 허용됩니다.
allow-transfer 영역의 정보 전송을 요청할 수 있는 보조 서버를 지정합니다. 모든 전송 요청은 기본적으로 허용됩니다.
allow-update
영역의 정보를 동적으로 업데이트할 수 있는 호스트를 지정합니다. 기본 옵션은 모든 동적 업데이트 요청을 거부하는 것입니다.
호스트에서 해당 영역에 대한 정보를 업데이트할 수 있도록 하는 경우 주의해야 합니다. 서버가 신뢰할 수 있는 네트워크에 있지 않은 한 이 옵션에서 IP 주소를 설정하지 마십시오. 대신 15.2.6.3절. “트랜잭션 SIGnatures(TSIG)” 에 설명된 TSIG 키를 사용합니다.
파일 영역의 구성 데이터를 포함하는 명명된 작업 디렉터리의 파일 이름을 지정합니다.
masters 권한 있는 영역 정보를 요청할 IP 주소를 지정합니다. 이 옵션은 영역이 유형 슬레이브 로 정의된 경우에만 사용됩니다.
알림
영역이 업데이트될 때 보조 이름 서버에 알릴지 여부를 지정합니다. 다음 옵션을 허용합니다.
  • - 서버는 모든 보조 이름 서버에 알립니다.
  • 아니요 - 서버가 보조 이름 서버에 알리지 않습니다.
  • master-only - 서버가 영역에 대해 기본 서버에만 알립니다.
  • 명시적 - 서버는 zone 문 내에 지정된 보조 서버만 알립니다.
type
영역 유형을 지정합니다. 다음 옵션을 허용합니다.
  • 위임 전용 - COM, NET 또는 ORG와 같은 인프라 영역의 위임 상태를 적용합니다. 명시적 또는 암시적 위임 없이 수신되는 모든 응답은 NXDOMAIN 으로 처리됩니다. 이 옵션은 재귀 또는 캐싱 구현에 사용되는 TLD(Top-Level Domain) 또는 루트 영역 파일에서만 적용할 수 있습니다.
  • forward - 이 영역에 대한 모든 정보 요청을 다른 이름 서버로 전달합니다.
  • 힌트 - 영역을 별도로 알 수 없을 때 쿼리를 확인하는 루트 이름 서버를 가리키는 데 사용되는 특수 영역 유형입니다. 힌트 영역을 사용하여 기본값 이외의 구성이 필요하지 않습니다.
  • master - 이 영역에 대한 인가로 이름 서버를 지정합니다. 영역의 구성 파일이 시스템에 있는 경우 영역을 마스터 로 설정해야 합니다.
  • slave - 이름 서버를 이 영역의 보조 서버로 설계합니다. 기본 서버는 masters 지시문에 지정되어 있습니다.
기본 또는 보조 이름 서버의 /etc/named.conf 파일에 대한 대부분의 변경 사항에는 영역 명령문 추가, 수정 또는 삭제가 포함되며 일반적으로 이름 서버가 효율적으로 작동하려면 영역 명령문 옵션의 작은 하위 집합만 필요합니다.
예 15.5. “기본 이름 서버에 대한 영역 설명” 에서 영역이 example.com 으로 식별되고 유형은 master 로 설정되며 named 서비스는 /var/named/example.com.zone 파일을 읽도록 지시됩니다. 또한 보조 이름 서버(192.168.0.2)만 영역을 전송할 수있습니다.

예 15.5. 기본 이름 서버에 대한 영역 설명

zone "example.com" IN {
  type master;
  file "example.com.zone";
  allow-transfer { 192.168.0.2; };
};
보조 서버의 zone 문은 약간 다릅니다. 유형은 슬레이브 로 설정되며 masters 지시문은 기본 서버의 IP 주소 이름을 알리는 것입니다.
예 15.6. “보조 이름 서버에 대한 영역 설명” 에서 명명된 서비스는 example.com 영역에 대한 정보를 위해 192.168.0.1 IP 주소에 있는 기본 서버를 쿼리하도록 구성됩니다. 그런 다음, 수신된 정보는 /var/named/slaves/example.com.zone 파일에 저장됩니다. /var/named/slaves/ 디렉터리의 모든 보조 영역을 배치해야 합니다. 그러지 않으면 서비스가 영역을 전송하지 못합니다.

예 15.6. 보조 이름 서버에 대한 영역 설명

zone "example.com" {
  type slave;
  file "slaves/example.com.zone";
  masters { 192.168.0.1; };
};