이 자습서에서는 향상된 아웃바운드 연결 및 확장성을 위해 허브 및 스포크 네트워크에서 Azure Firewall과 NAT 게이트웨이를 통합하는 방법에 대해 알아봅니다.
Azure Firewall는 백 엔드 가상 머신 확장 집합 인스턴스(최소 두 인스턴스)당 구성된 공용 IP 주소당 2,496개의 SNAT 포트를 제공합니다. 최대 250개의 공용 IP 주소를 Azure Firewall과 연결할 수 있습니다. 아키텍처 요구 사항 및 트래픽 패턴에 따라 Azure Firewall에서 제공할 수 있는 것보다 더 많은 SNAT 포트가 필요할 수 있습니다. 더 많은 SNAT 포트를 요구하면서 더 적은 공용 IP를 사용해야 할 수도 있습니다. NAT(Network Address Translation)아웃바운드 연결을 위한 더 나은 방법은 NAT 게이트웨이를 사용하는 것입니다. NAT 게이트웨이는 공용 IP 주소당 64,512개의 SNAT 포트를 제공하며 최대 16개의 공용 IP 주소와 함께 사용할 수 있습니다.
NAT 게이트웨이를 Azure Firewall 서브넷에 직접 구성하여 Azure Firewall과 통합할 수 있습니다. 이 연결은 아웃바운드 연결의 확장성 있는 방법을 제공합니다. 프로덕션 배포의 경우 허브 및 스포크 네트워크가 권장되며 방화벽은 자체 가상 네트워크에 있습니다. 워크로드 서버는 방화벽이 있는 허브 가상 네트워크와 동일한 지역에 피어링된 가상 네트워크입니다. 이 아키텍처 설정에서 NAT 게이트웨이는 피어링된 모든 스포크 가상 네트워크에 대해 허브 가상 네트워크에서 아웃바운드 연결을 제공할 수 있습니다.
중요합니다
표준 V2 SKU Azure NAT 게이트웨이는 현재 미리 보기로 제공됩니다. 베타, 미리 보기로 제공되거나 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 약관은 Microsoft Azure 미리 보기에 대한 추가 사용 약관을 참조하세요.
참고
이 자습서에 설명된 대로 허브 및 스포크 가상 네트워크 아키텍처에서 NAT 게이트웨이를 배포할 수 있지만 NAT 게이트웨이는 vWAN 아키텍처의 허브 가상 네트워크에서 지원되지 않습니다. vWAN 아키텍처에서 사용하려면 NAT 게이트웨이를 vWAN(보안 가상 허브)과 연결된 스포크 가상 네트워크에 직접 구성해야 합니다. Azure Firewall 아키텍처 옵션에 대한 자세한 내용은 Azure Firewall Manager 아키텍처 옵션은 무엇인가요?를 참조하세요.
이 자습서에서는 다음 작업 방법을 알아봅니다.
- 배포하는 동안 허브 가상 네트워크를 만들고 Azure Firewall 및 Azure Bastion 배포하기
- NAT 게이트웨이를 만들고 허브 가상 네트워크의 방화벽 서브넷과 연결하기
- 스포크 가상 네트워크 만들기
- 가상 네트워크 피어링 만들기
- 스포크 가상 네트워크에 대한 경로 테이블 만들기
- 허브 가상 네트워크에 대한 방화벽 정책 만들기
- NAT 게이트웨이를 통해 아웃바운드 연결을 테스트하는 가상 머신 만들기
필수 구성 요소
- 활성 구독이 있는 Azure 계정. 무료로 계정을 만듭니다.
리소스 그룹 만들기
이 빠른 시작의 모든 리소스를 포함할 리소스 그룹을 만듭니다.
Azure Portal에 로그인합니다.
포털 맨 위에 있는 검색 상자에 리소스 그룹을 입력합니다. 검색 결과에서 리소스 그룹을 선택합니다.
+ 만들기를 선택합니다.
리소스 그룹 만들기의 기본 사항 탭에서 다음 정보를 입력하거나 선택합니다.
설정 값 구독 구독 선택 리소스 그룹 test-rg 지역 미국 서부 검토 + 만들기를 선택합니다.
만들기를 선택합니다.
허브 가상 네트워크 만들기
허브 가상 네트워크에는 Azure Firewall 및 NAT 게이트웨이와 연결된 방화벽 서브넷이 포함되어 있습니다. 다음 예제를 사용하여 허브 가상 네트워크를 만듭니다.
Azure Portal에 로그인합니다.
Azure Portal 상단의 검색 창에 가상 네트워크를 입력합니다. 검색 결과에서 가상 네트워크를 선택합니다.
만들기를 선택합니다.
가상 네트워크 만들기의 기본 탭에서 다음 정보를 입력하거나 선택합니다.
설정 값 프로젝트 세부 정보 구독 구독을 선택합니다. 리소스 그룹 test-rg 또는 리소스 그룹을 선택합니다. 인스턴스 세부 정보 이름 vnet-hub를 입력합니다. 지역 지역을 선택합니다. 이 예제에서는 미국 서부를 사용합니다. IP 주소 탭을 선택하거나 다음: 보안, 다음: IP 주소를 선택합니다.
서브넷에서 기본 서브넷을 선택합니다.
서브넷 편집의 다음 정보를 입력하거나 선택합니다.
설정 값 서브넷 목적 기본값을 그대로 둡니다. 이름 subnet-1을 입력합니다. 나머지 설정은 기본값으로 두고 저장을 선택합니다.
서브넷 추가를 선택합니다.
서브넷 추가에서 다음 정보를 입력하거나 선택합니다.
설정 값 서브넷 목적 Azure Bastion을 선택합니다. 나머지 설정은 기본값으로 두고 추가를 선택합니다.
서브넷 추가를 선택합니다.
서브넷 추가에서 다음 정보를 입력하거나 선택합니다.
설정 값 서브넷 목적 Azure Firewall을 선택합니다. 나머지 설정은 기본값으로 두고 추가를 선택합니다.
검토 + 생성를 선택한 다음, 생성를 선택합니다.
Azure Bastion 호스트 만들기
Azure Bastion은 VM에서 공용 IP 주소를 요구하지 않고 TLS를 통해 가상 머신에 대한 보안 RDP 및 SSH 연결을 제공합니다.
Azure Portal 위쪽의 검색 상자에 Bastion을 입력합니다. 검색 결과에서 Bastions 를 선택합니다.
만들기를 선택합니다.
Bastion 만들기의 기본 사항 탭에서 다음 정보를 입력하거나 선택합니다.
설정 값 프로젝트 세부 정보 구독 구독을 선택합니다. 리소스 그룹 test-rg 또는 리소스 그룹을 선택합니다. 인스턴스 세부 정보 이름 bastion을 입력합니다. 지역 지역을 선택합니다. 이 예제에서는 미국 서부를 사용합니다. 계층 개발자를 선택합니다. 가상 네트워크 vnet-1을 선택합니다. 서브넷 AzureBastionSubnet을 선택합니다. 검토 + 생성를 선택한 다음, 생성를 선택합니다.
Azure Firewall 만들기
포털 상단에 있는 검색 상자에 Firewall을 입력합니다. 검색 결과에서 방화벽을 선택합니다.
+ 만들기를 선택합니다.
방화벽 만들기 페이지에서 다음 표를 사용하여 방화벽을 구성합니다.
설정 값 프로젝트 세부 정보 구독 구독을 선택합니다. 리소스 그룹 test-rg를 선택합니다. 인스턴스 세부 정보 이름 방화벽을 입력합니다. 지역 미국 서부을 선택합니다. 가용성 영역 기본 없음을 적용 합니다. 방화벽 SKU 표준을 선택합니다. 방화벽 관리 방화벽 정책을 사용하여 이 방화벽 관리를 선택합니다. 방화벽 정책 새로 추가를 선택합니다.
이름: 방화벽 정책을 입력합니다.
지역: 미국 서부를 선택합니다.
정책 계층: 표준.
확인을 선택합니다.가상 네트워크 선택 가상 네트워크 기존 항목 사용을 선택합니다. 가상 네트워크 vnet-hub를 선택합니다. 공용 IP 주소 공용 IP 주소 새로 추가를 선택합니다.
이름: public-ip-firewall을 입력합니다.
SKU: 표준입니다.
할당: 정적.
가용성 영역: 영역 중복.
확인을 선택합니다.다른 기본값을 적용한 다음, 검토 + 만들기를 선택합니다.
요약을 검토한 다음, 만들기를 선택하여 방화벽을 만듭니다.
방화벽을 배포하는 데 몇 분 정도 걸립니다.
배포가 완료되면 test-rg 리소스 그룹으로 이동하여 방화벽 리소스를 선택합니다.
방화벽 개인 및 공용 IP 주소를 확인합니다. 나중에 이들 주소를 사용합니다.
NAT 게이트웨이 만들기
모든 아웃바운드 인터넷 트래픽은 NAT Gateway를 인터넷으로 트래버스합니다. 다음 예제를 사용하여 허브 및 스포크 네트워크에 대한 NAT 게이트웨이를 만들고 AzureFirewallSubnet과 연결합니다.
포털 위쪽의 검색 상자에서 공용 IP 주소를 입력합니다. 검색 결과에서 공용 IP 주소를 선택합니다.
+ 만들기를 선택합니다.
공용 IP 주소 만들기에 다음 정보를 입력합니다.
설정 값 구독 구독을 선택합니다. 리소스 그룹 test-rg를 선택합니다. 지역 미국 서부을 선택합니다. 이름 public-ip-nat를 입력합니다. IP 버전 IPv4를 선택합니다. SKU 표준을 선택합니다. 가용성 영역 영역 중복을 선택합니다. 계층 지역을 선택합니다. 검토 + 만들기를 선택한 다음, 만들기를 선택합니다.
포털 맨 위에 있는 검색 상자에 NAT 게이트웨이를 입력합니다. 검색 결과에서 NAT 게이트웨이를 선택합니다.
+ 만들기를 선택합니다.
NAT(Network Address Translation) 게이트웨이 만들기의 기본 사항 탭에서 다음 정보를 입력하거나 선택합니다.
설정 값 프로젝트 세부 정보 구독 구독을 선택합니다. 리소스 그룹 test-rg를 선택합니다. 인스턴스 세부 정보 NAT Gateway 이름 nat-gateway를 입력합니다. 지역 미국 서부을 선택합니다. SKU 표준을 선택합니다. TCP 유휴 시간 제한(분) 기본값 4를 그대로 둡니다. 다음을 선택합니다.
아웃바운드 IP 탭에서 + 공용 IP 주소 또는 접두사 추가를 선택합니다.
공용 IP 주소 또는 접두사 추가에서 공용 IP 주소를 선택합니다. 이전에 만든 공용 IP 주소인 public-ip-nat를 선택합니다.
다음을 선택합니다.
네트워킹 탭의 가상 네트워크에서vnet-hub를 선택합니다.
모든 서브넷으로 기본 설정 확인란을 선택 취소된 상태로 둡니다.
특정 서브넷 선택에서 AzureFirewallSubnet을 선택합니다.
검토 + 생성를 선택한 다음, 생성를 선택합니다.
스포크 가상 네트워크를 만듭니다
스포크 가상 네트워크에는 NAT 게이트웨이에 대한 인터넷 트래픽 라우팅을 테스트하는 데 사용되는 테스트 가상 머신이 포함되어 있습니다. 다음 예제를 사용하여 스포크 네트워크를 만듭니다.
포털 맨 위에 있는 검색 상자에 가상 네트워크를 입력합니다. 검색 결과에서 가상 네트워크를 선택합니다.
+ 만들기를 선택합니다.
가상 네트워크 만들기의 기본 사항 탭에서 다음 정보를 입력하거나 선택합니다.
설정 값 프로젝트 세부 정보 구독 구독을 선택합니다. 리소스 그룹 test-rg를 선택합니다. 인스턴스 세부 정보 이름 vnet-spoke를 입력합니다. 지역 미국 서부을 선택합니다. 다음을 선택하여 보안 탭으로 이동합니다.
다음을 선택하여 IP 주소 탭으로 이동합니다.
IPv4 주소 공간의 IP 주소 탭에서 주소 공간 삭제를 선택하여 자동으로 채워진 주소 공간을 삭제합니다.
+ IPv4 주소 공간 추가를 선택합니다.
IPv4 주소 공간에 10.1.0.0을 입력합니다. 마스크 선택에서 기본값인 /16(65,536개 주소)을 그대로 둡니다.
서브넷 추가를 선택합니다.
서브넷 추가에서 다음 정보를 입력하거나 선택합니다.
설정 값 서브넷 목적 기본값(기본값)을 그대로 둡니다. 이름 subnet-private을 입력합니다. IPv4 IPv4 주소 범위 10.1.0.0/16(기본값)을 그대로 둡니다. 시작 주소 10.1.0.0(기본값)을 그대로 둡니다. 크기 /24(256개 주소)(기본값)를 그대로 둡니다. 추가를 선택합니다.
검토 + 만들기를 선택합니다.
만들기를 선택합니다.
허브와 스포크 간에 피어링 만들기
가상 네트워크 피어링을 사용하여 허브를 스포크에 연결하고 스포크를 허브에 연결합니다. 다음 예제를 사용하여 허브와 스포크 간에 양방향 네트워크 피어링을 만듭니다.
포털 맨 위에 있는 검색 상자에 가상 네트워크를 입력합니다. 검색 결과에서 가상 네트워크를 선택합니다.
vnet-hub를 선택합니다.
설정에서 피어링을 선택합니다.
+추가를 선택합니다.
피어링 추가에서 다음 정보를 입력하거나 선택합니다.
설정 값 원격 가상 네트워크 요약 피어링 링크 이름 vnet-spoke-to-vnet-hub를 입력합니다. 가상 네트워크 배포 모델 리소스 관리자(기본값)를 그대로 둡니다. 구독 구독을 선택합니다. 가상 네트워크 vnet-spoke(test-rg)를 선택합니다. 원격 가상 네트워크 피어링 설정 'vnet-spoke'가 'vnet-hub'에 액세스하도록 허용 선택한 상태(기본값)를 그대로 둡니다. 'vnet-spoke'가 'vnet-hub'에서 전달된 트래픽을 수신하도록 허용 확인란을 선택합니다. 'vnet-spoke'의 게이트웨이 또는 경로 서버가 'vnet-hub'로 트래픽을 전달하도록 허용 선택 안 함(기본값)을 그대로 둡니다. 'vnet-spoke'를 사용하도록 설정하여 'vnet-hub'의 원격 게이트웨이 또는 경로 서버를 사용합니다. 선택 안 함(기본값)을 그대로 둡니다. 로컬 가상 네트워크 요약 피어링 링크 이름 vnet-hub-to-vnet-spoke를 입력합니다. 로컬 가상 네트워크 피어링 설정 'vnet-hub'가 'vnet-spoke'에 액세스하도록 허용 선택한 상태(기본값)를 그대로 둡니다. 'vnet-hub'가 'vnet-spoke'에서 전달된 트래픽을 수신하도록 허용 확인란을 선택합니다. 'vnet-hub'의 게이트웨이 또는 경로 서버가 'vnet-spoke'로 트래픽을 전달하도록 허용 선택 안 함(기본값)을 그대로 둡니다. 'vnet-spoke'의 원격 게이트웨이 또는 경로 서버를 사용하려면 'vnet-hub'를 사용하도록 설정합니다. 선택 안 함(기본값)을 그대로 둡니다. 추가를 선택합니다.
새로 고침을 선택하고 피어링 상태가 연결됨인지 확인합니다.
스포크 네트워크 경로 테이블 만들기
경로 테이블은 스포크 가상 네트워크에서 허브 가상 네트워크로 나가는 모든 트래픽을 강제로 적용합니다. 경로 테이블은 가상 어플라이언스 Azure Firewall 개인 IP 주소로 구성됩니다.
방화벽의 개인 IP 주소 가져오기
방화벽의 개인 IP 주소는 이 문서의 뒷부분에서 만든 경로 테이블에 필요합니다. 다음 예제를 사용하여 방화벽 개인 IP 주소를 가져옵니다.
포털 상단에 있는 검색 상자에 Firewall을 입력합니다. 검색 결과에서 방화벽을 선택합니다.
방화벽을 선택합니다.
방화벽의 개요에서 방화벽 개인 IP 필드의 IP 주소를 확인합니다. 이 예의 IP 주소는 10.0.1.68입니다.
경로 테이블 만들기
허브 가상 네트워크의 방화벽을 통해 모든 스포크 간 및 인터넷 송신 트래픽을 강제로 적용하는 경로 테이블을 만듭니다.
포털 상단의 검색 창에 경로 테이블을 입력합니다. 검색 결과에서 경로 테이블을 선택합니다.
+ 만들기를 선택합니다.
경로 테이블 만들기에서 다음 정보를 입력하거나 선택합니다.
설정 값 프로젝트 세부 정보 구독 구독을 선택합니다. 리소스 그룹 test-rg를 선택합니다. 인스턴스 세부 정보 지역 미국 서부을 선택합니다. 이름 route-table-spoke를 입력합니다. 게이트웨이 경로 전파 아니오를 선택합니다. 검토 + 만들기를 선택합니다.
만들기를 선택합니다.
포털 상단의 검색 창에 경로 테이블을 입력합니다. 검색 결과에서 경로 테이블을 선택합니다.
route-table-spoke를 선택합니다.
설정에서 경로를 선택합니다.
경로에서 + 추가를 선택합니다.
경로 추가에서 다음 정보를 입력하거나 선택합니다.
설정 값 경로 이름 route-to-hub를 입력합니다. 대상 형식 IP 주소를 선택합니다. 대상 IP 주소/CIDR 범위 0.0.0.0/0을 입력합니다. 다음 홉 유형 가상 어플라이언스를 선택합니다. 다음 홉 주소 10.0.1.68을 입력합니다. 추가를 선택합니다.
설정에서 서브넷을 선택합니다.
+ 연결을 선택합니다.
서브넷 연결에서 다음 정보를 입력하거나 선택합니다.
설정 값 가상 네트워크 vnet-spoke(test-rg)를 선택합니다. 서브넷 subnet-private을 선택합니다. 확인을 선택합니다.
방화벽 구성
허브를 통한 스포크 트래픽은 방화벽 정책 및 네트워크 규칙을 통해 허용되어야 합니다. 다음 예제를 사용하여 방화벽 정책 및 네트워크 규칙을 만듭니다.
네트워크 규칙을 구성합니다
포털 상단에 있는 검색 상자에 Firewall을 입력합니다. 검색 결과에서 방화벽 정책을 선택합니다.
firewall-policy을 선택합니다.
설정을 확장한 후 네트워크 규칙을 선택합니다.
+규칙 컬렉션 추가를 선택합니다.
규칙 컬렉션 추가에서 다음 정보를 입력하거나 선택합니다.
설정 값 이름 spoke-to-internet를 입력합니다. 규칙 컬렉션 형식 네트워크를 선택합니다. 우선 순위 100을 입력합니다. 규칙 컬렉션 작업 허용을 선택합니다. 규칙 컬렉션 그룹 DefaultNetworkRuleCollectionGroup을 선택합니다. 규칙 이름 allow-web을 입력합니다. 원본 유형 IP 주소. 원본 10.1.0.0/24를 입력합니다. 프로토콜 TCP를 선택합니다. 대상 포트 80,443를 입력합니다. 대상 유형 IP 주소를 선택합니다. 대상 *를 입력합니다 추가를 선택합니다.
테스트 가상 머신 만들기
Ubuntu 가상 머신은 NAT Gateway를 통한 아웃바운드 인터넷 트래픽을 테스트하는 데 사용됩니다. 다음 예를 사용하여 Ubuntu 가상 머신을 만듭니다.
포털에서 가상 머신을 검색하여 선택합니다.
가상 머신에서 + 만들기를 선택한 다음, Azure 가상 머신을 선택합니다.
가상 머신 만들기의 기본 사항 탭에서 다음 정보를 입력하거나 선택합니다.
설정 값 프로젝트 세부 정보 구독 구독을 선택합니다. 리소스 그룹 test-rg를 선택합니다. 인스턴스 세부 정보 가상 머신 이름 vm-spoke를 입력합니다. 지역 미국 서부을 선택합니다. 가용성 옵션 인프라 중복이 필요하지 않습니다를 선택합니다. 보안 유형 기본값인 표준을 그대로 둡니다. 이미지 Ubuntu Server 24.04 LTS - x64 Gen2를 선택합니다. VM 아키텍처 x64(기본값)를 그대로 둡니다. 크기 크기를 선택합니다. 관리자 계정 인증 유형 SSH 공개 키를 선택합니다. 사용자 이름 azureuser를 입력합니다. SSH 공개 키 원본 새 키 쌍 생성을 선택합니다. 키 쌍 이름 vm-spoke-key를 입력합니다. 인바운드 포트 규칙 공용 인바운드 포트 없음을 선택합니다. 페이지 위쪽에서 네트워킹 탭을 선택하거나 다음: 디스크, 다음: 네트워킹을 차례로 선택합니다.
네트워킹 탭에서 다음 정보를 입력하거나 선택합니다.
설정 값 네트워크 인터페이스 가상 네트워크 vnet-spoke를 선택합니다. 서브넷 subnet-private(10.1.0.0/24)을 선택합니다. 공용 IP 없음을 선택합니다. NIC 네트워크 보안 그룹 추가 고급을 선택합니다. 네트워크 보안 그룹 구성 새로 만들기를 선택합니다.
이름으로 nsg-1을 입력합니다.
나머지는 기본값으로 두고 확인을 선택합니다.나머지 설정은 기본값으로 두고 검토 + 만들기를 선택합니다.
설정을 검토하고 만들기를 선택합니다.
새 키 쌍 생성 대화 상자가 나타납니다. 프라이빗 키 다운로드 및 리소스 만들기를 선택합니다.
프라이빗 키가 로컬 컴퓨터에 다운로드됩니다. 프라이빗 키는 Azure Bastion을 사용하여 가상 머신에 연결하기 위해 이후 단계에서 필요합니다. 프라이빗 키 파일의 이름은 키 쌍 이름 필드에 입력한 이름입니다. 이 예제에서 프라이빗 키 파일의 이름은 ssh-key입니다.
다음 단계로 진행하기 전에 가상 머신의 배포가 완료될 때까지 기다립니다.
참고
베스천 호스트가 있는 가상 네트워크의 가상 머신에는 공용 IP 주소가 필요하지 않습니다. Bastion은 공용 IP를 제공하고 VM은 개인 IP를 사용하여 네트워크 내에서 통신합니다. 베스천 호스트된 가상 네트워크의 모든 VM에서 공용 IP를 제거할 수 있습니다. 자세한 내용은 Azure VM에서 공용 IP 주소 연결 해제를 참조하세요.
NAT 게이트웨이 테스트
이전 단계에서 만든 Ubuntu 가상 머신에 연결하여 아웃바운드 인터넷 트래픽이 NAT Gateway에서 나가는지 확인합니다.
NAT Gateway 공용 IP 주소 가져오기
문서의 뒷부분에 있는 단계를 확인하려면 NAT Gateway 공용 IP 주소를 가져옵니다.
포털 맨 위에 있는 검색 상자에 공용 IP를 입력합니다. 검색 결과에서 공용 IP 주소를 선택합니다.
public-ip-nat를 선택합니다.
IP 주소의 값을 기록해 둡니다. 이 문서에 사용된 예시는 203.0.113.0.25입니다.
스포크에서 NAT 게이트웨이 테스트하기
포털 맨 위에 있는 검색 상자에 가상 머신을 입력합니다. 검색 결과에서 가상 머신을 선택합니다.
vm-spoke를 선택합니다.
개요에서 연결을 선택한 다음 Bastion을 통해 연결합니다.
연결 유형으로 SSH 를 선택합니다. SSH 프라이빗 키 파일을 업로드합니다. 연결을 선택합니다.
Bash 프롬프트에 다음 명령을 입력합니다.
curl ifconfig.me명령으로 반환된 IP 주소가 NAT Gateway의 공용 IP 주소와 일치하는지 확인합니다.
azureuser@vm-1:~$ curl ifconfig.me 203.0.113.0.25vm-spoke에 대한 Bastion 연결을 닫습니다.
만든 리소스 사용을 마치면 리소스 그룹과 해당 리소스를 모두 삭제할 수 있습니다.
Azure Portal에서 리소스 그룹을 검색하고 선택합니다.
리소스 그룹 페이지에서 test-rg 리소스 그룹을 선택합니다.
test-rg 페이지에서 리소스 그룹 삭제를 선택합니다.
삭제 확인을 위한 리소스 그룹 이름 입력에 test-rg를 입력한 다음 삭제를 선택합니다.
다음 단계
다음 문서로 진행하여 NAT 게이트웨이를 Azure Load Balancer와 통합하는 방법에 대해 알아봅니다.