Azure 가상 네트워크에서 리소스에 대한 이름 확인Name resolution for resources in Azure virtual networks

IaaS, PaaS, 하이브리드 솔루션 호스팅에 Azure를 어떻게 사용할지에 따라 VM(가상 머신) 및 가상 네트워크에 배포된 다른 리소스가 서로 통신하도록 설정해야 할 수도 있습니다.Depending on how you use Azure to host IaaS, PaaS, and hybrid solutions, you might need to allow the virtual machines (VMs), and other resources deployed in a virtual network to communicate with each other. IP 주소를 이용해 통신할 수도 있지만, 기억하기 쉽고 변경되지 않는 이름을 사용하면 보다 간편합니다.Although you can enable communication by using IP addresses, it is much simpler to use names that can be easily remembered, and do not change.

가상 네트워크에 배포된 리소스가 도메인 이름으로 내부 IP 주소를 확인하는 방법은 다음의 두 가지가 있습니다.When resources deployed in virtual networks need to resolve domain names to internal IP addresses, they can use one of two methods:

어떤 방법으로 이름을 확인할지는 사용하는 리소스가 서로 어떻게 통신해야 하는지에 따라 다릅니다.The type of name resolution you use depends on how your resources need to communicate with each other. 다음 표에 각 시나리오 별로 해당하는 이름 확인 방법이 나와 있습니다.The following table illustrates scenarios and corresponding name resolution solutions:

참고

시나리오에 따라, 현재 공개 미리 보기 상태인 Azure DNS 프라이빗 영역 기능을 사용할 수도 있습니다.Depending on your scenario, you may want to use the Azure DNS Private Zones feature, which is currently in Public Preview. 자세한 내용은 프라이빗 도메인에 Azure DNS 사용을 참조하세요.For more information, see Using Azure DNS for private domains.

시나리오Scenario 해결 방법Solution 접미사Suffix
동일한 클라우드 서비스의 Azure Cloud Services 역할 인스턴스 또는 동일한 가상 네트워크에 위치한 VM 간 이름을 확인합니다.Name resolution between VMs located in the same virtual network, or Azure Cloud Services role instances in the same cloud service. Azure DNS 프라이빗 영역 또는 Azure 제공 이름 확인Azure DNS Private Zones or Azure-provided name resolution 호스트 이름 또는 FQDNHostname or FQDN
다른 클라우드 서비스의 역할 인스턴스 또는 다른 가상 네트워크의 VM 간 이름을 확인합니다.Name resolution between VMs in different virtual networks or role instances in different cloud services. Azure(DNS 프록시)에서 이름을 확인할 수 있도록 가상 머신 간에 쿼리를 전달하는 Azure DNS 프라이빗 영역 또는 고객이 관리하는 DNS 서버.Azure DNS Private Zones or, Customer-managed DNS servers forwarding queries between virtual networks for resolution by Azure (DNS proxy). 자체 DNS 서버를 이용한 이름 확인.See Name resolution using your own DNS server. FQDN만FQDN only
동일한 가상 네트워크에 있는 VM 또는 역할 인스턴스에 대한 가상 네트워크 통합을 사용하여 Azure App Service(웹앱, 함수, 봇)에서 이름을 확인합니다.Name resolution from an Azure App Service (Web App, Function, or Bot) using virtual network integration to role instances or VMs in the same virtual network. Azure(DNS 프록시)에서 이름을 확인할 수 있도록 가상 네트워크 간에 쿼리를 전달하는 고객이 관리하는 DNS 서버.Customer-managed DNS servers forwarding queries between virtual networks for resolution by Azure (DNS proxy). 자체 DNS 서버를 이용한 이름 확인.See Name resolution using your own DNS server. FQDN만FQDN only
App Service Web Apps로부터 동일한 가상 네트워크의 VM에 대한 이름을 확인합니다.Name resolution from App Service Web Apps to VMs in the same virtual network. Azure(DNS 프록시)에서 이름을 확인할 수 있도록 가상 네트워크 간에 쿼리를 전달하는 고객이 관리하는 DNS 서버.Customer-managed DNS servers forwarding queries between virtual networks for resolution by Azure (DNS proxy). 자체 DNS 서버를 이용한 이름 확인.See Name resolution using your own DNS server. FQDN만FQDN only
한 가상 네트워크의 App Service Web Apps로부터 다른 가상 네트워크의 VM까지 이름을 확인합니다.Name resolution from App Service Web Apps in one virtual network to VMs in a different virtual network. Azure(DNS 프록시)에서 이름을 확인할 수 있도록 가상 네트워크 간에 쿼리를 전달하는 고객이 관리하는 DNS 서버.Customer-managed DNS servers forwarding queries between virtual networks for resolution by Azure (DNS proxy). 자체 DNS 서버를 사용한 이름 확인을 참조하세요.See Name resolution using your own DNS server. FQDN만FQDN only
Azure의 VM 또는 역할 인스턴스에서 온-프레미스 컴퓨터와 서비스 이름을 확인합니다.Resolution of on-premises computer and service names from VMs or role instances in Azure. 고객이 관리하는 DNS 서버(예: 온-프레미스 도메인 컨트롤러, 로컬 읽기 전용 도메인 컨트롤러 또는 영역 전송을 사용하여 동기화된 DNS 보조).Customer-managed DNS servers (on-premises domain controller, local read-only domain controller, or a DNS secondary synced using zone transfers, for example). 자체 DNS 서버를 이용한 이름 확인.See Name resolution using your own DNS server. FQDN만FQDN only
온-프레미스 컴퓨터에서 Azure 호스트 이름 확인.Resolution of Azure hostnames from on-premises computers. 해당 가상 네트워크에서 고객이 관리하는 DNS 프록시 서버에 쿼리를 전달하면 프록시 서버는 이름 확인을 위해 Azure에 쿼리를 전달합니다.Forward queries to a customer-managed DNS proxy server in the corresponding virtual network, the proxy server forwards queries to Azure for resolution. 자체 DNS 서버를 이용한 이름 확인.See Name resolution using your own DNS server. FQDN만FQDN only
내부 IP에 대한 역방향 DNSReverse DNS for internal IPs. 자체 DNS 서버를 이용한 이름 확인Name resolution using your own DNS server. 해당 없음Not applicable
서로 다른 클라우드 서비스에 위치하며 가상 네트워크에 존재하지 않는 VM 또는 역할 인스턴스 간 이름 확인Name resolution between VMs or role instances located in different cloud services, not in a virtual network. 사용할 수 없습니다.Not applicable. 가상 네트워크 외부에 있는 VM과 역할 인스턴스가 서로 다른 클라우드 서비스에 위치한 경우에는 연결을 지원하지 않습니다.Connectivity between VMs and role instances in different cloud services is not supported outside a virtual network. 해당 없음Not applicable

