자습서: Azure Portal에서 경로 테이블을 사용하여 네트워크 트래픽 라우팅

Azure에서는 기본적으로 가상 네트워크 내의 모든 서브넷 간에 트래픽을 라우팅합니다. 고유의 라우팅을 만들어 Azure의 기본 라우팅을 재정의할 수 있습니다. 예를 들어 NVA(네트워크 가상 어플라이언스)를 통해 트래픽을 서브넷 간에 라우팅하려는 경우 사용자 지정 경로가 유용합니다.

Diagram of Azure resources created in tutorial.

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

  • 가상 네트워크 및 서브넷 만들기
  • 트래픽을 라우팅하는 NVA 만들기
  • 다른 서브넷에 VM(가상 머신) 배포
  • 경로 테이블 만들기
  • 경로 만들기
  • 서브넷에 경로 테이블 연결
  • NVA를 통해 한 서브넷에서 다른 서브넷으로 트래픽 라우팅

필수 조건

Azure에 로그인

Azure Portal에 로그인합니다.

가상 네트워크 및 Azure Bastion 호스트 만들기

다음 절차에서는 리소스 서브넷, Azure Bastion 서브넷 및 Bastion 호스트를 사용하여 가상 네트워크를 만듭니다.

  1. 포털에서 가상 네트워크를 검색하여 선택합니다.

  2. 가상 네트워크 페이지에서 + 만들기를 선택합니다.

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

    설정
    프로젝트 세부 정보
    Subscription 구독을 선택합니다.
    Resource group 새로 만들기를 선택합니다.
    이름에 대한 test-rg를 입력합니다.
    확인을 선택합니다.
    인스턴스 세부 정보
    Name vnet-1을 입력합니다.
    지역 미국 동부 2를 선택합니다.

    Screenshot of the Basics tab for creating a virtual network in the Azure portal.

  4. 다음을 선택하여 보안 탭으로 이동합니다.

  5. Azure Bastion 섹션에서 Bastion 사용을 선택합니다.

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

    참고 항목

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

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

    설정
    Azure Bastion 호스트 이름 bastion을 입력합니다.
    Azure Bastion 공용 IP 주소 공용 IP 주소 만들기를 선택합니다.
    이름에 public-ip-bastion을 입력합니다.
    확인을 선택합니다.

    Screenshot of options for enabling an Azure Bastion host as part of creating a virtual network in the Azure portal.

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

  8. 서브넷의 주소 공간 입력란에서 기본 서브넷을 선택합니다.

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

    설정
    서브넷 세부 정보
    서브넷 템플릿 기본값 을 그대로 둡니다.
    이름 subnet-1을 입력합니다.
    시작 주소 기본값인 10.0.0.0을 그대로 둡니다.
    서브넷 크기 기본값 인 /24(256개 주소)를 그대로 둡니다.

    Screenshot of configuration details for a subnet.

  10. 저장을 선택합니다.

  11. 창 아래쪽에서 검토 + 만들기를 선택합니다. 유효성 검사를 통과하면 만들기를 선택합니다.

서브넷 만들기

이 자습서에는 DMZ프라이빗 서브넷이 필요합니다. DMZ 서브넷은 NVA를 배포하는 위치이고, 프라이빗 서브넷은 트래픽을 라우팅할 가상 머신을 배포하는 위치입니다. subnet-1은 이전 단계에서 만들어진 서브넷입니다. 공용 가상 머신에는 subnet-1을 사용합니다.

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

  2. 가상 네트워크에서 vnet-1을 선택합니다.

  3. vnet-1설정 섹션에서 서브넷을 선택합니다.

  4. 가상 네트워크의 서브넷 목록에서 + 서브넷을 선택합니다.

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

    설정
    속성 서브넷-프라이빗을 입력합니다.
    서브넷 주소 범위 10.0.2.0/24를 입력합니다.

    Screenshot of private subnet creation in virtual network.

  6. 저장을 선택합니다.

  7. + 서브넷을 선택합니다.

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

    설정
    속성 subnet-dmz를 입력합니다.
    서브넷 주소 범위 10.0.3.0/24를 입력합니다.

    Screenshot of DMZ subnet creation in virtual network.

  9. 저장을 선택합니다.

NVA 가상 머신 만들기

NVA(네트워크 가상 어플라이언스)는 라우팅 및 방화벽 최적화와 같은 네트워크 기능을 지원하는 가상 머신입니다. 이 섹션에서는 Ubuntu 22.04 가상 머신을 사용하여 NVA를 만듭니다.

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

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

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

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

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

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

  7. 만들기를 실행합니다.

