Connecter des réseaux virtuels utilisant des modèles de déploiement différents à l’aide de PowerShell

Cet article vous permet de connecter des réseaux virtuels classiques à des réseaux virtuels Resource Manager, afin d’autoriser les ressources situées dans les modèles de déploiement distincts à communiquer entre elles. PowerShell est utilisé dans les étapes de cet article.

Cet article est destiné aux clients qui disposent déjà d’un réseau virtuel créé à l’aide du modèle de déploiement classique (hérité), et souhaitent maintenant connecter le réseau virtuel classique à un autre réseau virtuel créé à l’aide du modèle de déploiement le plus récent. Si vous n’avez pas encore de réseau virtuel hérité, utilisez plutôt l’article Créer une connexion de réseau virtuel à réseau virtuel.

Architecture

La connexion d’un réseau virtuel classique à un réseau virtuel Resource Manager est semblable à la connexion d’un réseau virtuel à un emplacement de site local. Les deux types de connectivité font appel à une passerelle VPN pour offrir un tunnel sécurisé utilisant Ipsec/IKE. Vous pouvez créer une connexion entre des réseaux virtuels situés dans des abonnements différents et des régions différentes. Vous pouvez également connecter des réseaux virtuels qui disposent déjà de connexions à des réseaux locaux, à condition que la passerelle soit dynamique ou basée sur un itinéraire. Pour plus d’informations sur les connexions de réseau virtuel à réseau virtuel, consultez le Forum Aux Questions sur l’interconnexion de réseaux virtuels.

Pour cette configuration, vous créez une connexion de passerelle VPN via un tunnel VPN IPsec/IKE entre les réseaux virtuels. Assurez-vous que vos plages de réseau virtuel ne se chevauchent pas entre elles ou avec un réseau local auquel elles se connectent.

Le tableau suivant montre comment les réseaux virtuels et les sites locaux sont définis :

Réseau virtuel Espace d’adressage Région Se connecte au site de réseau local
ClassicVNet (10.1.0.0/16) USA Ouest RMVNetSite (192.168.0.0/16)
RMVNet (192.168.0.0/16) USA Est ClassicVNetSite (10.1.0.0/16)

Prérequis

Les étapes suivantes vous guident à travers les paramétrages nécessaires pour configurer une passerelle dynamique ou basée sur un itinéraire pour chaque réseau virtuel et créer une connexion VPN entre les passerelles. Cette configuration ne prend pas en charge les passerelles statiques ou basées sur des stratégies.

Ces étapes supposent que vous disposez d’un réseau virtuel classique hérité et d’un réseau virtuel Resource Manager déjà créé.

  • Vérifiez que les plages d’adresses des réseaux virtuels ne se chevauchent pas ou ne chevauchent aucune des plages des autres connexions susceptibles d’être utilisées par les passerelles.

  • Nous utilisons PowerShell dans cet article. Installez les dernières applets de commande PowerShell sur votre ordinateur pour le Gestionnaire de ressources et la Gestion des services.

    Bien qu’il soit possible d’exécuter quelques-unes des commandes PowerShell à l’aide de l’environnement Azure Cloud Shell, vous devez installer les deux versions des applets de commande pour créer correctement les connexions.

    Pour plus d’informations, consultez Installer et configurer Azure PowerShell.

Exemples de paramètres

Pour mieux comprendre les exemples, vous pouvez utiliser les valeurs suivantes.

Réseau virtuel classique

Nom du réseau virtuel = ClassicVNet
Groupe de ressources = Emplacement ClassicRG = USA Ouest
Espaces d’adressage du réseau virtuel = 10.1.0.0/16
Subnet1 = 10.1.0.0/24
Sous-réseau de passerelle : 10.1.255.0/27
Nom du réseau local = RMVNetSite
Type de passerelle = DynamicRouting

Réseau virtuel Resource Manager

