시간을 줄여주는 블로그(IT, Azure)

Azure에서 Source NAT(SNAT)를 써보자. 본문

Azure/Azure Networking

Azure에서 Source NAT(SNAT)를 써보자.

서희 아빠 2020. 6. 12. 11:35

Source NAT는 내부에서 외부로 통신할 때 주소 변환이 되어 나가는 것을 말합니다.
여러가지 시나리오가 있지만, 보안관제나 PG사 혹은 VAN사와 연결할 때 일반적으로 Source NAT가 강제 됩니다.

Azure는 NAT Gateway가 GA되면서 본격적으로 SNAT를 활용할 수 있게 되었습니다.
기존에는 Azure External Load Balancer(ELB)를 쓰거나 Public IP를 할당하거나 3rd Party NVA를 쓰거나등의 방법이 있었는데, 위 3가지는 약간 쓰임새나 고려사항이 다르기 때문에 SNAT가 필요하면 NAT G/W를 많이 쓰게 될 것 같습니다.

정리하면 제가 아는 범위에서 SNAT를 지정하는 방법은 다음과 같습니다.

  1. Azure VM에 Public IP를 할당
  2. Azure ELB설정
  3. Azure Firewall 사용
  4. Azure NAT Gateway 사용
  5. 3rd Party NVA(Network Virtual Appliance)

pricing이 만들면 과금이 되는 구조라 기존 VPN G/W와 비슷합니다.
기존 방식과 혼합해서 사용이 가능하고 다음 리소스를 지정할 수 있습니다.

  1. Standard Load Balancer(Basic 안되요;;)
  2. Standard Public IP
  3. Standard Public IP Prefix

표준SKU만 지원 하는 부분에서 약간의 차이가 있지만, 종합해도 Azure Firewall이나 NVA보다 저렴합니다.
얼마전 Windows Virtual Desktop에서 SNAT와 DNAT 이슈 때문에 Azure Firewall을 썼는데, 이걸로 대체할 수 있을 것 같습니다. 또한 NAT G/W는 UDR(routing table)이 필요 없습니다. 서브넷에 바인딩 됩니다.

자세한 부분은 하기 URL을 읽어보시면 좋을 것 같네요

https://docs.microsoft.com/ko-kr/azure/virtual-network/nat-overview 

배포 방법은 다음과 같습니다.

유휴 제한 시간은 NAT테이블 유지 시간 입니다.(세션유지)

생성되면 다음과 같이 PIP와 PIP Prefix, NAT G/W가 확인 됩니다.

저는 NAT를 검증하기 위해 2개의 VM을 만들었습니다.

  • VM01 : 공인IP없음, NAT서브넷 영역으로 할당

VM01

  • VM02 : 공인IP할당, NAT 서브넷 영역으로 할당

VM02

VM02를 할당한 PIP를 통해서 RDP로 접속한 뒤 외부에서 공인IP를 확인하면 다음과 같이 나타납니다.

VM02의 NAT IP

위와 같이 인바운드와 아웃바운드의 주소가 다르게 적용되어 Outbound는 NAT G/W에서 할당한 주소로 매핑된 것을 확인할 수 있습니다. 다음의 구성 입니다.

PIP와 NAT G/W 동시 사용

이제 VM02에서 VM01로 접속하여 NAT IP를 확인해 보겠습니다.

VM01의 NAT IP

역시 공인IP가 없지만 SNAT가 적용된 것을 확인할 수 있습니다.
NAT G/W에 바인딩된 서브넷의 모든 리소스는 표준 IP를 설정해야 하는 부분만 유의해 주시고, SNAT의 경우 포트고갈로 인한 소켓통신 문제가 있을 수 있기 때문에 LB일 경우 DSR을 설정하는 등 여러 부분을 고려해서 구성해야 합니다.

감사합니다.

Comments