Configurer un réseau VPN de site à site via le peering Microsoft ExpressRouteConfigure a site-to-site VPN over ExpressRoute Microsoft peering

Cet article a été conçu pour vous aider à configurer une connectivité chiffrée et sécurisée entre votre réseau local et vos réseaux virtuels Azure via une connexion privée ExpressRoute.This article helps you configure secure encrypted connectivity between your on-premises network and your Azure virtual networks (VNets) over an ExpressRoute private connection. Vous pouvez utiliser le peering Microsoft pour établir un tunnel VPN IPsec/IKE de site à site entre les réseaux locaux sélectionnés et les réseaux virtuels Azure.You can use Microsoft peering to establish a site-to-site IPsec/IKE VPN tunnel between your selected on-premises networks and Azure VNets. La configuration d’un tunnel sécurisé via ExpressRoute permet un échange de données garantissant confidentialité, authenticité et intégrité, notamment grâce à un système anti-relecture.Configuring a secure tunnel over ExpressRoute allows for data exchange with confidentiality, anti-replay, authenticity, and integrity.

Notes

Lorsque vous configurez un VPN de site à site via le peering Microsoft, la passerelle VPN et la sortie VPN vous sont facturées.When you set up site-to-site VPN over Microsoft peering, you are charged for the VPN gateway and VPN egress. Pour plus d’informations, consultez Tarification Passerelle VPN.For more information, see VPN Gateway pricing.

Les étapes et les exemples de cet article utilisent les modules Azure PowerShell Az.The steps and examples in this article use Azure PowerShell Az modules. Pour installer les modules Az en local sur un ordinateur, voir Installer Azure PowerShell.To install the Az modules locally on your computer, see Install Azure PowerShell. Pour plus d’informations sur le module Az, voir Présentation du nouveau module Azure PowerShell Az.To learn more about the new Az module, see Introducing the new Azure PowerShell Az module. Les cmdlets PowerShell sont fréquemment mises à jour.PowerShell cmdlets are updated frequently. Si vous n’exécutez pas leur dernière version, les valeurs spécifiées dans les instructions peuvent échouer.If you are not running the latest version, the values specified in the instructions may fail. Pour rechercher les versions de PowerShell installées sur votre système, utilisez la cmdlet Get-Module -ListAvailable Az.To find the installed versions of PowerShell on your system, use the Get-Module -ListAvailable Az cmdlet.

ArchitectureArchitecture

présentation de la connectivité

Pour la haute disponibilité et la redondance, vous pouvez configurer plusieurs tunnels sur les deux paires MSEE-PE d’un circuit ExpressRoute, puis activer l’équilibrage de charge entre ces tunnels.For high availability and redundancy, you can configure multiple tunnels over the two MSEE-PE pairs of a ExpressRoute circuit and enable load balancing between the tunnels.

options de haute disponibilité

Les tunnels VPN qui utilisent le peering Microsoft peuvent être terminés à l’aide de la passerelle VPN ou de l’une des appliances virtuelles réseau disponibles sur la Place de marché Azure.VPN tunnels over Microsoft peering can be terminated either using VPN gateway, or using an appropriate Network Virtual Appliance (NVA) available through Azure Marketplace. Vous pouvez échanger les itinéraires statiquement ou dynamiquement via les tunnels chiffrés, sans exposer l’échange d’itinéraires au peering Microsoft sous-jacent.You can exchange routes statically or dynamically over the encrypted tunnels without exposing the route exchange to the underlying Microsoft peering. Dans les exemples de cet article, le protocole BGP (qui est différent de la session BGP utilisée pour créer le peering Microsoft) est utilisé pour échanger dynamiquement des préfixes via les tunnels chiffrés.In the examples in this article, BGP (different from the BGP session used to create the Microsoft peering) is used to dynamically exchange prefixes over the encrypted tunnels.

Important

Au niveau local, le peering Microsoft est généralement terminé sur le réseau DMZ, et le peering privé dans la zone réseau principale.For the on-premises side, typically Microsoft peering is terminated on the DMZ and private peering is terminated on the core network zone. Ces deux zones sont généralement séparées par un pare-feu.The two zones would be segregated using firewalls. Si vous configurez le peering Microsoft exclusivement pour l’établissement de tunnels sécurisés via ExpressRoute, pensez à filtrer uniquement les adresses IP publiques d’intérêt qui sont publiées via le peering Microsoft.If you are configuring Microsoft peering exclusively for enabling secure tunneling over ExpressRoute, remember to filter through only the public IPs of interest that are getting advertised via Microsoft peering.

Flux de travailWorkflow

  1. Configurez le peering Microsoft pour votre circuit ExpressRoute.Configure Microsoft peering for your ExpressRoute circuit.
  2. Publiez les préfixes publics régionaux Azure sélectionnés sur votre réseau local via le peering Microsoft.Advertise selected Azure regional public prefixes to your on-premises network via Microsoft peering.
  3. Configurer une passerelle VPN et établir des tunnels IPsecConfigure a VPN gateway and establish IPsec tunnels
  4. Configurez des appareils VPN locaux.Configure the on-premises VPN device.
  5. Créez la connexion IPsec/IKE de site à site.Create the site-to-site IPsec/IKE connection.
  6. (Facultatif) Configurez les pare-feu ou le filtrage sur des appareils VPN locaux.(Optional) Configure firewalls/filtering on the on-premises VPN device.
  7. Testez et validez la communication IPsec via le circuit ExpressRoute.Test and validate the IPsec communication over the ExpressRoute circuit.

