2020-09-17
Azure의 Standard Internal Load Balancer의 Backend VM은 기본적으로(by-design) 인터넷 아웃바운드 연결이 차단됩니다. 관련 내용은 아래 doc에서 확인할 수 있습니다.
실제로 인터넷 연결이 차단되는지 테스트 환경을 구성해보았습니다.
Azure 일본 동부 리전에 두 대의 Windows VM을 배포하였습니다.
Standard Internal Loab Balancer를 생성하고, Backendpool에 위 VM 두 대를 연결하였습니다.
Bastion을 통하여 VM에 접속한 후 www.google.com에 접속해보았습니다.
아래와 같이 연결이 안되는 것을 확인했습니다.
해결책
맨 처음에 언급했던 doc에서는 Standard Public Load Balancer를 만들고 Outbound NAT를 사용하라고 나와 있습니다.
https://docs.microsoft.com/en-us/azure/load-balancer/load-balancer-outbound-connections#scenarios-with-outbound-rules
Azure의 Virtual Network NAT (NAT Gateway 리소스)를 사용하면 문제를 좀 더 간편하게 해결할 수 있습니다.
Virtual Network NAT (NAT Gateway 리소스)에 대해서는 아래 doc를 참고하시기 바랍니다.
Virtual Network NAT - https://docs.microsoft.com/en-us/azure/virtual-network/nat-overview
Desgining virtual networks with NAT gateway resources - https://docs.microsoft.com/en-us/azure/virtual-network/nat-gateway-resource
NAT Gateway 리소스를 생성할 때, Standard Public IP (혹은 Public IP Prefix)와 Subnet을 선택할 수 있습니다.
Subnet은 NAT Gateway를 사용할 VM들이 위치한 Subnet이고, 여러 Subnet을 선택할 수 있습니다.
Public IP는 해당 Subnet의 VM들이 인터넷 아웃바운드에서 사용하는 Public IP 주소입니다.
NAT Gateway를 Subnet에 연결 후 VM이 인터넷에 정상적으로 연결되는 것을 확인할 수 있습니다.
이때 VM이 인터넷 접속할 때 타고나가는 Public IP 주소가 NAT Gateway의 Public IP 주소와 일치하는 것을 확인할 수 있습니다.
*참고 - NAT Gateway 제약 사항
- 이 글을 작성하는 현재(2020-09-17) NAT Gateway는 Zone redundant 를 지원하지 않습니다.
- NAT는 Standard SKU Public IP, Public IP prefix 및 로드 밸런서(Load balancer) 리소스와 호환됩니다. Basic 로드 밸런서와 같은 Basic 리소스 및 해당 리소스에서 파생된 제품은 NAT와 호환되지 않습니다. Basic 리소스들은 NAT로 구성되지 않은 서브넷에 배치해야 합니다.
- IPv4 주소 계열이 지원됩니다. NAT는 IPv6 주소 계열과 상호 작용하지 않습니다. IPv6 Prefix가 있는 서브넷에는 NAT를 배포할 수 없습니다.
- NAT는 여러 가상 네트워크에 걸쳐 있을 수 없습니다.
-끝-
'Microsoft > Azure' 카테고리의 다른 글
[PowerShell] Azure NSG 복사 (Rule Export and Import) (0) | 2020.09.20 |
---|---|
Azure Cache for Redis 연결 테스트 - Node.js 사용 (0) | 2020.09.17 |
Azure Bastion 배포 및 사용 방법 (0) | 2020.09.13 |
[Azure] [PowerShell] Data Disk Host Caching 변경 (0) | 2020.07.03 |
Azure Custom Role 만들기 (0) | 2020.03.21 |