Utiliser des équipements virtuels réseau sur un réseau virtuel

S’applique à : Windows Server 2022, Windows Server 2019, Windows Server 2016, Azure Stack HCI versions 21H2 et 20H2

Dans cette rubrique, vous allez apprendre à déployer des appliances virtuelles réseau sur des réseaux virtuels de locataire. Vous pouvez ajouter des appliances virtuelles réseau à des réseaux qui exécutent des fonctions de routage et de mise en miroir des ports définies par l’utilisateur.

Types d’appliances virtuelles réseau

Vous pouvez utiliser l’un des deux types d’appliances virtuelles :

  1. Routage défini par l’utilisateur : remplace les routeurs distribués sur le réseau virtuel par les fonctionnalités de routage de l’appliance virtuelle. Avec le routage défini par l’utilisateur, l’appliance virtuelle est utilisée en tant que routeur entre les sous-réseaux virtuels du réseau virtuel.

  2. Mise en miroir des ports : tout le trafic réseau entrant ou sortant au niveau du port supervisé est dupliqué et envoyé à une appliance virtuelle à des fins d’analyse.

Déployer une appliance virtuelle réseau

Pour déployer une appliance virtuelle réseau, vous devez d’abord créer une machine virtuelle qui contient l’appliance, puis connecter la machine virtuelle aux sous-réseaux de réseau virtuel appropriés. Pour plus d’informations, consultez Créer une machine virtuelle de locataire et établir la connexion à un réseau virtuel locataire ou un réseau local virtuel.

Certaines appliances nécessitent plusieurs cartes réseau virtuelles. En règle générale, une carte réseau dédiée à la gestion de l’appliance, tandis que les autres cartes traitent le trafic. Si votre appliance nécessite plusieurs cartes réseau, vous devez créer chaque interface réseau dans le contrôleur de réseau. Vous devez également affecter un ID d’interface sur chaque hôte pour chacun des adaptateurs supplémentaires qui se trouvent sur des sous-réseaux virtuels différents.

Une fois que vous avez déployé l’appliance virtuelle réseau, vous pouvez utiliser l’appliance pour le routage défini, la mise en miroir de ports, ou les deux.

Exemple : routage défini par l’utilisateur

Pour la plupart des environnements, vous avez uniquement besoin des itinéraires système déjà définis par le routeur distribué du réseau virtuel. Toutefois, vous pouvez créer une table d’itinéraires et ajouter un ou plusieurs itinéraires dans des cas spécifiques, par exemple :

  • Forcer le tunneling vers Internet via votre réseau local.
  • Utiliser des appliances virtuelles dans votre environnement.

Pour ces scénarios, vous devez créer une table de routage et ajouter des itinéraires définis par l’utilisateur à la table. Vous pouvez avoir plusieurs tables d’itinéraires et celles-ci peuvent être associées à un ou plusieurs sous-réseaux. Vous ne pouvez associer chaque sous-réseau qu’à une seule table de routage. L’ensemble des machines virtuelles d’un sous-réseau utilisent la table d’itinéraires associée à ce sous-réseau.

Les sous-réseaux s’appuient sur des itinéraires système jusqu’à ce qu’une table de routage leur soit associée. Une fois que l’association existe, le routage se base sur la correspondance de préfixe la plus longue parmi les itinéraires définis par l’utilisateur et les itinéraires du système. S’il existe plusieurs itinéraires avec la même correspondance LPM, l’itinéraire défini par l’utilisateur est sélectionné en premier, avant l’itinéraire système.

Procédure :

  1. Créez les propriétés de la table de routage, qui contient tous les itinéraires définis par l’utilisateur.

    Les routes système s’appliquent toujours selon les règles définies ci-dessus.

     $routetableproperties = new-object Microsoft.Windows.NetworkController.RouteTableProperties
    
  2. Ajoutez un itinéraire aux propriétés de la table de routage.

    Tout itinéraire destiné au sous-réseau 12.0.0.0/8 est routé vers l’appliance virtuelle à l’adresse 192.168.1.10. L’appliance doit avoir une carte réseau virtuelle attachée au réseau virtuel avec cette adresse IP affectée à une interface réseau.

     $route = new-object Microsoft.Windows.NetworkController.Route
     $route.ResourceID = "0_0_0_0_0"
     $route.properties = new-object Microsoft.Windows.NetworkController.RouteProperties
     $route.properties.AddressPrefix = "0.0.0.0/0"
     $route.properties.nextHopType = "VirtualAppliance"
     $route.properties.nextHopIpAddress = "192.168.1.10"
     $routetableproperties.routes += $route
    

    Conseil

    Si vous souhaitez ajouter d’autres itinéraires, répétez cette étape pour chaque itinéraire que vous souhaitez définir.

  3. Ajoutez la table de routage au contrôleur de réseau.

     $routetable = New-NetworkControllerRouteTable -ConnectionUri $uri -ResourceId "Route1" -Properties $routetableproperties
    
  4. Appliquez la table de routage au sous-réseau virtuel.

    Lorsque vous appliquez la table de routage au sous-réseau virtuel, le premier sous-réseau virtuel du réseau Tenant1_Vnet1 utilise la table de routage. Vous pouvez affecter la table de routage à autant de sous-réseaux du réseau virtuel que vous le souhaitez.

     $vnet = Get-NetworkControllerVirtualNetwork -ConnectionUri $uri -ResourceId "Tenant1_VNet1"
     $vnet.properties.subnets[0].properties.RouteTable = $routetable
     new-networkcontrollervirtualnetwork -connectionuri $uri -properties $vnet.properties -resourceId $vnet.resourceid
    