1. Configurer le peering Microsoft1. Configure Microsoft peering

Pour configurer une connexion VPN de site à site via ExpressRoute, vous devez utiliser le peering Microsoft ExpressRoute.To configure a site-to-site VPN connection over ExpressRoute, you must leverage ExpressRoute Microsoft peering.

Une fois que vous avez configuré votre circuit et le peering Microsoft, vous pouvez facilement l’afficher via la page Vue d’ensemble du portail Azure.Once you have configured your circuit and Microsoft peering, you can easily view it using the Overview page in the Azure portal.

circuit

2. Configurer des filtres de routage2. Configure route filters

Un filtre de routage vous permet d’identifier les services que vous souhaitez utiliser via le peering Microsoft de votre circuit ExpressRoute.A route filter lets you identify services you want to consume through your ExpressRoute circuit's Microsoft peering. Il s’agit essentiellement de la liste verte de toutes les valeurs de la communauté BGP.It is essentially an allow list of all the BGP community values.

Filtre de routage

Dans cet exemple, le déploiement a lieu uniquement dans la région Azure USA Ouest 2.In this example, the deployment is only in the Azure West US 2 region. Une règle de filtre de routage est ajoutée pour permettre uniquement la publication des préfixes régionaux Azure USA Ouest 2, dont la valeur de communauté BGP est 12076:51026.A route filter rule is added to allow only the advertisement of Azure West US 2 regional prefixes, which has the BGP community value 12076:51026. Vous pouvez spécifier les préfixes régionaux que vous souhaitez autoriser en sélectionnant Gérer la règle.You specify the regional prefixes that you want to allow by selecting Manage rule.

Dans le filtre de routage, vous devez également choisir les circuits ExpressRoute auxquels s’applique le filtre.Within the route filter, you also need to choose the ExpressRoute circuits for which the route filter applies. Vous pouvez choisir les circuits ExpressRoute en sélectionnant Ajouter un circuit.You can choose the ExpressRoute circuits by selecting Add circuit. Dans la figure précédente, le filtre de routage est associé à l’exemple de circuit ExpressRoute.In the previous figure, the route filter is associated to the example ExpressRoute circuit.

2.1 Configurer le filtre de routage2.1 Configure the route filter

Configurez le filtre de routage.Configure a route filter. Pour connaître les étapes à suivre, consultez Configurer des filtres de routage pour le peering Microsoft.For steps, see Configure route filters for Microsoft peering.

2.2 Vérifier les itinéraires BGP2.2 Verify BGP routes

Une fois que vous avez créé le peering Microsoft sur votre circuit ExpressRoute et associé un filtre de routage au circuit, vous pouvez vérifier les itinéraires BGP envoyés par les MSEE sur les appareils PE qui sont appairés aux MSEE.Once you have successfully created Microsoft peering over your ExpressRoute circuit and associated a route filter with the circuit, you can verify the BGP routes received from MSEEs on the PE devices that are peering with the MSEEs. La commande de vérification varie selon le système d’exploitation de vos appareils PE.The verification command varies, depending on the operating system of your PE devices.

Exemples CiscoCisco examples

Cet exemple utilise une commande IOS-XE Cisco.This example uses a Cisco IOS-XE command. Dans cet exemple, une instance virtuelle de routage et de transfert est utilisée pour isoler le trafic de peering.In the example, a virtual routing and forwarding (VRF) instance is used to isolate the peering traffic.

show ip bgp vpnv4 vrf 10 summary

La sortie partielle ci-dessous montre que 68 préfixes ont été reçus du voisin *.243.229.34 avec l’ASN 12076 (MSEE) :The following partial output shows that 68 prefixes were received from the neighbor *.243.229.34 with the ASN 12076 (MSEE):

...

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
X.243.229.34    4        12076   17671   17650    25228    0    0 1w4d           68

Pour afficher la liste des préfixes reçus du voisin, utilisez l’exemple suivant :To see the list of prefixes received from the neighbor, use the following example:

sh ip bgp vpnv4 vrf 10 neighbors X.243.229.34 received-routes

Pour vérifier que vous recevez le bon jeu de préfixes, vous pouvez effectuer une vérification croisée.To confirm that you are receiving the correct set of prefixes, you can cross-verify. La sortie de commande Azure PowerShell suivante répertorie les préfixes publiés via le peering Microsoft pour chacun des services et chacune des régions Azure :The following Azure PowerShell command output lists the prefixes advertised via Microsoft peering for each of the services and for each of the Azure region:

Get-AzBgpServiceCommunity

3. Configurer la passerelle VPN et les tunnels IPsec3. Configure the VPN gateway and IPsec tunnels

