다음을 통해 공유


동적 DNS를 사용하여 자체 DNS 서버에 호스트 이름 등록

Azure가 이름 확인을 제공 합니다. 이름 확인이 Azure 기본 DNS(도메인 이름 시스템)에서 제공하는 기능을 초과해야 하는 경우 사용자 고유의 DNS 서버를 제공할 수 있습니다. 자체 DNS 서버를 사용하면 특정한 자체 요구에 맞게 DNS 솔루션을 맞춤식 구성을 할 수 있습니다. 예를 들어 Active Directory 도메인 컨트롤러를 통해 온-프레미스 리소스에 액세스해야 할 수 있습니다.

사용자 지정 DNS 서버가 Azure VM으로 호스트되는 경우 동일한 가상 네트워크에 대한 호스트 이름 쿼리를 Azure로 전달하여 호스트 이름을 확인할 수 있습니다. 이 옵션을 사용하지 않으려면 DDNS(동적 DNS)를 사용하여 DNS 서버에 VM 호스트 이름을 등록할 수 있습니다. Azure에는 DNS 서버에 레코드를 직접 만드는 자격 증명이 없으므로 종종 대체 정렬이 필요합니다. 이 문서에서는 몇 가지 일반적인 시나리오와 대안에 대해 설명합니다.

Windows 클라이언트

도메인에 가입되지 않은 Windows 클라이언트는 부팅하거나 IP 주소가 변경될 때 보안되지 않은 DDNS 업데이트를 시도합니다. DNS 이름은 호스트 이름과 주 DNS 접미사입니다. Azure는 주 DNS 접미사를 비워 두지만 사용자 인터페이스 또는 PowerShell을 통해 VM에서 접미사를 설정할 수 있습니다.

도메인에 연결된 Windows 클라이언트는 보안 DDNS를 사용하여 해당 IP를 도메인 컨트롤러에 등록합니다. 도메인 연결 프로세스는 클라이언트에 대한 주 DNS 접미사를 설정하고 트러스트 관계를 만들고 유지 관리합니다.

Linux 클라이언트

Linux 클라이언트는 일반적으로 시작 시 DNS 서버에 자신을 등록하지 않습니다. DHCP(동적 호스트 구성 프로토콜) 서버에서 수행한다고 가정합니다. Azure DHCP 서버에는 DNS 서버에 레코드를 등록할 자격 증명이 없습니다. DDNS 업데이트에 전송하는 데 Bind 패키지에 포함되어 있는 nsupdate라는 도구를 사용할 수 있습니다. DDNS 프로토콜은 표준화되므로 DNS 서버에서 Bind를 사용하지 않는 경우에도 사용할 nsupdate 수 있습니다.

DNS 서버에서 호스트 이름을 만들고 유지 관리하기 위해 DHCP 클라이언트에서 제공하는 후크를 사용할 수 있습니다. DHCP 주기 동안 클라이언트는 에서 /etc/dhcp/dhclient-exit-hooks.d/스크립트를 실행합니다. 후크를 사용하여 새 IP 주소를 등록할 수 있습니다 nsupdate. 예시:

#!/bin/sh
requireddomain=mydomain.local

# only execute on the primary nic
if [ "$interface" != "eth0" ]
then
    return
fi

# When you have a new IP, perform nsupdate
if [ "$reason" = BOUND ] || [ "$reason" = RENEW ] ||
   [ "$reason" = REBIND ] || [ "$reason" = REBOOT ]
then
   host=`hostname`
   nsupdatecmds=/var/tmp/nsupdatecmds
     echo "update delete $host.$requireddomain a" > $nsupdatecmds
     echo "update add $host.$requireddomain 3600 a $new_ip_address" >> $nsupdatecmds
     echo "send" >> $nsupdatecmds

     nsupdate $nsupdatecmds
fi

보안 DDNS 업데이트를 수행하는 데 nsupdate 명령도 사용할 수 있습니다. 예를 들어 바인딩 DNS 서버를 사용하는 경우 퍼블릭-프라이빗 키 쌍이 생성됩니다(http://linux.yyz.us/nsupdate/). DNS 서버는 요청에서 서명을 확인할 수 있도록 키의 공용 부분으로 구성됩니다(http://linux.yyz.us/dns/ddns-server.html). 키 쌍을 제공하려면 서명할 nsupdateDDNS 업데이트 요청에 대한 옵션을 사용합니다 -k .

Windows DNS 서버를 사용하는 경우 매개 변수nsupdate와 함께 Kerberos 인증을 -g 사용할 수 있지만 Windows 버전nsupdate에서는 사용할 수 없습니다. Kerberos를 사용하려면 kinit을 사용하여 자격 증명을 로드합니다. 예를 들어 keytab 파일에서 자격 증명을 로드한 다음 nsupdate -g 캐시에서 자격 증명을 선택할 수 있습니다.

필요한 경우 DNS 검색 접미사를 VM에 추가할 수 있습니다. DNS 접미사가 파일에 지정됩니다 /etc/resolv.conf . 대부분의 Linux 배포판은 자동으로 이 파일의 콘텐츠를 관리하므로 일반적으로 편집할 수 없습니다. DHCP 클라이언트의 명령을 사용하여 접미사를 재정의 supersede 할 수 있습니다. 접미사를 재정의하려면 파일에 다음 줄을 /etc/dhcp/dhclient.conf 추가합니다.

supersede domain-name <required-dns-suffix>;