PowerShell を使用して Azure VPN Gateway で BGP を構成する方法How to configure BGP on Azure VPN Gateways using PowerShell

この記事では、Resource Manager デプロイ モデルと PowerShell を使用して、クロスプレミスのサイト間 (S2S) VPN 接続および VNet 間接続上で BGP を有効にする手順について説明します。This article walks you through the steps to enable BGP on a cross-premises Site-to-Site (S2S) VPN connection and a VNet-to-VNet connection using the Resource Manager deployment model and PowerShell.

BGP についてAbout BGP

BGP は、2 つ以上のネットワーク間でルーティングと到達可能性の情報を交換するためにインターネット上で広く使用されている標準のルーティング プロトコルです。BGP is the standard routing protocol commonly used in the Internet to exchange routing and reachability information between two or more networks. Azure VPN ゲートウェイとオンプレミスの VPN デバイス (BGP ピアまたは BGP 近隣ノードと呼ばれる) が BGP を使用して "ルート" を交換します。これによって、関連するゲートウェイまたはルーターの可用性と、BGP のプレフィックスが到達できる可能性に関する情報が両方のゲートウェイに伝達されます。BGP enables the Azure VPN Gateways and your on-premises VPN devices, called BGP peers or neighbors, to exchange "routes" that will inform both gateways on the availability and reachability for those prefixes to go through the gateways or routers involved. また、BGP では、BGP ゲートウェイが特定の BGP ピアから学習したルートを他のすべての BGP ピアに伝達することで、複数のネットワークでトランジット ルーティングを行うこともできます。BGP can also enable transit routing among multiple networks by propagating routes a BGP gateway learns from one BGP peer to all other BGP peers.

BGP の利点の詳しい説明と、BGP を使用する場合の技術面の要件および考慮事項の説明については、「Azure VPN ゲートウェイを使用した BGP の概要」をご覧ください。See Overview of BGP with Azure VPN Gateways for more discussion on benefits of BGP and to understand the technical requirements and considerations of using BGP.

Azure VPN ゲートウェイでの BGP の使用Getting started with BGP on Azure VPN gateways

この記事では、以下のタスクの手順を説明します。This article walks you through the steps to do the following tasks:

各パートの手順は、ネットワーク接続で BGP を有効にするための基本的な構成要素を形成します。Each part of the instructions forms a basic building block for enabling BGP in your network connectivity. 3 つのパートをすべて完了すると、次の図のようなトポロジが構築されます。If you complete all three parts, you build the topology as shown in the following diagram:

BGP topology

各部分を組み合わせると、ニーズに合わせて、より複雑でマルチホップの通過ネットワークを構築することができます。You can combine parts together to build a more complex, multi-hop, transit network that meets your needs.

パート 1 - Azure VPN ゲートウェイで BGP を構成するPart 1 - Configure BGP on the Azure VPN Gateway

構成手順では、次の図に示すように、Azure VPN ゲートウェイの BGP パラメーターを設定します。The configuration steps set up the BGP parameters of the Azure VPN gateway as shown in the following diagram:

BGP Gateway

開始する前にBefore you begin

手順 1 - VNet1 を作成して構成するStep 1 - Create and configure VNet1

1.変数を宣言する1. Declare your variables

この練習では、最初に変数を宣言します。For this exercise, we start by declaring our variables. 以下の例では、この演習の値を使って変数を宣言します。The following example declares the variables using the values for this exercise. 運用環境の場合、実際の値を使用します。Be sure to replace the values with your own when configuring for production. この手順を通して実行し、この種の構成になれたら、これらの変数を利用できます。You can use these variables if you are running through the steps to become familiar with this type of configuration. 変数を変更し、コピーし、PowerShell コンソールに貼り付けます。Modify the variables, and then copy and paste into your PowerShell console.