Dès que vous appliquez la table de routage au réseau virtuel, le trafic est transféré à l’appliance virtuelle. Vous devez configurer la table de routage dans l’appliance virtuelle pour transférer le trafic, d’une manière adaptée à votre environnement.

Exemple : Mise en miroir de ports

Dans cet exemple, vous configurez le trafic pour MyVM_Ethernet1 pour mettre en miroir Appliance_Ethernet1. Nous partons du principe que vous avez déployé deux machines virtuelles, l’une en tant qu’appliance et l’autre en tant que machine virtuelle à surveiller avec la mise en miroir.

L’appliance doit avoir une deuxième interface réseau pour la gestion. Une fois que vous avez activé la mise en miroir en tant que destination sur Appliciance_Ethernet1, elle ne reçoit plus le trafic destiné à l’interface IP qui y est configurée.

Procédure :

  1. Obtenez le réseau virtuel sur lequel se trouvent vos machines virtuelles.

    $vnet = Get-NetworkControllerVirtualNetwork -ConnectionUri $uri -ResourceId "Tenant1_VNet1"
    
  2. Obtenez les interfaces réseau du contrôleur de réseau pour la source et la destination de mise en miroir.

    $dstNic = get-networkcontrollernetworkinterface -ConnectionUri $uri -ResourceId "Appliance_Ethernet1"
    $srcNic = get-networkcontrollernetworkinterface -ConnectionUri $uri -ResourceId "MyVM_Ethernet1"
    
  3. Créez un objet serviceinsertionproperties pour contenir les règles de mise en miroir de ports et l’élément qui représente l’interface de destination.

    $portmirror = [Microsoft.Windows.NetworkController.ServiceInsertionProperties]::new()
    $portMirror.Priority = 1
    
  4. Créez un objet serviceinsertionrules pour contenir les règles qui doivent être mises en correspondance pour que le trafic soit envoyé à l’appliance.

    Les règles définies ci-dessous correspondent à l’ensemble du trafic, à la fois entrant et sortant, qui représente un miroir traditionnel. Vous pouvez ajuster ces règles si vous souhaitez mettre en miroir un port spécifique, ou une source/des destinations spécifiques.

    $portmirror.ServiceInsertionRules = [Microsoft.Windows.NetworkController.ServiceInsertionRule[]]::new(1)
    
    $portmirror.ServiceInsertionRules[0] = [Microsoft.Windows.NetworkController.ServiceInsertionRule]::new()
    $portmirror.ServiceInsertionRules[0].ResourceId = "Rule1"
    $portmirror.ServiceInsertionRules[0].Properties = [Microsoft.Windows.NetworkController.ServiceInsertionRuleProperties]::new()
    
    $portmirror.ServiceInsertionRules[0].Properties.Description = "Port Mirror Rule"
    $portmirror.ServiceInsertionRules[0].Properties.Protocol = "All"
    $portmirror.ServiceInsertionRules[0].Properties.SourcePortRangeStart = "0"
    $portmirror.ServiceInsertionRules[0].Properties.SourcePortRangeEnd = "65535"
    $portmirror.ServiceInsertionRules[0].Properties.DestinationPortRangeStart = "0"
    $portmirror.ServiceInsertionRules[0].Properties.DestinationPortRangeEnd = "65535"
    $portmirror.ServiceInsertionRules[0].Properties.SourceSubnets = "*"
    $portmirror.ServiceInsertionRules[0].Properties.DestinationSubnets = "*"
    
  5. Créez un objet serviceinsertionelements pour contenir l’interface réseau de l’appliance mise en miroir.

    $portmirror.ServiceInsertionElements = [Microsoft.Windows.NetworkController.ServiceInsertionElement[]]::new(1)
    
    $portmirror.ServiceInsertionElements[0] = [Microsoft.Windows.NetworkController.ServiceInsertionElement]::new()
    $portmirror.ServiceInsertionElements[0].ResourceId = "Element1"
    $portmirror.ServiceInsertionElements[0].Properties = [Microsoft.Windows.NetworkController.ServiceInsertionElementProperties]::new()
    
    $portmirror.ServiceInsertionElements[0].Properties.Description = "Port Mirror Element"
    $portmirror.ServiceInsertionElements[0].Properties.NetworkInterface = $dstNic
    $portmirror.ServiceInsertionElements[0].Properties.Order = 1
    
  6. Ajoutez l’objet d’insertion de service au Contrôleur de réseau.

    Lorsque vous émettez cette commande, tout le trafic vers l’interface réseau de l’appliance spécifiée à l’étape précédente s’arrête.

    $portMirror = New-NetworkControllerServiceInsertion -ConnectionUri $uri -Properties $portmirror -ResourceId "MirrorAll"
    
  7. Mettez à jour l’interface réseau de la source à mettre en miroir.

    $srcNic.Properties.IpConfigurations[0].Properties.ServiceInsertion = $portMirror
    $srcNic = New-NetworkControllerNetworkInterface -ConnectionUri $uri  -Properties $srcNic.Properties -ResourceId $srcNic.ResourceId
    

Une fois ces étapes terminées, l’interface Appliance_Ethernet1 reflète le trafic de l’interface MyVM_Ethernet1.