Azure Resource Manager 배포 모델을 사용하여 강제 터널링 구성Configure forced tunneling using the Azure Resource Manager deployment model

강제 터널링을 사용하면 검사 및 감사에 대한 사이트 간 VPN 터널을 통해 모든 인터넷 바인딩된 트래픽을 온-프레미스 위치에 다시 리디렉션하거나 "force"할 수 있습니다.Forced tunneling lets you redirect or "force" all Internet-bound traffic back to your on-premises location via a Site-to-Site VPN tunnel for inspection and auditing. 대부분의 엔터프라이즈 IT 정책에 있어서 중요한 보안 요구 사항입니다.This is a critical security requirement for most enterprise IT policies. 강제 터널링 없이 Azure의 VM에서 인터넷 바인딩된 트래픽은 항상 트래픽을 검사 또는 감사하도록 허용하는 옵션 없이 Azure 네트워크 인프라에서 직접 인터넷으로 트래버스합니다.Without forced tunneling, Internet-bound traffic from your VMs in Azure always traverses from Azure network infrastructure directly out to the Internet, without the option to allow you to inspect or audit the traffic. 인증되지 않은 인터넷 액세스는 잠재적으로 정보 공개 또는 다른 유형의 보안 위반을 발생시킬 수 있습니다.Unauthorized Internet access can potentially lead to information disclosure or other types of security breaches.

참고

이 문서는 새 Azure PowerShell Az 모듈을 사용하도록 업데이트되었습니다.This article has been updated to use the new Azure PowerShell Az module. AzureRM 모듈은 적어도 2020년 12월까지 버그 수정을 수신할 예정이므로 계속 사용하셔도 됩니다.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. 새 Az 모듈 및 AzureRM 호환성에 대한 자세한 내용은 새 Azure PowerShell Az 모듈 소개를 참조하세요.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az 모듈 설치 지침은 Azure PowerShell 설치를 참조하세요.For Az module installation instructions, see Install Azure PowerShell.

Azure는 현재 두 가지 배포 모델을 사용 하 여 작동합니다. Resource Manager 및 클래식 합니다.Azure currently works with two deployment models: Resource Manager and classic. 두 가지 모델은 서로 완전히 호환되지 않습니다.The two models are not completely compatible with each other. 시작하기 전에 어떤 모델을 사용할 것인지 알아야 합니다.Before you begin, you need to know which model that you want to work in. 배포 모델에 대한 자세한 내용은 배포 모델 이해를 참조하세요.For information about the deployment models, see Understanding deployment models. Azure을 처음 접하는 경우 Resource Manager 배포 모델을 사용하는 것이 좋습니다.If you are new to Azure, we recommend that you use the Resource Manager deployment model.

이 문서에서는 Resource Manager 배포 모델을 사용하여 만든 가상 네트워크에 대한 강제 터널링을 구성하는 과정을 안내합니다.This article walks you through configuring forced tunneling for virtual networks created using the Resource Manager deployment model. 강제 터널링은 포털을 통해서가 아닌 PowerShell을 사용하여 구성할 수 있습니다.Forced tunneling can be configured by using PowerShell, not through the portal. 클래식 배포 모델에 대한 강제 터널링을 구성하려면 다음 드롭다운 목록에서 클래식 문서를 선택합니다.If you want to configure forced tunneling for the classic deployment model, select classic article from the following dropdown list:

강제 터널링 정보About forced tunneling

다음 다이어그램에서는 강제 터널링 작동 방법을 보여 줍니다.The following diagram illustrates how forced tunneling works.

강제 터널링

위의 예에서 프런트 엔드 서브넷은 강제 터널링되지 않았습니다.In the example above, the Frontend subnet is not forced tunneled. 프런트 엔드 서브넷에서 작업은 계속해서 인터넷에서 직접 고객의 요청을 수락하고 응답할 수 있습니다.The workloads in the Frontend subnet can continue to accept and respond to customer requests from the Internet directly. 중간 계층 및 백 엔드 서브넷은 강제 터널링됩니다.The Mid-tier and Backend subnets are forced tunneled. 이러한 두 서브넷에서 인터넷으로의 모든 아웃바운드 연결은 S2S VPN 터널 중 하나를 통해 온-프레미스 사이트로 다시 force되거나 리디렉션됩니다.Any outbound connections from these two subnets to the Internet will be forced or redirected back to an on-premises site via one of the S2S VPN tunnels.

이를 통해 필요한 다중 계층 서비스 아키텍처를 계속 사용하면서 Azure의 가상 머신 또는 클라우드 서비스에서 인터넷 액세스를 제한하고 검사할 수 있습니다.This allows you to restrict and inspect Internet access from your virtual machines or cloud services in Azure, while continuing to enable your multi-tier service architecture required. 가상 네트워크에 인터넷 연결 작업이 없는 경우 강제 터널링을 전체 가상 네트워크에 적용할 수도 있습니다.If there are no Internet-facing workloads in your virtual networks, you also can apply forced tunneling to the entire virtual networks.

