DNS(Domain Name System) 클라이언트 컴퓨터는 변경될 때마다 동적 업데이트를 사용하여 DNS 서버에서 리소스 레코드를 등록하고 동적으로 업데이트할 수 있습니다. 이렇게 하면 자주 이동하거나 위치를 변경하며 DHCP(Dynamic Host Configuration Protocol)를 사용하여 IP 주소를 얻는 클라이언트의 경우 특히 영역 레코드를 수동으로 관리할 필요성이 줄어듭니다.

RFC(Request for Comments) 2136, "DNS(Domain Name System)의 동적 업데이트"에서 설명한 대로 DNS 클라이언트 서비스와 DNS 서버 서비스는 동적 업데이트의 사용을 지원합니다. DNS 서버 서비스를 사용하면 표준 주 영역이나 디렉터리 통합 영역을 로드하도록 구성된 각 서버에서 영역 단위로 동적 업데이트를 사용할 수 있거나 사용할 수 없도록 설정할 수 있습니다. 기본적으로 DNS 클라이언트 서비스는 TCP/IP에 대해 구성되어 있는 경우 DNS에서 호스트(A) 리소스 레코드를 동적으로 업데이트합니다.

클라이언트 및 서버 컴퓨터에서 DNS 이름을 업데이트하는 방법

기본적으로 TCP/IP 설정이 고정적으로 구성되어 있는 컴퓨터는 설치된 네트워크 연결에서 구성되고 사용되는 IP 주소의 호스트(A) 리소스 레코드와 PTR(포인터) 리소스 레코드를 동적으로 등록하려고 시도합니다. 기본적으로 모든 컴퓨터는 FQDN(정규화된 도메인 이름)을 기반으로 레코드를 등록합니다.

주 전체 컴퓨터 이름(FQDN)은 컴퓨터 이름에 추가된 컴퓨터의 주 DNS 접미사를 기반으로 합니다.

추가 고려 사항

  • 기본적으로 DNS 클라이언트는 TLD(최상위 도메인) 영역의 동적 업데이트를 시도하지 않습니다. 단일 레이블 이름이 지정된 영역은 TLD 영역으로 간주됩니다(예: com, edu, blank, my-company). TLD 영역의 동적 업데이트를 허용하도록 DNS 클라이언트를 구성하려면 최상위 도메인 영역 업데이트 정책 설정을 사용하거나 레지스트리를 수정할 수 있습니다.

  • 기본적으로 컴퓨터 FQDN의 주 DNS 접미사 부분은 컴퓨터가 가입한 AD DS(Active Directory 도메인 서비스) 도메인의 이름과 동일합니다. 다른 주 DNS 접미사의 사용을 허용하기 위해 도메인 관리자가 도메인 개체 컨테이너에서 msDS-AllowedDNSSuffixes 특성을 수정하여 허용되는 접미사의 제한된 목록을 만들 수도 있습니다. 도메인 관리자는 ADSI(Active Directory 서비스 인터페이스) 또는 LDAP(Lightweight Directory Access Protocol)를 사용하여 이 특성을 관리합니다.

동적 업데이트는 다음과 같은 이유나 이벤트로 인해 전송될 수 있습니다.

  • 설치된 네트워크 연결에 대한 TCP/IP 속성 구성에서 IP 주소가 추가, 제거 또는 수정되는 경우

  • DHCP 서버를 통해 IP 주소 임대에서 설치된 네트워크 연결을 변경하거나 갱신하는 경우 (예: 컴퓨터가 시작될 때나 ipconfig /renew 명령이 사용되는 경우)

  • ipconfig /registerdns 명령을 사용하여 DNS에서 클라이언트 이름 등록을 수동으로 새로 고치는 경우

  • 컴퓨터를 켜고 시스템이 시작되는 경우

  • 구성원 서버의 수준이 도메인 컨트롤러로 올라가는 경우