Azure에서 제공하는 이름 확인Azure-provided name resolution

Azure에서는 공용 DNS 이름 확인과 함께, 동일한 가상 네트워크 또는 클라우드 서비스 내에 있는 VM 및 역할 인스턴스에 대한 내부 이름 확인을 제공합니다.Along with resolution of public DNS names, Azure provides internal name resolution for VMs and role instances that reside within the same virtual network or cloud service. 클라우드 서비스의 VM 및 인스턴스는 동일한 DNS 접미사를 공유하므로 호스트 이름만으로 충분합니다.VMs and instances in a cloud service share the same DNS suffix, so the host name alone is sufficient. 그러나 클래식 배포 모델을 사용하여 배표된 가상 네트워크에서는 클라우드 서비스마다 다른 DNS 접미사를 사용합니다.But in virtual networks deployed using the classic deployment model, different cloud services have different DNS suffixes. 이 경우 서로 다른 클라우드 서비스 간 이름 확인을 위해 FQDN이 필요합니다.In this situation, you need the FQDN to resolve names between different cloud services. Azure Resource Manager 배포 모델을 사용하여 배포된 가상 네트워크에서 DNS 접미사는 가상 네트워크에서 일관되므로 FQDN이 필요하지 않습니다.In virtual networks deployed using the Azure Resource Manager deployment model, the DNS suffix is consistent across the virtual network, so the FQDN is not needed. DNS 이름은 VM 및 네트워크 인터페이스 모두에 할당할 수 있습니다.DNS names can be assigned to both VMs and network interfaces. Azure에서 제공한 이름 확인은 별도로 구성할 필요가 없으나, 앞의 표에 자세히 설명된 바와 같이 모든 배포 서비스에서 선택할 수 있는 것은 아닙니다.Although Azure-provided name resolution does not require any configuration, it is not the appropriate choice for all deployment scenarios, as detailed in the previous table.

참고