Nom du réseau virtuel = RMVNet
Groupe de ressources = RMRG
Espaces d’adressage IP du réseau virtuel = 192.168.0.0/16
Subnet1 = 192.168.1.0/24
GatewaySubnet = 192.168.255.0/27
Emplacement = USA Est
Nom d’adresse IP publique de passerelle = rmgwpip
Passerelle de réseau local = ClassicVNetSite
Nom de passerelle de réseau virtuel = RMGateway
Configuration d’adressage IP de la passerelle = gwipconfig

Configurer le réseau virtuel classique

Dans cette section, vous configurez votre réseau virtuel classique existant. Si votre réseau virtuel dispose déjà d’une passerelle, vérifiez que la passerelle est basée sur un itinéraire, puis passez à la section suivante. Si la passerelle n’est pas basée sur un itinéraire, supprimez-la avant de passer aux étapes suivantes. Vous aurez la possibilité de créer une passerelle ultérieurement.

1. Télécharger votre fichier de configuration réseau

  1. Dans la console PowerShell avec des droits élevés, connectez-vous à votre compte Azure. Les applets de commande suivantes vous invitent à entrer les informations d’identification pour votre compte Azure. Une fois que vous êtes connecté, l’applet de commande télécharge vos paramètres de compte pour qu’ils soient reconnus par Azure PowerShell. Les applets de commande Azure PowerShell de gestion de service classique sont utilisées dans cette section.

    Add-AzureAccount
    

    Récupérez votre abonnement Azure.

    Get-AzureSubscription
    

    Si vous avez plusieurs abonnements, sélectionnez celui que vous souhaitez utiliser.

    Select-AzureSubscription -SubscriptionName "Name of subscription"
    
  2. Créez un annuaire sur votre ordinateur. Pour cet exemple, nous avons créé AzureNet.

  3. Exportez votre fichier de configuration réseau Azure en exécutant la commande suivante. Vous pouvez modifier l’emplacement d’exportation du fichier si nécessaire.

    Get-AzureVNetConfig -ExportToFile C:\AzureNet\NetworkConfig.xml
    
  4. Ouvrez le fichier .xml que vous avez téléchargé pour le modifier. Pour obtenir un exemple de fichier de configuration réseau, consultez le schéma de configuration réseau.

  5. Notez la valeur VirtualNetworkSite name=. Si vous avez créé votre réseau virtuel classique à l’aide du portail, le nom suit un format similaire à « Group ClassicRG ClassicVNet » et non pas « ClassicVNet » comme dans le portail.

2. Vérifier le sous-réseau de passerelle

Dans l’élément VirtualNetworkSites, ajoutez un sous-réseau de passerelle à votre réseau virtuel si vous n’en avez pas déjà créé un. Le sous-réseau de passerelle DOIT être nommé « GatewaySubnet ». Sinon, Azure ne peut pas le reconnaître et l’utiliser comme sous-réseau de passerelle.

Important

Lorsque vous travaillez avec des sous-réseaux de passerelle, évitez d’associer un groupe de sécurité réseau (NSG) au sous-réseau de passerelle. Associer un groupe de sécurité réseau à ce sous-réseau peut empêcher votre passerelle de réseau virtuel (passerelles VPN et ExpressRoute) de fonctionner comme prévu. Pour plus d’informations sur les groupes de sécurité réseau, consultez Présentation du groupe de sécurité réseau ?.

Exemple :

<VirtualNetworkSites>
  <VirtualNetworkSite name="ClassicVNet" Location="West US">
    <AddressSpace>
      <AddressPrefix>10.1.0.0/16</AddressPrefix>
    </AddressSpace>
    <Subnets>
      <Subnet name="Subnet1">
        <AddressPrefix>10.1.0.0/24</AddressPrefix>
      </Subnet>
      <Subnet name="GatewaySubnet">
        <AddressPrefix>10.1.255.0/27</AddressPrefix>
      </Subnet>
    </Subnets>
  </VirtualNetworkSite>
