자습서: 아웃바운드 연결을 위해 허브와 스포크 네트워크로 Azure Firewall NAT 게이트웨이 통합

이 자습서에서는 허브와 스포크 네트워크로 Azure Firewall NAT Gateway를 통합하는 방법에 대해 알아봅니다.

Azure Firewall는 백 엔드 가상 머신 확장 집합 인스턴스(최소 두 인스턴스)당 구성된 공용 IP 주소당 2,496개의 SNAT 포트를 제공합니다. 최대 250개의 공용 IP 주소를 Azure Firewall과 연결할 수 있습니다. 아키텍처 요구 사항 및 트래픽 패턴에 따라 Azure Firewal에서 제공할 수 있는 것보다 더 많은 SNAT 포트가 필요할 수 있습니다. 더 많은 SNAT 포트를 요구하면서 더 적은 수의 공용 IP를 사용해야 할 수도 있습니다. NAT(Network Address Translation)아웃바운드 연결을 위한 더 나은 방법은 NAT 게이트웨이를 사용하는 것입니다. NAT 게이트웨이는 공용 IP 주소당 64,512개의 SNAT 포트를 제공하며 최대 16개의 공용 IP 주소와 함께 사용할 수 있습니다.

NAT 게이트웨이는 아웃바운드 연결의 보다 확장성 있는 방법을 제공하기 위해 NAT 게이트웨이를 Azure Firewall 서브넷에 직접 구성하여 Azure Firewall과 통합할 수 있습니다. 프로덕션 배포의 경우 허브 및 스포크 네트워크가 권장되며 방화벽은 자체 가상 네트워크에 있습니다. 워크로드 서버는 방화벽이 있는 허브 가상 네트워크와 동일한 지역에 피어링된 가상 네트워크입니다. 이 아키텍처 설정에서 NAT 게이트웨이는 피어링된 모든 스포크 가상 네트워크에 대해 허브 가상 네트워크에서 아웃바운드 연결을 제공할 수 있습니다.

Diagram of Azure resources created in tutorial.

참고 항목

Azure NAT Gateway는 현재 보안 가상 허브 네트워크(vWAN) 아키텍처에서 지원되지 않습니다. 이 자습서에 설명된 대로 허브 가상 네트워크 아키텍처를 사용하여 배포해야 합니다. Azure Firewall 아키텍처 옵션에 대한 자세한 내용은 Azure Firewall Manager 아키텍처 옵션은 무엇인가요?를 참조하세요.

이 자습서에서는 다음을 하는 방법을 알아볼 수 있습니다.

  • 배포하는 동안 허브 가상 네트워크를 만들고 Azure Firewall 및 Azure Bastion 배포하기
  • NAT 게이트웨이를 만들고 허브 가상 네트워크의 방화벽 서브넷과 연결하기
  • 스포크 가상 네트워크 만들기
  • 가상 네트워크 피어링 만들기
  • 스포크 가상 네트워크에 대한 경로 테이블 만들기
  • 허브 가상 네트워크에 대한 방화벽 정책 만들기
  • NAT 게이트웨이를 통해 아웃바운드 연결을 테스트하는 가상 머신 만들기

필수 조건

허브 가상 네트워크 만들기