클라우드 서비스 웹 역할 및 작업자 역할을 사용할 때 Azure 서비스 관리 REST API를 사용하면 역할 인스턴스의 내부 IP 주소에 액세스할 수도 있습니다.When using cloud services web and worker roles, you can also access the internal IP addresses of role instances using the Azure Service Management REST API. 자세한 내용은 서비스 관리 REST API 참조를 참조하세요.For more information, see the Service Management REST API Reference. 주소는 역할 이름 및 인스턴스 번호를 기반으로 합니다.The address is based on the role name and instance number.

기능Features

Azure 제공 이름 확인에는 다음과 같은 기능이 포함됩니다.Azure-provided name resolution includes the following features:

  • 사용 편의성.Ease of use. 구성이 필요하지 않습니다.No configuration is required.
  • 고가용성.High availability. 자체 DNS 서버 클러스터를 만들고 관리할 필요가 없습니다.You don't need to create and manage clusters of your own DNS servers.
  • 온-프레미스와 Azure 호스트 이름을 모두 확인하기 위해 이 서비스를 자체 DNS 서버와 함께 사용할 수 있습니다.You can use the service in conjunction with your own DNS servers, to resolve both on-premises and Azure host names.
  • 동일한 클라우드 서비스 내에서 역할 인스턴스 및 VM 간 이름 확인을 사용할 수 있으며 FQDN은 필요하지 않습니다.You can use name resolution between VMs and role instances within the same cloud service, without the need for an FQDN.
  • Azure Resource Manager 배포 모델을 사용하는 가상 네트워크에서 VM 간에 이름 확인을 사용할 수 있으며 FQDN은 필요하지 않습니다.You can use name resolution between VMs in virtual networks that use the Azure Resource Manager deployment model, without need for an FQDN. 다른 클라우드 서비스에서 이름을 확인할 때 클래식 배포 모델에서 가상 네트워크는 FQDN을 필요로 합니다.Virtual networks in the classic deployment model require an FQDN when you are resolving names in different cloud services.
  • 자동으로 생성되는 이름 대신 배포를 가장 잘 설명해주는 호스트 이름을 사용할 수 있습니다.You can use host names that best describe your deployments, rather than working with auto-generated names.

고려 사항Considerations

Azure 제공 이름 확인을 사용할 때 고려해야 할 사항입니다.Points to consider when you are using Azure-provided name resolution:

  • Azure에서 만든 DNS 접미사는 수정할 수 없습니다.The Azure-created DNS suffix cannot be modified.
  • 사용자 고유의 레코드를 수동으로 등록할 수 없습니다.You cannot manually register your own records.
  • WINS 및 NetBIOS는 지원되지 않습니다.WINS and NetBIOS are not supported. Windows 탐색기에 VM은 표시되지 않습니다.You cannot see your VMs in Windows Explorer.
  • 호스트 이름은 DNS와 호환되어야 합니다.Host names must be DNS-compatible. 이름에는 0-9, a-z 및 '-'만 사용이 가능하며, '-'로 시작하거나 끝날 수 없습니다.Names must use only 0-9, a-z, and '-', and cannot start or end with a '-'.
  • DNS 쿼리 트래픽은 각 VM에 대해 제한됩니다.DNS query traffic is throttled for each VM. 이 제한은 대부분의 애플리케이션에 영향을 주지 않아야 합니다.Throttling shouldn't impact most applications. 요청 제한이 확인되는 경우 클라이언트쪽 캐싱이 사용하도록 설정되었는지 확인합니다.If request throttling is observed, ensure that client-side caching is enabled. 자세한 내용은 DNS 클라이언트 구성을 참조하세요.For more information, see DNS client configuration.
  • 처음 180개의 클라우드 서비스 내에서 VM만 클래식 배포 모델 내의 가상 네트워크에 대해 등록됩니다.Only VMs in the first 180 cloud services are registered for each virtual network in a classic deployment model. 이 제약은 Azure Resource Manager의 가상 네트워크에는 적용되지 않습니다.This limit does not apply to virtual networks in Azure Resource Manager.
  • Azure DNS IP 주소는 168.63.129.16입니다.The Azure DNS IP address is 168.63.129.16. 이는 고정 IP 주소 이며 변경 되지 않습니다.This is a static IP address and will not change.

DNS 클라이언트 구성DNS client configuration

이 섹션에서는 클라이언트 쪽 캐싱 및 클라이언트 쪽 재시도에 대해 설명합니다.This section covers client-side caching and client-side retries.

클라이언트 쪽 캐싱Client-side caching