</VirtualNetworkSites>

3. Ajouter le site de réseau local

Le site de réseau local que vous ajoutez représente le réseau virtuel RM auquel vous souhaitez vous connecter. Ajoutez un élément LocalNetworkSites au fichier s’il n’en existe pas déjà un. À ce stade de la configuration, n’importe quelle adresse IP publique valide peut être utilisée pour l’élément VPNGatewayAddress, car nous n’avons pas encore créé la passerelle pour le réseau virtuel Resource Manager. Une fois la passerelle RM créée, vous remplacerez cette adresse IP temporaire par l’adresse IP publique qui a été affectée à la passerelle RM.

<LocalNetworkSites>
  <LocalNetworkSite name="RMVNetSite">
    <AddressSpace>
      <AddressPrefix>192.168.0.0/16</AddressPrefix>
    </AddressSpace>
    <VPNGatewayAddress>5.4.3.2</VPNGatewayAddress>
  </LocalNetworkSite>
</LocalNetworkSites>

4. Associer le réseau virtuel au site de réseau local

Dans cette section, nous spécifions le site de réseau local auquel vous souhaitez connecter le réseau virtuel. Dans ce cas, il s’agit du réseau virtuel Resource Manager que vous avez référencé plus tôt. Assurez-vous que les noms correspondent. Cette étape ne vise pas à créer une passerelle. Elle spécifie le réseau local auquel la passerelle se connectera.

<Gateway>
  <ConnectionsToLocalNetwork>
    <LocalNetworkSiteRef name="RMVNetSite">
      <Connection type="IPsec" />
    </LocalNetworkSiteRef>
  </ConnectionsToLocalNetwork>
</Gateway>

5. Enregistrer et charger le fichier

Enregistrez le fichier, puis importez-le dans Azure en exécutant la commande ci-dessous. Assurez-vous que vous modifiez le chemin d'accès selon les besoins de votre environnement.

Set-AzureVNetConfig -ConfigurationPath C:\AzureNet\NetworkConfig.xml

Vous verrez un résultat similaire indiquant que l’importation a réussi.

OperationDescription        OperationId                      OperationStatus                                                
--------------------        -----------                      ---------------                                                
Set-AzureVNetConfig        e0ee6e66-9167-cfa7-a746-7casb9    Succeeded 

6. Créer la passerelle

Avant d’exécuter cet exemple, consultez le fichier de configuration de réseau que vous avez téléchargé pour les noms exacts qu’Azure s’attend à voir. Ce fichier de configuration réseau contient les valeurs de vos réseaux virtuels classiques. Lorsqu’un réseau virtuel classique est créé à l’aide du portail, le nom du réseau virtuel est différent dans le fichier de configuration réseau. Par exemple, si vous avez utilisé le portail Azure pour créer un réseau virtuel nommé « Classic VNet » dans un groupe de ressources nommé « ClassicRG », le nom figurant dans le fichier de configuration du réseau est converti en « Group ClassicRG Classic VNetl ». Utilisez toujours le nom contenu dans le fichier de configuration du réseau lorsque vous travaillez avec PowerShell. Lorsque vous spécifiez le nom d’un réseau virtuel qui contient des espaces, utilisez des guillemets autour de la valeur.

L’exemple suivant montre comment créer une passerelle de routage dynamique :

New-AzureVNetGateway -VNetName ClassicVNet -GatewayType DynamicRouting

Vous pouvez vérifier l’état de la passerelle à l’aide de l’applet de commande Get-AzureVNetGateway.

Configurer la passerelle du réseau virtuel Resource Manager