위의 조건 중 하나로 동적 업데이트가 발생하면 DNS 클라이언트 서비스가 아니라 DHCP 클라이언트 서비스에서 업데이트를 보냅니다. 이 기능은 DHCP로 인해 IP 주소 정보가 변경되면 DNS에서 상응하는 업데이트가 수행되어 컴퓨터의 이름-주소 간 매핑을 동기화하도록 설계되었습니다. DHCP 클라이언트 서비스는 DHCP를 사용하도록 구성되지 않은 네트워크 연결을 비롯한 시스템의 모든 네트워크 연결에 대해 이 기능을 수행합니다.

예: 동적 업데이트의 작동 방식

일반적으로 컴퓨터에서 DNS 이름이나 IP 주소가 변경되면 동적 업데이트를 요청합니다. 예를 들어, oldhost라는 클라이언트가 시스템 속성에서 다음과 같은 이름으로 처음 구성되었다고 가정합니다.

컴퓨터 이름

oldhost

컴퓨터의 DNS 도메인 이름

tailspintoys.com

전체 컴퓨터 이름

oldhost.tailspintoys.com 

이 예에서는 컴퓨터의 연결별 DNS 도메인 이름이 구성되어 있지 않습니다. 나중에 컴퓨터 이름이 oldhost에서 newhost로 변경되면 시스템에서 이름이 다음과 같이 변경됩니다.

컴퓨터 이름

newhost

컴퓨터의 DNS 도메인 이름

tailspintoys.com

전체 컴퓨터 이름

newhost.tailspintoys.com 

시스템 속성에서 이름 변경을 적용하면 컴퓨터를 다시 시작할 것인지 묻는 메시지가 나타납니다. 컴퓨터에서 Windows가 다시 시작될 때 DHCP 클라이언트 서비스는 다음과 같은 순서로 DNS를 업데이트합니다.

  1. DHCP 클라이언트 서비스가 컴퓨터의 DNS 도메인 이름을 사용하여 SOA(권한 시작) 형식 쿼리를 보냅니다.

    클라이언트 컴퓨터는 현재 구성되어 있는 컴퓨터의 FQDN(예: newhost.tailspintoys.com)을 이 쿼리에 지정되는 이름으로 사용합니다.

  2. 클라이언트 FQDN을 포함하는 영역에 대한 권한이 있는 DNS 서버가 SOA 형식 쿼리에 응답합니다.

    표준 주 영역의 경우 SOA 쿼리 응답에 반환되는 주 서버(소유자)는 고정되어 있습니다. 주 서버의 이름은 영역에 저장되어 있는 SOA 리소스 레코드에 표시된 정확한 DNS 이름과 항상 일치합니다. 그러나 업데이트 중인 영역이 Active Directory 통합 영역이면 영역을 로드하는 임의의 DNS 서버가 쿼리에 응답하고 SOA 쿼리 응답에서 영역의 주 서버(소유자)로 자신의 이름을 동적으로 삽입할 수 있습니다.

  3. DHCP 클라이언트 서비스가 주 DNS 서버에 연결을 시도합니다.

    클라이언트는 이름에 대한 SOA 쿼리 응답을 처리하여 자신의 이름을 받아들일 주 서버 권한이 있는 DNS 서버의 IP 주소를 확인합니다. 그런 다음 주 서버에 연결하고 동적으로 업데이트하는 데 필요한 다음 단계를 수행합니다.

    1. 클라이언트는 SOA 쿼리 응답에서 확인된 주 서버로 동적 업데이트 요청을 보냅니다.

      업데이트가 성공하면 추가 작업이 수행되지 않습니다.

    2. 업데이트가 실패하면 클라이언트는 SOA 레코드에 지정된 영역 이름에 대한 NS(이름 서버) 형식 쿼리를 보냅니다.

    3. 클라이언트가 이 쿼리에 대한 응답을 받으면 응답에 나열된 첫 번째 DNS 서버로 SOA 쿼리를 보냅니다.

    4. SOA 쿼리가 해결된 후 클라이언트는 반환된 SOA 레코드에 지정된 서버로 동적 업데이트를 보냅니다.

      업데이트가 성공하면 추가 작업이 수행되지 않습니다.

    5. 업데이트가 실패하면 클라이언트는 응답에 나열된 다음 DNS 서버로 쿼리를 보내 SOA 쿼리 프로세스를 반복합니다.

  4. 업데이트를 수행할 수 있는 주 서버에 연결된 후 클라이언트는 업데이트 요청을 보내고 서버는 해당 요청을 처리합니다.

    업데이트 요청의 내용에는 newhost.tailspintoys.com에 대한 호스트(A) 리소스 레코드(PTR(포인터) 리소스 레코드도 가능)를 추가하고 이전에 등록된 이름인 oldhost.tailspintoys.com에 대한 같은 종류의 레코드를 제거하는 명령이 포함되어 있습니다.

    또한 서버는 클라이언트 요청에 대해 업데이트가 허용되는지 확인합니다. 표준 주 영역에서는 동적 업데이트에 보안이 설정되지 않으므로 모든 클라이언트의 업데이트 시도가 성공합니다. AD DS 통합 영역에서는 업데이트에 보안이 설정되며 Active Directory 기반 보안 설정을 사용하여 업데이트가 수행됩니다.