Dans cette section, les tunnels VPN IPsec sont créés entre la passerelle VPN Azure et le périphérique VPN local.In this section, IPsec VPN tunnels are created between the Azure VPN gateway and the on-premises VPN device. Les exemples utilisent des périphériques VPN Cisco Cloud Service Router (CSR1000).The examples use Cisco Cloud Service Router (CSR1000) VPN devices.

Le diagramme suivant illustre les tunnels VPN IPsec établis entre le périphérique VPN local 1 et la paire d’instances de passerelles VPN Azure.The following diagram shows the IPsec VPN tunnels established between on-premises VPN device 1, and the Azure VPN gateway instance pair. Les deux tunnels VPN IPsec établis entre le périphérique VPN local 2 et la paire d’instances de passerelles VPN Azure ne sont pas illustrés dans ce diagramme et les détails de leur configuration ne sont pas fournis.The two IPsec VPN tunnels established between the on-premises VPN device 2 and the Azure VPN gateway instance pair isn't illustrated in the diagram, and the configuration details are not listed. Quoi qu’il en soit, les tunnels VPN supplémentaires améliorent la haute disponibilité.However, having additional VPN tunnels improves high availability.

Tunnels VPN

Sur la paire de tunnels IPsec, une session eBGP est établie pour échanger des itinéraires de réseau privé.Over the IPsec tunnel pair, an eBGP session is established to exchange private network routes. Le diagramme suivant illustre la session eBGP établie sur la paire de tunnels IPsec :The following diagram shows the eBGP session established over the IPsec tunnel pair:

Sessions eBGP sur la paire de tunnels

Le diagramme suivant montre un extrait de la vue d’ensemble de l’exemple de réseau :The following diagram shows the abstracted overview of the example network:

Exemple de réseau

À propos des exemples de modèles ARMAbout the Azure Resource Manager template examples

Dans les exemples, la fin de la passerelle VPN et la fin du tunnel IPsec sont configurées à l’aide d’un modèle ARM (Azure Resource Manager).In the examples, the VPN gateway and the IPsec tunnel terminations are configured using an Azure Resource Manager template. Si vous utilisez les modèles Resource Manager pour la première fois et ne connaissez pas ses principes fondamentaux, consultez Comprendre la structure et la syntaxe des modèles Azure Resource Manager.If you are new to using Resource Manager templates, or to understand the Resource Manager template basics, see Understand the structure and syntax of Azure Resource Manager templates. Le modèle de cette section crée un environnement Azure Greenfield (réseau virtuel).The template in this section creates a greenfield Azure environment (VNet). Toutefois, si vous disposez déjà d’un réseau virtuel existant, vous pouvez le référencer dans le modèle.However, if you have an existing VNet, you can reference it in the template. Si vous n’êtes pas familiarisé avec les configurations de site à site IPsec/IKE des passerelles VPN, consultez Créer une connexion de site à site.If you are not familiar with VPN gateway IPsec/IKE site-to-site configurations, see Create a site-to-site connection.

Notes

Vous n’avez pas besoin d’utiliser les modèles ARM (Azure Resource Manager) pour cette configuration.You do not need to use Azure Resource Manager templates in order to create this configuration. Vous pouvez créer cette configuration à l’aide du portail Azure ou de PowerShell.You can create this configuration using the Azure portal, or PowerShell.

3.1 Déclarer les variables3.1 Declare the variables

Dans cet exemple, les déclarations de variable sont relatives à l’exemple de réseau.In this example, the variable declarations correspond to the example network. Lorsque vous déclarez des variables, modifiez cette section en fonction de votre environnement.When declaring variables, modify this section to reflect your environment.

"variables": {
  "virtualNetworkName": "SecureVNet",       // Name of the Azure VNet
  "azureVNetAddressPrefix": "10.2.0.0/24",  // Address space assigned to the VNet
  "subnetName": "Tenant",                   // subnet name in which tenants exists
  "subnetPrefix": "10.2.0.0/25",            // address space of the tenant subnet
  "gatewaySubnetPrefix": "10.2.0.224/27",   // address space of the gateway subnet
  "localGatewayName": "localGW1",           // name of remote gateway (on-premises)
  "localGatewayIpAddress": "X.243.229.110", // public IP address of the on-premises VPN device
  "localAddressPrefix": [
    "172.16.0.1/32",                        // termination of IPsec tunnel-1 on-premises 
    "172.16.0.2/32"                         // termination of IPsec tunnel-2 on-premises 
  ],
  "gatewayPublicIPName1": "vpnGwVIP1",    // Public address name of the first VPN gateway instance
  "gatewayPublicIPName2": "vpnGwVIP2",    // Public address name of the second VPN gateway instance 
  "gatewayName": "vpnGw",                 // Name of the Azure VPN gateway
  "gatewaySku": "VpnGw1",                 // Azure VPN gateway SKU
  "vpnType": "RouteBased",                // type of VPN gateway
  "sharedKey": "string",                  // shared secret needs to match with on-premises configuration
  "asnVpnGateway": 65000,                 // BGP Autonomous System number assigned to the VPN Gateway 
  "asnRemote": 65010,                     // BGP Autonmous Syste number assigned to the on-premises device
  "bgpPeeringAddress": "172.16.0.3",      // IP address of the remote BGP peer on-premises
  "connectionName": "vpn2local1",
  "vnetID": "[resourceId('Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]",
  "gatewaySubnetRef": "[concat(variables('vnetID'),'/subnets/','GatewaySubnet')]",
  "subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]",
  "api-version": "2017-06-01"
},