모든 DNS 쿼리를 네트워크를 통해 전송해야 하는 것은 아닙니다.Not every DNS query needs to be sent across the network. 클라이언트 쪽 캐싱을 사용하면 대기 시간을 줄이고 로컬 캐시에서 되풀이되는 DNS 쿼리를 확인하여 네트워크 블립에 대한 복원력을 개선하는 데 도움이 됩니다.Client-side caching helps reduce latency and improve resilience to network blips, by resolving recurring DNS queries from a local cache. DNS 레코드는 레코드 새로 고침에 영향을 주지 않으면서 캐시가 가능한 오랫동안 레코드를 저장할 수 있도록 하는 TTL(Time-To-Live) 메커니즘을 포함합니다.DNS records contain a time-to-live (TTL) mechanism, which allows the cache to store the record for as long as possible without impacting record freshness. 따라서 클라이언트 쪽 캐싱은 대부분의 상황에 적합합니다.Thus, client-side caching is suitable for most situations.

기본 Windows DNS 클라이언트에는 기본 제공되는 DNS 캐시가 있습니다.The default Windows DNS client has a DNS cache built-in. 일부 Linux 배포판은 기본적으로 캐싱이 포함되지 않습니다.Some Linux distributions do not include caching by default. 로컬 캐시가 아직 없다는 것을 확인한 후에는 각 Linux VM에 DNS 캐시를 추가합니다.If you find that there isn't a local cache already, add a DNS cache to each Linux VM.

사용할 수 있는 다양한 DNS 캐싱 패키지가 있습니다(예: dnsmasq).There are a number of different DNS caching packages available (such as dnsmasq). 다음은 가장 일반적인 배포판에 dnsmasq를 설치하는 방법입니다.Here's how to install dnsmasq on the most common distributions:

  • Ubuntu(resolvconf 사용) :Ubuntu (uses resolvconf):
    • sudo apt-get install dnsmasq를 사용하여 dnsmasq 패키지를 설치합니다.Install the dnsmasq package with sudo apt-get install dnsmasq.
  • SUSE(netconf 사용) :SUSE (uses netconf):
    • sudo zypper install dnsmasq를 사용하여 dnsmasq 패키지를 설치합니다.Install the dnsmasq package with sudo zypper install dnsmasq.
    • systemctl enable dnsmasq.service를 사용하여 dnsmasq 서비스를 사용하도록 설정합니다.Enable the dnsmasq service with systemctl enable dnsmasq.service.
    • systemctl start dnsmasq.service를 사용하여 dnsmasq 서비스를 시작합니다.Start the dnsmasq service with systemctl start dnsmasq.service.
    • /etc/sysconfig/network/config를 편집하고 NETCONFIG_DNS_FORWARDER=""dnsmasq로 변경합니다.Edit /etc/sysconfig/network/config, and change NETCONFIG_DNS_FORWARDER="" to dnsmasq.
    • 캐시를 로컬 DNS 확인자로 설정하기 위해 resolv.conf를 netconfig update로 업데이트합니다.Update resolv.conf with netconfig update, to set the cache as the local DNS resolver.
  • CentOS (NetworkManager 사용) :CentOS (uses NetworkManager):
    • sudo yum install dnsmasq를 사용하여 dnsmasq 패키지를 설치합니다.Install the dnsmasq package with sudo yum install dnsmasq.
    • systemctl enable dnsmasq.service를 사용하여 dnsmasq 서비스를 사용하도록 설정합니다.Enable the dnsmasq service with systemctl enable dnsmasq.service.
    • systemctl start dnsmasq.service를 사용하여 dnsmasq 서비스를 시작합니다.Start the dnsmasq service with systemctl start dnsmasq.service.
    • prepend domain-name-servers 127.0.0.1;/etc/dhclient-eth0.conf에 추가합니다.Add prepend domain-name-servers 127.0.0.1; to /etc/dhclient-eth0.conf.
    • 캐시를 로컬 DNS 확인자로 설정하기 위해 service network restart로 네트워크 서비스를 다시 시작합니다.Restart the network service with service network restart, to set the cache as the local DNS resolver.

참고

dnsmasq 패키지는 여러 DNS 캐시 중에 Linux에 사용할 수 있는 유일한 캐시입니다.The dnsmasq package is only one of many DNS caches available for Linux. 사용하기 전에 특정 요구 사항에 대한 적합성을 확인하고 다른 캐시가 설치되어 있지 않은지 확인합니다.Before using it, check its suitability for your particular needs, and check that no other cache is installed.

클라이언트 쪽 재시도Client-side retries