Les conditions préalables supposent que vous ayez déjà créé un réseau virtuel RM. Dans cette étape, vous créez une passerelle VPN pour le réseau virtuel RM. Ne commencez pas cette procédure avant d’avoir récupéré l’adresse IP publique de la passerelle du réseau virtuel classique.

  1. Connectez-vous à votre compte Azure dans la console PowerShell. Les applets de commande suivantes vous invitent à entrer les informations d’identification pour votre compte Azure. Une fois que vous êtes connecté, vos paramètres de compte sont téléchargés et transmis à Azure PowerShell. Vous pouvez éventuellement utiliser la fonctionnalité de test pour lancer Azure Cloud Shell dans le navigateur.

    Si vous utilisez Azure Cloud Shell, ignorez la cmdlet suivante :

    Connect-AzAccount
    

    Pour vérifier que vous utilisez le bon abonnement, exécutez la cmdlet suivante :

    Get-AzSubscription
    

    Si vous avez plusieurs abonnements, spécifiez celui que vous souhaitez utiliser.

    Select-AzSubscription -SubscriptionName "Name of subscription"
    
  2. Créer une passerelle de réseau local. Dans un réseau virtuel, la passerelle de réseau local fait généralement référence à votre emplacement local. Dans ce cas, la passerelle de réseau local fait référence à votre réseau virtuel classique. Donnez à cet emplacement un nom auquel Azure pourra se référer, puis spécifiez le préfixe de l’espace d’adressage. Azure utilise le préfixe d’adresse IP que vous spécifiez pour identifier le trafic à envoyer vers votre emplacement local. Si vous avez besoin d’ajuster ces informations ultérieurement, avant de créer votre passerelle, vous pouvez modifier les valeurs et exécuter à nouveau l’exemple.

    -Name est le nom à affecter pour faire référence à la passerelle de réseau local.
    -AddressPrefix est l’espace d’adressage de votre réseau virtuel classique.
    -GatewayIpAddress est l’adresse IP publique de la passerelle du réseau virtuel classique. Veillez à remplacer la séquence « n.n.n.n » par l’adresse IP correcte.

    New-AzLocalNetworkGateway -Name ClassicVNetSite `
    -Location "West US" -AddressPrefix "10.1.0.0/16" `
    -GatewayIpAddress "n.n.n.n" -ResourceGroupName RMRG
    
  3. Demandez qu’une adresse IP publique soit allouée à la passerelle de réseau virtuel pour le réseau virtuel Resource Manager. Vous ne pouvez pas spécifier l’adresse IP que vous souhaitez utiliser. L’adresse IP est allouée de façon dynamique à la passerelle de réseau virtuel. Néanmoins, cela ne signifie pas que l’adresse IP est modifiée. L’adresse IP de la passerelle de réseau virtuel change uniquement lorsque la passerelle est supprimée, puis recréée. Elle n’est pas modifiée lors du redimensionnement, de la réinitialisation ou des autres opérations de maintenance/mise à niveau internes de la passerelle.

    Dans cette étape, nous définissons également une variable qui sera utilisée à une étape ultérieure.

    $ipaddress = New-AzPublicIpAddress -Name rmgwpip `
    -ResourceGroupName RMRG -Location 'EastUS' `
    -AllocationMethod Dynamic
    
  4. Vérifiez que votre réseau virtuel possède un sous-réseau de passerelle. S’il n’existe aucun sous-réseau de passerelle, ajoutez-en un. Veillez à nommer le sous-réseau de passerelle GatewaySubnet.

    $vnet = Get-AzVirtualNetwork -ResourceGroupName RMRG -Name RMVNet
    Add-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -AddressPrefix 192.168.255.0/27 -VirtualNetwork $vnet
    Set-AzVirtualNetwork -VirtualNetwork $vnet
    
  5. Récupérez le sous-réseau utilisé pour la passerelle en exécutant la commande suivante. À cette étape, nous définissons également une variable qui sera utilisée à l’étape suivante.

    -Name est le nom de votre réseau virtuel Resource Manager.
    -ResourceGroupName est le groupe de ressources auquel le réseau virtuel est associé. Pour fonctionner correctement, le sous-réseau de passerelle doit être nommé GatewaySubnet .

    $subnet = Get-AzVirtualNetworkSubnetConfig -Name GatewaySubnet `
    -VirtualNetwork (Get-AzVirtualNetwork -Name RMVNet -ResourceGroupName RMRG)
    
  6. Créez la configuration de l’adressage IP de la passerelle. La configuration de la passerelle définit le sous-réseau et l’adresse IP publique à utiliser. Utilisez l’exemple suivant pour créer la configuration de votre passerelle.

    Dans cette étape, la propriété ID du sous-réseau et des objets d’adresse IP doit être transmise aux paramètres -SubnetId et -PublicIpAddressId. Vous ne pouvez pas utiliser une chaîne simple. Ces variables sont définies à l’étape de demande d’une adresse IP publique et à l’étape de récupération du sous-réseau.

    $gwipconfig = New-AzVirtualNetworkGatewayIpConfig `
    -Name gwipconfig -SubnetId $subnet.id `
    -PublicIpAddressId $ipaddress.id
    
  7. Créez la passerelle de réseau virtuel Resource Manager en exécutant la commande suivante. -VpnType doit être défini sur RouteBased. La création de la passerelle peut prendre 45 minutes ou davantage.

    New-AzVirtualNetworkGateway -Name RMGateway -ResourceGroupName RMRG `
    -Location "EastUS" -GatewaySKU Standard -GatewayType Vpn `
    -IpConfigurations $gwipconfig `
    -EnableBgp $false -VpnType RouteBased
    
  8. Copiez l’adresse IP publique une fois que la passerelle VPN a été créée. Elle vous servira lors de la configuration des paramètres de réseau local pour votre réseau virtuel classique. Vous pouvez utiliser l’applet de commande suivante pour récupérer l’adresse IP publique. L’adresse IP publique est répertoriée dans la réponse en tant que IpAddress.

    Get-AzPublicIpAddress -Name rmgwpip -ResourceGroupName RMRG
    