$Sub1 = "Replace_With_Your_Subscription_Name"
$RG1 = "TestBGPRG1"
$Location1 = "East US"
$VNetName1 = "TestVNet1"
$FESubName1 = "FrontEnd"
$BESubName1 = "Backend"
$GWSubName1 = "GatewaySubnet"
$VNetPrefix11 = "10.11.0.0/16"
$VNetPrefix12 = "10.12.0.0/16"
$FESubPrefix1 = "10.11.0.0/24"
$BESubPrefix1 = "10.12.0.0/24"
$GWSubPrefix1 = "10.12.255.0/27"
$VNet1ASN = 65010
$DNS1 = "8.8.8.8"
$GWName1 = "VNet1GW"
$GWIPName1 = "VNet1GWIP"
$GWIPconfName1 = "gwipconf1"
$Connection12 = "VNet1toVNet2"
$Connection15 = "VNet1toSite5"

2.サブスクリプションに接続して新しいリソース グループを作成する2. Connect to your subscription and create a new resource group

Resource Manager コマンドレットを使用する場合は、必ず PowerShell モードに切り替えてください。To use the Resource Manager cmdlets, Make sure you switch to PowerShell mode. 詳細については、「 リソース マネージャーでの Windows PowerShell の使用」を参照してください。For more information, see Using Windows PowerShell with Resource Manager.

PowerShell コンソールを開き、アカウントに接続します。Open your PowerShell console and connect to your account. 接続するには、次のサンプルを参照してください。Use the following sample to help you connect:

Connect-AzAccount
Select-AzSubscription -SubscriptionName $Sub1
New-AzResourceGroup -Name $RG1 -Location $Location1

3.TestVNet1 を作成する3. Create TestVNet1

以下の例では、TestVNet1 という名前の仮想ネットワークと 3 つのサブネットを作成します。サブネットの名前は GatewaySubnet、FrontEnd、Backend です。The following sample creates a virtual network named TestVNet1 and three subnets, one called GatewaySubnet, one called FrontEnd, and one called Backend. 値を代入するときは、ゲートウェイの名前を必ず GatewaySubnet にすることが重要です。When substituting values, it's important that you always name your gateway subnet specifically GatewaySubnet. 別の名前にすると、ゲートウェイの作成は失敗します。If you name it something else, your gateway creation fails.

$fesub1 = New-AzVirtualNetworkSubnetConfig -Name $FESubName1 -AddressPrefix $FESubPrefix1
$besub1 = New-AzVirtualNetworkSubnetConfig -Name $BESubName1 -AddressPrefix $BESubPrefix1
$gwsub1 = New-AzVirtualNetworkSubnetConfig -Name $GWSubName1 -AddressPrefix $GWSubPrefix1

New-AzVirtualNetwork -Name $VNetName1 -ResourceGroupName $RG1 -Location $Location1 -AddressPrefix $VNetPrefix11,$VNetPrefix12 -Subnet $fesub1,$besub1,$gwsub1

手順 2 - BGP パラメーターを指定して TestVNet1 の VPN ゲートウェイを作成するStep 2 - Create the VPN Gateway for TestVNet1 with BGP parameters

1.IP とサブネットの構成を作成する1. Create the IP and subnet configurations

VNet 用に作成するゲートウェイに割り当てるパブリック IP アドレスを要求します。Request a public IP address to be allocated to the gateway you will create for your VNet. 必要なサブネットと IP の構成も定義します。You'll also define the required subnet and IP configurations.

$gwpip1 = New-AzPublicIpAddress -Name $GWIPName1 -ResourceGroupName $RG1 -Location $Location1 -AllocationMethod Dynamic

$vnet1 = Get-AzVirtualNetwork -Name $VNetName1 -ResourceGroupName $RG1
$subnet1 = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet1
$gwipconf1 = New-AzVirtualNetworkGatewayIpConfig -Name $GWIPconfName1 -Subnet $subnet1 -PublicIpAddress $gwpip1

2.AS 番号で VPN ゲートウェイを作成する2. Create the VPN gateway with the AS number

