동적 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
). 키 쌍을 제공하려면 서명할 nsupdate
DDNS 업데이트 요청에 대한 옵션을 사용합니다 -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>;