3.2 Créer un réseau virtuel3.2 Create virtual network (VNet)

Si vous associez un réseau virtuel existant à des tunnels VPN, vous pouvez ignorer cette étape.If you are associating an existing VNet with the VPN tunnels, you can skip this step.

{
  "apiVersion": "[variables('api-version')]",
  "type": "Microsoft.Network/virtualNetworks",
  "name": "[variables('virtualNetworkName')]",
  "location": "[resourceGroup().location]",
  "properties": {
    "addressSpace": {
      "addressPrefixes": [
        "[variables('azureVNetAddressPrefix')]"
      ]
    },
    "subnets": [
      {
        "name": "[variables('subnetName')]",
        "properties": {
          "addressPrefix": "[variables('subnetPrefix')]"
        }
      },
      {
        "name": "GatewaySubnet",
        "properties": {
          "addressPrefix": "[variables('gatewaySubnetPrefix')]"
        }
      }
    ]
  },
  "comments": "Create a Virtual Network with Subnet1 and Gatewaysubnet"
},

3.3 Affecter des adresses IP publiques aux instances de passerelles VPN3.3 Assign public IP addresses to VPN gateway instances

Affectez une adresse IP publique à chaque instance de passerelle VPN.Assign a public IP address for each instance of a VPN gateway.

{
  "apiVersion": "[variables('api-version')]",
  "type": "Microsoft.Network/publicIPAddresses",
    "name": "[variables('gatewayPublicIPName1')]",
    "location": "[resourceGroup().location]",
    "properties": {
      "publicIPAllocationMethod": "Dynamic"
    },
    "comments": "Public IP for the first instance of the VPN gateway"
  },
  {
    "apiVersion": "[variables('api-version')]",
    "type": "Microsoft.Network/publicIPAddresses",
    "name": "[variables('gatewayPublicIPName2')]",
    "location": "[resourceGroup().location]",
    "properties": {
      "publicIPAllocationMethod": "Dynamic"
    },
    "comments": "Public IP for the second instance of the VPN gateway"
  },

3.4 Spécifier la fin du tunnel VPN local (passerelle de réseau local)3.4 Specify the on-premises VPN tunnel termination (local network gateway)

Les appareils VPN locaux sont désignés comme des passerelles de réseau local.The on-premises VPN devices are referred to as the local network gateway. L’extrait de code json suivant spécifie également les informations du pair BGP distant :The following json snippet also specifies remote BGP peer details:

{
  "apiVersion": "[variables('api-version')]",
  "type": "Microsoft.Network/localNetworkGateways",
  "name": "[variables('localGatewayName')]",
  "location": "[resourceGroup().location]",
  "properties": {
    "localNetworkAddressSpace": {
      "addressPrefixes": "[variables('localAddressPrefix')]"
    },
    "gatewayIpAddress": "[variables('localGatewayIpAddress')]",
    "bgpSettings": {
      "asn": "[variables('asnRemote')]",
      "bgpPeeringAddress": "[variables('bgpPeeringAddress')]",
      "peerWeight": 0
    }
  },
  "comments": "Local Network Gateway (referred to your on-premises location) with IP address of remote tunnel peering and IP address of remote BGP peer"
},

3.5 Créer la passerelle VPN3.5 Create the VPN gateway