TestVNet1 用の仮想ネットワーク ゲートウェイを作成します。Create the virtual network gateway for TestVNet1. BGP にはルート ベースの VPN ゲートウェイのほか、TestVNet1 の ASN (AS 番号) を設定するための追加のパラメーター -Asn も必要です。BGP requires a Route-Based VPN gateway, and also the addition parameter, -Asn, to set the ASN (AS Number) for TestVNet1. ASN パラメーターを設定しない場合、ASN 65515 が割り当てられます。If you do not set the ASN parameter, ASN 65515 is assigned. ゲートウェイの作成には時間がかかります (完了に 30 分以上必要とします)。Creating a gateway can take a while (30 minutes or more to complete).

New-AzVirtualNetworkGateway -Name $GWName1 -ResourceGroupName $RG1 -Location $Location1 -IpConfigurations $gwipconf1 -GatewayType Vpn -VpnType RouteBased -GatewaySku VpnGw1 -Asn $VNet1ASN

3.Azure BGP ピア IP アドレスを取得する3. Obtain the Azure BGP Peer IP address

ゲートウェイが作成されたら、Azure VPN ゲートウェイの BGP ピア IP アドレスを取得する必要があります。Once the gateway is created, you need to obtain the BGP Peer IP address on the Azure VPN Gateway. オンプレミス VPN デバイスの BGP ピアとして Azure VPN ゲートウェイを構成するには、このアドレスが必要です。This address is needed to configure the Azure VPN Gateway as a BGP Peer for your on-premises VPN devices.

$vnet1gw = Get-AzVirtualNetworkGateway -Name $GWName1 -ResourceGroupName $RG1
$vnet1gw.BgpSettingsText

最後のコマンドは、Azure VPN ゲートウェイの対応する BGP 構成を示します。次に、例を示します。The last command shows the corresponding BGP configurations on the Azure VPN Gateway; for example:

$vnet1gw.BgpSettingsText
{
    "Asn": 65010,
    "BgpPeeringAddress": "10.12.255.30",
    "PeerWeight": 0
}

ゲートウェイが作成されたら、このゲートウェイを使用して、BGP でクロスプレミス接続または VNet 間接続を確立することができます。Once the gateway is created, you can use this gateway to establish cross-premises connection or VNet-to-VNet connection with BGP. 以降のセクションでは、手順を確認して演習を完了します。The following sections walk through the steps to complete the exercise.

パート 2 - BGP を使用してクロスプレミス接続を確立するPart 2 - Establish a cross-premises connection with BGP

クロスプレミス接続を確立するには、オンプレミス VPN デバイスを表すローカル ネットワーク ゲートウェイと、VPN ゲートウェイをローカル ネットワーク ゲートウェイにつなげる接続を作成する必要があります。To establish a cross-premises connection, you need to create a Local Network Gateway to represent your on-premises VPN device, and a Connection to connect the VPN gateway with the local network gateway. これらの手順を説明する記事はいくつかありますが、この記事では、BGP 構成パラメーターを指定するために必要な追加のプロパティについても取り上げます。While there are articles that walk you through these steps, this article contains the additional properties required to specify the BGP configuration parameters.

BGP for Cross-Premises

次に進む前に、この演習の パート 1 を完了していることを確認してください。Before proceeding, make sure you have completed Part 1 of this exercise.

手順 1 - ローカル ネットワーク ゲートウェイを作成して構成するStep 1 - Create and configure the local network gateway

1.変数を宣言する1. Declare your variables

この演習では、引き続き、図に示されている構成を作成します。This exercise continues to build the configuration shown in the diagram. 値は実際の構成で使用する値に置換します。Be sure to replace the values with the ones that you want to use for your configuration.

$RG5 = "TestBGPRG5"
$Location5 = "East US 2"
$LNGName5 = "Site5"
$LNGPrefix50 = "10.52.255.254/32"
$LNGIP5 = "Your_VPN_Device_IP"
$LNGASN5 = 65050
$BGPPeerIP5 = "10.52.255.254"