동적 업데이트는 주기적으로 전송되거나 새로 고쳐집니다. 기본적으로 컴퓨터는 7일마다 한 번씩 새로 고침을 보냅니다. 업데이트를 수행해도 영역 데이터의 내용이 변경되지 않으면 영역은 현재 버전으로 유지되고 변경 내용이 기록되지 않습니다. 이름이나 주소가 실제로 변경된 경우에만 업데이트를 통해 실제로 영역이 변경되거나 영역 전송이 증가합니다.

DHCP 클라이언트 서비스는 컴퓨터의 호스트(A) 및 PTR(포인터) 리소스 레코드를 등록할 때 호스트 레코드의 캐싱 TTL(Time To Live)로 기본값 15분을 사용합니다. 쿼리 응답에 컴퓨터의 레코드가 포함되어 있는 경우 다른 DNS 서버와 클라이언트는 지정된 캐싱 TTL 기간 동안 레코드를 캐시합니다.

보안 동적 업데이트

AD DS에 통합된 영역인 경우에만 DNS 업데이트 보안을 사용할 수 있습니다. 영역을 Active Directory와 통합한 후에는 DNS 관리자에서 ACL(액세스 제어 목록) 편집 기능을 사용하여 특정 영역이나 리소스 레코드의 ACL에서 사용자나 그룹을 추가하거나 제거할 수 있습니다.

기본적으로 DNS 서버 및 클라이언트에 대한 동적 업데이트 보안은 다음과 같이 처리될 수 있습니다.

  • DNS 클라이언트는 먼저 비보안 동적 업데이트를 시도합니다. 비보안 업데이트가 거부되면 클라이언트는 보안 업데이트를 시도합니다.

    또한 클라이언트는 업데이트 보안에 의해 특별히 차단되지 않은 경우 이전에 등록된 리소스 레코드를 덮어쓰도록 허용하는 기본 업데이트 정책을 사용합니다.

  • 영역이 AD DS와 통합되면 Windows Server® 2008을 실행하는 DNS 서버는 기본적으로 보안 동적 업데이트만 허용합니다.

    표준 영역 저장소를 사용하는 경우에는 기본적으로 DNS 서버 서비스가 영역에서 동적 업데이트를 허용하지 않습니다. 디렉터리와 통합되거나 표준 파일 기반 저장소를 사용하는 영역의 경우 모든 동적 업데이트를 허용하도록 영역을 변경할 수 있습니다. 이렇게 하면 모든 업데이트가 받아들여질 수 있습니다.


목차