Cette section du modèle configure la passerelle VPN à l’aide des paramètres nécessaires à une configuration en mode actif/passif.This section of the template configures the VPN gateway with the required settings for an active-active configuration. Gardez à l’esprit les exigences suivantes :Keep in mind the following requirements:

  • Créez la passerelle VPN avec VpnType défini sur RouteBased.Create the VPN gateway with a "RouteBased" VpnType. Ce paramètre est obligatoire si vous souhaitez activer le routage BGP entre la passerelle VPN et le VPN local.This setting is mandatory if you want to enable the BGP routing between the VPN gateway, and the VPN on-premises.
  • Pour établir des tunnels VPN entre les deux instances de la passerelle VPN et un appareil local donné en mode actif/passif, le paramètre activeActive doit être défini sur true dans le modèle Resource Manager.To establish VPN tunnels between the two instances of the VPN gateway and a given on-premises device in active-active mode, the "activeActive" parameter is set to true in the Resource Manager template. Pour en savoir plus sur les passerelles VPN hautement disponibles, consultez Connectivité des passerelles VPN hautement disponibles.To understand more about highly available VPN gateways, see Highly available VPN gateway connectivity.
  • Pour configurer des sessions eBGP entre les tunnels VPN, vous devez spécifier deux ASN différents de chaque côté.To configure eBGP sessions between the VPN tunnels, you must specify two different ASNs on either side. Il est préférable de spécifier des numéros ASN privés.It is preferable to specify private ASN numbers. Pour plus d’informations, consultez Vue d’ensemble du protocole BGP avec les passerelles VPN Azure.For more information, see Overview of BGP and Azure VPN gateways.
{
"apiVersion": "[variables('api-version')]",
"type": "Microsoft.Network/virtualNetworkGateways",
"name": "[variables('gatewayName')]",
"location": "[resourceGroup().location]",
"dependsOn": [
  "[concat('Microsoft.Network/publicIPAddresses/', variables('gatewayPublicIPName1'))]",
  "[concat('Microsoft.Network/publicIPAddresses/', variables('gatewayPublicIPName2'))]",
  "[concat('Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'))]"
],
"properties": {
  "ipConfigurations": [
    {
      "properties": {
        "privateIPAllocationMethod": "Dynamic",
        "subnet": {
          "id": "[variables('gatewaySubnetRef')]"
        },
        "publicIPAddress": {
          "id": "[resourceId('Microsoft.Network/publicIPAddresses',variables('gatewayPublicIPName1'))]"
        }
      },
      "name": "vnetGtwConfig1"
    },
    {
      "properties": {
        "privateIPAllocationMethod": "Dynamic",
        "subnet": {
          "id": "[variables('gatewaySubnetRef')]"
        },
        "publicIPAddress": {
          "id": "[resourceId('Microsoft.Network/publicIPAddresses',variables('gatewayPublicIPName2'))]"
        }
      },
          "name": "vnetGtwConfig2"
        }
      ],
      "sku": {
        "name": "[variables('gatewaySku')]",
        "tier": "[variables('gatewaySku')]"
      },
      "gatewayType": "Vpn",
      "vpnType": "[variables('vpnType')]",
      "enableBgp": true,
      "activeActive": true,
      "bgpSettings": {
        "asn": "[variables('asnVpnGateway')]"
      }
    },
    "comments": "VPN Gateway in active-active configuration with BGP support"
  },

3.6 Établir les tunnels IPsec3.6 Establish the IPsec tunnels

La dernière action du script crée les tunnels IPsec entre la passerelle VPN Azure et l’appareil VPN local.The final action of the script creates IPsec tunnels between the Azure VPN gateway and the on-premises VPN device.

{
  "apiVersion": "[variables('api-version')]",
  "name": "[variables('connectionName')]",
  "type": "Microsoft.Network/connections",
  "location": "[resourceGroup().location]",
  "dependsOn": [
    "[concat('Microsoft.Network/virtualNetworkGateways/', variables('gatewayName'))]",
    "[concat('Microsoft.Network/localNetworkGateways/', variables('localGatewayName'))]"
  ],
  "properties": {
    "virtualNetworkGateway1": {
      "id": "[resourceId('Microsoft.Network/virtualNetworkGateways', variables('gatewayName'))]"
    },
    "localNetworkGateway2": {
      "id": "[resourceId('Microsoft.Network/localNetworkGateways', variables('localGatewayName'))]"
    },
    "connectionType": "IPsec",
    "routingWeight": 0,
    "sharedKey": "[variables('sharedKey')]",
    "enableBGP": "true"
  },
  "comments": "Create a Connection type site-to-site (IPsec) between the Azure VPN Gateway and the VPN device on-premises"
  }

4. Configurer l’appareil VPN local4. Configure the on-premises VPN device

La passerelle VPN Azure est compatible avec la plupart des appareils VPN des différents fournisseurs.The Azure VPN gateway is compatible with many VPN devices from different vendors. Pour plus d’informations sur la configuration et les appareils qui ont été validés pour fonctionner avec la passerelle VPN, consultez À propos des appareils VPN.For configuration information and devices that have been validated to work with VPN gateway, see About VPN devices.

Pour configurer votre appareil VPN, vous avez besoin des éléments suivants :When configuring your VPN device, you need the following items:

  • Une clé partagée.A shared key. Il s’agit de la clé partagée spécifiée lors de la création de la connexion VPN de site à site.This is the same shared key that you specify when creating your site-to-site VPN connection. Les exemples utilisent une clé partagée basique.The examples use a basic shared key. Nous vous conseillons de générer une clé plus complexe.We recommend that you generate a more complex key to use.
  • Il s’agit de l’adresse IP publique de votre passerelle VPN.The Public IP address of your VPN gateway. Vous pouvez afficher l’adresse IP publique à l’aide du portail Azure, de PowerShell ou de l’interface de ligne de commande.You can view the public IP address by using the Azure portal, PowerShell, or CLI. Pour rechercher l’adresse IP publique de votre passerelle VPN à l’aide du portail Azure, accédez à Passerelles de réseau virtuel, puis cliquez sur le nom de votre passerelle.To find the Public IP address of your VPN gateway using the Azure portal, navigate to Virtual network gateways, then click the name of your gateway.