허브 가상 네트워크에는 Azure Firewall 및 NAT 게이트웨이와 연결된 방화벽 서브넷이 포함되어 있습니다. 다음 예제를 사용하여 허브 가상 네트워크를 만듭니다.

  1. Azure Portal에 로그인합니다.

  2. 포털 맨 위에 있는 검색 상자에 가상 네트워크를 입력합니다. 검색 결과에서 가상 네트워크를 선택합니다.

  3. + 만들기를 선택합니다.

  4. 가상 네트워크 만들기기본 사항 탭에서 다음 정보를 입력하거나 선택합니다.

    설정
    프로젝트 세부 정보
    Subscription 구독을 선택합니다.
    Resource group 새로 만들기를 선택합니다.
    test-rg를 입력합니다.
    확인을 선택합니다.
    인스턴스 세부 정보
    이름 vnet-hub를 입력합니다.
    지역 (미국) 미국 중남부를 선택합니다.
  5. 다음을 선택하여 보안 탭으로 이동합니다.

  6. 보안 탭의 Azure Bastion 섹션에서 Bastion 사용을 선택합니다.

    Azure Bastion은 브라우저를 사용하여 개인 IP 주소를 사용하여 SSH(보안 셸) 또는 RDP(원격 데스크톱 프로토콜)를 통해 가상 네트워크의 VM에 연결합니다. VM에는 공용 IP 주소, 클라이언트 소프트웨어 또는 특수 구성이 필요하지 않습니다. Azure Bastion에 대한 자세한 내용은 Azure Bastion을 참조하세요.

    참고 항목

    시간당 가격은 아웃바운드 데이터 사용량에 관계없이 Bastion이 배포되는 순간부터 시작됩니다. 자세한 내용은 가격 책정SKU를 참조하세요. 자습서 또는 테스트의 일부로 Bastion을 배포하는 경우 사용을 마친 후 이 리소스를 삭제하는 것이 좋습니다.

  7. Azure Bastion에서 다음 정보를 입력하거나 선택합니다.

    설정
    Azure Bastion 호스트 이름 bastion을 입력합니다.
    Azure Bastion 공용 IP 주소 공용 IP 주소 만들기를 선택합니다.
    이름에 public-ip를 입력합니다.
    확인을 선택합니다.
  8. 보안 탭의 Azure Firewall 섹션에서 Azure Firewall 사용을 선택합니다.

    Azure Firewall은 Azure Virtual Network 리소스를 보호하는 관리되는 클라우드 기반 네트워크 보안 서비스입니다. 고가용성 및 무제한 클라우드 확장성이 내장되어 있는 서비스 형태의 완전한 상태 저장 방화벽입니다. Azure Firewall에 대한 자세한 내용은 Azure Firewall을 참조하세요.

  9. Azure Firewall에서 다음 정보를 입력하거나 선택합니다.

    설정
    Azure Firewall 이름 방화벽을 입력합니다.
    계층 표준을 선택합니다.
    정책 새로 만들기를 선택합니다.
    이름에 firewall-policy를 입력합니다.
    확인을 선택합니다.
    Azure Firewall 공용 IP 주소 공용 IP 주소 만들기를 선택합니다.
    이름에 public-ip-firewall을 입력합니다.
    확인을 선택합니다.
  10. 검토 + 만들기를 선택합니다.

  11. 만들기를 선택합니다.

베스천 호스트와 방화벽을 배포하는 데 몇 분 정도 걸립니다. 배포하는 동안 가상 네트워크가 만들어지면 다음 단계를 진행할 수 있습니다.

NAT 게이트웨이 만들기

모든 아웃바운드 인터넷 트래픽은 NAT 게이트웨이를 인터넷으로 트래버스합니다. 다음 예제를 사용하여 허브 및 스포크 네트워크에 대한 NAT 게이트웨이를 만들고 AzureFirewallSubnet과 연결합니다.

  1. 포털 맨 위에 있는 검색 상자에 NAT 게이트웨이를 입력합니다. 검색 결과에서 NAT 게이트웨이를 선택합니다.

  2. + 만들기를 선택합니다.

  3. NAT(Network Address Translation) 게이트웨이 만들기기본 사항 탭에서 다음 정보를 입력하거나 선택합니다.

    설정
    프로젝트 세부 정보
    Subscription 구독을 선택합니다.
    Resource group test-rg를 선택합니다.
    인스턴스 세부 정보
    NAT Gateway 이름 nat-gateway를 입력합니다.
    지역 미국 중남부를 선택합니다.
    가용성 영역 영역 또는 영역 없음을 선택합니다.
    TCP 유휴 시간 제한(분) 기본값 4를 그대로 둡니다.

    가용성 영역에 대한 자세한 내용은 NAT 게이트웨이 및 가용성 영역을 참조하세요.

  4. 다음: 아웃바운드 IP를 선택합니다.

  5. 공용 IP 주소아웃바운드 IP에서 새 공용 IP 주소 만들기를 선택합니다.

  6. 이름public-ip-nat를 입력합니다.

  7. 확인을 선택합니다.

  8. 다음: 서브넷을 선택합니다.

  9. Virtual Network에서 vnet-hub-hub를 선택합니다.

  10. 서브넷 이름에서 AzureFirewallSubnet을 선택합니다.

  11. 검토 + 만들기를 선택합니다.

  12. 만들기를 선택합니다.

스포크 가상 네트워크를 만듭니다

