Guide pratique pour configurer le protocole BGP pour une passerelle VPN : PowerShell

Cet article vous aide à activer le protocole BGP sur les connexions VPN site à site (S2S) entre différents locaux et les connexions de réseau virtuel à réseau virtuel à l’aide d’Azure PowerShell. Si vous n’êtes pas familiarisé avec ce type de configuration, il vous sera peut-être plus facile d’utiliser la version portail Azure de cet article.

BGP est le protocole de routage standard couramment utilisé sur Internet pour échanger des informations de routage et d’accessibilité entre plusieurs réseaux. Il permet aux passerelles VPN et aux périphériques VPN locaux (appelés voisins ou homologues BGP) d’échanger des « itinéraires » informant les deux passerelles sur la disponibilité et l’accessibilité de ces préfixes à travers les passerelles et routeurs impliqués. Le protocole BGP assure également le routage de transit entre plusieurs réseaux en propageant les itinéraires qu’une passerelle BGP obtient d’un homologue BGP à tous les autres homologues BGP.

Pour plus d’informations sur les avantages du protocole BGP, et pour comprendre les exigences techniques et les considérations relatives à l’utilisation du protocole BGP, consultez À propos du protocole BGP et de la passerelle VPN Azure.

Prise en main

Chaque partie de cet article vous aide à constituer un bloc de construction pour activer le protocole BGP dans votre connectivité réseau. Si vous effectuez les trois parties (configurer le protocole BGP sur la passerelle, la connexion de site à site et la connexion de réseau virtuel à réseau virtuel), vous obtenez la topologie indiquée dans le diagramme 1. Vous pouvez les combiner pour créer un réseau de transit plus complexe, à plusieurs tronçons, qui répond à vos besoins.

Schéma 1

Diagramme montrant l’architecture et les paramètres réseau.

Activation du protocole BGP pour la passerelle VPN

Cette partie est obligatoire avant d’effectuer des étapes des autres sections de configuration. La procédure suivante permet de configurer les paramètres BGP de la passerelle VPN comme indiqué dans le diagramme 2.

Schéma 2 :

Diagramme montrant les paramètres de la passerelle de réseau virtuel.

Avant de commencer

Vous pouvez suivre la procédure de cet exercice à l’aide d’Azure Cloud Shell dans votre navigateur. Si vous souhaitez utiliser PowerShell directement sur votre ordinateur, installez les cmdlets PowerShell Azure Resource Manager. Pour plus d’informations sur l’installation des applets de commande PowerShell, consultez Installation et configuration d’Azure PowerShell.

Créer et configurer VNet1

1. Déclarer vos variables

Dans cet exercice, nous allons commencer par déclarer les variables. L’exemple suivant déclare les variables avec les valeurs de cet exercice. Vous pouvez utiliser les exemples de variables (à l’exception du nom de l’abonnement) si vous suivez toutes les étapes pour vous familiariser avec ce type de configuration. Modifiez les variables, puis copiez et collez-les dans votre console PowerShell. Veillez à les remplacer par vos valeurs lors de la configuration dans un contexte de production.

$Sub1 = "Replace_With_Your_Subscription_Name"
$RG1 = "TestRG1"
$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. Se connecter à votre abonnement et créer un groupe de ressources

Pour utiliser les applets de commande Resource Manager, passez au mode PowerShell. Pour plus d’informations, consultez la page Utilisation de Windows PowerShell avec Resource Manager.

Si vous utilisez Azure Cloud Shell, vous vous connectez automatiquement à votre compte. Si vous vous servez de PowerShell sur votre ordinateur, ouvrez votre console PowerShell et connectez-vous à votre compte. Utilisez l’exemple suivant pour faciliter votre connexion :

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

Ensuite, créez un groupe de ressources.

New-AzResourceGroup -Name $RG1 -Location $Location1

3. Créer TestVNet1

L’exemple suivant crée un réseau virtuel nommé TestVNet1 et trois sous-réseaux nommés GatewaySubnet, FrontEnd et Backend. Lorsque vous remplacez les valeurs, pensez à toujours nommer votre sous-réseau de passerelle « GatewaySubnet ». Si vous le nommez autrement, la création de votre passerelle échoue.

$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

Création de la passerelle VPN avec le protocole BGP activé

1. Créer les configurations IP et de sous-réseau

Demandez l’attribution d’une adresse IP publique à la passerelle que vous allez créer pour votre réseau virtuel. Vous allez également définir les configurations IP et sous-réseau requises.

$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. Créer la passerelle VPN avec le numéro AS