ローカル ネットワーク ゲートウェイのパラメーターに関する注意点がいくつかあります。A couple of things to note regarding the local network gateway parameters:

  • ローカル ネットワーク ゲートウェイは、VPN ゲートウェイと同じ場所またはリソース グループに配置することも、別の場所またはリソース グループに配置することもできます。The local network gateway can be in the same or different location and resource group as the VPN gateway. この例では、別の場所の別のリソース グループに配置します。This example shows them in different resource groups in different locations.
  • ローカル ネットワーク ゲートウェイ用に宣言する必要があるプレフィックスは、VPN デバイス上の BGP ピア IP アドレスのホスト アドレスです。The prefix you need to declare for the local network gateway is the host address of your BGP Peer IP address on your VPN device. この場合は、"10.52.255.254/32" の /32 プレフィックスです。In this case, it's a /32 prefix of "10.52.255.254/32".
  • 既に説明したように、オンプレミス ネットワークと Azure VNet では、異なる BGP ASN を使用する必要があります。As a reminder, you must use different BGP ASNs between your on-premises networks and Azure VNet. これらが同じ場合、オンプレミス VPN デバイスが既に ASN を使用して他の BGP 近隣ノードとピアリングしているのであれば、VNet ASN を変更する必要があります。If they are the same, you need to change your VNet ASN if your on-premises VPN device already uses the ASN to peer with other BGP neighbors.

続行する前に、サブスクリプション 1 に接続されていることを確認してください。Before you continue, make sure you are still connected to Subscription 1.

2.Site5 用のローカル ネットワーク ゲートウェイを作成する2. Create the local network gateway for Site5

ローカル ネットワーク ゲートウェイを作成する前に、リソース グループが作成されていない場合は、必ず作成してください。Be sure to create the resource group if it is not created, before you create the local network gateway. また、ローカル ネットワーク ゲートウェイ用の 2 つの追加パラメーターであるAsn と BgpPeerAddress にも注意してください。Notice the two additional parameters for the local network gateway: Asn and BgpPeerAddress.

New-AzResourceGroup -Name $RG5 -Location $Location5

New-AzLocalNetworkGateway -Name $LNGName5 -ResourceGroupName $RG5 -Location $Location5 -GatewayIpAddress $LNGIP5 -AddressPrefix $LNGPrefix50 -Asn $LNGASN5 -BgpPeeringAddress $BGPPeerIP5

手順 2 - VNet ゲートウェイとローカル ネットワーク ゲートウェイを接続するStep 2 - Connect the VNet gateway and local network gateway

1.2 つのゲートウェイを取得する1. Get the two gateways

$vnet1gw = Get-AzVirtualNetworkGateway -Name $GWName1  -ResourceGroupName $RG1
$lng5gw  = Get-AzLocalNetworkGateway -Name $LNGName5 -ResourceGroupName $RG5

2.TestVNet1 から Site5 への接続を作成する2. Create the TestVNet1 to Site5 connection

この手順では、TestVNet1 から Site5 への接続を作成します。In this step, you create the connection from TestVNet1 to Site5. この接続の BGP を有効にするために、"-EnableBGP $True" を指定する必要があります。You must specify "-EnableBGP $True" to enable BGP for this connection. 既に説明したように、同じ Azure VPN ゲートウェイで BGP 接続と BGP 以外の接続の両方を混在させることはできません。As discussed earlier, it is possible to have both BGP and non-BGP connections for the same Azure VPN Gateway. 接続プロパティで BGP を有効にしない限り、両方のゲートウェイで BGP パラメーターが既に構成されていても、Azure はこの接続の BGP を有効にしません。Unless BGP is enabled in the connection property, Azure will not enable BGP for this connection even though BGP parameters are already configured on both gateways.

New-AzVirtualNetworkGatewayConnection -Name $Connection15 -ResourceGroupName $RG1 -VirtualNetworkGateway1 $vnet1gw -LocalNetworkGateway2 $lng5gw -Location $Location1 -ConnectionType IPsec -SharedKey 'AzureA1b2C3' -EnableBGP $True

次の例では、この演習用のオンプレミス VPN デバイスの BGP 構成セクションに入力するパラメーターの一覧を表示します。The following example lists the parameters you enter into the BGP configuration section on your on-premises VPN device for this exercise:


