본문 바로가기
영문 위키피디아 번역

(번역) Dynamic DNS

by 다움위키 2023. 12. 26.

동적 DNS(Dynamic DNS, 줄여서 DDNS)는 구성된 호스트이름, 주소 또는 기타 정보의 활성 DDNS 구성을 갖는 종종 실시간으로 도메인 네임 시스템(Domain Name System, 줄여서 DNS)의 네임 서버(name server)를 자동으로 업데이트하는 방법입니다.

그 용어는 두 가지 다른 개념을 설명하기 위해 사용됩니다. 첫 번째는 수동 편집 없이 전통적인 DNS 레코드를 업데이트하기 위해 사용되는 시스템을 참조하는 "동적 DNS 업데이트"입니다. 이들 메커니즘은 TSIG를 보안을 제공하기 위해 사용합니다. 두 번째 종류의 동적 DNS는 DNS 레코드를 업데이트하는 데 RFC2136 표준을 사용하지 않는 종종 업데이트 클라이언트를 사용하여 가볍고 즉각적인 업데이트를 허용합니다. 이들 클라이언트는 위치, 구성 또는 IP 주소를 자주 변경하는 장치에 영구적인 주소 지정 방법을 제공합니다.

Background

인터넷 (ARPANET)의 초기 단계에서, 네트워크의 호스트 주소 지정은 호스트-이름을 IP 주소에 매핑했던 정적 변환 테이블에 의해 이루어졌습니다. 테이블은 호스트 파일(host file)의 형식으로 수동으로 유지되었습니다. 도메인 네임 시스템(Domain Name System)은 각 네트워크 또는 도메인에 대해 구성된 원격 데이터베이스에 대한 재귀 질의를 통해 같은 주소 정보를 온라인으로 자동 배포하는 방법을 가져왔습니다. 심지어 이러한 DNS 시설도 여전히 각 참여 노드에서 정적 조회 테이블을 사용했습니다. IP 주소는, 일단 특정 호스트에 할당되었으면, 거의 변경되지 않았고 그 메커니즘은 처음에는 충분했습니다. 어쨌든, 인터넷의 급속한 성장과 직장과 가정에서의 개인용 컴퓨터의 확산으로 관리자는 할당된 IP 주소를 추적하고 그것들의 주소 공간(address space)을 관리해야 하는 상당한 부담을 갖게 되었습니다. 동적 호스트 구성 프로토콜(Dynamic Host Configuration Protocol, 줄여서 DHCP)는 기업과 인터넷 서비스 공급자(Internet service providers, 줄여서 ISP)에게 컴퓨터의 전원을 켤 때 자동으로 그것에 주소를 할당하는 것을 허용했습니다. 추가적으로, 이것은 모든 장치가 항상 적극적으로 사용되는 것은 아니고 필요에 따라 주소를 할당할 수 있기 때문에 사용 가능한 주소 공간을 절약하는 데 도움이 되었습니다. 이 기능은 DNS 서버도 자동으로 최신 상태로 유지되어야 함을 요구했습니다. 동적 DNS(dynamic DNS)의 첫 번째 구현은 이 목적을 충족했습니다: 호스트 컴퓨터는 DHCP 서버 또는 자체 구성을 통해 수신한 주소를 각각의 DNS 서버에 알리는 기능을 얻었습니다. 이 프로토콜-기반 DNS 업데이트 방법은 1997년 IETF 출판물에 문서화되고 표준화되었고, DNS 프로토콜의 표준 부분이 되었습니다 (nsupdate 프로그램을 참조하십시오).

인터넷이 폭발적으로 성장하고 가정으로 확산됨에 따라 사용 가능한 IP 주소가 점점 부족해졌습니다. DHCP는 ISP에 의해 고객 구내 라우터에서 네트워크 주소 변환(network address translation, 줄여서 NAT)를 구현함으로써 가정과 중소기업 최종 사용자를 각각 단일 IP 주소로 연결하기 위한 주소 공간을 관리하는 중요한 도구가 되었습니다. 이들 라우터 뒤의 사설 네트워크(private network)는 이들 목적을 위해 별도로 설정된 주소 공간을 사용하며, NAT 장치에 의해 가장됩니다. 이것은, 어쨌든, 인터넷 아키텍처의 끝-대-끝 원칙(end-to-end principle)을 깨고 외부 IP 주소가 자주 변경되는 사설 네트워크를 그것들의 공용 주소를 발견하고 이를 도메인 이름 시스템에 삽입하여 적절한 인터넷 통신에 참여할 수 있도록 하는 방법을 요구했습니다. 오늘날, 동적 DNS 서비스 공급자라고 하는 수많은 공급자가 인터넷에서 이러한 기술과 서비스를 제공합니다.

Domain Name System