En règle générale, les pairs eBGP sont directement connectés (souvent via une connexion WAN).Typically eBGP peers are directly connected (often over a WAN connection). Toutefois, lorsque vous configurez eBGP sur des tunnels VPN IPsec via le peering ExpressRoute Microsoft, il existe plusieurs domaines de routage entre les pairs eBGP.However, when you are configuring eBGP over IPsec VPN tunnels via ExpressRoute Microsoft peering, there are multiple routing domains between the eBGP peers. Utilisez la commande ebgp-multihop pour établir la relation de voisin eBGP entre les deux pairs connectés indirectement.Use the ebgp-multihop command to establish the eBGP neighbor relationship between the two not-directly connected peers. L’entier qui suit la commande ebgp-multihop spécifie la valeur de durée de vie dans les paquets BGP.The integer that follows ebgp-multihop command specifies the TTL value in the BGP packets. La commande maximum-paths eibgp 2 permet l’équilibrage de charge du trafic entre les deux chemins BGP.The command maximum-paths eibgp 2 enables load balancing of traffic between the two BGP paths.

Exemple Cisco CSR1000Cisco CSR1000 example

L’exemple suivant montre une configuration Cisco CSR1000 sur une machine virtuelle Hyper-V en tant que appareil VPN local :The following example shows the configuration for Cisco CSR1000 in a Hyper-V virtual machine as the on-premises VPN device:

!
crypto ikev2 proposal az-PROPOSAL
 encryption aes-cbc-256 aes-cbc-128 3des
 integrity sha1
 group 2
!
crypto ikev2 policy az-POLICY
 proposal az-PROPOSAL
!
crypto ikev2 keyring key-peer1
 peer azvpn1
  address 52.175.253.112
  pre-shared-key secret*1234
 !
!
crypto ikev2 keyring key-peer2
 peer azvpn2
  address 52.175.250.191
  pre-shared-key secret*1234
 !
!
!
crypto ikev2 profile az-PROFILE1
 match address local interface GigabitEthernet1
 match identity remote address 52.175.253.112 255.255.255.255
 authentication remote pre-share
 authentication local pre-share
 keyring local key-peer1
!
crypto ikev2 profile az-PROFILE2
 match address local interface GigabitEthernet1
 match identity remote address 52.175.250.191 255.255.255.255
 authentication remote pre-share
 authentication local pre-share
 keyring local key-peer2
!
crypto ikev2 dpd 10 2 on-demand
!
!
crypto ipsec transform-set az-IPSEC-PROPOSAL-SET esp-aes 256 esp-sha-hmac
 mode tunnel
!
crypto ipsec profile az-VTI1
 set transform-set az-IPSEC-PROPOSAL-SET
 set ikev2-profile az-PROFILE1
!
crypto ipsec profile az-VTI2
 set transform-set az-IPSEC-PROPOSAL-SET
 set ikev2-profile az-PROFILE2
!
!
interface Loopback0
 ip address 172.16.0.3 255.255.255.255
!
interface Tunnel0
 ip address 172.16.0.1 255.255.255.255
 ip tcp adjust-mss 1350
 tunnel source GigabitEthernet1
 tunnel mode ipsec ipv4
 tunnel destination 52.175.253.112
 tunnel protection ipsec profile az-VTI1
!
interface Tunnel1
 ip address 172.16.0.2 255.255.255.255
 ip tcp adjust-mss 1350
 tunnel source GigabitEthernet1
 tunnel mode ipsec ipv4
 tunnel destination 52.175.250.191
 tunnel protection ipsec profile az-VTI2
!
interface GigabitEthernet1
 description External interface
 ip address x.243.229.110 255.255.255.252
 negotiation auto
 no mop enabled
 no mop sysid
!
interface GigabitEthernet2
 ip address 10.0.0.1 255.255.255.0
 negotiation auto
 no mop enabled
 no mop sysid
!
router bgp 65010
 bgp router-id interface Loopback0
 bgp log-neighbor-changes
 network 10.0.0.0 mask 255.255.255.0
 network 10.1.10.0 mask 255.255.255.128
 neighbor 10.2.0.228 remote-as 65000
 neighbor 10.2.0.228 ebgp-multihop 5
 neighbor 10.2.0.228 update-source Loopback0
 neighbor 10.2.0.228 soft-reconfiguration inbound
 neighbor 10.2.0.228 filter-list 10 out
 neighbor 10.2.0.229 remote-as 65000    
 neighbor 10.2.0.229 ebgp-multihop 5
 neighbor 10.2.0.229 update-source Loopback0
 neighbor 10.2.0.229 soft-reconfiguration inbound
 maximum-paths eibgp 2
!
ip route 0.0.0.0 0.0.0.0 10.1.10.1
ip route 10.2.0.228 255.255.255.255 Tunnel0
ip route 10.2.0.229 255.255.255.255 Tunnel1
!

5. Configurer le filtrage des appareils VPN et les pare-feu (facultatif)5. Configure VPN device filtering and firewalls (optional)

Configurez votre pare-feu et votre filtrage selon vos besoins.Configure your firewall and filtering according to your requirements.

