Nelle reti di overlay NSX supporta il routing del traffico tra VLAN in un dominio L3. Durante il routing, il router distribuito virtuale (VDR) utilizza l'ID VLAN per instradare i pacchetti tra le subnet della VLAN.

Il routing tra VLAN supera la limitazione di 10 vNIC che possono essere utilizzate per ogni macchina virtuale. NSX che supporta il routing tra VLAN consente di creare molte interfacce secondarie VLAN nella vNIC e di utilizzarle per servizi di rete diversi. Ad esempio, la vNIC di una macchina virtuale può essere divisa in varie interfacce secondarie. Ogni interfaccia secondaria appartiene a una subnet, che può ospitare un servizio di rete come SNMP o DHCP. Con il routing tra VLAN ad esempio, un'interfaccia secondaria nella VLAN-10 può raggiungere un'interfaccia secondaria nella VLAN-10 o in qualsiasi altra VLAN.

Ogni vNIC in una macchina virtuale è connessa a un commutatore tramite la porta logica principale, che gestisce i pacchetti senza tag.

Per creare un'interfaccia secondaria, in un commutatore avanzato creare una porta secondaria tramite l'API e associarla a un VIF utilizzando la chiamata API descritta nella procedura. L'interfaccia secondaria contrassegnata con l'ID VLAN è associata a un nuovo commutatore logico. Ad esempio, VLAN10 è collegata allo switch logico LS-VLAN-10. Tutte le interfacce secondarie di VLAN10 devono essere collegate a LS-VLAN-10. Questa mappatura 1-1 tra l'ID VLAN dell'interfaccia secondaria e il commutatore logico associato è un prerequisito importante. Ad esempio, se si aggiunge una porta secondaria con VLAN20 al commutatore logico LS-VLAN-10 mappato a VLAN-10, il routing dei pacchetti tra VLAN non funziona. Tali errori di configurazione impediscono il funzionamento del routing tra VLAN.

A partire da NSX 3.2.2, le API proton della porta logica vengono sostituite dalle API dei criteri della porta del segmento corrispondente.

Prerequisiti

  • Prima di associare un'interfaccia secondaria VLAN a un commutatore logico, assicurarsi che il commutatore logico non sia associato a un'altra interfaccia secondaria VLAN. Se si verifica una mancata corrispondenza, il routing tra VLAN nelle reti di overlay potrebbe non funzionare.

  • Assicurarsi che gli host eseguano ESXi v 6.7 U2 o versioni successive.

Procedura

  1. Per creare interfacce secondarie per una vNIC, assicurarsi che la vNIC sia aggiornata a una porta principale. Effettuare la chiamata REST API seguente:
    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"
    }
    }
    Se nel commutatore logico non è presente un segmento corrispondente, è possibile effettuare le seguenti chiamate REST API (API proton della porta logica):
    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. Per creare porte secondarie per una porta della vNIC principale nel N-VDS associato alle interfacce secondarie in una macchina virtuale, effettuare la chiamata API seguente:
    Nota: Prima di effettuare la chiamata API, verificare che sia presente un segmento per connettere le porte secondarie alle interfacce secondarie nella macchina virtuale.
    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>"
    }
    
    Se nel commutatore logico non è presente un segmento corrispondente, è possibile effettuare le seguenti chiamate REST API (API proton della porta logica):
    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"
    }

risultati

NSX crea interfacce secondarie nelle macchine virtuali.