퍼블릭 및 프라이빗 가상 머신 만들기

vnet-1 가상 네트워크에 두 개의 가상 머신을 만듭니다. 한 가상 머신은 subnet-1 서브넷에 있고 다른 가상 머신은 subnet-private 서브넷에 있습니다. 두 가상 머신 모두에 동일한 가상 머신 이미지를 사용합니다.

공용 가상 머신 만들기

공용 가상 머신은 공용 인터넷에서 컴퓨터를 시뮬레이션하는 데 사용됩니다. 공용 및 프라이빗 가상 머신은 NVA 가상 머신을 통한 네트워크 트래픽 라우팅을 테스트하는 데 사용됩니다.

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

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

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

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

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

    설정
    네트워크 인터페이스
    가상 네트워크 vnet-1을 선택합니다.
    서브넷 subnet-1(10.0.0.0/24)을 선택합니다.
    공용 IP 없음을 선택합니다.
    NIC 네트워크 보안 그룹 추가 없음을 선택합니다.
  6. 나머지 옵션은 기본값으로 두고 검토 + 만들기를 선택합니다.

  7. 만들기를 실행합니다.

프라이빗 가상 머신 만들기

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

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

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

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

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

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

  7. 만들기를 실행합니다.

IP 전달을 사용하도록 설정

NVA를 통해 트래픽을 라우팅하려면 Azure 및 vm-nva 운영 체제에서 IP 전달을 설정합니다. IP 전달이 사용하도록 설정되면 다른 IP 주소로 향하는 vm-nva에서 수신한 모든 트래픽은 삭제되지 않고 올바른 대상으로 전달됩니다.

Azure에서 IP 전달 사용

이 섹션에서는 vm-nva 가상 머신의 네트워크 인터페이스에 대한 IP 전달을 설정합니다.

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

  2. 가상 머신에서 vm-nva를 선택합니다.

  3. vm-nva설정 섹션에서 네트워킹을 선택합니다.

  4. 네트워크 인터페이스: 옆에 있는 인터페이스 이름을 선택합니다. 이름은 vm-nva로 시작하며 인터페이스에 임의의 숫자가 할당됩니다. 이 예에서 인터페이스 이름은 vm-nva124입니다.

    Screenshot of network interface of NVA virtual machine.

  5. 네트워크 인터페이스 개요 페이지의 설정 섹션에서 IP 구성을 선택합니다.

  6. IP 구성에서 IP 전달 사용 옆의 확인란을 선택합니다.

    Screenshot of enablement of IP forwarding.

  7. 적용을 선택합니다.

운영 체제에서 IP 전달을 사용하도록 설정합니다.

이 섹션에서는 vm-nva 가상 머신의 운영 체제에 대한 IP 전달을 활성화하여 네트워크 트래픽을 전달합니다. Azure Bastion 서비스를 사용하여 vm-nva 가상 머신에 연결합니다.

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

  2. 가상 머신에서 vm-nva를 선택합니다.

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

  4. 가상 머신을 만들 때 입력한 사용자 이름 및 암호를 입력합니다.

  5. 연결을 선택합니다.

  6. 가상 머신의 프롬프트에 다음 정보를 입력하여 IP 전달을 사용하도록 설정합니다.

    sudo vim /etc/sysctl.conf
    
  7. Vim 편집기에서 net.ipv4.ip_forward=1 줄의 #을 제거합니다.

    Insert 키를 누릅니다.

    # Uncomment the next line to enable packet forwarding for IPv4
    net.ipv4.ip_forward=1
    

    Esc 키를 누릅니다.

    :wq를 입력하고 Enter 키를 누릅니다.

  8. 베스천 세션을 닫습니다.

  9. 가상 머신을 다시 시작합니다.

경로 테이블 만들기

이 섹션에서는 NVA 가상 머신을 통한 트래픽 경로를 정의하는 경로 테이블을 만듭니다. 경로 테이블은 vm-public 가상 머신이 배포되는 subnet-1 서브넷에 연결됩니다.

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

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

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

    설정
    프로젝트 세부 정보
    Subscription 구독을 선택합니다.
    Resource group test-rg를 선택합니다.
    인스턴스 세부 정보
    지역 미국 동부 2를 선택합니다.
    이름 route-table-public을 입력합니다.
    게이트웨이 경로 전파 (기본값)를 그대로 둡니다.
  4. 검토 + 만들기를 선택합니다.

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

경로 만들기