DNS는 주로 UDP 프로토콜입니다.DNS is primarily a UDP protocol. UDP 프로토콜은 메시지 배달을 보장하지 않으므로 DNS 프로토콜 자체에서 재시도 논리가 처리됩니다.Because the UDP protocol doesn't guarantee message delivery, retry logic is handled in the DNS protocol itself. 각 DNS 클라이언트(운영 체제)는 작성자의 기본 설정에 따라 서로 다른 재시도 논리를 나타낼 수 있습니다.Each DNS client (operating system) can exhibit different retry logic, depending on the creator's preference:

  • Windows 운영 체제는 1초 후 재시도한 후 2초, 4초 후 다시 재시도하고 또 다시 4초 후 재시도합니다.Windows operating systems retry after one second, and then again after another two seconds, four seconds, and another four seconds.
  • 기본 Linux 설정에서는 5초 후 재시도합니다.The default Linux setup retries after five seconds. 다시 시도 사양을 1초 간격으로 다섯 번으로 변경하는 것이 좋습니다.We recommend changing the retry specifications to five times, at one-second intervals.

cat /etc/resolv.conf를 통해 Linux VM의 현재 설정을 확인합니다.Check the current settings on a Linux VM with cat /etc/resolv.conf. 예를 들어 options 줄을 살펴봅니다.Look at the options line, for example:

options timeout:1 attempts:5

resolv.conf 파일은 일반적으로 자동으로 생성되며 편집할 수 없습니다.The resolv.conf file is usually auto-generated, and should not be edited. options 줄을 추가하는 구체적인 단계는 배포마다 다릅니다.The specific steps for adding the options line vary by distribution:

  • Ubuntu (resolvconf 사용):Ubuntu (uses resolvconf):
    1. options 줄을 /etc/resolvconf/resolv.conf.d/tail에 추가합니다.Add the options line to /etc/resolvconf/resolv.conf.d/tail.
    2. resolvconf -u를 실행하여 업데이트합니다.Run resolvconf -u to update.
  • SUSE (netconf 사용):SUSE (uses netconf):
    1. timeout:1 attempts:5/etc/sysconfig/network/configNETCONFIG_DNS_RESOLVER_OPTIONS="" 매개 변수에 추가합니다.Add timeout:1 attempts:5 to the NETCONFIG_DNS_RESOLVER_OPTIONS="" parameter in /etc/sysconfig/network/config.
    2. netconfig update를 실행하여 업데이트합니다.Run netconfig update to update.
  • CentOS (NetworkManager 사용):CentOS (uses NetworkManager):
    1. echo "options timeout:1 attempts:5"/etc/NetworkManager/dispatcher.d/11-dhclient에 추가합니다.Add echo "options timeout:1 attempts:5" to /etc/NetworkManager/dispatcher.d/11-dhclient.
    2. service network restart로 업데이트합니다.Update with service network restart.

자체 DNS 서버를 사용하는 이름 확인Name resolution that uses your own DNS server

이 섹션에서는 VM, 역할 인스턴스 및 웹앱에 대해 설명합니다.This section covers VMs, role instances, and web apps.

VM 및 역할 인스턴스VMs and role instances

이름 확인 요구 사항이 Azure에서 제공하는 기능의 범위를 벗어날 수 있습니다.Your name resolution needs might go beyond the features provided by Azure. 예를 들어 Microsoft Windows Server Active Directory 도메인을 사용하여 가상 네트워크 간 DNS 이름을 확인해야 할 수 있습니다.For example, you might need to use Microsoft Windows Server Active Directory domains, resolve DNS names between virtual networks. 이러한 시나리오를 해결하기 위해 Azure는 자체 DNS 서버를 사용할 수 있는 기능을 제공합니다.To cover these scenarios, Azure provides the ability for you to use your own DNS servers.

가상 네트워크 내의 DNS 서버는 Azure의 재귀 확인자로 DNS 쿼리를 전달할 수 있습니다.DNS servers within a virtual network can forward DNS queries to the recursive resolvers in Azure. 이렇게 하면 해당 가상 네트워크 내에서 호스트 이름을 확인할 수 있습니다.This enables you to resolve host names within that virtual network. 예를 들어, Azure에서 실행 중인 DC(도메인 컨트롤러)는 해당 도메인에 대한 DNS 쿼리에 응답하고 Azure에 다른 모든 쿼리를 전달할 수 있습니다.For example, a domain controller (DC) running in Azure can respond to DNS queries for its domains, and forward all other queries to Azure. 쿼리 전달을 통해 VM은 온-프레미스 리소스(DC를 통해)와 Azure에서 제공하는 호스트 이름(전달자를 통해)을 확인할 수 있습니다.Forwarding queries allows VMs to see both your on-premises resources (via the DC) and Azure-provided host names (via the forwarder). Azure의 재귀 확인자에 대한 액세스는 가상 IP 168.63.129.16을 통해 제공됩니다.Access to the recursive resolvers in Azure is provided via the virtual IP 168.63.129.16.