- Site5 ASN            : 65050
- Site5 BGP IP         : 10.52.255.254
- Prefixes to announce : (for example) 10.51.0.0/16 and 10.52.0.0/16
- Azure VNet ASN       : 65010
- Azure VNet BGP IP    : 10.12.255.30
- Static route         : Add a route for 10.12.255.30/32, with nexthop being the VPN tunnel interface on your device
- eBGP Multihop        : Ensure the "multihop" option for eBGP is enabled on your device if needed

接続は数分後に確立されます。IPsec 接続が確立されると、BGP ピアリング セッションが開始されます。The connection is established after a few minutes, and the BGP peering session starts once the IPsec connection is established.

パート 3 - BGP を使用して VNet 間接続を確立するPart 3 - Establish a VNet-to-VNet connection with BGP

このセクションでは、次の図に示すように、BGP を使用して VNet 間接続を追加します。This section adds a VNet-to-VNet connection with BGP, as shown in the following diagram:

VNet 間接続を示す図。

以下の指示は、前の手順からの続きになります。The following instructions continue from the previous steps. BGP で TestVNet1 と VPN ゲートウェイを作成して構成するには、 パート 1 を完了している必要があります。You must complete Part I to create and configure TestVNet1 and the VPN Gateway with BGP.

手順 1 - TestVNet2 と VPN ゲートウェイを作成するStep 1 - Create TestVNet2 and the VPN gateway

新しい仮想ネットワークである TestVNet2 の IP アドレス空間がどの VNet 範囲とも重ならないようにすることが重要です。It is important to make sure that the IP address space of the new virtual network, TestVNet2, does not overlap with any of your VNet ranges.

この例では、仮想ネットワークは同じサブスクリプションに属しています。In this example, the virtual networks belong to the same subscription. 異なるサブスクリプション間に VNet 間の接続を設定できます。You can set up VNet-to-VNet connections between different subscriptions. 詳細については、「VNet 間の接続の構成」を参照してください。For more information, see Configure a VNet-to-VNet connection. 接続の作成時に BGP を有効にするには、必ず "-EnableBgp $True" を追加してください。Make sure you add the "-EnableBgp $True" when creating the connections to enable BGP.

1.変数を宣言する1. Declare your variables

値は実際の構成で使用する値に置換します。Be sure to replace the values with the ones that you want to use for your configuration.

$RG2 = "TestBGPRG2"
$Location2 = "West US"
$VNetName2 = "TestVNet2"
$FESubName2 = "FrontEnd"
$BESubName2 = "Backend"
$GWSubName2 = "GatewaySubnet"
$VNetPrefix21 = "10.21.0.0/16"
$VNetPrefix22 = "10.22.0.0/16"
$FESubPrefix2 = "10.21.0.0/24"
$BESubPrefix2 = "10.22.0.0/24"
$GWSubPrefix2 = "10.22.255.0/27"
$VNet2ASN = 65020
$DNS2 = "8.8.8.8"
$GWName2 = "VNet2GW"
$GWIPName2 = "VNet2GWIP"
$GWIPconfName2 = "gwipconf2"
$Connection21 = "VNet2toVNet1"
$Connection12 = "VNet1toVNet2"

2.新しいリソース グループに TestVNet2 を作成する2. Create TestVNet2 in the new resource group

New-AzResourceGroup -Name $RG2 -Location $Location2

$fesub2 = New-AzVirtualNetworkSubnetConfig -Name $FESubName2 -AddressPrefix $FESubPrefix2
$besub2 = New-AzVirtualNetworkSubnetConfig -Name $BESubName2 -AddressPrefix $BESubPrefix2
$gwsub2 = New-AzVirtualNetworkSubnetConfig -Name $GWSubName2 -AddressPrefix $GWSubPrefix2

New-AzVirtualNetwork -Name $VNetName2 -ResourceGroupName $RG2 -Location $Location2 -AddressPrefix $VNetPrefix21,$VNetPrefix22 -Subnet $fesub2,$besub2,$gwsub2