Modifier les paramètres de site local du réseau virtuel classique

Dans cette section, vous travaillez avec le réseau virtuel classique. Vous remplacez l’adresse IP avec espace réservé que vous avez utilisée lorsque vous avez spécifié les paramètres du site local qui vous permettront de vous connecter à la passerelle de réseau virtuel Resource Manager. Comme vous travaillez avec le réseau virtuel classique, utilisez le PowerShell installé sur votre ordinateur au lieu d’Azure Cloud Shell TryIt.

  1. Exportez le fichier de configuration réseau.

    Get-AzureVNetConfig -ExportToFile C:\AzureNet\NetworkConfig.xml
    
  2. À l’aide d’un éditeur de texte, modifiez la valeur de l’élément VPNGatewayAddress. Remplacez l’adresse IP avec espace réservé par l’adresse IP publique de la passerelle Resource Manager, puis enregistrez les modifications.

    <VPNGatewayAddress>13.68.210.16</VPNGatewayAddress>
    
  3. Importez le fichier de configuration réseau modifié dans Azure.

    Set-AzureVNetConfig -ConfigurationPath C:\AzureNet\NetworkConfig.xml
    

Créer une connexion entre les passerelles

La création d’une connexion entre les passerelles nécessite PowerShell. Il se peut que vous deviez ajouter votre compte Azure pour utiliser la version classique des cmdlets PowerShell. Pour ce faire, utilisez Add-AzureAccount.

  1. Dans la console PowerShell, définissez votre clé partagée. Avant d’exécuter les applets de commande, recherchez dans le fichier de configuration réseau que vous avez téléchargé les noms exacts qu’Azure s’attend à voir. Lorsque vous spécifiez le nom d’un réseau virtuel qui contient des espaces, encadrez la valeur avec des guillemets.

    Dans cet exemple, -VNetName est le nom du réseau virtuel classique et -LocalNetworkSiteName est le nom que vous avez spécifié pour le site du réseau local. Vérifiez les noms des deux dans le fichier de configuration réseau que vous avez téléchargé précédemment.

    -SharedKey est une valeur que vous pouvez générer et spécifier. Dans l’exemple, nous avons utilisé « abc123 », mais vous pouvez générer et utiliser quelque chose de plus complexe. L’important, c’est que la valeur que vous spécifiez ici doit être identique à celle spécifiée à l’étape suivante lors de la création de votre connexion. La réponse doit afficher État : Réussi.

    Set-AzureVNetGatewayKey -VNetName ClassicVNet `
    -LocalNetworkSiteName RMVNetSite -SharedKey abc123
    
  2. Créez la connexion VPN en exécutant les commandes suivantes :

    Définissez les variables.

    $vnet01gateway = Get-AzLocalNetworkGateway -Name ClassicVNetSite -ResourceGroupName RMRG
    $vnet02gateway = Get-AzVirtualNetworkGateway -Name RMGateway -ResourceGroupName RMRG
    

    Créez la connexion. Notez que le type de connexion -ConnectionType est IPsec et pas Vnet2Vnet.

    New-AzVirtualNetworkGatewayConnection -Name RM-Classic -ResourceGroupName RMRG `
    -Location "East US" -VirtualNetworkGateway1 `
    $vnet02gateway -LocalNetworkGateway2 `
    $vnet01gateway -ConnectionType IPsec -RoutingWeight 10 -SharedKey 'abc123'
    