요구 사항 및 고려 사항Requirements and considerations

Azure에서 강제 터널링은 가상 네트워크 사용자 정의 경로를 통해 구성됩니다.Forced tunneling in Azure is configured via virtual network user-defined routes. 온-프레미스 사이트에 트래픽을 리디렉션하는 것은 Azure VPN Gateway에 기본 경로로 표현됩니다.Redirecting traffic to an on-premises site is expressed as a Default Route to the Azure VPN gateway. 사용자 정의 경로 및 가상 네트워크에 대한 자세한 내용은 사용자 정의 경로 및 IP 전달을 참조하세요.For more information about user-defined routing and virtual networks, see User-defined routes and IP forwarding.

  • 각 가상 네트워크 서브넷에는 기본 제공 시스템 라우팅 테이블이 있습니다.Each virtual network subnet has a built-in, system routing table. 시스템 라우팅 테이블에는 다음 3개의 경로 그룹이 있습니다.The system routing table has the following three groups of routes:

    • 로컬 VNet 경로: 동일한 가상 네트워크의 대상 VM에 바로 연결됩니다.Local VNet routes: Directly to the destination VMs in the same virtual network.
    • 온-프레미스 경로: Azure VPN Gateway에 연결됩니다.On-premises routes: To the Azure VPN gateway.
    • 기본 경로: 인터넷에 바로 연결됩니다.Default route: Directly to the Internet. 이전의 두 경로를 벗어나는 개인 IP 주소로 향하는 패킷은 삭제됩니다.Packets destined to the private IP addresses not covered by the previous two routes are dropped.
  • 이 절차는 UDR(사용자 정의 경로)을 사용하여 라우팅 테이블을 만들어 기본 경로에 추가한 다음 라우팅 테이블을 VNet 서브넷에 연결하여 해당 서브넷에 강제 터널링을 사용할 수 있습니다.This procedure uses user-defined routes (UDR) to create a routing table to add a default route, and then associate the routing table to your VNet subnet(s) to enable forced tunneling on those subnets.

  • 강제 터널링은 경로 기반 VPN 게이트웨이가 있는 VNet에 연결되어야 합니다.Forced tunneling must be associated with a VNet that has a route-based VPN gateway. 가상 네트워크에 연결된 크로스-프레미스 로컬 사이트 사이에서 "기본 사이트"를 설정해야 합니다.You need to set a "default site" among the cross-premises local sites connected to the virtual network. 또한 트래픽 선택기로 0.0.0.0/0을 사용하여 온-프레미스 VPN 디바이스를 구성해야 합니다.Also, the on-premises VPN device must be configured using 0.0.0.0/0 as traffic selectors.

  • ExpressRoute 강제 터널링은 이 메커니즘을 통해 구성되지 않지만 대신 ExpressRoute BGP 피어링 세션을 통해 기본 경로를 보급하여 활성화됩니다.ExpressRoute forced tunneling is not configured via this mechanism, but instead, is enabled by advertising a default route via the ExpressRoute BGP peering sessions. 자세한 내용은 ExpressRoute 설명서를 참조하세요.For more information, see the ExpressRoute Documentation.

구성 개요Configuration overview

다음 절차를 사용하면 리소스 그룹과 VNet을 만들 수 있습니다.The following procedure helps you create a resource group and a VNet. 그런 다음 VPN Gateway를 만들고 강제 터널링을 구성합니다.You'll then create a VPN gateway and configure forced tunneling. 이 절차에서 가상 네트워크 'MultiTier-VNet'에는 세 개의 서브넷('Frontend', 'Midtier', 'Backend')과 네 개의 프레미스 간 연결(‘DefaultSiteHQ’ 및 분기 세 개)이 있습니다.In this procedure, the virtual network 'MultiTier-VNet' has three subnets: 'Frontend', 'Midtier', and 'Backend', with four cross-premises connections: 'DefaultSiteHQ', and three Branches.

절차 단계에서는 강제 터널링에 대한 기본 사이트 연결로 DefaultSiteHQ를 설정하고 강제 터널링을 사용하도록 'Midtier' 및 'Backend' 서브넷을 구성합니다.The procedure steps set the 'DefaultSiteHQ' as the default site connection for forced tunneling, and configure the 'Midtier' and 'Backend' subnets to use forced tunneling.

시작하기 전에Before you begin