3.BGP パラメーターを指定して TestVNet2 の VPN ゲートウェイを作成する3. Create the VPN gateway for TestVNet2 with BGP parameters

VNet 用に作成するゲートウェイに割り当てるパブリック IP アドレスを要求し、必要なサブネットと IP 構成を定義します。Request a public IP address to be allocated to the gateway you will create for your VNet and define the required subnet and IP configurations.

$gwpip2    = New-AzPublicIpAddress -Name $GWIPName2 -ResourceGroupName $RG2 -Location $Location2 -AllocationMethod Dynamic

$vnet2     = Get-AzVirtualNetwork -Name $VNetName2 -ResourceGroupName $RG2
$subnet2   = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet2
$gwipconf2 = New-AzVirtualNetworkGatewayIpConfig -Name $GWIPconfName2 -Subnet $subnet2 -PublicIpAddress $gwpip2

AS 番号で VPN ゲートウェイを作成します。Create the VPN gateway with the AS number. Azure VPN ゲートウェイでは既定の ASN をオーバーライドする必要があります。You must override the default ASN on your Azure VPN gateways. BGP とトランジット ルーティングを有効にするために、接続された VNet の ASN はそれぞれ異なっている必要があります。The ASNs for the connected VNets must be different to enable BGP and transit routing.

New-AzVirtualNetworkGateway -Name $GWName2 -ResourceGroupName $RG2 -Location $Location2 -IpConfigurations $gwipconf2 -GatewayType Vpn -VpnType RouteBased -GatewaySku VpnGw1 -Asn $VNet2ASN

手順 2 - TestVNet1 と TestVNet2 のゲートウェイを接続するStep 2 - Connect the TestVNet1 and TestVNet2 gateways

この例では、両方のゲートウェイが同じサブスクリプションにあります。In this example, both gateways are in the same subscription. この手順は、同じ PowerShell セッションで実行できます。You can complete this step in the same PowerShell session.

1.両方のゲートウェイを取得する1. Get both gateways

ログインし、サブスクリプション 1 に接続します。Make sure you log in and connect to Subscription 1.

$vnet1gw = Get-AzVirtualNetworkGateway -Name $GWName1 -ResourceGroupName $RG1
$vnet2gw = Get-AzVirtualNetworkGateway -Name $GWName2 -ResourceGroupName $RG2

2.両方の接続を作成する2. Create both connections

この手順では、TestVNet1 から TestVNet2 への接続と、TestVNet2 から TestVNet1 への接続を作成します。In this step, you create the connection from TestVNet1 to TestVNet2, and the connection from TestVNet2 to TestVNet1.

New-AzVirtualNetworkGatewayConnection -Name $Connection12 -ResourceGroupName $RG1 -VirtualNetworkGateway1 $vnet1gw -VirtualNetworkGateway2 $vnet2gw -Location $Location1 -ConnectionType Vnet2Vnet -SharedKey 'AzureA1b2C3' -EnableBgp $True

New-AzVirtualNetworkGatewayConnection -Name $Connection21 -ResourceGroupName $RG2 -VirtualNetworkGateway1 $vnet2gw -VirtualNetworkGateway2 $vnet1gw -Location $Location2 -ConnectionType Vnet2Vnet -SharedKey 'AzureA1b2C3' -EnableBgp $True

重要

両方の接続で BGP を有効にしてください。Be sure to enable BGP for BOTH connections.

これらの手順を完了すると、数分後に接続が確立します。After completing these steps, the connection is established after a few minutes. BGP ピアリング セッションは、VNet 間の接続が完了すると有効になります。The BGP peering session is up once the VNet-to-VNet connection is completed.

この演習の 3 つのパートをすべて完了すると、次のようなネットワーク トポロジが確立されます。If you completed all three parts of this exercise, you have established the following network topology:

BGP for VNet-to-VNet

次のステップNext steps

接続が完成したら、仮想ネットワークに仮想マシンを追加することができます。Once your connection is complete, you can add virtual machines to your virtual networks. 手順については、 仮想マシンの作成 に関するページを参照してください。See Create a Virtual Machine for steps.