SDN용 iDNS(내부 DNS 서비스)
Windows Server에서 SDN(소프트웨어 정의 네트워킹)을 배포하려는 CSP(클라우드 서비스 공급자) 또는 엔터프라이즈에서 작업하는 경우 SDN과 통합된 iDNS(내부 DNS)를 사용하여 호스트된 테넌트 워크로드에 DNS 서비스를 제공할 수 있습니다.
호스트된 VM(가상 머신) 및 애플리케이션에는 DNS가 자체 네트워크 내에서 그리고 인터넷의 외부 리소스와 통신해야 합니다. iDNS를 사용하면 격리된 로컬 네임스페이스 및 인터넷 리소스에 대한 DNS 이름 확인 서비스를 테넌트에 제공할 수 있습니다.
iDNS 서비스는 iDNS 프록시를 통하지 않고 테넌트 가상 네트워크에서 액세스할 수 없으므로 서버는 테넌트 네트워크의 악의적인 활동에 취약하지 않습니다.
주요 기능
다음은 iDNS의 주요 기능입니다.
- 테넌트 워크로드에 대한 공유 DNS 이름 확인 서비스 제공
- 테넌트 이름 공간 내에서 이름 확인 및 DNS 등록에 대한 신뢰할 수 있는 DNS 서비스
- 테넌트 VM에서 인터넷 이름을 확인하기 위한 재귀 DNS 서비스
- 원하는 경우 패브릭 및 테넌트 이름의 동시 호스팅을 구성할 수 있습니다.
- 비용 효율적인 DNS 솔루션 - 테넌트는 자체 DNS 인프라를 배포할 필요가 없습니다.
- Active Directory 통합을 사용한 고가용성(필수)
이러한 기능 외에도 AD 통합 DNS 서버를 인터넷에 열어 두는 것이 우려되는 경우 경계 네트워크의 다른 재귀 확인자 뒤에 iDNS 서버를 배포할 수 있습니다.
iDNS는 모든 DNS 쿼리에 대한 중앙 집중식 서버이므로 CSP 또는 엔터프라이즈는 테넌트 DNS 방화벽을 구현하고, 필터를 적용하고, 악의적인 활동을 탐지하고, 중앙 위치에서 트랜잭션을 감사할 수도 있습니다.
iDNS 인프라
iDNS 인프라에는 iDNS 서버 및 iDNS 프록시가 포함됩니다.
iDNS 서버
iDNS에는 VM DNS 리소스 레코드와 같은 테넌트별 데이터를 호스트하는 DNS 서버 집합이 포함되어 있습니다.
iDNS 서버는 내부 DNS 영역에 대한 신뢰할 수 있는 서버이며 테넌트 VM이 외부 리소스에 연결하려고 할 때 공용 이름에 대한 확인자 역할을 합니다.
가상 네트워크의 VM에 대한 모든 호스트 이름은 동일한 영역 아래에 DNS 리소스 레코드로 저장됩니다. 예를 들어 contoso.local이라는 영역에 대해 iDNS를 배포하는 경우 해당 네트워크의 VM에 대한 DNS 리소스 레코드가 contoso.local 영역에 저장됩니다.
테넌트 VM FQDN(정규화된 도메인 이름)은 컴퓨터 이름과 가상 네트워크의 DNS 접미사 문자열(GUID 형식)로 구성됩니다. 예를 들어 가상 네트워크 contoso,local에 있는 TENANT1이라는 테넌트 VM이 있는 경우 VM의 FQDN은 TENANT1.vn-guid.contoso.local입니다. 여기서 vn-guid는 가상 네트워크의 DNS 접미사 문자열입니다.
참고 항목
패브릭 관리자인 경우 iDNS 서버로 사용하기 위해 특별히 새 DNS 서버를 배포하는 대신 CSP 또는 엔터프라이즈 DNS 인프라를 iDNS 서버로 사용할 수 있습니다. iDNS용 새 서버를 배포하든 기존 인프라를 사용하든 iDNS는 Active Directory를 사용하여 고가용성을 제공합니다. 따라서 iDNS 서버를 Active Directory와 통합해야 합니다.
iDNS 프록시
iDNS 프록시는 모든 호스트에서 실행되며 테넌트 가상 네트워크 DNS 트래픽을 iDNS 서버로 전달하는 Windows 서비스입니다.
다음 그림에서는 iDNS 프록시를 통해 iDNS 서버 및 인터넷에 대한 테넌트 가상 네트워크의 DNS 트래픽 경로를 보여 줍니다.
iDNS를 배포하는 방법
스크립트를 사용하여 Windows Server 2016에서 SDN을 배포하면 iDNS가 배포에 자동으로 포함됩니다.
자세한 내용은 다음 항목을 참조하십시오.
iDNS 배포 단계 이해
이 섹션을 통해 스크립트를 사용하여 SDN을 배포할 때 iDNS를 설치하고 구성하는 방법을 이해할 수 있습니다.
다음은 iDNS를 배포하는 데 필요한 단계에 대한 요약입니다.
참고 항목
스크립트를 사용하여 SDN을 배포한 경우 이러한 단계를 수행할 필요가 없습니다. 이 단계는 정보 및 문제 해결 목적으로만 제공됩니다.
1단계: DNS 배포
다음 예제 Windows PowerShell 명령을 사용하여 DNS 서버를 배포할 수 있습니다.
Install-WindowsFeature DNS -IncludeManagementTools
2단계: 네트워크 컨트롤러에서 iDNS 정보 구성
이 스크립트 세그먼트는 iDNSServer의 IP 주소 및 iDNS 이름을 호스트하는 데 사용되는 영역과 같은 iDNS 영역 구성에 대해 알리는 관리자가 네트워크 컨트롤러용으로 만드는 REST 호출입니다.
Url: https://<url>/networking/v1/iDnsServer/configuration
Method: PUT
{
"properties": {
"connections": [
{
"managementAddresses": [
"10.0.0.9"
],
"credential": {
"resourceRef": "/credentials/iDnsServer-Credentials"
},
"credentialType": "usernamePassword"
}
],
"zone": "contoso.local"
}
}
참고 항목
SDNExpress.ps1의 Configuration ConfigureIDns 섹션에서 발췌한 내용입니다. 자세한 내용은 스크립트를 사용하여 소프트웨어 정의 네트워크 인프라 배포를 참조하세요.
3단계: iDNS 프록시 서비스 구성
iDNS 프록시 서비스는 각 Hyper-V 호스트에서 실행되어 테넌트 가상 네트워크와 iDNS 서버가 있는 물리적 네트워크 간에 브리지를 제공합니다. 모든 Hyper-V 호스트에서 다음 레지스트리 키를 만들어야 합니다.
DNS 포트: 고정 포트 53
- 레지스트리 키 = HKLM\SYSTEM\CurrentControlSet\Services\NcHostAgent\Parameters\Plugins\Vnet\InfraServices\DnsProxyService"
- ValueName = "Port"
- ValueData = 53
- ValueType = "Dword"
DNS 프록시 포트: 고정 포트 53
- 레지스트리 키 = HKLM\SYSTEM\CurrentControlSet\Services\NcHostAgent\Parameters\Plugins\Vnet\InfraServices\DnsProxyService"
- ValueName = "ProxyPort"
- ValueData = 53
- ValueType = "Dword"
DNS IP: 테넌트가 iDNS 서비스를 사용하도록 선택하는 경우 네트워크 인터페이스에 구성된 고정 IP 주소
- 레지스트리 키 = HKLM\SYSTEM\CurrentControlSet\Services\NcHostAgent\Parameters\Plugins\Vnet\InfraServices\DnsProxyService"
- ValueName = "IP"
- ValueData = "169.254.169.254"
- ValueType = "String"
Mac 주소: DNS 서버의 미디어 액세스 제어 주소
- 레지스트리 키 = HKLM\SYSTEM\CurrentControlSet\Services\NcHostAgent\Parameters\Plugins\Vnet\InfraServices\DnsProxyService
- ValueName = "MAC"
- ValueData = "aa-bb-cc-aa-bb-cc"
- ValueType = "String"
IDNS 서버 주소: iDNS 서버의 쉼표로 구분된 목록입니다.
- 레지스트리 키: HKLM\SYSTEM\CurrentControlSet\Services\DNSProxy\Parameters
- ValueName = "Forwarders"
- ValueData = "10.0.0.9"
- ValueType = "String"
참고 항목
SDNExpress.ps1의 Configuration ConfigureIDnsProxy 섹션에서 발췌한 내용입니다. 자세한 내용은 스크립트를 사용하여 소프트웨어 정의 네트워크 인프라 배포를 참조하세요.
4단계: 네트워크 컨트롤러 호스트 에이전트 서비스 다시 시작
다음 Windows PowerShell 명령을 사용하여 네트워크 컨트롤러 호스트 에이전트 서비스를 다시 시작할 수 있습니다.
Restart-Service nchostagent -Force
자세한 내용은 Restart-Service를 참조하세요.
DNS 프록시 서비스에 대한 방화벽 규칙 사용
다음 Windows PowerShell 명령을 사용하여 프록시에 대한 예외가 VM 및 iDNS 서버와 통신하도록 허용하는 방화벽 규칙을 만들 수 있습니다.
Enable-NetFirewallRule -DisplayGroup 'DNS Proxy Firewall'
자세한 내용은 Enable-NetFirewallRule을 참조하세요.
iDNS 서비스의 유효성 검사
iDNS 서비스의 유효성을 검사하려면 샘플 테넌트 워크로드를 배포해야 합니다.
자세한 내용은 VM을 만들고 테넌트 가상 네트워크 또는 VLAN에 연결을 참조하세요.
테넌트 VM이 iDNS 서비스를 사용하도록 하려면 VM 네트워크 인터페이스 DNS 서버 구성을 비워 두고 인터페이스에서 DHCP를 사용하도록 허용해야 합니다.
이러한 네트워크 인터페이스가 있는 VM이 시작되면 VM에서 iDNS를 사용할 수 있는 구성이 자동으로 수신되고 VM은 iDNS 서비스를 사용하여 즉시 이름 확인을 수행하기 시작합니다.
네트워크 인터페이스 DNS 서버 및 대체 DNS 서버 정보를 비워 두어 iDNS 서비스를 사용하도록 테넌트 VM을 구성하는 경우 네트워크 컨트롤러는 VM에 IP 주소를 제공하고 iDNS 서버에서 VM을 대신하여 DNS 이름 등록을 수행합니다.
또한 네트워크 컨트롤러는 VM에 대한 이름 확인을 수행하는 데 필요한 세부 정보와 VM을 iDNS 프록시에 알릴 수 있습니다.
VM이 DNS 쿼리를 시작하면 프록시는 가상 네트워크에서 iDNS 서비스로 쿼리의 전달자 역할을 합니다.
또한 DNS 프록시는 테넌트 VM 쿼리가 격리되도록 합니다. iDNS 서버가 쿼리를 신뢰할 수 있는 경우 iDNS 서버는 신뢰할 수 있는 응답으로 응답합니다. iDNS 서버가 쿼리를 신뢰할 수 없는 경우 DNS 재귀를 수행하여 인터넷 이름을 확인합니다.
참고 항목
이 정보는 SDNExpressTenant.ps1의 Configuration AttachToVirtualNetwork 섹션에 포함되어 있습니다. 자세한 내용은 스크립트를 사용하여 소프트웨어 정의 네트워크 인프라 배포를 참조하세요.