이 섹션에서는 이전 단계에서 만든 경로 테이블에 경로를 만듭니다.

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

  2. route-table-public을 선택합니다.

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

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

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

    설정
    경로 이름 to-private-subnet을 입력합니다.
    대상 형식 IP 주소를 선택합니다.
    대상 IP 주소/CIDR 범위 10.0.2.0/24를 입력합니다.
    다음 홉 유형 가상 어플라이언스를 선택합니다.
    다음 홉 주소 10.0.3.4를 입력합니다.
    이는 이전 단계에서 만든 vm-nva의 IP 주소입니다..

    Screenshot of route creation in route table.

  6. 추가를 선택합니다.

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

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

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

    설정
    가상 네트워크 vnet-1(test-rg)을 선택합니다.
    서브넷 subnet-1을 선택합니다.
  10. 확인을 선택합니다.

네트워크 트래픽의 라우팅 테스트

vm-public에서 vm-private으로의 네트워크 트래픽 라우팅을 테스트합니다. vm-private에서 vm-public으로의 네트워크 트래픽 라우팅을 테스트합니다.

vm-public에서 vm-private으로의 네트워크 트래픽 테스트

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

  2. 가상 머신에서 vm-public을 선택합니다.

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

  4. 가상 머신을 만들 때 입력한 사용자 이름 및 암호를 입력합니다.

  5. 연결을 선택합니다.

  6. 프롬프트에 다음 명령을 입력하여 vm-public에서 vm-private으로의 네트워크 트래픽 라우팅을 추적합니다.

    tracepath vm-private
    

    응답은 다음 예제와 유사합니다.

    azureuser@vm-public:~$ tracepath vm-private
     1?: [LOCALHOST]                      pmtu 1500
     1:  vm-nva.internal.cloudapp.net                          1.766ms 
     1:  vm-nva.internal.cloudapp.net                          1.259ms 
     2:  vm-private.internal.cloudapp.net                      2.202ms reached
     Resume: pmtu 1500 hops 2 back 1 
    

    위 응답에는 vm-public에서 vm-private으로의 tracepath ICMP 트래픽에 대한 두 개의 홉이 있음을 알 수 있습니다. 첫 번째 홉은 vm-nva입니다. 두 번째 홉은 대상 vm-private입니다.

    이전에 to-private-subnet 경로를 route-table-public에 추가하고 이를 subnet-1에 연결했기 때문 Azure는 트래픽을 subnet-private으로 직접 보내지 않고 NVA를 통해 subnet-1에서 보냈습니다.

  7. 베스천 세션을 닫습니다.

vm-private에서 vm-public으로의 네트워크 트래픽 테스트

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

  2. 가상 머신에서 vm-private을 선택합니다.

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

  4. 가상 머신을 만들 때 입력한 사용자 이름 및 암호를 입력합니다.

  5. 연결을 선택합니다.

  6. 프롬프트에 다음 명령을 입력하여 vm-private에서 vm-public으로의 네트워크 트래픽 라우팅을 추적합니다.

    tracepath vm-public
    

    응답은 다음 예제와 유사합니다.

    azureuser@vm-private:~$ tracepath vm-public
     1?: [LOCALHOST]                      pmtu 1500
     1:  vm-public.internal.cloudapp.net                       2.584ms reached
     1:  vm-public.internal.cloudapp.net                       2.147ms reached
     Resume: pmtu 1500 hops 1 back 2 
    

    위 응답에는 대상 vm-public인 홉이 하나 있다는 것을 알 수 있습니다.

    Azure는 subnet-private에서 subnet-1로 트래픽을 직접 보냈습니다. 기본적으로 Azure는 트래픽을 서브넷 간에 직접 라우팅합니다.

  7. 베스천 세션을 닫습니다.

리소스 정리

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

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

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

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

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

다음 단계

이 자습서에서는 다음을 수행합니다.

  • 경로 테이블을 만들고 서브넷에 연결했습니다.

  • 퍼블릭 서브넷에서 프라이빗 서브넷으로 트래픽을 라우팅하는 간단한 NVA를 만들었습니다.

Azure Marketplace에서 많은 유용한 네트워크 기능을 제공하도록 미리 구성된 다른 NVA를 배포할 수 있습니다.

라우팅에 대한 자세한 내용은 라우팅 개요경로 테이블 관리를 참조하세요.

가상 네트워크 서비스 엔드포인트를 사용하여 PaaS 리소스에 대한 네트워크 액세스를 제한하는 방법을 알아보려면 다음 자습서로 진행합니다.