6. Tester et valider le tunnel IPsec6. Test and validate the IPsec tunnel

L’état des tunnels IPsec peut être vérifié sur la passerelle VPN Azure à l’aide de commandes Powershell :The status of IPsec tunnels can be verified on the Azure VPN gateway by Powershell commands:

Get-AzVirtualNetworkGatewayConnection -Name vpn2local1 -ResourceGroupName myRG | Select-Object  ConnectionStatus,EgressBytesTransferred,IngressBytesTransferred | fl

Exemple de sortie :Example output:

ConnectionStatus        : Connected
EgressBytesTransferred  : 17734660
IngressBytesTransferred : 10538211

Pour vérifier l’état des tunnels de chacune des instances de passerelles VPN Azure, utilisez l’exemple suivant :To check the status of the tunnels on the Azure VPN gateway instances independently, use the following example:

Get-AzVirtualNetworkGatewayConnection -Name vpn2local1 -ResourceGroupName myRG | Select-Object -ExpandProperty TunnelConnectionStatus

Exemple de sortie :Example output:

Tunnel                           : vpn2local1_52.175.250.191
ConnectionStatus                 : Connected
IngressBytesTransferred          : 4877438
EgressBytesTransferred           : 8754071
LastConnectionEstablishedUtcTime : 11/04/2017 17:03:30

Tunnel                           : vpn2local1_52.175.253.112
ConnectionStatus                 : Connected
IngressBytesTransferred          : 5660773
EgressBytesTransferred           : 8980589
LastConnectionEstablishedUtcTime : 11/04/2017 17:03:13

Vous pouvez également vérifier l’état du tunnel sur votre appareil VPN local.You can also check the tunnel status on your on-premises VPN device.

Exemple Cisco CSR1000 :Cisco CSR1000 example:

show crypto session detail
show crypto ikev2 sa
show crypto ikev2 session detail
show crypto ipsec sa

Exemple de sortie :Example output:

csr1#show crypto session detail

Crypto session current status

Code: C - IKE Configuration mode, D - Dead Peer Detection
K - Keepalives, N - NAT-traversal, T - cTCP encapsulation
X - IKE Extended Authentication, F - IKE Fragmentation
R - IKE Auto Reconnect

Interface: Tunnel1
Profile: az-PROFILE2
Uptime: 00:52:46
Session status: UP-ACTIVE
Peer: 52.175.250.191 port 4500 fvrf: (none) ivrf: (none)
      Phase1_id: 52.175.250.191
      Desc: (none)
  Session ID: 3
  IKEv2 SA: local 10.1.10.50/4500 remote 52.175.250.191/4500 Active
          Capabilities:DN connid:3 lifetime:23:07:14
  IPSEC FLOW: permit ip 0.0.0.0/0.0.0.0 0.0.0.0/0.0.0.0
        Active SAs: 2, origin: crypto map
        Inbound:  #pkts dec'ed 279 drop 0 life (KB/Sec) 4607976/433
        Outbound: #pkts enc'ed 164 drop 0 life (KB/Sec) 4607992/433

Interface: Tunnel0
Profile: az-PROFILE1
Uptime: 00:52:43
Session status: UP-ACTIVE
Peer: 52.175.253.112 port 4500 fvrf: (none) ivrf: (none)
      Phase1_id: 52.175.253.112
      Desc: (none)
  Session ID: 2
  IKEv2 SA: local 10.1.10.50/4500 remote 52.175.253.112/4500 Active
          Capabilities:DN connid:2 lifetime:23:07:17
  IPSEC FLOW: permit ip 0.0.0.0/0.0.0.0 0.0.0.0/0.0.0.0
        Active SAs: 2, origin: crypto map
        Inbound:  #pkts dec'ed 668 drop 0 life (KB/Sec) 4607926/437
        Outbound: #pkts enc'ed 477 drop 0 life (KB/Sec) 4607953/437

Dans l’interface VTI, le protocole de ligne ne passe pas à l’état actif tant que la phase 2 IKE n’est pas terminée.The line protocol on the Virtual Tunnel Interface (VTI) does not change to "up" until IKE phase 2 has completed. La commande suivante vérifie l’association de sécurité :The following command verifies the security association:

csr1#show crypto ikev2 sa

IPv4 Crypto IKEv2  SA

Tunnel-id Local                 Remote                fvrf/ivrf            Status
2         10.1.10.50/4500       52.175.253.112/4500   none/none            READY
      Encr: AES-CBC, keysize: 256, PRF: SHA1, Hash: SHA96, DH Grp:2, Auth sign: PSK, Auth verify: PSK
      Life/Active Time: 86400/3277 sec

Tunnel-id Local                 Remote                fvrf/ivrf            Status
3         10.1.10.50/4500       52.175.250.191/4500   none/none            READY
      Encr: AES-CBC, keysize: 256, PRF: SHA1, Hash: SHA96, DH Grp:2, Auth sign: PSK, Auth verify: PSK
      Life/Active Time: 86400/3280 sec

IPv6 Crypto IKEv2  SA

