라이브러리
프로그래밍언어, 각종코드, 관련동향, 논문 등의 저장소
IPv6 패킷 기반 존 전송(Zone Transfer)은 어떻게 설정하나요?
Master 네임서버와 Slave 네임서버가 아래와 같이 구성된 경우에 존 전송(Zone Transfer)를
IPv6 주소를 사용하여 수행할 수 있습니다.
Master 네임서버Slave 네임서버비고
IPv4/IPv6IPv4/IPv6IPv4 zone transfer, IPv6 zone transfer
모두 가능
IPv4/IPv6IPv6 onlyIPv6 zone transfer만 가능
IPv6 onlyIPv4/IPv6IPv6 zone transfer만 가능
IPv6 onlyIPv6 onlyIPv6 zone transfer만 가능 
존 전송(zone transfer)에 대한 설정은 Slave 네임서버의 named.conf 파일에서 지정합니다.
IPv4 주소의 존 전송(zone transfer) 설정 방법
아래는 IPv4 환경에서의 기본적인 설정 사례입니다.
Slave 네임서버 "named.conf" 파일의 "examp.co.kr." 존 설정 부분
zone    "examp.co.kr" {          type slave;         masters { 192.0.2.10; }; };
type slave;는 "examp.co.kr." 도메인이 Slave 존(zone) 임을 표시합니다.
Slave 존인 경우, 존 파일(zone file)을 작성하지 않으며, Master 네임서버로부터 도메인 존
데이터를 전송받아 도메인의 DNS 서비스를 제공합니다.
masters { 192.0.2.10; };는 이 examp.co.kr. 도메인의 Master 네임서버 IP 주소를 지정하는
옵션입니다.
IPv6 주소의 존 전송(zone transfer) 설정
아래의 사례를 기준으로 설정방법을 설명합니다.
"examp.co.kr" 도메인 존(zone)
$ORIGIN examp.co.kr.@         600 IN SOA ns1.examp.co.kr. adm.examp.co.kr. (                    2004061102 ; serial                    3600 ; refresh (1 hour)                    1800 ; retry (30 minutes)                    1209600 ; expire (2 weeks)                    86400 ; minimum (1 day)                    )         86400 IN  NS  ns1.examp.co.kr.         86400 IN  NS  ns2.examp.co.kr. ns1.examp.co.kr.         86400  IN  A    192.0.2.10ns1.examp.co.kr.         86400  IN  AAAA 2001:cd5:20a::c000:20ans2.examp.co.kr.         86400  IN  AAAA 2001:cd5:30a::c000:30a
사례의 "examp.co.kr." 도메인은 "ns1.examp.co.kr." 네임서버와 "ns2.examp.co.kr." 네임서버를
가지고 있습니다.
이 경우, Master 네임서버는 도메인의 SOA RR의 MNAME 필드에 지정된 "ns1.examp.co.kr."
입니다.
Ref Docs:RFC1035 "DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION"
                  3.3.13. SOA RDATA format
Ref Docs:RFC2181 "Clarifications to the DNS Specification"
                  7.3. The SOA.MNAME field 
"ns1.examp.co.kr."은 도메인 존 파일에 A RR과 AAAA RR을 동시에 갖는 IPv4/IPv6 듀얼스택
네임서버로 지정되어 있습니다.
SOA RR의 MNAME 필드에 명시되지 않은 나머지 모든 네임서버는 Slave 네임서버입니다.
"ns2.examp.co.kr."는 Slave 네임서버로써 AAAA RR만 지정된 IPv6 only 네임서버입니다.
네임서버IP 주소비고
ns1.examp.co.kr.192.0.2.10
2001:dc5:20a::c000:20a
Master 네임서버 (IPv4/IPv6)
ns2.examp.co.kr.2001:dc5:30a::c000:30aSlave 네임서버 (IPv6 only)
아래는 IPv6 DNS Slave 네임서버(ns2.examp.co.kr.)에서 IPv6 주소를 사용한 존 전송을 지정하는
내용입니다.
Slave 네임서버 "named.conf" 파일의 "examp.co.kr." 존 설정 부분 (BIND 8/9 공통)
zone    "examp.co.kr." {          type slave;         masters { 2001:dc5:20a::c000:20a; }; };
이로써 examp.co.kr.의 Slave 네임서버는 "2001:dc5:20a::c000:20a"에 대해 존 전송요청을 하게
됩니다.
Master/Slave 네임서버에서의 존 전송(zone transfer) 요청가능 발신 IP 제한 설정
존 전송(zone transfer) 요청에 의해 지정된 도메인 존 내부의 모든 리소스레코드 데이터를
존 전송(zone transfer)를 요청한 네임서버로 일괄 전송합니다.
만일 임의의 호스트에 대해 존 전송(zone transfer) 요청을 허용하는 경우, 도메인 내용이 모두
외부에 노출될 수 있습니다.
존 전송(zone transfer)는 네임서버만 요청할 수 있는 것이 아니라 임의의 단말 호스트에서도
요청할 수 있기 때문입니다.
존 전송(zone transfer)는 아래와 같은 내용의 일반적인 DNS 질의 형태로 이루어집니다.
AXFR(transfer of an entire zone) 타입 DNS 질의
QNameexamp.co.kr.
QTypeAXFR
QClassIN
BIND DNS의 dig 유틸리티를 사용한 다음과 같은 명령은 AXFR DNS 질의를 발생합니다.
dig@ns1.examp.co.kr.examp.co.kr. AXFR
이렇게 외부에 도메인 존 내용이 모두 노출되는 것을 방지하기 위해 존 전송(zone transfer)
요청을 할 수 있는 호스트를 제한 설정합니다.
아래의 사례는 도메인 존 단위로 존 전송 요청 제한을 설정하는 경우를 보입니다.
Master 네임서버 "named.conf" 파일의 "examp.co.kr." 존 설정 부분
zone    "examp.co.kr." {          type master;        file "examp.co.kr.zone";        allow-transfer { 2001:dc5:30a::c000:30a; }; };
Slave 네임서버 "named.conf" 파일의 "examp.co.kr." 존 설정 부분
zone    "examp.co.kr." {          type slave;         masters { 2001:dc5:20a::c000:20a; };         transfer-source-v6 { 2001:dc5:30a::c000:30a; };         allow-transfer { none; };};
이 경우, 주의할 사항은 Slave 네임서버의 examp.co.kr. 존 설정 부분에transfer-source-v6
옵션을 사용한 점입니다.
transfer-source-v6옵션은 Slave 네임서버가 Master 네임서버로 존 전송(zone transfer)
요청시 자신의 IPv6 주소 중 "2001:dc5:30a::c000:30a"를 source IPv6 주소로 사용하도록
명시하는 용도로 사용됩니다.
이것은 Master 네임서버의allow-transfer { 2001:dc5:30a::c000:30a; };설정과 관련되어
있습니다.
IPv6 환경에서는 다양한 IPv6 주소가 인터페이스에 함께 설정될 수 있으므로 이와 같이
명시적으로 설정을 함으로써 Master 네임서버에 접근할 때 허용된 IPv6 주소를 source 주소로
고정적으로 사용하도록 제어 할 수 있습니다.
Slave 네임서버의 경우에 존 전송(zone transfer) 요청을 어떤 호스트에게도 허용하지 않는
설정을  allow-transfer { none; };을 사용하여 적용하고 있습니다.
 
  Comments,     Trackbacks