DNS는 전역적으로 업데이트하는 데 약간의 시간이 걸리는 분산 데이터베이스(distributed database)를 기반으로 합니다. DNS가 처음 도입되었을 때, 그 데이터베이스는 작았고 손으로 쉽게 유지 관리할 수 있었습니다. 시스템이 성장함에 따라 어느 한 사이트에서 이 작업을 처리하기 어려워졌고 많은 도메인 네임 등록 기관(domain name registrars)에 업데이트를 배포하기 위해 새로운 관리 구조가 도입되었습니다. 오늘날 등록자는 전형적으로 웹 기반 양식을 사용하여 계정 정보에 대한 최종 사용자 업데이트를 제공하고 등록자는 업데이트 정보를 다른 DNS 서버로 푸시합니다.

도메인 이름 시스템과 등록 기관의 분산 특성으로 인해 전역 DNS에 대한 업데이트를 배포하는 데 몇 시간이 걸릴 수 있습니다. 따라서 DNS는 위키피디아와 같은 대부분의 대규모 서비스의 경우처럼 IP 주소를 자주 변경하지 않는 서비스에만 적합합니다. 소규모 서비스는, 어쨌든, 일반적으로 더 짧은 시간에 호스트에서 호스트로 이동할 가능성이 훨씬 더 높습니다. 특정 유형의 인터넷 서비스 공급자, 특히 케이블 모뎀에서 실행되는 서버는 며칠 또는 몇 시간 정도의 매우 짧은 시간 동안 IP 주소를 변경할 수 있습니다. 동적 DNS는 빠른 업데이트 문제를 해결하는 시스템입니다.

Types

DDNS라는 용어는 두 가지 방법으로 사용되며, 이는, 기술적으로는 유사하지만, 매우 다른 목적과 사용자 모집단을 가집니다. 첫 번째는 DNS 프로토콜의 확장을 업데이트에 대한 요청에 사용하는 표준-기반 DDNS(standards-based DDNS)입니다; 이것은 종종 회사 노트북에 대한 그것들의 주소를 등록하기 위해 사용됩니다. 두 번째는 보통 웹-기반 프로토콜, 독점 DDNS(proprietary DDNS)로, 통상적으로 사용자-이름과 비밀번호가 포함된 단일 HTTP 가져오기로 (어떤 지정되지 않은 방법에 의해) 일부 DNS 레코드를 업데이트합니다; 이것은 게임 서버나 웹캠과 같이 더 넓은 그룹에서 찾을 수 있도록 공개적으로 알려진 이름으로 가정용 컴퓨터를 등록하는 데 공통적으로 사용됩니다.

인터넷 접근의 최종 사용자는 인터넷 서비스 공급자로부터 IP 주소, 종종 오직 하나의 단일 주소의 할당을 받습니다. 할당된 주소는 고정된 (즉, 정적)이거나, 수시로 변경될 수 있으며, 동적(dynamic)이라고 하는 상황입니다. 대부분의 기업은 특히 정적 주소를 필요로 하므로, 동적 주소는 일반적으로 주거용 고객과 소기업에게만 제공됩니다.

동적 IP 주소는 고객이 웹 서비스와 같이 인터넷의 다른 사용자에게 서비스를 제공하려는 경우 문제가 됩니다. IP 주소는 자주 변경될 수 있으므로, 잘 알려진 URL을 사용하여 접근성을 유지하려면 해당 도메인 이름을 DNS에서 신속하게 다시 매핑해야 합니다.

많은 공급자가 이 시나리오를 위해 상용 또는 무료 동적 DNS 서비스를 제공합니다. 자동 재구성은 일반적으로 DDNS 서비스를 업데이트하는 소프트웨어를 실행하는 사용자의 라우터(router) 또는 컴퓨터에서 구현됩니다. 몇 가지 표준 웹 기반 업데이트 방법이 시간이 지남에 따라 등장했지만, 사용자 장비와 공급자 사이의 통신은 표준화되지 않았습니다.

Standards-based DDNS

도메인 네임 서버 레코드를 동적으로 업데이트하는 표준화된 방법은 공통적으로 동적 DNS 업데이트로 알려진 RFC 2136에 의해 규정됩니다. RFC 2136에 의해 설명된 방법은 관리되는 DNS 서버와 함께 사용하기 위한 네트워크 프로토콜이고, 그것은 보안 메커니즘을 포함합니다. RFC 2136은 모든 DNS 레코드 유형을 지원하지만, 종종 DHCP 시스템의 확장으로만 사용되고, 이것에서 인증된 DHCP 서버가 클라이언트 레코드를 DNS에 등록합니다. RFC 2136에 대한 이러한 형식의 지원은 최신 운영 시스템의 구성 요소를 포함하여 수많은 클라이언트와 서버 소프트웨어에 의해 제공됩니다. RFC 2136에 대한 지원은 역시 LDAP와 Windows의 Active Directory 도메인을 비롯한 많은 디렉토리 서비스(directory services)의 필수적인 부분입니다.