Vérifiez vos connexions

Réseau virtuel classique vers réseau virtuel RM

Vous pouvez vérifier que votre connexion a réussi à l’aide de l’applet de commande « Get-AzureVNetConnection ». Cette applet de commande doit être exécutée localement sur votre ordinateur.

  1. Utilisez l’exemple d’applet de commande suivant, en configurant les valeurs sur les vôtres. Le nom du réseau virtuel doit être placé entre guillemets s’il contient des espaces. Utilisez le nom du réseau virtuel, comme indiqué dans le fichier de configuration réseau.

    Get-AzureVNetConnection "ClassicVNet"
    
  2. Une fois l’applet de commande exécutée, affichez les valeurs. Dans l’exemple ci-dessous, l’état de la connectivité indique « Connecté » et vous pouvez voir les octets d’entrée et de sortie.

    ConnectivityState         : Connected
    EgressBytesTransferred    : 0
    IngressBytesTransferred   : 0
    LastConnectionEstablished : 4/25/2022 4:24:34 PM
    LastEventID               : 24401
    LastEventMessage          : The connectivity state for the local network site 'RMVNetSite' changed from Not Connected to Connected.
    LastEventTimeStamp        : 4/25/2022 4:24:34 PM
    LocalNetworkSiteName      : RMVNetSite
    OperationDescription      :
    OperationId               :
    OperationStatus           :
    

Réseau virtuel RM vers réseau virtuel classique

Vous pouvez vérifier que votre connexion a réussi via l’applet de commande « Get-AzVirtualNetworkGatewayConnection » avec ou sans « -Debug ».

  1. Utilisez l’exemple d’applet de commande suivant, en configurant les valeurs sur les vôtres. Si vous y êtes invité, sélectionnez A pour exécuter tout. Dans l’exemple, «  -Name » fait référence au nom de la connexion que vous voulez tester.

    Get-AzVirtualNetworkGatewayConnection -Name VNet1toSite1 -ResourceGroupName TestRG1
    
  2. Une fois l’applet de commande exécutée, affichez les valeurs. Dans l’exemple ci-dessous, l’état de la connexion indique « Connecté » et vous pouvez voir les octets d’entrée et de sortie.

    "connectionStatus": "Connected",
    "ingressBytesTransferred": 33509044,
    "egressBytesTransferred": 4142431
    

Étapes suivantes

Pour plus d’informations sur les connexions de réseau virtuel à réseau virtuel, consultez le Forum Aux Questions sur la passerelle VPN.