또한 DNS 전달로 가상 네트워크 간 DNS 확인이 가능하며 온-프레미스 컴퓨터는 Azure에서 제공하는 호스트 이름을 확인할 수 있습니다.DNS forwarding also enables DNS resolution between virtual networks, and allows your on-premises machines to resolve Azure-provided host names. VM의 호스트 이름을 확인하려면 DNS 서버 VM이 동일한 가상 네트워크에 있어야 하며 Azure에 호스트 이름 쿼리를 전달하도록 구성되어야 합니다.In order to resolve a VM's host name, the DNS server VM must reside in the same virtual network, and be configured to forward host name queries to Azure. DNS 접미사는 가상 네트워크마다 다르기 때문에 올바른 가상 네트워크에 DNS 쿼리를 보내도록 조건부 전달 규칙을 사용하여 이름을 확인할 수 있습니다.Because the DNS suffix is different in each virtual network, you can use conditional forwarding rules to send DNS queries to the correct virtual network for resolution. 다음 이미지는 이 방법을 사용하여 가상 네트워크 간에 DNS를 확인하는 두 가상 네트워크 및 온-프레미스 네트워크를 보여 줍니다.The following image shows two virtual networks and an on-premises network doing DNS resolution between virtual networks, by using this method. 예제 DNS 전달자는 Azure 빠른 시작 템플릿 갤러리GitHub에서 사용할 수 있습니다.An example DNS forwarder is available in the Azure Quickstart Templates gallery and GitHub.

참고

역할 인스턴스는 동일한 가상 네트워크 내에서 VM의 이름 확인을 수행할 수 있습니다.A role instance can perform name resolution of VMs within the same virtual network. 이를 위해 VM의 호스트 이름과 internal.cloudapp.net DNS 접미사로 구성되는 FQDN을 사용하면 됩니다.It does so by using the FQDN, which consists of the VM's host name and internal.cloudapp.net DNS suffix. 그러나 이 경우 역할 인스턴스가 역할 스키마(.cscfg 파일)에서 정의된 이름을 가지는 경우에만 이름 확인에 성공합니다.However, in this case, name resolution is only successful if the role instance has the VM name defined in the Role Schema (.cscfg file). <Role name="<role-name>" vmName="<vm-name>">

다른 가상 네트워크(internal.cloudapp.net 접미사를 사용하는 FQDN)에서 VM 이름 확인을 수행해야 하는 역할 인스턴스는 이 섹션(두 가상 네트워크 간의 사용자 지정 DNS 서버 전달)에 설명된 방법을 사용하여 이 작업을 수행해야 합니다.Role instances that need to perform name resolution of VMs in another virtual network (FQDN by using the internal.cloudapp.net suffix) have to do so by using the method described in this section (custom DNS servers forwarding between the two virtual networks).

가상 네트워크 간의 DNS 다이어그램

Azure 제공 이름 확인을 사용하는 경우 Azure DHCP(Dynamic Host Configuration Protocol)는 각 VM에 내부 DNS 접미사( . internal.cloudapp.net)를 제공합니다.When you are using Azure-provided name resolution, Azure Dynamic Host Configuration Protocol (DHCP) provides an internal DNS suffix (.internal.cloudapp.net) to each VM. 호스트 이름 레코드가 internal.cloudapp.net 영역에 있으므로 이 접미사를 통해 호스트 이름 확인을 수행할 수 있습니다.This suffix enables host name resolution because the host name records are in the internal.cloudapp.net zone. 자체 이름 확인 솔루션을 사용하는 경우 이 접미사는 다른 DNS 아키텍처에 방해가 되기 때문에 VM에 제공되지 않습니다(예: 도메인 가입 시나리오).When you are using your own name resolution solution, this suffix is not supplied to VMs because it interferes with other DNS architectures (like domain-joined scenarios). 대신 작동하지 않는 자리 표시자(reddog.microsoft.com)가 제공됩니다.Instead, Azure provides a non-functioning placeholder (reddog.microsoft.com).