스포크 가상 네트워크에는 NAT 게이트웨이에 대한 인터넷 트래픽 라우팅을 테스트하는 데 사용되는 테스트 가상 머신이 포함되어 있습니다. 다음 예제를 사용하여 스포크 네트워크를 만듭니다.

  1. 포털 맨 위에 있는 검색 상자에 가상 네트워크를 입력합니다. 검색 결과에서 가상 네트워크를 선택합니다.

  2. + 만들기를 선택합니다.

  3. 가상 네트워크 만들기기본 사항 탭에서 다음 정보를 입력하거나 선택합니다.

    설정
    프로젝트 세부 정보
    Subscription 구독을 선택합니다.
    Resource group test-rg를 선택합니다.
    인스턴스 세부 정보
    이름 vnet-spoke를 입력합니다.
    지역 미국 중남부를 선택합니다.
  4. 다음을 선택하여 보안 탭으로 이동합니다.

  5. 다음을 선택하여 IP 주소 탭으로 이동합니다.

  6. IPv4 주소 공간IP 주소 탭에서 휴지통을 선택하여 자동으로 채워진 주소 공간을 삭제합니다.

  7. IPv4 주소 공간10.1.0.0을 입력합니다. 마스크 선택에서 기본값인 /16(65,536개 주소)을 그대로 둡니다.

  8. + 서브넷 추가를 선택합니다.

  9. 서브넷 추가에서 다음 정보를 입력하거나 선택합니다.

    설정
    서브넷 세부 정보
    서브넷 템플릿 기본값으로 둡니다.
    이름 서브넷-프라이빗을 입력합니다.
    시작 주소 10.1.0.0을 입력합니다.
    서브넷 크기 기본값인 /24(256개 주소)를 그대로 둡니다.
  10. 추가를 선택합니다.

  11. 검토 + 만들기를 선택합니다.

  12. 만들기를 선택합니다.

허브와 스포크 간에 피어링 만들기

가상 네트워크 피어링을 사용하여 허브를 스포크에 연결하고 스포크를 허브에 연결합니다. 다음 예제를 사용하여 허브와 스포크 간에 양방향 네트워크 피어링을 만듭니다.

  1. 포털 맨 위에 있는 검색 상자에 가상 네트워크를 입력합니다. 검색 결과에서 가상 네트워크를 선택합니다.

  2. vnet-hub를 선택합니다.

  3. 설정에서 피어링을 선택합니다.

  4. + 추가를 선택합니다.

  5. 피어링 추가에서 다음 정보를 입력하거나 선택합니다.

    설정
    이 가상 네트워크
    피어링 링크 이름 vnet-hub-to-vnet-spoke를 입력합니다.
    'vnet-hub'가 'vnet-spoke'에 액세스하도록 허용 선택한 상태(기본값)를 그대로 둡니다.
    'vnet-hub'가 'vnet-spoke'에서 전달된 트래픽을 수신하도록 허용 확인란을 선택합니다.
    'vnet-hub'의 게이트웨이가 트래픽을 'vnet-spoke'로 전달하도록 허용 선택 안 함(기본값)을 그대로 둡니다.
    'vnet-spoke' 원격 게이트웨이를 사용하려면 'vnet-hub'를 사용하도록 설정합니다. 선택 안 함(기본값)을 그대로 둡니다.
    원격 가상 네트워크
    피어링 링크 이름 vnet-spoke-to-vnet-hub를 입력합니다.
    가상 네트워크 배포 모델 기본값인 리소스 관리자로 둡니다.
    Subscription 구독을 선택합니다.
    가상 네트워크 vnet-spoke를 선택합니다.
    'vnet-spoke'가 'vnet-hub'에 액세스하도록 허용 선택한 상태(기본값)를 그대로 둡니다.
    'vnet-spoke'가 'vnet-hub'에서 전달된 트래픽을 수신하도록 허용 확인란을 선택합니다.
    트래픽을 'vnet-hub'로 전달하도록 'vnet-spoke'의 게이트웨이 허용 선택 안 함(기본값)을 그대로 둡니다.
    'vnet-hub'의 원격 게이트웨이를 사용하려면 'vnet-spoke'를 사용하도록 설정합니다. 선택 안 함(기본값)을 그대로 둡니다.
  6. 추가를 선택합니다.

  7. 새로 고침을 선택하고 피어링 상태연결됨인지 확인합니다.

스포크 네트워크 경로 테이블 만들기

경로 테이블은 스포크 가상 네트워크에서 허브 가상 네트워크로 나가는 모든 트래픽을 강제로 적용합니다. 경로 테이블은 가상 어플라이언스 Azure Firewall 개인 IP 주소로 구성됩니다.

방화벽의 개인 IP 주소 가져오기