csr1#show crypto ipsec sa | inc encaps|decaps
    #pkts encaps: 177, #pkts encrypt: 177, #pkts digest: 177
    #pkts decaps: 296, #pkts decrypt: 296, #pkts verify: 296
    #pkts encaps: 554, #pkts encrypt: 554, #pkts digest: 554
    #pkts decaps: 746, #pkts decrypt: 746, #pkts verify: 746

Vérifier la connectivité de bout en bout entre l’intérieur du réseau local et le réseau virtuel AzureVerify end-to-end connectivity between the inside network on-premises and the Azure VNet

Si les tunnels IPsec sont activés et les itinéraires statiques correctement définis, vous devez pouvoir effectuer un test ping sur l’adresse IP du pair BGP distant :If the IPsec tunnels are up and the static routes are correctly set, you should be able to ping the IP address of the remote BGP peer:

csr1#ping 10.2.0.228
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.2.0.228, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 5/5/5 ms

#ping 10.2.0.229
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.2.0.229, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/5/6 ms

Vérifier les sessions BGP sur IPsecVerify the BGP sessions over IPsec

Sur la passerelle VPN Azure, vérifiez l’état du pair BGP :On the Azure VPN gateway, verify the status of BGP peer:

Get-AzVirtualNetworkGatewayBGPPeerStatus -VirtualNetworkGatewayName vpnGtw -ResourceGroupName SEA-C1-VPN-ER | ft

Exemple de sortie :Example output:

  Asn ConnectedDuration LocalAddress MessagesReceived MessagesSent Neighbor    RoutesReceived State    
  --- ----------------- ------------ ---------------- ------------ --------    -------------- -----    
65010 00:57:19.9003584  10.2.0.228               68           72   172.16.0.10              2 Connected
65000                   10.2.0.228                0            0   10.2.0.228               0 Unknown  
65000 07:13:51.0109601  10.2.0.228              507          500   10.2.0.229               6 Connected

Pour vérifier la liste des préfixes réseau envoyés via eBGP par le concentrateur VPN local, vous pouvez filtrer selon l’attribut « Origin » :To verify the list of network prefixes received via eBGP from the VPN concentrator on-premises, you can filter by attribute "Origin":

Get-AzVirtualNetworkGatewayLearnedRoute -VirtualNetworkGatewayName vpnGtw -ResourceGroupName myRG  | Where-Object Origin -eq "EBgp" |ft

Dans l’exemple de sortie, l’ASN 65010 correspond au numéro de système autonome BGP dans le VPN local.In the example output, the ASN 65010 is the BGP autonomous system number in the VPN on-premises.

AsPath LocalAddress Network      NextHop     Origin SourcePeer  Weight
------ ------------ -------      -------     ------ ----------  ------
65010  10.2.0.228   10.1.10.0/25 172.16.0.10 EBgp   172.16.0.10  32768
65010  10.2.0.228   10.0.0.0/24  172.16.0.10 EBgp   172.16.0.10  32768

Pour afficher la liste des itinéraires publiés :To see the list of advertised routes:

Get-AzVirtualNetworkGatewayAdvertisedRoute -VirtualNetworkGatewayName vpnGtw -ResourceGroupName myRG -Peer 10.2.0.228 | ft

Exemple de sortie :Example output:

AsPath LocalAddress Network        NextHop    Origin SourcePeer Weight
------ ------------ -------        -------    ------ ---------- ------
       10.2.0.229   10.2.0.0/24    10.2.0.229 Igp                  0
       10.2.0.229   172.16.0.10/32 10.2.0.229 Igp                  0
       10.2.0.229   172.16.0.5/32  10.2.0.229 Igp                  0
       10.2.0.229   172.16.0.1/32  10.2.0.229 Igp                  0
65010  10.2.0.229   10.1.10.0/25   10.2.0.229 Igp                  0
65010  10.2.0.229   10.0.0.0/24    10.2.0.229 Igp                  0

Exemple pour le routeur local Cisco CSR1000 :Example for the on-premises Cisco CSR1000:

csr1#show ip bgp neighbors 10.2.0.228 routes
BGP table version is 7, local router ID is 172.16.0.10
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
              t secondary path,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>   10.2.0.0/24      10.2.0.228                             0 65000 i
 r>   172.16.0.1/32    10.2.0.228                             0 65000 i
 r>   172.16.0.2/32    10.2.0.228                             0 65000 i
 r>   172.16.0.3/32   10.2.0.228                             0 65000 i

Total number of prefixes 4

La liste des réseaux publiés à partir du routeur local Cisco CSR1000 sur la passerelle VPN Azure peut être obtenue à l’aide de la commande suivante :The list of networks advertised from the on-premises Cisco CSR1000 to the Azure VPN gateway can be listed using the following command:

csr1#show ip bgp neighbors 10.2.0.228 advertised-routes
BGP table version is 7, local router ID is 172.16.0.10
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
              t secondary path,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>   10.0.0.0/24      0.0.0.0                  0         32768 i
 *>   10.1.10.0/25     0.0.0.0                  0         32768 i

Total number of prefixes 2

Étapes suivantesNext steps