필요한 경우 PowerShell 또는 API를 사용하여 내부 DNS 접미사를 확인할 수 있습니다.If necessary, you can determine the internal DNS suffix by using PowerShell or the API:

Azure에 전달하는 쿼리가 사용자 요구에 적합하지 않은 경우 자체 DNS 솔루션을 제공해야 합니다.If forwarding queries to Azure doesn't suit your needs, you should provide your own DNS solution. DNS 솔루션은 다음을 수행해야 합니다:Your DNS solution needs to:

  • DDNS 등을 통해 적절한 호스트 이름 확인을 제공합니다.Provide appropriate host name resolution, via DDNS, for example. DDNS를 사용하는 경우 DNS 레코드 청소 기능을 해제해야 할 수도 있습니다.If you are using DDNS, you might need to disable DNS record scavenging. Azure DHCP 임대는 기간이 매우 길며 청소를 통해 DNS 레코드가 완전히 제거될 수 있습니다.Azure DHCP leases are long, and scavenging might remove DNS records prematurely.
  • 외부 도메인 이름을 확인할 수 있도록 적절한 재귀 확인을 제공해야 합니다.Provide appropriate recursive resolution to allow resolution of external domain names.
  • 제공하는 클라이언트에서 액세스 가능해야 하고(포트 53에서 TCP 및 UDP) 인터넷에 액세스할 수 있어야 합니다.Be accessible (TCP and UDP on port 53) from the clients it serves, and be able to access the internet.
  • 외부 에이전트로 인해 나타나는 위험을 완화하기 위해 인터넷의 액세스로부터 보호되어야 합니다.Be secured against access from the internet, to mitigate threats posed by external agents.

참고

최상의 성능을 위해 Azure VM을 DNS 서버로 사용할 경우 IPv6를 사용하지 않도록 설정해야 합니다.For best performance, when you are using Azure VMs as DNS servers, IPv6 should be disabled. 공용 IP를 각 DNS 서버 VM에 할당해야 합니다.A public IP address should be assigned to each DNS server VM. Windows Server를 DNS 서버로 사용할 때의 추가 성능 분석 및 최적화는 재귀적 Windows DNS Server 2012 R2의 이름 확인 성능을 참조하세요.For additional performance analysis and optimizations when you are using Windows Server as your DNS server, see Name resolution performance of a recursive Windows DNS Server 2012 R2.

웹앱Web apps

가상 네트워크 또는 동일한 가상 네트워크의 VM에 연결된 App Service를 사용하여 빌드된 웹앱에서 이름 확인을 수행해야 한다고 가정합니다.Suppose you need to perform name resolution from your web app built by using App Service, linked to a virtual network, to VMs in the same virtual network. Azure(가상 IP 168.63.129.16)로 쿼리를 전달하는 DNS 전달자가 있는 사용자 지정 DNS 서버를 설정하는 것 외에 다음 단계를 수행합니다.In addition to setting up a custom DNS server that has a DNS forwarder that forwards queries to Azure (virtual IP 168.63.129.16), perform the following steps:

  1. 가상 네트워크와 앱 통합에서 설명한 대로 웹앱에 대해 가상 네트워크 통합을 사용하도록 설정합니다(아직 수행하지 않은 경우).Enable virtual network integration for your web app, if not done already, as described in Integrate your app with a virtual network.

  2. Azure Portal에서 웹앱을 호스트하는 AppService 계획에 대해 네트워킹가상 네트워크 통합에서 네트워크 동기화를 선택합니다.In the Azure portal, for the App Service plan hosting the web app, select Sync Network under Networking, Virtual Network Integration.

    가상 네트워크 이름 확인 스크린샷

