Sur les réseaux de superposition, NSX prend en charge le routage du trafic inter-VLAN sur un domaine L3. Lors du routage, le routeur distribué virtuel (VDR) utilise l'ID VLAN pour acheminer les paquets entre les sous-réseaux VLAN.

Le routage inter-VLAN contourne la limite de 10 vNIC pouvant être utilisées par machine virtuelle. NSX prenant en charge le routage inter-VLAN garantit que de nombreuses sous-interfaces VLAN peuvent être créées sur la vNIC et consommées pour différents services de mise en réseau. Par exemple, une vNIC d'une machine virtuelle peut être divisée en plusieurs sous-interfaces. Chaque sous-interface appartient à un sous-réseau, qui peut héberger un service de mise en réseau tel que SNMP ou DHCP. Avec le routage inter-VLAN, par exemple, une sous-interface sur VLAN-10 peut atteindre une sous-interface sur VLAN-10 ou sur tout autre VLAN.

Chaque vNIC d'une machine virtuelle est connectée au commutateur via le port logique parent, qui gère les paquets non balisés.

Pour créer une sous-interface, sur un commutateur configuré en mode amélioré, créez un port enfant en utilisant l'API avec une VIF associée à l'aide de l'appel d'API décrit dans la procédure. La sous-interface balisée avec un ID VLAN est associée à un nouveau commutateur logique. Par exemple, VLAN10 est attaché au commutateur logique LS-VLAN-10. Toutes les sous-interfaces de VLAN10 doivent être attachées à LS-VLAN-10. Ce mappage 1-1 entre l'ID VLAN de la sous-interface et son commutateur logique associé est une condition préalable importante. Par exemple, l'ajout d'un port enfant avec VLAN20 au commutateur logique LS-VLAN-10 mappé à VLAN-10 rend le routage des paquets entre les VLAN non opérationnel. Une telle erreur de configuration rend le routage inter-VLAN non opérationnel.

À compter de NSX 3.2.2, les API proton du port logique sont remplacées par les API de stratégie de port de segment correspondantes.

Conditions préalables

  • Avant d'associer une sous-interface VLAN à un commutateur logique, assurez-vous que le commutateur logique n'a pas d'autres associations avec une autre sous-interface VLAN. En cas de discordance, le routage inter-VLAN sur les réseaux de superposition peut ne pas fonctionner.

  • Assurez-vous que les hôtes exécutent ESXi v 6.7 U2 ou version ultérieure.

Procédure

  1. Pour créer des sous-interfaces pour une vNIC, assurez-vous que la vNIC est mise à jour vers un port parent. Effectuez l'appel REST API suivant :
    PATCH https://<nsx-mgr-ip>/policy/api/v1/infra/segments/<Segment to which vNIC is connected>/ports/<Seg-Port-vNIC>
    {
       "attachment": {
         "id": "<Attachment UUID of the vNIC>",
         "type": "PARENT"
      },
       "admin_state": "UP",
       "resource_type": "SegmentPort",
       "display_name": "parentport"
    }
    }
    Si le commutateur logique ne dispose pas d'un segment correspondant, vous pouvez effectuer les appels REST API suivants (API proton du port logique) :
    PUT https://<nsx-mgr-ip>/api/v1/logical-ports/<Logical-Port UUID-of-the-vNIC>
    {
      "resource_type" : "LogicalPort",
      "display_name" : "parentport",
      "attachment" : {
        "attachment_type" : "VIF",
        "context" : {
          "resource_type" : "VifAttachmentContext",
          "vif_type": "PARENT"
        },
        "id" : "<Attachment UUID of the vNIC>"   
      },
      "admin_state" : "UP",
      "logical_switch_id" : "UUID of Logical Switch to which the vNIC is connected",  
      "_revision" : 0
    }
  2. Pour créer des ports enfants pour un port vNIC parent sur le N-VDS associé aux sous-interfaces sur une machine virtuelle, effectuez l'appel d'API suivant :
    Note : Avant d'effectuer l'appel d'API, vérifiez qu'un segment existe pour connecter les ports enfants aux sous-interfaces sur la machine virtuelle.
    PUT https://<nsx-mgr-ip>/policy/api/v1/infra/segments/<Segment to which child port is connected>/ports/<Child-port>
    {
       "attachment": {
         "id": "<Attachment UUID of the CHILD port>",
         "type": "CHILD",
         "context_id": "<Attachment UUID of the PARENT port from Step 1>",
         "traffic_tag": <VLAN ID>,
         "app_id": "<ID of the attachment>", ==> display id(can be any string). Must be unique.
      },
       "address_bindings": [
        {
           "ip_address": "<IP address to the corresponding VLAN>",
           "mac_address": "<vNIC MAC Address>",
           "vlan_id": <VLAN ID>
        }
      ],
       "admin_state": "UP",
       "resource_type": "SegmentPort",
       "display_name": "<Name of the Child PORT>"
    }
    
    Si le commutateur logique ne dispose pas d'un segment correspondant, vous pouvez effectuer les appels REST API suivants (API proton du port logique) :
    POST https://<nsx-mgr-ip>/api/v1/logical-ports/
    {
      "resource_type" : "LogicalPort",
      "display_name" : "<Name of the Child PORT>",   
      "attachment" : {
        "attachment_type" : "VIF",
        "context" : {
          "resource_type" : "VifAttachmentContext",
          "parent_vif_id" : "<UUID of the PARENT port from Step 1>",     
          "traffic_tag" : <VLAN ID>,    
          "app_id" : "<ID of the attachment>",  ==> display id(can give any string). Must be unique.
          "vif_type" : "CHILD"
        },
       "id" : "<ID of the CHILD port>"  
      },
      
      "logical_switch_id" : "<UUID of the Logical switch(not the PARENT PORT's logical switch) to which Child port would be connected to>",         
      "address_bindings" : [ { "mac_address" : "<vNIC MAC address>", "ip_address" : "<IP address to the corresponding VLAN>", "vlan" : <VLAN ID> } ],       
      "admin_state" : "UP"
    }

Résultats

NSX crée des sous-interfaces sur les machines virtuelles.