최신 버전의 Azure Resource Manager PowerShell cmdlet을 설치합니다.Install the latest version of the Azure Resource Manager PowerShell cmdlets. PowerShell cmdlet 설치에 대한 자세한 내용은 Azure PowerShell 설치 및 구성 방법 을 참조하세요.See How to install and configure Azure PowerShell for more information about installing the PowerShell cmdlets.

중요

PowerShell cmdlet의 최신 버전을 설치해야 합니다.Installing the latest version of the PowerShell cmdlets is required. 그렇지 않은 경우 cmdlet 중 일부를 실행할 때 유효성 검사 오류가 발생할 수 있습니다.Otherwise, you may receive validation errors when running some of the cmdlets.

로그인하려면To log in

이 구성을 시작하기 전에 Azure 계정에 로그인해야 합니다.Before beginning this configuration, you must sign in to your Azure account. cmdlet에서 Azure 계정에 대한 로그인 자격 증명을 입력하라는 메시지를 표시합니다.The cmdlet prompts you for the sign-in credentials for your Azure account. 로그인한 다음, Azure PowerShell에 사용할 수 있도록 계정 설정을 다운로드합니다.After signing in, it downloads your account settings so they are available to Azure PowerShell. 자세한 내용은 리소스 관리자에서 Windows PowerShell 사용을 참조하세요.For more information, see Using Windows PowerShell with Resource Manager.

로그인하려면 상승된 권한으로 PowerShell 콘솔을 열고 계정에 연결합니다.To sign in, open your PowerShell console with elevated privileges, and connect to your account. 연결에 도움이 되도록 다음 예제를 사용합니다.Use the following example to help you connect:

Connect-AzAccount

Azure 구독이 여러 개인 경우 계정의 구독을 확인합니다.If you have multiple Azure subscriptions, check the subscriptions for the account.

Get-AzSubscription

사용할 구독을 지정합니다.Specify the subscription that you want to use.

Select-AzSubscription -SubscriptionName "Replace_with_your_subscription_name"

강제 터널링 구성Configure forced tunneling

참고

