Notice
Recent Posts
Recent Comments
시간을 줄여주는 블로그(IT, Azure)
Azure PaaS의 Private Endpoint 통신 오류 관련 - 리소스 타입에 따라 통신이 안될 수 있는 이슈 정 본문
- 이슈 요약
: 클라이언트 시스템(Hub) -> NVA Firewall (Hub) -> Private Endpoint -Azure SQL Server(Spoke) 흐름의 통신 실패
참고로, Private Endpoint와 동일 네트워크에 VM을 구성하면 정상적으로 통신 가능
- 확인 내용
: Private Endpoint에 연결된 PaaS 자원에 따라 통신 차이가 확인 됨
- Azure SQL Server (통신 실패)
- Azure Storage Account (통신 성공)
Private Endpoint 로부터의 return traffic은 UDR이 적용되지 않아 NVA에 SNAT 미사용 시asymmetric으로 통신 된다는 내용 확인
Private Endpoint 내부 구조에 따른 제약 사항으로 발생하는 부분으로
asymmetric routing 을 통한 통신은 보장 되는 동작 방식이 아닌 특이 동작 현상으로
Private Endpoint의 경우 asymmetric routing을 통한 통신이 가능하더라도SNAT을 항상 사용하는 것이 권장사항인 것으로 확인 - MS 답변
기존 테스트 환경에서의 차이로 인한 테스트 결과 차이에 대한 요청으로
금일 동일한 고객사 환경과 동일한 테스트 환경에서 테스트를 진행하였으며 테스트 결과 공유 드립니다.
테스트 환경은 고객 환경과 동일한 구조로 client vm이 배포되어 있는 VNet 내에 NVA를 구성하였으며
Private Endpoint는 peering 되어 있는 vnet 내에 구성하였습니다.
Private endpoint와 연결되어 있는 리소스에 따라 pe의 동작 방식 차이를 확인 하기 위해
SQL pe 이외에도 비교군으로 storage account pe를 사용하였으며
접속을 시도하는 VM이 배포되어 있는 vm의 subnet에는
10.129.0.0/24 대역의 next hop을 10.4.254.4 로 라우팅 하는 UDR을 구성하였으며
PE가 배포 되어 있는 subnet에는
10.4.0.0/24 대역의 next hop을 10.4.254.4 로 라우팅 하는 UDR 적용 시에 따른 변화 또한 테스트 하였습니다.
테스트 결과는 다음과 같습니다.
- 시나리오 1.
- PE subnet UDR : 미적용
- Firewall SNAT : 미사용
VM -> NVA -> VM : 접속실패
VM-> NVA -> SQL PE : 접속실패
VM -> NVA -> Storage PE : 접속성공
- 시나리오 2.
- PE subnet UDR : 적용
- Firewall SNAT : 미사용
VM-> NVA -> VM : 접속성공
VM-> NVA -> SQL PE : 접속실패
VM -> NVA -> Storage PE : 접속성공 - 시나리오 3.
- PE subnet UDR : 적용
- Firewall SNAT : 사용
VM -> NVA -> VM : 접속성공
VM -> NVA -> SQL PE : 접속성공
VM -> NVA -> Storage PE : 접속성공
위 테스트 결과를 토대로 문의 주신 Private endpoint 통신 문제에 대한 답변을 드립니다.
1. Private Endpoint 로부터의 return traffic은 UDR이 적용되지 않아 NVA에 SNAT 미사용 시asymmetric으로 통신 된다는 내용 다시 한번 확인 드립니다.
- return traffic 이 UDR에 적용을 받는 VM 의 경우 UDR이 적용된 시나리오 2. 에서만 통신이 가능했으며
- storage pe 의 경우 UDR에 관계 없이 시나리오 1., 2. 모두에서 통신이 가능하여 asymmetric 라우팅을 통해 통신이 가능한 점을 확인할 수 있었습니다.
- 또한, 저희 기술지원팀 내부 로그 확인 시 시나리오 1. 트래픽의 경우 FW를 틍한 트래픽이 다시 되돌아오지 않아 FW상에서는 트래픽이 드롭 되고 있는 것을 확인하였습니다.
2. 다만, 위 테스트 결과와 같이 storage pe와 sql pe가 동일한 동작을 하지 않은 부분을 확인할 수 있었으며
Sql private endpoint사용에 대한 정보 확인 시
SQL server의 경우 Private Endpoint 와 Private link 이후 별도의 내부 gateway가 사용되는 것으로 확인되며 이에 따라 PE와 연결되는 다른 리소스들과 달리 “Connection Policy”가 별도로 존재하는 것으로 확인됩니다.
따라서, SQL PE의 경우 NVA를 통한 트래픽 필터링 시Asymmetric routing을 통한 통신 조차 불가능하다는 것을 알 수 있었으며 기존 이빈 엔지니어가 답변 드린 내용과 같이 Private Endpoint 를 향한 트래픽 필터링 시에는 SNAT를 항상 사용하셔야 하는 것이 맞는 점 다시 한번 안내드립니다. SNAT 미사용 시 위 테스트 결과와 같이 연결된 리소스에 따라 PE 동작 방식에 차이가 발생할 수 있음으로 확인
<참고자료>
프라이빗 엔드포인트로 향하는 트래픽을 검사하는 Azure Firewall 시나리오 - Azure Private Link | Microsoft Learn
<참고자료>
프라이빗 엔드포인트란? - Azure Private Link | Microsoft Learn
Comments