개요
온프레미스 환경과 Azure 환경을 함께 사용하는 경우 정의해야 할 문제 중 하나는 DNS입니다.
온프레미스에서는 내부 AD DNS를 이용 중일테고
Azure에서는 PaaS 서비스들은 Azure DNS를 이용한 PrivateLink로 연결되기 때문에
두 환경 간 DNS 체계를 자연스럽게 연결하지 않으면 굉장히 골치 아파집니다.
Azure Private DNS Resolver를 사용해 온프레미스 DNS와 Azure Private DNS Zone을 연결하는
Hybrid DNS 구조를 구성한 뒤
| 온프레미스 DNS → Azure Private DNS Resolver → Private DNS Zone → Azure SQL Private Endpoint |
Azure SQL Server라는 PaaS 서비스가
온프레미스 DNS 환경에서 FQDN이 Private IP로 해석되는 것까지 확인해 보겠습니다.
구성 요소

온프레미스 DNS는 내부 도메인(corp.local)을 직접 해석하고,
Azure Private Endpoint 관련 도메인에 대해서는 Azure Private DNS Resolver로 질의를 전달합니다.
Resolver가 온프레미스 ↔ Azure 간 양방향 DNS 해석을 중계하는 구조입니다.
진행 과정
VNet 생성 및 서브넷 연동
먼저 모든 네트워크의 기초...인 VNet 부터 생성해 줍니다.

대역대는 10.10.0.0으로 설정하였습니다.

서브넷은 총 3개를 추가해 주도록 합니다.

온프레미스 DNS가 쓸 서브넷

나중에 테스트로 사용할 VM용 서브넷입니다.

Azure Private DNS Resolver는 특이.. 하면서도 어쩌면 당연한 게
DNS 질의의 Inbound와 Outbound 흐름을 분리하기 위해 전용 서브넷 2개를 사용합니다.
Inbound는 온프레미스 DNS 서버가 → Azure로 DNS 질의를 보낼 때 들어오는 입구인 거고
Outbound는 Azure Private DNS Resolver가 → 다른 DNS 서버로 질의를 전달할 때 사용하는 출구입니다
또한 관리형 서비스 특성상 안정성을 위해 최소 /28 이상의 주소 공간을 요구합니다.



On-premise DNS 역할 VM 구성
이제 온프레미스 DNS 역할을 할 VM을 만들어줍니다.
Hyper-V에 이미 DNS가 있다면 이 부분은 생략해도 됩니다.

서브넷은 아까 생성해 둔 것을 선택합니다.

VM이 생성되었다면 동적으로 설정되어 있는 IP를 정적으로 할당해,
Azure Private DNS Resolver의 포워딩 대상 IP가 변경되지 않도록 고정해 줍니다.



맨날 리눅스만 보다가 윈도우를 보니 Microsoft 주가가 이해됩니다.
서버 매니저에서 Add Roles and Features를 클릭해 줍니다.

온프레미스 DNS 역할을 수행할 Windows Server에 DNS Server 역할을 추가해,
Azure Private DNS Resolver와 연동될 기준 DNS 서버를 준비해 줍니다.


이제 새롭게 추가가 된 DNS Manager에 들어가 줍니다.

온프레미스 DNS 서버에 Zone을 생성해,
내부 도메인에 대한 해석을 담당할 기준 DNS 영역을 구성해 줍니다

놀랍게도 위자드가 따로 있습니다 호그와트라 해도 믿겠습니다.

온프레미스 DNS 서버가 직접 레코드를 관리하도록 Primary Zone으로 구성합니다.


온프레미스 DNS 서버에 corp.local 존을 생성하고 dc01에 대한 A 레코드를 등록해 줍니다.


Azure VM이 이름 해석 시 Azure 기본 DNS가 아니라
온프레미스 DNS 서버를 먼저 사용하도록 다음과 같이 설정해 줍니다.

Azure VM이 온프레미스 DNS 서버를 사용하고 있음을 확인할 수 있었습니다.