가상 네트워크에 연결된 App Service를 사용하여 빌드된 웹앱으로부터 다른 가상 네트워크의 VM으로의 이름 확인을 수행할 필요가 있는 경우 다음과 같이 두 가상 네트워크 모두에서 사용자 지정 DNS 서버를 사용해야 합니다.If you need to perform name resolution from your web app built by using App Service, linked to a virtual network, to VMs in a different virtual network, you have to use custom DNS servers on both virtual networks, as follows:

  • Azure의 재귀 확인자(가상 IP 168.63.129.16)에도 쿼리를 전달할 수 있는 VM에서 대상 가상 네트워크에 DNS 서버를 설정합니다.Set up a DNS server in your target virtual network, on a VM that can also forward queries to the recursive resolver in Azure (virtual IP 168.63.129.16). 예제 DNS 전달자는 Azure 빠른 시작 템플릿 갤러리GitHub에서 사용할 수 있습니다.An example DNS forwarder is available in the Azure Quickstart Templates gallery and GitHub.
  • VM에서 원본 가상 네트워크의 DNS 전달자를 설정합니다.Set up a DNS forwarder in the source virtual network on a VM. 대상 가상 네트워크의 DNS 서버로 쿼리를 전달하도록 이 DNS 전달자를 구성합니다.Configure this DNS forwarder to forward queries to the DNS server in your target virtual network.
  • 원본 가상 네트워크의 설정에 원본 DNS 서버를 구성합니다.Configure your source DNS server in your source virtual network’s settings.
  • 가상 네트워크와 앱 통합의 지침에 따라 원본 가상 네트워크에 웹앱을 연결하기 위해 가상 네트워크 통합을 사용하도록 설정합니다.Enable virtual network integration for your web app to link to the source virtual network, following the instructions in Integrate your app with a virtual network.
  • Azure Portal에서 웹앱을 호스트하는 AppService 계획에 대해 네트워킹가상 네트워크 통합에서 네트워크 동기화를 선택합니다.In the Azure portal, for the App Service plan hosting the web app, select Sync Network under Networking, Virtual Network Integration.

DNS 서버 지정Specify DNS servers

사용자 고유의 DNS 서버를 사용할 때 Azure는 가상 네트워크당 자체 DNS 서버를 지정할 수 있는 기능을 제공합니다.When you are using your own DNS servers, Azure provides the ability to specify multiple DNS servers per virtual network. 또한 네트워크 인터페이스(Azure Resource Manager용) 또는 클라우드 서비스(클래식 배포 모델)당 여러 DNS 서버를 지정할 수도 있습니다.You can also specify multiple DNS servers per network interface (for Azure Resource Manager), or per cloud service (for the classic deployment model). 네트워크 인터페이스 또는 클라우드 서비스에 대해 지정된 DNS 서버가 가상 네트워크에 대해 지정된 서버보다 우선적으로 사용됩니다.DNS servers specified for a network interface or cloud service get precedence over DNS servers specified for the virtual network.

참고

DNS 서버 Ip와 같은 네트워크 연결 속성은 Vm 내에서 직접 편집 하면 안 됩니다.Network connection properties, such as DNS server IPs, should not be edited directly within VMs. 가상 네트워크 어댑터가 교체될 때 서비스 복구 동안 지워질 수 있기 때문입니다.This is because they might get erased during service heal when the virtual network adaptor gets replaced. 이는 Windows 및 Linux Vm 둘 다에 적용 됩니다.This applies to both Windows and Linux VMs.

Azure Resource Manager 배포 모델을 사용하는 경우 가상 네트워크 및 가상 인터페이스에 대해 DNS 서버를 지정할 수 있습니다.When you are using the Azure Resource Manager deployment model, you can specify DNS servers for a virtual network and a network interface. 자세한 내용은 가상 네트워크 관리네트워크 인터페이스 관리를 참조합니다.For details, see Manage a virtual network and Manage a network interface.

참고

가상 네트워크에 사용자 지정 DNS 서버를 포함하려는 경우에는 DNS 서버 IP 주소를 하나 이상 지정해야 합니다. 이렇게 하지 않으면 가상 네트워크에서 구성을 무시하고 Azure에서 제공하는 DNS를 대신 사용합니다.If you opt for custom DNS server for your virtual network, you must specify at least one DNS server IP address; otherwise, virtual network will ignore the configuration and use Azure-provided DNS instead.

클래식 배포 모델을 사용할 때 Azure Portal 또는 네트워크 구성 파일에서 가상 네트워크에 대한 DNS 서버를 지정할 수 있습니다.When you are using the classic deployment model, you can specify DNS servers for the virtual network in the Azure portal or the Network Configuration file. 클라우드 서비스의 경우 DNS 서버는 서비스 구성 파일을 통해 또는 New-AzureVM을 사용하여 지정할 수 있습니다.For cloud services, you can specify DNS servers via the Service Configuration file or by using PowerShell, with New-AzureVM.

참고

이미 배포된 가상 네트워크 또는 가상 머신에 대한 DNS 설정을 변경하면 영향을 받는 각 VM을 다시 시작해야 변경사항이 적용됩니다.If you change the DNS settings for a virtual network or virtual machine that is already deployed, you need to restart each affected VM for the changes to take effect.

다음 단계Next steps

Azure Resource Manager 배포 모델:Azure Resource Manager deployment model:

클래식 배포 모델:Classic deployment model: