En NSX Data Center for vSphere, el plano de control (netcpa) actúa como demonio de agente local, que se comunica con NSX Manager y el clúster de controladores. La función Estado del canal de comunicación comprueba el estado y genera informes periódicos sobre el estado del plano de control central, local y de NSX Manager. Muestra los resultados en la interfaz de usuario de NSX Manager. Estos informes también funcionan como latidos para que el canal del netcpa del host ESXi detecte el estado de funcionamiento de NSX Manager. Proporcionan información detallada durante los errores de comunicación, generan un evento cuando el canal tiene un estado incorrecto y envían mensajes de latidos desde NSX Manager a los hosts.

Problema

Problemas de conectividad entre el agente de plano de control y la controladora.

Causa

Si falta alguna conexión, es posible que el agente de plano de control no funcione correctamente.

Solución

  1. Cuando el canal tenga un estado incorrecto, valide el estado de la conexión mediante el siguiente solicitud de API:
    GET https://<NSX_Manager_IP>/api/2.0/vdn/inventory/host/{hostId}/connection/status

    Para obtener más información sobre cómo usar esta API, consulte la Guía de la API de NSX.

    Para encontrar "hostId", puede usar la CLI de NSX Manager o el MOB (navegador de objetos administrados) de vCenter.
    • Para usar el MOB de vCenter, abra un navegador web e introduzca la URL del MOV de vCenter en http://dirección-IP-vCenter/mob. Consulte las instrucciones sobre cómo encontrar el MOID de clústeres o hosts en la Guía del API de NSX.
    • Para usar la CLI de NSX Manager, inicie sesión como administrador y ejecute el comando show cluster all o show cluster clusterID. Para obtener más información sobre estos comandos, consulte la guía Referencia rápida de línea de comandos de NSX.

    A continuación se muestra un ejemplo de la respuesta de la API:

    <?xml version="1.0" encoding="UTF-8"?>
    <hostConnStatus>
      <hostName>10.161.246.20</hostName>
      <hostId>host-21</hostId>
      <nsxMgrToFirewallAgentConn>UP</nsxMgrToFirewallAgentConn>
      <nsxMgrToControlPlaneAgentConn>UP</nsxMgrToControlPlaneAgentConn>
      <hostToControllerConn>DOWN</hostToControllerConn>
      <fullSyncCount>-1</fullSyncCount>
      <hostToControllerConnectionErrors>
        <hostToControllerConnectionError>
          <controllerIp>10.160.203.236</controllerIp>
          <errorCode>1255604</errorCode>
          <errorMessage>Connection Refused</errorMessage>
        </hostToControllerConnectionError>
        <hostToControllerConnectionError>
          <controllerIp>10.160.203.237</controllerIp>
          <errorCode>1255603</errorCode>
          <errorMessage>SSL Handshake Failure</errorMessage>
        </hostToControllerConnectionError>
      </hostToControllerConnectionErrors>
    </hostConnStatus>

    Son compatibles los siguientes códigos de error:

    1255602: Certificado del controlador incompleto (Incomplete Controller Certificate) 1255603: Error del protocolo de enlace SSL (SSL Handshake Failure) 1255604: Conexión rechazada (Connection Refused) 1255605: Tiempo de espera activo (Keep-alive Timeout) 1255606: Excepción de SSL (SSL Exception) 1255607: Mensaje incorrecto (Bad Message) 1255620: Error desconocido (Unknown Error)
  2. Determine el motivo por el que el agente de plano de control está inactivo como se indica a continuación:
    1. Compruebe el estado del agente de plano de control en los hosts. Para ello, ejecute el comando /etc/init.d/netcpad status en los hosts ESXi.
      [root@esx-01a:~] /etc/init.d/netcpad status
      netCP agent service is running
      
    2. Compruebe las configuraciones del agente de plano de control con el comando more /etc/vmware/netcpa/config-by-vsm.xml. Las direcciones IP de las instancias de NSX Controller deben aparecer en la lista.
      [root@esx-01a:~] more /etc/vmware/netcpa/config-by-vsm.xml
      <config>
        <connectionList>
          <connection id="0000">
            <port>1234</port>
            <server>192.168.110.31</server>
            <sslEnabled>true</sslEnabled>
            <thumbprint>A5:C6:A2:B2:57:97:36:F0:7C:13:DB:64:9B:86:E6:EF:1A:7E:5C:36</thumbprint>
          </connection>
          <connection id="0001">
            <port>1234</port>
            <server>192.168.110.32</server>
            <sslEnabled>true</sslEnabled>
            <thumbprint>12:E0:25:B2:E0:35:D7:84:90:71:CF:C7:53:97:FD:96:EE:ED:7C:DD</thumbprint>
          </connection>
          <connection id="0002">
            <port>1234</port>
            <server>192.168.110.33</server>
            <sslEnabled>true</sslEnabled>
            <thumbprint>BD:DB:BA:B0:DC:61:AD:94:C6:0F:7E:F5:80:19:44:51:BA:90:2C:8D</thumbprint>
          </connection>
        </connectionList>
       ...
      
  3. Valide las conexiones a los controladores desde el agente de panel de control con el siguiente comando. El resultado es una conexión para cada controlador.
    >[root@esx-01a:~] esxcli network ip connection list | grep 1234
    tcp     0   0  192.168.110.51:16594     192.168.110.31:1234   ESTABLISHED     36754  newreno  netcpa-worker
    tcp     0   0  192.168.110.51:46917     192.168.110.33:1234   ESTABLISHED     36754  newreno  netcpa-worker
    tcp     0   0  192.168.110.51:47891     192.168.110.32:1234   ESTABLISHED     36752  newreno  netcpa-worker
    
  4. Valide las conexiones a los controladores desde el agente de panel de control para mostrar los estados CLOSED o CLOSE_WAIT. Para ello, utilice el siguiente comando:
    esxcli network ip
    		connection list |grep "1234.*netcpa*" | egrep "CLOSED|CLOSE_WAIT"
  5. Si el agente de plano de control lleva inactivo mucho tiempo, es posible que las conexiones no aparezcan. Para validar el estado de conexión, ejecute el siguiente comando. El resultado es una conexión para cada controlador.
    esxcli network ip
    		connection list |grep "1234.*netcpa*" |grep ESTABLISHED
  6. Mecanismo de recuperación automática del agente de plano de control (netcpa): el proceso de supervisión automático del agente de plano de control detecta que el estado es incorrecto. Cuando el estado del agente de plano de control es incorrecto, este deja de responder e intenta recuperarse automáticamente.
    1. Si el agente de plano de control deja de responder, se genera un archivo de núcleo activo. Puede encontrar el archivo de núcleo de la siguiente forma:
      ls /var/core       
       netcpa-worker-zdump.000
    2. Se notifica un error de syslog en el archivo vmkwarning.log.
      cat /var/run/log/vmkwarning.log | grep NETCPA
      2017-08-11T06:32:17.994Z cpu1:1000044539)ALERT: Critical - NETCPA is hanged
      Taking live-dump & restarting netcpa process!
      
    Nota:

    Si el mecanismo de supervisión del agente de panel de control experimenta un error temporal debido a un retraso en la respuesta a la comprobación de estado, es posible que se muestre un mensaje de advertencia parecido al siguiente en los registros de VMkernel.

    Advertencia: Error de NETCPA al obtener el estado de netcpa.

    Puede ignorar esta advertencia.

  7. Si el problema no se soluciona automáticamente, reinicie el agente de panel de control de la siguiente forma:
    1. Inicie sesión como usuario raíz en el host ESXi a través de SSH o de la consola.
    2. Ejecute el comando /etc/init.d/netcpad restart para reiniciar el agente de panel de control en el host ESXi.