Private DNS Zone 생성
추후에 만들 Azure SQL과 같은 Private Endpoint 리소스는 공용 DNS가 아니라
privatelink 같은 전용 DNS 영역을 통해서만 Private IP로 해석됩니다
그래서 Hybrid DNS에서 Azure 리소스를 정상적으로 접근하기 위해서는 Private DNS Zone가 필요합니다.

이름은 적절하게 선택해 줍니다.

해당 VNet에 연결해 준 뒤 자동 등록은 일부러 껐는데요
이걸 켜면 VNet에 붙은 모든... IP들이 자동으로 Private DNS Zone에 등록되는데
이번 실습은 온프레미스 DNS → Azure Private DNS Resolver → Private DNS Zone → Azure SQL Private Endpoint
이 흐름이 동작함을 증명하는 과정이므로 껐습니다.


Private DNS Resolver 생성
온프레미스 DNS가 Azure Private DNS를 조회할 수 있게 해주는 중간 다리입니다.

이 또한 기존 VNet에 붙여줍니다.

온프레미스 DNS가 질의를 보낼 Azure 쪽 수신 지점을 설정해 줍니다.

이전에 만들어둔 서브넷을 선택합니다.

아웃바운드도 동일하게 설정해 줍니다.

Azure에서 온프레미스 DNS로 전달할 규칙을 정의하기 위해 ruleset을 구성해 줍니다.

DNS Forwarding 구성 (양방향)
Azure 쪽에서 corp.local 요청이 오면, 자체 해석하지 않고 온프레미스 DNS로 그대로 넘기기 위한 규칙을 설정해 주고

이번에는 온프레미스 DNS가 Azure 도메인 질의를 받았을 때 Azure Private Resolver로 전달하도록 구성하는 반대 설정입니다.


여기가 이제 온프레미스 DNS가 Azure 쪽 이름 해석을 던질 때 최초를 받아들이는 지점입니다.


Azure SQL Private Endpoint 연결
온프레미스 → Azure 방향 이름 해석이 정상 동작하는지 그리고
privatelink.database.windows.net 전용 Private DNS Zone이 실제로 생성·연결되는지 확인하기 위해
Azure SQL을 하나 생성해 Private Endpoint를 붙여보겠습니다.

Public IP를 disable 하고

Private Endpoint를 생성해 줍니다.

기존의 Private DNS 영역과 통합해 준 뒤

다시 온프레미스 DNS에서 질의했지만
database.windows.net 요청이 Azure Private DNS Resolver를 통해 처리되어,
퍼블릭 FQDN이 내부적으로 privatelink.database.windows.net로 변환되고
Private Endpoint IP로 정상 해석되는 것을 확인할 수 있었습니다.

참고자료
프라이빗 엔드포인트란? - Azure Private Link | Microsoft Learn
프라이빗 엔드포인트란? - Azure Private Link
이 문서에서는 Azure 프라이빗 링크의 프라이빗 엔드포인트 기능을 사용하는 방법을 알아봅니다.
learn.microsoft.com
Azure 프라이빗 DNS: 가상 네트워크에 대한 보안 DNS | Microsoft Learn
Azure 프라이빗 DNS: 가상 네트워크에 대한 보안 DNS
Azure 프라이빗 DNS가 사용자 지정 솔루션 없이 가상 네트워크에 대해 안전하고 신뢰할 수 있는 DNS 관리를 제공하는 방법을 알아봅니다. 기능과 혜택을 탐색하고 지금 시작하세요.
learn.microsoft.com
'Azure > Azure Infra & Networking' 카테고리의 다른 글
| Azure Bicep - VS Code로 bicep 실행 환경 준비하기 (0) | 2026.03.16 |
|---|---|
| Azure Networking - Load Balancer(L4)로 부하 분산하기 (0) | 2026.02.27 |
| Azure Networking - Service Endpoint vs Private Endpoint (0) | 2025.12.18 |
| Azure Networking - Azure Firewall로 DNAT/SNAT 구성하기 (0) | 2025.12.01 |
| Azure Networking - UDR으로 경로 지정하기 (0) | 2025.11.05 |