Applications

Microsoft Windows 네트워크에서, 도메인 컨트롤러는 도메인 (또는 포리스트)의 다른 컴퓨터가 그것에 접근할 수 있도록 해당 네트워크 서비스 유형을 DNS에 등록하기 때문에 동적 DNS는 Active Directory의 필수적인 부분입니다.

오늘날 인터넷 통신을 보호하기 위한 증가하는 노력은 이들 공용 동적 DNS 서비스가 보안 위반을 설계하기 위해 점점 더 많이 남용됨에 따라 공용 인터넷을 통한 모든 동적 업데이트의 암호화를 포함합니다. TSIG와 같은 DNSSEC 프로토콜 제품군 내의 표준 기반 방법은 DNS 업데이트를 보호하기 위해 개발되어 왔지만, 널리 사용되지는 않습니다. Microsoft는 Kerberos 인증을 기반으로 대체 기술 (GSS-TSIG)을 개발했습니다.

dnsmasq와 같은 일부 무료 DNS 서버 소프트웨어 시스템은 내장 DHCP 서버와 직접 관련된 동적 업데이트 절차를 지원합니다. 이 서버는 주소를 할당할 때 DNS 레코드를 자동으로 업데이트하거나 추가하여 관리자가 특별히 동적 업데이트를 구성하는 작업을 덜어줍니다.

DDNS for Internet access devices

동적 DNS 공급자는 클라이언트 시스템의 공용 IP 주소의 검색과 등록을 자동화하는 소프트웨어 클라이언트(client) 프로그램을 제공합니다. 클라이언트 프로그램은 사설 네트워크에서 컴퓨터 또는 장치에서 실행됩니다. 그것은 고유한 로그인 이름으로 DDNS 공급자의 시스템에 연결합니다; 공급자는 그 이름을 검색된 홈 네트워크의 공용 IP 주소를 도메인 이름 시스템의 호스트 이름과 연결하기 위해 사용합니다. 공급자에 따라, 호스트-이름은 공급자에 의해 소유된 도메인 또는 고객 자신의 도메인 네임 내에 등록됩니다. 이들 서비스는 여러 메커니즘으로 작동할 수 있습니다. 그것들은 제한적인 환경에서도 보통 HTTP 서비스를 허용하기 때문에 종종 HTTP 서비스 요청을 사용합니다. 대부분의 공급자는 첫 번째 공급자 DynDNS (Dyn.com)와 유사한 API를 가지고 있으므로 종종 DynDNS2라고 불립니다.

많은 홈 네트워킹 모뎀/라우터는 다양한 DDNS 공급자와 호환되는 그것들의 펌웨어에서 클라이언트 응용 프로그램을 포함하고 있습니다.

DDNS for security appliance manufacturers

동적 DNS는 DVR 및 IP 카메라와 같은 IP 기반 보안 장비에 대해 예상되는 기능 또는 요구 사항입니다. 오늘날의 제조업체는 많은 옵션을 사용할 수 있고, 이것들은 기존 DDNS 서비스 사용 또는 제조업체 자체에서 호스팅하는 맞춤형 서비스 사용을 포함합니다.

거의 모든 경우에서, DDNS 클라이언트를 장치의 펌웨어에 쉽게 통합할 수 있도록 간단한 HTTP 기반 업데이트 API가 사용됩니다. MintDNS, cURL 및 Inadyn과 같이 서버와 클라이언트 개발의 부담을 덜어줄 수 있는 몇 가지 미리 만들어진 도구가 있습니다. 대부분의 웹-기반 DDNS 서비스는 표준 사용자 이름과 암호 보안 스키마를 사용합니다. 이렇게 하려면 먼저 사용자가 DDNS 서버 웹사이트에서 계정을 만들고 그런-다음 IP 주소 변경이 감지될 때마다 DDNS 서버에 업데이트를 보내도록 장치를 구성해야 합니다.

일부 장치 제조업체는 한 단계 더 나아가 자신이 제조하는 장치에서만 DDNS 서비스를 사용하도록 허용하고 사용자 이름과 암호가 모두 필요하지 않도록 합니다. 일반적으로 이것은 DDNS 서버와 장치의 펌웨어 내에서 모두 비밀로 유지되는 암호화 알고리듬을 사용하여 장치의 MAC 주소를 암호화함으로써 수행됩니다. 결과 암호 해독 또는 암호 해독 실패는 업데이트를 보호하거나 거부하기 위해 사용됩니다. 맞춤형 DDNS 서비스 개발을 위한 자원은 일반적으로 제한되어 있고 안전하고 강건한 DDNS 서버를 설계하고 배치하기 위한 전체 소프트웨어 개발 주기를 포함합니다.