“이 cmdlet의 출력 개체 형식은 이후 릴리스에서 수정될 예정입니다”라는 경고가 표시될 수 있습니다.You may see warnings saying "The output object type of this cmdlet will be modified in a future release". 이는 정상적인 동작이며 사용자는 이러한 경고를 안전하게 무시할 수 있습니다.This is expected behavior and you can safely ignore these warnings.

  1. 리소스 그룹을 만듭니다.Create a resource group.

    New-AzResourceGroup -Name 'ForcedTunneling' -Location 'North Europe'
    
  2. 가상 네트워크를 만들고 서브넷을 지정합니다.Create a virtual network and specify subnets.

    $s1 = New-AzVirtualNetworkSubnetConfig -Name "Frontend" -AddressPrefix "10.1.0.0/24"
    $s2 = New-AzVirtualNetworkSubnetConfig -Name "Midtier" -AddressPrefix "10.1.1.0/24"
    $s3 = New-AzVirtualNetworkSubnetConfig -Name "Backend" -AddressPrefix "10.1.2.0/24"
    $s4 = New-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -AddressPrefix "10.1.200.0/28"
    $vnet = New-AzVirtualNetwork -Name "MultiTier-VNet" -Location "North Europe" -ResourceGroupName "ForcedTunneling" -AddressPrefix "10.1.0.0/16" -Subnet $s1,$s2,$s3,$s4
    
  3. 로컬 네트워크 게이트웨이를 만듭니다.Create the local network gateways.

    $lng1 = New-AzLocalNetworkGateway -Name "DefaultSiteHQ" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -GatewayIpAddress "111.111.111.111" -AddressPrefix "192.168.1.0/24"
    $lng2 = New-AzLocalNetworkGateway -Name "Branch1" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -GatewayIpAddress "111.111.111.112" -AddressPrefix "192.168.2.0/24"
    $lng3 = New-AzLocalNetworkGateway -Name "Branch2" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -GatewayIpAddress "111.111.111.113" -AddressPrefix "192.168.3.0/24"
    $lng4 = New-AzLocalNetworkGateway -Name "Branch3" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -GatewayIpAddress "111.111.111.114" -AddressPrefix "192.168.4.0/24"
    
  4. 경로 테이블 및 경로 규칙을 만듭니다.Create the route table and route rule.

    New-AzRouteTable –Name "MyRouteTable" -ResourceGroupName "ForcedTunneling" –Location "North Europe"
    $rt = Get-AzRouteTable –Name "MyRouteTable" -ResourceGroupName "ForcedTunneling" 
    Add-AzRouteConfig -Name "DefaultRoute" -AddressPrefix "0.0.0.0/0" -NextHopType VirtualNetworkGateway -RouteTable $rt
    Set-AzRouteTable -RouteTable $rt
    
  5. 중간 계층 및 백 엔드 서브넷에 경로 테이블을 연결합니다.Associate the route table to the Midtier and Backend subnets.

    $vnet = Get-AzVirtualNetwork -Name "MultiTier-Vnet" -ResourceGroupName "ForcedTunneling"
    Set-AzVirtualNetworkSubnetConfig -Name "MidTier" -VirtualNetwork $vnet -AddressPrefix "10.1.1.0/24" -RouteTable $rt
    Set-AzVirtualNetworkSubnetConfig -Name "Backend" -VirtualNetwork $vnet -AddressPrefix "10.1.2.0/24" -RouteTable $rt
    Set-AzVirtualNetwork -VirtualNetwork $vnet
    
  6. 가상 네트워크 게이트웨이를 만듭니다.Create the virtual network gateway. 이 단계에서 게이트웨이를 만들고 구성하기 때문에 완료되기까지 약간의 시간이 걸리며, 45분 이상 걸리는 경우도 있습니다.This step takes some time to complete, sometimes 45 minutes or more, because you are creating and configuring the gateway. GatewaySKU 값과 관련한 ValidateSet 오류가 표시되는 경우 PowerShell cmdlet 최신 버전을 설치했는지 확인합니다.If you see ValidateSet errors regarding the GatewaySKU value, verify that you have installed the latest version of the PowerShell cmdlets. PowerShell cmdlet 최신 버전은 최신 게이트웨이 SKU에 대한 유효성이 검사된 새 값을 포함합니다.The latest version of the PowerShell cmdlets contains the new validated values for the latest Gateway SKUs.

    $pip = New-AzPublicIpAddress -Name "GatewayIP" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -AllocationMethod Dynamic
    $gwsubnet = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet
    $ipconfig = New-AzVirtualNetworkGatewayIpConfig -Name "gwIpConfig" -SubnetId $gwsubnet.Id -PublicIpAddressId $pip.Id
    New-AzVirtualNetworkGateway -Name "Gateway1" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -IpConfigurations $ipconfig -GatewayType Vpn -VpnType RouteBased -GatewaySku VpnGw1 -EnableBgp $false
    
  7. 기본 사이트를 가상 네트워크 게이트웨이에 할당합니다.Assign a default site to the virtual network gateway. -GatewayDefaultSite는 이 설정을 올바르게 구성할 수 있도록 강제 라우팅 구성을 수행할 수 있도록 하는 cmdlet 매개 변수입니다.The -GatewayDefaultSite is the cmdlet parameter that allows the forced routing configuration to work, so take care to configure this setting properly.

    $LocalGateway = Get-AzLocalNetworkGateway -Name "DefaultSiteHQ" -ResourceGroupName "ForcedTunneling"
    $VirtualGateway = Get-AzVirtualNetworkGateway -Name "Gateway1" -ResourceGroupName "ForcedTunneling"
    Set-AzVirtualNetworkGatewayDefaultSite -GatewayDefaultSite $LocalGateway -VirtualNetworkGateway $VirtualGateway
    
  8. 사이트 간 VPN 연결을 설정합니다.Establish the Site-to-Site VPN connections.

    $gateway = Get-AzVirtualNetworkGateway -Name "Gateway1" -ResourceGroupName "ForcedTunneling"
    $lng1 = Get-AzLocalNetworkGateway -Name "DefaultSiteHQ" -ResourceGroupName "ForcedTunneling" 
    $lng2 = Get-AzLocalNetworkGateway -Name "Branch1" -ResourceGroupName "ForcedTunneling" 
    $lng3 = Get-AzLocalNetworkGateway -Name "Branch2" -ResourceGroupName "ForcedTunneling" 
    $lng4 = Get-AzLocalNetworkGateway -Name "Branch3" -ResourceGroupName "ForcedTunneling" 
    
    New-AzVirtualNetworkGatewayConnection -Name "Connection1" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -VirtualNetworkGateway1 $gateway -LocalNetworkGateway2 $lng1 -ConnectionType IPsec -SharedKey "preSharedKey"
    New-AzVirtualNetworkGatewayConnection -Name "Connection2" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -VirtualNetworkGateway1 $gateway -LocalNetworkGateway2 $lng2 -ConnectionType IPsec -SharedKey "preSharedKey"
    New-AzVirtualNetworkGatewayConnection -Name "Connection3" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -VirtualNetworkGateway1 $gateway -LocalNetworkGateway2 $lng3 -ConnectionType IPsec -SharedKey "preSharedKey"
    New-AzVirtualNetworkGatewayConnection -Name "Connection4" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -VirtualNetworkGateway1 $gateway -LocalNetworkGateway2 $lng4 -ConnectionType IPsec -SharedKey "preSharedKey"
    
    Get-AzVirtualNetworkGatewayConnection -Name "Connection1" -ResourceGroupName "ForcedTunneling"