Créez la passerelle de réseau virtuel pour TestVNet1. Le protocole BGP a besoin d’une passerelle VPN en fonction de l’itinéraire ainsi que d’un paramètre supplémentaire, -Asn, pour définir l’ASN (numéro AS) de TestVNet1. Veillez à spécifier le paramètre -Asn. Si vous ne définissez pas le paramètre -Asn, ASN 65515 (qui ne fonctionne pas pour cette configuration) est attribué par défaut. La création d’une passerelle peut prendre un certain temps (45 minutes ou plus).

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

Une fois la passerelle créée, vous pouvez l’utiliser pour établir une connexion intersite ou de réseau virtuel à réseau virtuel avec BGP.

3 Récupération de l’adresse IP d’homologue BGP Azure

Une fois la passerelle créée, vous devez obtenir l’adresse IP d’homologue BGP sur la passerelle VPN. Cette adresse est nécessaire afin de configurer la passerelle VPN comme homologue BGP pour vos périphériques VPN locaux.

Si vous utilisez Cloud Shell, vous devrez peut-être rétablir vos variables dans le cas où la session expire lors de la création de votre passerelle.

Rétablissez les variables si nécessaire :

$RG1 = "TestRG1"
$GWName1 = "VNet1GW"

Exécutez la commande suivante et notez la valeur « BgpPeeringAddress » indiquée dans la sortie.

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

Exemple de sortie :

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

Si vous ne voyez pas la valeur BgpPeeringAddress apparaître sous la forme d’une adresse IP, cela signifie que votre passerelle est toujours en cours de configuration. Réessayez une fois la passerelle terminée.

Établir une connexion intersite avec BGP

Pour établir une connexion intersite, vous devez créer une passerelle de réseau local pour représenter votre appareil VPN local, et une connexion entre la passerelle VPN et la passerelle de réseau local, comme décrit dans Créer une connexion site à site. Les sections suivantes contiennent les propriétés requises pour spécifier les paramètres de configuration BGP (cf. diagramme 3).

Schéma 3

Diagramme montrant la configuration IPsec.

Avant de continuer, vérifiez que vous avez activé le protocole BGP pour la passerelle VPN dans la section précédente.

Étape 1 : créer et configurer la passerelle de réseau local

1. Déclarer vos variables

Cet exercice continue à générer la configuration représentée dans le diagramme. Veillez à remplacer les valeurs par celles que vous souhaitez utiliser pour votre configuration. Par exemple, il vous faut l’adresse IP de votre périphérique VPN. Dans cet exercice, vous pouvez utiliser une adresse IP valide si vous ne prévoyez pas de vous connecter à votre périphérique VPN pour l’instant. Vous pourrez remplacer cette adresse IP ultérieurement.

$RG5 = "TestRG5"
$Location5 = "West US"
$LNGName5 = "Site5"
$LNGPrefix50 = "10.51.255.254/32"
$LNGIP5 = "4.3.2.1"
$LNGASN5 = 65050
$BGPPeerIP5 = "10.51.255.254"

Quelques points à noter concernant les paramètres de la passerelle de réseau local :

  • La passerelle de réseau local peut se trouver dans les mêmes emplacement et groupe de ressources que la passerelle VPN ou dans un emplacement et un groupe de ressources différents. Cet exemple les montre dans différents groupes de ressources situés dans différents emplacements.
  • Le préfixe à déclarer pour la passerelle de réseau local est l’adresse IP hôte de votre homologue BGP sur votre appareil VPN. Dans ce cas, il s’agit d’un préfixe /32 de « 10.51.255.254/32 ».
  • À titre de rappel, vous devez utiliser différents ASN BGP entre vos réseaux locaux et le réseau virtuel Azure. S’ils sont identiques, vous devez modifier l’ASN de votre réseau virtuel dans le cas où votre périphérique VPN local utilise déjà cet ASN pour s’homologuer avec d’autres voisins BGP.

2. Créer la passerelle de réseau local pour le site 5

Créez le groupe de ressources avant la passerelle de réseau local.

New-AzResourceGroup -Name $RG5 -Location $Location5

Créez la passerelle réseau locale. Remarquez les deux paramètres supplémentaires pour la passerelle de réseau local : ASN et BgpPeerAddress.

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

Étape 2 : connecter la passerelle de réseau virtuel et la passerelle de réseau local

1. Obtenir les deux passerelles

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

2. Créer la connexion entre TestVNet1 et Site5

Dans cette étape, vous allez créer la connexion entre TestVNet1 et Site5. Vous devez spécifier « -EnableBGP $True » pour activer le BGP sur cette connexion. Comme nous l’avons vu, il est possible de faire cohabiter des connexions avec et sans protocole BGP sur la même passerelle VPN. À moins qu’il ne soit activé dans la propriété de connexion, Azure n’établit pas le protocole BGP sur cette connexion, et ce, même si les paramètres BGP sont déjà configurés sur les deux passerelles.

