サイト間接続に既定のサイトを使用して強制トンネリングを構成する
この記事の手順は、既定のサイトを指定してサイト間 (S2S) IPsec 接続の強制トンネリングを構成するのに役立ちます。 BGP による強制トンネリングの構成など、強制トンネリングの構成方法については、「VPN Gateway の強制トンネリングについて」を参照してください。
既定では、VM からのインターネット接続トラフィックは、インターネットに直接送信されます。 VPN Gateway を経由するすべてのインターネット接続トラフィックを、検査と監査のためにオンプレミス サイトに強制的に送信する場合は、強制トンネリングを構成することで実行できます。 強制トンネリングを構成した後、必要に応じて、カスタム ユーザー定義ルート (UDR) を使用して、指定したサブネットに関してインターネット接続トラフィックを直接インターネットにルーティングできます。
次の手順は、既定のサイトを指定して強制トンネリング シナリオを構成するのに役立ちます。 オプションとして、カスタム UDR を使用して、フロントエンド サブネットからのインターネット接続トラフィックがオンプレミス サイトではなくインターネットに直接送信されることを指定することで、トラフィックをルーティングできます。
- 作成する VNet には、フロントエンド、中間層、バックエンドという 3 つのサブネットがあり、DefaultSiteHQ と 3 つの Branch の計 4 つのクロス プレミス接続があります。
- PowerShell を使用して VPN ゲートウェイの既定のサイトを指定すると、すべてのインターネット トラフィックが強制的にオンプレミスの場所に戻されます。 既定のサイトは、Azure portal を使用して構成することはできません。
- フロントエンド サブネットは、インターネット トラフィックをインターネットに直接送信する UDR を割り当てられ、VPN ゲートウェイをバイパスします。 他のトラフィックは通常通りルーティングされます。
- 中間層サブネットとバックエンド サブネットでは、既定のサイトが指定されているため、インターネット トラフィックは引き続き VPN ゲートウェイ経由でオンプレミス サイトにトンネリングバックされます。
VNet とサブネットを作成する
最初に、テスト環境を作成します。 Azure Cloud Shell を使用することも、PowerShell をローカルで実行することもできます。 詳細については、「 Azure PowerShell のインストールと構成の方法」を参照してください。
Note
"The output object type of this cmdlet will be modified in a future release"(このコマンドレットの出力オブジェクトの種類は将来のリリースで変更されます) という警告メッセージが表示されることがあります。 これは想定される動作であり、これらの警告は無視してもかまいません。
New-AzResourceGroup を使用してリソース グループを作成します。
New-AzResourceGroup -Name "TestRG1" -Location "EastUS"
New-AzVirtualNetwork を使用して、仮想ネットワークを作成します。
$vnet = New-AzVirtualNetwork ` -ResourceGroupName "TestRG1" ` -Location "EastUS" ` -Name "VNet1" ` -AddressPrefix 10.1.0.0/16
New-AzVirtualNetworkSubnetConfig を使用してサブネットを作成します。 フロントエンド、中間層、バックエンドの各サブネットとゲートウェイ サブネット (GatewaySubnet という名前にする必要があります) を作成します。
$subnetConfigFrontend = Add-AzVirtualNetworkSubnetConfig ` -Name Frontend ` -AddressPrefix 10.1.0.0/24 ` -VirtualNetwork $vnet $subnetConfigMid-tier = Add-AzVirtualNetworkSubnetConfig ` -Name Mid-tier ` -AddressPrefix 10.1.1.0/24 ` -VirtualNetwork $vnet $subnetConfigBackend = Add-AzVirtualNetworkSubnetConfig ` -Name Backend ` -AddressPrefix 10.1.2.0/24 ` -VirtualNetwork $vnet $subnetConfigGW = Add-AzVirtualNetworkSubnetConfig ` -Name GatewaySubnet ` -AddressPrefix 10.1.200.0/27 ` -VirtualNetwork $vnet
Set-AzureRmVirtualNetwork を使用して、仮想ネットワークにサブネット構成を書き込みます。これにより、仮想ネットワークにサブネットが作成されます。
$vnet | Set-AzVirtualNetwork
ローカル ネットワーク ゲートウェイの作成
このセクションでは、New-AzLocalNetworkGateway を使用してサイトのローカル ネットワーク ゲートウェイを作成します。 各ローカル ネットワーク ゲートウェイが作成されると、各コマンド間で少し一時停止があります。 この例では、-GatewayIpAddress
値はプレースホルダーです。 接続を確立するには、後でこれらの値をそれぞれのオンプレミス VPN デバイスのパブリック IP アドレスに置き換える必要があります。
$lng1 = New-AzLocalNetworkGateway -Name "DefaultSiteHQ" -ResourceGroupName "TestRG1" -Location "EastUS" -GatewayIpAddress "111.111.111.111" -AddressPrefix "192.168.1.0/24"
$lng2 = New-AzLocalNetworkGateway -Name "Branch1" -ResourceGroupName "TestRG1" -Location "EastUS" -GatewayIpAddress "111.111.111.112" -AddressPrefix "192.168.2.0/24"
$lng3 = New-AzLocalNetworkGateway -Name "Branch2" -ResourceGroupName "TestRG1" -Location "EastUS" -GatewayIpAddress "111.111.111.113" -AddressPrefix "192.168.3.0/24"
$lng4 = New-AzLocalNetworkGateway -Name "Branch3" -ResourceGroupName "TestRG1" -Location "EastUS" -GatewayIpAddress "111.111.111.114" -AddressPrefix "192.168.4.0/24"
VPN ゲートウェイの作成
このセクションでは、パブリック IP アドレスを要求し、パブリック IP アドレス オブジェクトに関連付けられている VPN Gateway を作成します。 パブリック IP アドレスは、オンプレミスまたは外部の VPN デバイスをクロス プレミス接続用の VPN Gateway に接続するときに使用されます。
Get-AzPublicIpAddress を使用する VPN Gateway のパブリック IP アドレスを要求します。
$gwpip = New-AzPublicIpAddress -Name "GatewayIP" -ResourceGroupName "TestRG1" -Location "EastUS" -AllocationMethod Static -Sku Standard
New-AzVirtualNetworkGatewayIpConfig を使用するゲートウェイ IP アドレス構成を作成します。 この構成は、VPN Gateway を作成するときに参照されます。
$vnet = Get-AzVirtualNetwork -Name "VNet1" -ResourceGroupName "TestRG1" $gwsubnet = Get-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -VirtualNetwork $vnet $gwipconfig = New-AzVirtualNetworkGatewayIpConfig -Name gwipconfig1 -SubnetId $gwsubnet.Id -PublicIpAddressId $gwpip.Id
New-AzVirtualNetworkGateway を使用するゲートウェイの種類 "Vpn" を含む仮想ネットワーク ゲートウェイを作成します。 選択したゲートウェイ SKU によっては、ゲートウェイの作成に 45 分以上かかる可能性があります。
この例では、VpnGw2 (第 2 世代 SKU) を使用します。 GatewaySKU の値に関する ValidateSet エラーが発生した場合は、PowerShell コマンドレットの最新バージョンがインストールされていることを確認してください。 最新バージョンには、最新の Gateway SKU の新しい有効値が含まれています。
New-AzVirtualNetworkGateway -Name "VNet1GW" -ResourceGroupName "TestRG1" -Location "EastUS" -IpConfigurations $gwipconfig -GatewayType "Vpn" -VpnType "RouteBased" -GatewaySku VpnGw2 -VpnGatewayGeneration "Generation2"
強制トンネリングの構成 - 既定のサイト
仮想ネットワーク ゲートウェイに既定のサイトを割り当てることで、強制トンネリングを構成します。 既定のサイトを指定しない場合、インターネット トラフィックは VPN ゲートウェイを介して強制されるのではなく、すべてのサブネットに対してインターネットに直接走査されます (既定)。
ゲートウェイの既定のサイトを割り当てるには、 -GatewayDefaultSite パラメーターを使用します。 これを正しく割り当てるようにしてください。
最初に、既定のサイト (この場合は DefaultSiteHQ) の仮想ネットワーク ゲートウェイ情報とローカル ネットワーク ゲートウェイを指定する変数を宣言します。
$LocalGateway = Get-AzLocalNetworkGateway -Name "DefaultSiteHQ" -ResourceGroupName "TestRG1" $VirtualGateway = Get-AzVirtualNetworkGateway -Name "VNet1GW" -ResourceGroupName "TestRG1"
次に、 Set-AzVirtualNetworkGatewayDefaultSite を使用して、仮想ネットワーク ゲートウェイの既定のサイトを設定します。
Set-AzVirtualNetworkGatewayDefaultSite -GatewayDefaultSite $LocalGateway -VirtualNetworkGateway $VirtualGateway
この時点で、すべてのインターネット接続トラフィックが DefaultSiteHQ に強制トンネリングされるように構成されるようになりました。 オンプレミス VPN デバイスを、トラフィック セレクターとして 0.0.0.0/0 を使用して構成する必要があります。
- 強制トンネリングの構成だけを行い、特定のサブネットに対してインターネット トラフィックをインターネットに直接ルーティングしたくない場合は、この記事の「接続の確立」セクションまでスキップして接続を作成できます。
- 特定のサブネットでインターネット接続トラフィックをインターネットに直接送信する場合は、次のセクションに進んでカスタム UDR を構成し、ルートを割り当てます。
特定のサブネットのインターネットにバインドされたトラフィックをルーティングする
オプションとして、インターネットに向かうトラフィックを (オンプレミス ネットワークではなく) 特定のサブネットのインターネットに直接送信する場合は、次の手順を使用します。 これらの手順は、既定のサイトを指定して構成された強制トンネリング、または BGP 経由で構成された強制トンネリングに適用されます。
ルート テーブルとルートを作成する
インターネット接続トラフィックをインターネットに直接送信することを指定するには、必要なルート テーブルとルートを作成します。 後で、フロントエンド サブネットにルート テーブルを割り当てます。
New-AzRouteTable を使用するルート テーブルを作成します。
$routeTable1 = New-AzRouteTable ` -Name 'RouteTable1' ` -ResourceGroupName "TestRG1" ` -location "EastUS"
GetAzRouteTable、Add-AzRouteConfig、Set-AzRouteConfig の各コマンドレットを使用するルートを作成します。 RouteTable1 でネクスト ホップの種類 "Internet" のルートを作成します。 このルートは、後でフロントエンド サブネットに割り当てられます。
Get-AzRouteTable ` -ResourceGroupName "TestRG1" ` -Name "RouteTable1" ` | Add-AzRouteConfig ` -Name "ToInternet" ` -AddressPrefix 0.0.0.0/0 ` -NextHopType "Internet" ` | Set-AzRouteTable
ルートを割り当てる
このセクションでは、PowerShell コマンド (GetAzRouteTable、Set-AzRouteConfig、Set-AzVirtualNetwork) を使用するフロントエンド サブネットにルート テーブルとルートを割り当てます。
ネクスト ホップ インターネットに 0.0.0.0/0 を指定するルート "ToInternet" を使用して、フロントエンド サブネットを RouteTable1 に割り当てます。
$vnet = Get-AzVirtualNetwork -Name "VNet1" -ResourceGroupName "TestRG1" $routeTable1 = Get-AzRouteTable ` -ResourceGroupName "TestRG1" ` -Name "RouteTable1" Set-AzVirtualNetworkSubnetConfig ` -VirtualNetwork $vnet ` -Name 'Frontend' ` -AddressPrefix 10.1.0.0/24 ` -RouteTable $routeTable1 | ` Set-AzVirtualNetwork
VPN サイト間接続を確立する
New-AzVirtualNetworkGatewayConnection を使用して、サイト間接続を確立します。
変数を宣言します。
$gateway = Get-AzVirtualNetworkGateway -Name "VNet1GW" -ResourceGroupName "TestRG1" $lng1 = Get-AzLocalNetworkGateway -Name "DefaultSiteHQ" -ResourceGroupName "TestRG1" $lng2 = Get-AzLocalNetworkGateway -Name "Branch1" -ResourceGroupName "TestRG1" $lng3 = Get-AzLocalNetworkGateway -Name "Branch2" -ResourceGroupName "TestRG1" $lng4 = Get-AzLocalNetworkGateway -Name "Branch3" -ResourceGroupName "TestRG1"
接続を作成します。
New-AzVirtualNetworkGatewayConnection -Name "Connection1" -ResourceGroupName "TestRG1" -Location "EastUS" -VirtualNetworkGateway1 $gateway -LocalNetworkGateway2 $lng1 -ConnectionType IPsec -SharedKey "preSharedKey" New-AzVirtualNetworkGatewayConnection -Name "Connection2" -ResourceGroupName "TestRG1" -Location "EastUS" -VirtualNetworkGateway1 $gateway -LocalNetworkGateway2 $lng2 -ConnectionType IPsec -SharedKey "preSharedKey" New-AzVirtualNetworkGatewayConnection -Name "Connection3" -ResourceGroupName "TestRG1" -Location "EastUS" -VirtualNetworkGateway1 $gateway -LocalNetworkGateway2 $lng3 -ConnectionType IPsec -SharedKey "preSharedKey" New-AzVirtualNetworkGatewayConnection -Name "Connection4" -ResourceGroupName "TestRG1" -Location "EastUS" -VirtualNetworkGateway1 $gateway -LocalNetworkGateway2 $lng4 -ConnectionType IPsec -SharedKey "preSharedKey"
接続を表示するには、次の例を使用します。 必要な値を変更して、表示する接続を指定します。
Get-AzVirtualNetworkGatewayConnection -Name "Connection1" -ResourceGroupName "TestRG1"
次のステップ
VPN Gateway の詳細については、「VPN Gateway のよくあるご質問」をご覧ください。