En redes superpuestas, NSX admite el enrutamiento del tráfico entre VLAN de un dominio de Capa 3. Durante el enrutamiento, el enrutador distribuido virtual (Virtual Distributed Router, VDR) utiliza el identificador de VLAN para enrutar paquetes entre las subredes VLAN.

En el enrutamiento entre VLAN, se pueden utilizar más de 10 vNIC por máquina virtual. Gracias a que NSX admite el enrutamiento entre VLAN, podrá crear en la vNIC y consumir muchas subinterfaces de VLAN para servicios de red diferentes. Por ejemplo, una vNIC de una máquina virtual puede dividirse en varias subinterfaces. Cada subinterfaz pertenece una subred, que puede alojar un servicio de red, como SNMP o DHCP. Con el enrutamiento entre VLAN, por ejemplo, una subinterfaz en VLAN-10 puede alcanzar una subinterfaz en VLAN-10 o en cualquier otra VLAN.

Cada vNIC de una máquina virtual se conecta a un conmutador a través del puerto lógico principal, que administra paquetes sin etiquetar.

Para crear una subinterfaz, en un conmutador configurado en modo Mejorado, cree un puerto secundario mediante la API con una VIF asociada mediante la llamada API descrita en el procedimiento. La subinterfaz marcada con un identificador de VLAN está asociada a un nuevo conmutador lógico (por ejemplo, VLAN10 está conectado al conmutador lógico LS-VLAN-10). Todas las subinterfaces de VLAN10 tiene que estar asociadas a LS-VLAN-10. Esta asignación 1-1 entre el identificador de VLAN de la subinterfaz y su conmutador lógico asociado constituye un requisito previo importante. Por ejemplo, si se agrega un puerto secundario con VLAN20 al conmutador lógico LS-VLAN-10 asignado a VLAN-10, el enrutamiento de paquetes entre VLAN no funcionará. Estos errores de configuración hacen que el enrutamiento entre VLAN no sea funcional.

A partir de NSX 3.2.2, las API Proton del puerto lógico se reemplazan por las API de directiva de puertos de segmentos correspondientes.

Requisitos previos

  • Antes de asociar una subinterfaz de VLAN a un conmutador lógico, asegúrese de que este no esté asociado a otra subinterfaz de VLAN. Si se produce un error de coincidencia, es posible que el enrutamiento entre VLAN en redes superpuestas no funcione.

  • Asegúrese de que los hosts ejecuten ESXi 6.7 U2 o versiones posteriores.

Procedimiento

  1. Si desea crear subinterfaces para una vNIC, asegúrese de que dicha vNIC se haya actualizado a un puerto principal. Realice la siguiente llamada REST API:
    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 el conmutador lógico no tiene un segmento correspondiente, puede realizar las siguientes llamadas REST API (API Proton del puerto lógico):
    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. Si desea crear puertos secundarios para un puerto vNIC principal en el N-VDS asociado a las subinterfaces en una máquina virtual, realice la siguiente llamada API:
    Nota: Antes de realizar la llamada API, compruebe que existe un segmento para conectar los puertos secundarios con las subinterfaces de la máquina virtual.
    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 el conmutador lógico no tiene un segmento correspondiente, puede realizar las siguientes llamadas REST API (API Proton del puerto lógico):
    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"
    }

Resultados

NSX crea subinterfaces en máquinas virtuales.