15장. DNS 서버
DNS
(Domain Name System)는 호스트 이름을 해당 IP
주소와 연결하는 데 사용되는 분산 데이터베이스 시스템입니다. 사용자의 경우 네트워크상의 시스템을 숫자 네트워크 주소보다 일반적으로 기억하기 쉬운 이름으로 참조할 수 있다는 이점이 있습니다. 이름 서버라고도 하는 DNS
서버를 사용하면 이름 기반 쿼리에 영향을 주지 않고 호스트의 IP
주소를 변경할 수 있습니다. DNS
데이터베이스를 사용하는 것은 도메인 이름에 대한 IP
주소를 확인하는 것뿐만 아니라 DNSSEC가 배포됨에 따라 그 사용이 보다 광범위하게 사용되고 있습니다.
15.1. DNS 소개
DNS
는 일반적으로 특정 도메인에 대해 권한이 있는 하나 이상의 중앙 집중식 서버를 사용하여 구현됩니다. 클라이언트 호스트가 이름 서버에서 정보를 요청하면 일반적으로 포트 53에 연결됩니다. 그런 다음 이름 서버에서 요청된 이름을 확인하려고 시도합니다. 이름 서버가 재귀적 이름 서버로 구성되어 있고 신뢰할 수 있는 답변이 없거나 이전 쿼리에서 캐시된 응답이 없는 경우 다른 이름 서버를 쿼리하여 루트 이름 서버 라고 하는 이름 서버를 쿼리한 다음 요청된 이름을 가져오도록 쿼리합니다. 재귀가 비활성화된 상태에서만 권한 있는 것으로 구성된 이름 서버는 클라이언트를 대신하여 조회를 수행하지 않습니다.
15.1.1. 이름 서버 영역
DNS
서버에서 모든 정보는RR( 리소스 레코드 )이라는 기본 데이터 요소에 저장됩니다. 리소스 레코드는 RFC 1034 에 정의됩니다. 도메인 이름은 트리 구조로 구성됩니다. 계층 구조의 각 수준은 마침표(.)로 나뉩니다.
예를 들어 다음과 같습니다. 로 표시된 루트 도메인 은
DNS
트리의 루트이며, 수준 0에 있습니다. 최상위 도메인(TLD)이라고 하는 도메인 이름 com
은 계층 구조의 첫 번째 수준 이므로 루트 도메인(.
)의 하위입니다. 도메인 이름 example.com
은 계층 구조의 두 번째 수준에 있습니다.
예 15.1. 간단한 리소스 레코드
간단한 리소스 레코드 (RR)의 예.
example.com. 86400 IN A 192.0.2.1
도메인 이름
example.com
은 RR의 소유자 입니다. 86400
값은TTL( Time to live )입니다. 문자 IN
“(인터넷 시스템” )은 RR 클래스 를 나타냅니다. 문자 A
는 RR의 유형을 나타냅니다(이 예에서 호스트 주소). 호스트 주소 192.0.2.1
은 이 RR의 마지막 섹션에 포함된 데이터입니다. 이 한 줄 예제는 RR입니다. 동일한 유형, 소유자 및 클래스가 있는 RR 집합을 리소스 레코드 집합 (RRSet)이라고 합니다.
영역은 영역 파일을 사용하여 권한 있는 이름 서버에 정의되며 각 영역 의 리소스 레코드 정의가 포함됩니다. 영역 파일은 기본 이름 서버 (마스터 이름 서버라고도 함)에 저장되며, 여기에서 변경 사항이 파일의 변경 사항 및 기본 이름 서버에서 영역 정의를 수신하는 보조 이름 서버(컨트롤러 이름 서버라고도 함)에 저장됩니다. 기본 이름 서버와 보조 이름 서버는 둘 다 영역에 대해 권한이 있으며 클라이언트와 동일하게 보입니다. 구성에 따라 모든 이름 서버는 동시에 여러 영역에 대한 기본 또는 보조 서버로도 사용할 수 있습니다.
DNS
및 DHCP
서버 관리자뿐만 아니라 프로비저닝 애플리케이션도 조직에서 사용되는 호스트 이름 형식에 동의해야 합니다. 호스트 이름 형식에 대한 자세한 내용은 6.1.1절. “권장 명명 관행” 을 참조하십시오.
15.1.2. 이름 서버 유형
이름 서버 구성 유형은 다음 두 가지가 있습니다.
이름 서버는 권한 있고 재귀적일 수 있지만 구성 유형을 결합하지 않는 것이 좋습니다. 작업을 수행하려면 항상 권한이 있는 서버를 모든 클라이언트에서 사용할 수 있어야 합니다. 반면, 재귀 조회는 신뢰할 수 있는 응답보다 훨씬 시간이 걸리기 때문에 제한된 수의 클라이언트에서만 재귀적 서버를 사용할 수 있어야 합니다. 그렇지 않으면 DDoS(서비스 거부) 공격을 받을 가능성이 높습니다.
15.1.3. Name 서버로서의 BIND
BIND는 DNS 관련 프로그램으로 구성됩니다.
이라는
이름 서버, rndc 라는 관리 유틸리티, dig 라는 디버깅 툴이 포함되어 있습니다. Red Hat Enterprise Linux에서 서비스 실행 방법에 대한 자세한 내용은 Red Hat Enterprise Linux 시스템 관리자 를 참조하십시오.