방화벽의 개인 IP 주소는 이 문서의 뒷부분에서 만든 경로 테이블에 필요합니다. 다음 예제를 사용하여 방화벽 개인 IP 주소를 가져옵니다.

  1. 포털 상단에 있는 검색 상자에 Firewall을 입력합니다. 검색 결과에서 방화벽을 선택합니다.

  2. 방화벽을 선택합니다.

  3. 방화벽개요에서 방화벽 개인 IP 필드의 IP 주소를 확인합니다. 이 예의 IP 주소는 10.0.1.68입니다.

경로 테이블 만들기

허브 가상 네트워크의 방화벽을 통해 모든 스포크 간 및 인터넷 송신 트래픽을 강제로 적용하는 경로 테이블을 만듭니다.

  1. 포털 상단의 검색 상자에 경로 테이블을 입력합니다. 검색 결과에서 경로 테이블을 선택합니다.

  2. + 만들기를 선택합니다.

  3. 경로 테이블 만들기에서 다음 정보를 입력하거나 선택합니다.

    설정
    프로젝트 세부 정보
    Subscription 구독을 선택합니다.
    Resource group test-rg를 선택합니다.
    인스턴스 세부 정보
    지역 미국 중남부를 선택합니다.
    이름 route-table-spoke를 입력합니다.
    게이트웨이 경로 전파 아니오를 선택합니다.
  4. 검토 + 만들기를 선택합니다.

  5. 만들기를 선택합니다.

  6. 포털 상단의 검색 창에 경로 테이블을 입력합니다. 검색 결과에서 경로 테이블을 선택합니다.

  7. route-table-spoke를 선택합니다.

  8. 설정에서 경로를 선택합니다.

  9. 경로에서 + 추가를 선택합니다.

  10. 경로 추가에서 다음 정보를 입력하거나 선택합니다.

    설정
    경로 이름 route-to-hub를 입력합니다.
    대상 형식 IP 주소를 선택합니다.
    대상 IP 주소/CIDR 범위 0.0.0.0/0을 입력합니다.
    다음 홉 유형 가상 어플라이언스를 선택합니다.
    다음 홉 주소 10.0.1.68을 입력합니다.
  11. 추가를 선택합니다.

  12. 설정에서 서브넷을 선택합니다.

  13. + 연결을 선택합니다.

  14. 서브넷 연결에서 다음 정보를 입력하거나 선택합니다.

    설정
    가상 네트워크 vnet-spoke(test-rg)를 선택합니다.
    서브넷 서브넷-프라이빗을 선택합니다.
  15. 확인을 선택합니다.

방화벽 구성

허브를 통한 스포크 트래픽은 방화벽 정책 및 네트워크 규칙을 통해 허용되어야 합니다. 다음 예제를 사용하여 방화벽 정책 및 네트워크 규칙을 만듭니다.

네트워크 규칙을 구성합니다

  1. 포털 상단에 있는 검색 상자에 Firewall을 입력합니다. 검색 결과에서 방화벽 정책을 선택합니다.

  2. firewall-policy을 선택합니다.

  3. 설정에서 네트워크 규칙을 선택합니다.

  4. +규칙 컬렉션 추가를 선택합니다.

  5. 규칙 컬렉션 추가에서 다음 정보를 입력하거나 선택합니다.

    설정
    속성 spoke-to-internet를 입력합니다.
    규칙 컬렉션 유형 네트워크를 선택합니다.
    우선 순위 100을 입력합니다.
    규칙 컬렉션 작업 수락을 선택합니다.
    규칙 컬렉션 그룹 DefaultNetworkRuleCollectionGroup을 선택합니다.
    규칙
    이름 allow-web을 입력합니다.
    소스 형식 IP 주소.
    원본 10.1.0.0/24를 입력합니다.
    프로토콜 TCP를 선택합니다.
    대상 포트 80,443를 입력합니다.
    대상 유형 IP 주소를 선택합니다.
    대상 *를 입력합니다
  6. 추가를 선택합니다.

테스트 가상 머신 만들기

Ubuntu 가상 머신은 NAT Gateway를 통한 아웃바운드 인터넷 트래픽을 테스트하는 데 사용됩니다. 다음 예를 사용하여 Ubuntu 가상 머신을 만듭니다.