Redéclarez vos variables si nécessaire :

$Connection15 = "VNet1toSite5"
$Location1 = "East US"

Exécutez ensuite la commande suivante :

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

Configuration de l’appareil local

L’exemple ci-dessous répertorie les paramètres que vous devez saisir dans la section de configuration de BGP de votre périphérique VPN local pour cet exercice :

- Site5 ASN            : 65050
- Site5 BGP IP         : 10.51.255.254
- Prefixes to announce : (for example) 10.51.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

La connexion est établie après quelques minutes, et la session de peering BGP débute une fois la connexion IPsec établie.

Établir une connexion de réseau virtuel à réseau virtuel avec BGP

Cette section ajoute une connexion de réseau virtuel à réseau virtuel avec le protocole BGP (cf. diagramme 4).

Schéma 4

Diagramme montrant la configuration réseau complète.

Ces instructions ci-dessous sont la suite des étapes précédentes. Vous devez suivre la procédure de la section Activation du protocole BGP pour la passerelle VPN pour pouvoir créer et configurer TestVNet1 et la passerelle VPN avec le protocole BGP.

Étape 1 : créer TestVNet2 et la passerelle VPN

Il est important de s’assurer que l’espace d’adressage IP du nouveau réseau virtuel, TestVNet2, ne se chevauche avec aucune de vos plages de réseau virtuel.

Dans cet exemple, les réseaux virtuels appartiennent au même abonnement. Vous pouvez configurer les connexions de réseau virtuel à réseau virtuel entre différents abonnements. Pour plus d'informations, voir Configurer une connexion de réseau virtuel à réseau virtuel. Veillez à ajouter l’argument « -EnableBgp $True » lors de la création de connexions pour activer BGP.

1. Déclarer vos variables

Veillez à remplacer les valeurs par celles que vous souhaitez utiliser pour votre configuration.

$RG2 = "TestRG2"
$Location2 = "East 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. Créer TestVNet2 dans le nouveau groupe de ressources

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. Créer la passerelle VPN de TestVNet2 avec les paramètres BGP

Demandez l’attribution d’une adresse IP publique à la passerelle que vous allez créer pour votre réseau virtuel et définissez les configurations de sous-réseau et d’adresse IP requises.

Déclarez vos variables.

$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

Créez la passerelle VPN avec le numéro AS. Vous devez remplacer la valeur par défaut de l’ASN sur vos passerelles VPN. Les ASN des réseaux virtuels connectés doivent être différents pour activer BGP et le routage de transit.

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

Étape 2 : connecter les passerelles TestVNet1 et TestVNet2

Dans cet exemple, les deux passerelles sont dans le même abonnement. Vous pouvez effectuer cette opération dans la même session PowerShell.

1. Accéder aux deux passerelles

Rétablissez les variables si nécessaire :

$GWName1 = "VNet1GW"
$GWName2 = "VNet2GW"
$RG1 = "TestRG1"
$RG2 = "TestRG2"
$Connection12 = "VNet1toVNet2"
$Connection21 = "VNet2toVNet1"
$Location1 = "East US"
$Location2 = "East US"

Récupérez les deux passerelles.

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

2. Créer les deux connexions

Cette étape, vous permet créer la connexion de TestVNet1 à TestVNet2 et de TestVNet2 à TestVNet1.

Établissez la connexion de TestVNet1 à TestVNet2.

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

Établissez la connexion de TestVNet2 à TestVNet1.

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

Important

Veillez à activer BGP pour les deux connexions.

Une fois ces étapes effectuées, la connexion est établie après quelques minutes. La session de peering BGP démarre une fois la connexion de réseau virtuel à réseau virtuel établie.

Si vous avez effectué les trois parties de cet exercice, vous avez établi la topologie de réseau suivante :

Schéma 4

Schéma montrant le réseau complet

Pour plus de contexte, consultez le Diagramme 4. Si le protocole BGP était désactivé entre les réseaux TestVNet2 et TestVNet1, le réseau TestVNet2 n’apprendrait pas les itinéraires pour le réseau local (site 5). Il ne pourrait donc pas communiquer avec le site 5. Une fois que vous activez le protocole BGP (cf. diagramme 4), les trois réseaux sont en mesure de communiquer via les connexions IPsec de site à site et de réseau virtuel à réseau virtuel.

Étapes suivantes

Pour plus d’informations sur le protocole BGP, consultez À propos du protocole BGP et de la passerelle VPN.