다음 절차에서는 가상 네트워크에 vm-spoke라는 테스트 VM(가상 머신)을 만듭니다.

  1. 포털에서 가상 머신을 검색하여 선택합니다.

  2. 가상 머신에서 + 만들기를 선택한 다음, +Azure 가상 머신을 선택합니다.

  3. 가상 머신 만들기기본 탭에서 다음 정보를 입력하거나 선택합니다.

    설정
    프로젝트 세부 정보
    Subscription 구독을 선택합니다.
    Resource group test-rg를 선택합니다.
    인스턴스 세부 정보
    가상 머신 이름 vm-spoke를 입력합니다.
    지역 (미국) 미국 중남부를 선택합니다.
    가용성 옵션 인프라 중복이 필요하지 않습니다.를 선택합니다.
    보안 유형 기본값인 표준을 그대로 둡니다.
    이미지 Ubuntu Server 22.04 LTS - x64 Gen2를 선택합니다.
    VM 아키텍처 x64(기본값)를 그대로 둡니다.
    크기 크기를 선택합니다.
    관리자 계정
    인증 유형 암호를 선택합니다.
    사용자 이름 azureuser를 입력합니다.
    암호 암호를 입력합니다.
    암호 확인 암호를 다시 입력합니다.
    인바운드 포트 규칙
    공용 인바운드 포트 없음을 선택합니다.
  4. 페이지 위쪽에 있는 네트워킹 탭을 선택합니다.

  5. 네트워킹 탭에서 다음 정보를 입력하거나 선택합니다.

    설정
    네트워크 인터페이스
    가상 네트워크 vnet-spoke를 선택합니다.
    서브넷 서브넷-프라이빗(10.1.0.0/24)을 선택합니다.
    공용 IP 없음을 선택합니다.
    NIC 네트워크 보안 그룹 추가 고급을 선택합니다.
    네트워크 보안 그룹 구성 새로 만들기를 선택합니다.
    이름으로 nsg-1을 입력합니다.
    나머지는 기본값으로 두고 확인을 선택합니다.
  6. 나머지 설정은 기본값으로 두고 검토 + 만들기를 선택합니다.

  7. 설정을 검토하고 생성를 선택합니다.

참고 항목

베스천 호스트가 있는 가상 네트워크의 가상 머신에는 공용 IP 주소가 필요하지 않습니다. Bastion은 공용 IP를 제공하고 VM은 개인 IP를 사용하여 네트워크 내에서 통신합니다. 베스천 호스트된 가상 네트워크의 모든 VM에서 공용 IP를 제거할 수 있습니다. 자세한 내용은 Azure VM에서 공용 IP 주소 연결 해제를 참조하세요.

NAT 게이트웨이 테스트

이전 단계에서 만든 Ubuntu 가상 머신에 연결하여 아웃바운드 인터넷 트래픽이 NAT Gateway에서 나가는지 확인합니다.

NAT 게이트웨이 공용 IP 주소 가져오기

문서의 뒷부분에 있는 단계를 확인하려면 NAT 게이트웨이 공용 IP 주소를 가져옵니다.

  1. 포털 맨 위에 있는 검색 상자에 공용 IP를 입력합니다. 검색 결과에서 공용 IP 주소를 선택합니다.

  2. public-ip-nat를 선택합니다.

  3. IP 주소의 값을 기록해 둡니다. 이 문서에 사용된 예제의 이름은 20.225.88.213입니다.

스포크에서 NAT 게이트웨이 테스트하기

  1. 포털 맨 위에 있는 검색 상자에 가상 머신을 입력합니다. 검색 결과에서 가상 머신을 선택합니다.

  2. vm-spoke를 선택합니다.

  3. 작업에서 Bastion을 선택합니다.

  4. VM을 만드는 동안 입력한 사용자 이름과 암호를 입력합니다. 연결을 선택합니다.

  5. Bash 프롬프트에 다음 명령을 입력합니다.

    curl ifconfig.me
    
  6. 명령으로 반환된 IP 주소가 NAT Gateway의 공용 IP 주소와 일치하는지 확인합니다.

    azureuser@vm-1:~$ curl ifconfig.me
    20.225.88.213
    
  7. vm-spoke에 대한 Bastion 연결을 닫습니다.

리소스 정리

만든 리소스 사용을 마치면 리소스 그룹 및 모든 해당 리소스를 삭제할 수 있습니다.

  1. Azure Portal에서 리소스 그룹을 검색하고 선택합니다.

  2. 리소스 그룹 페이지에서 test-rg 리소스 그룹을 선택합니다.

  3. test-rg 페이지에서 리소스 그룹 삭제를 선택합니다.

  4. 리소스 그룹 이름 입력에 test-rg를 입력하여 삭제를 확인한 다음 삭제를 선택합니다.

다음 단계

다음 문서로 진행하여 NAT 게이트웨이를 Azure Load Balancer와 통합하는 방법에 대해 알아봅니다.