Traitement des incidents liés à la connexion à Hyper-V et à Azure Stack HCI

Identifiez et résolvez les problèmes de connexion entre Microsoft Hyper-V ou Azure Stack HCI et License Metric Tool. Analysez les solutions répertoriées pour résoudre les incidents de connexion.

Glossaire

La connexion entre License Metric Tool et Hyper-V ou Azure Stack HCI est établie via les requêtes Windows Management Instrumentation (WMI). Ces requêtes utilisent PowerShell avec le mécanisme DCE-RPC ou WinRM qui utilise SOAP ou XML sur HTTP. Le client License Metric Tool communique avec l'hôte Hyper-V ou Azure Stack HCI via l'interface VM Manager, VM Manager Tool. La liste suivante décrit les composants de base de l'environnement virtuel :
Serveur
Hôte HCI Hyper-V ou Azure Stack sur lequel se trouve le service WinRM .
Client
Hôte License Metric Tool qui peut être un ordinateur Windows ou UNIX.

L'authentification de client sur les deux systèmes Windows et Unix utilise la même séquence d'authentification : authentification NTLM, NTLMV2, ou de base HTTP. Les membres de domaine Windows sont soumis à l'authentification réseau Kerberos lorsque vous utilisez PowerShell comme interface de communication.

Traitement des incidents liés à plusieurs connexions de gestionnaire de machine

Lorsqu'un grand nombre de connexions de gestionnaire de machine virtuelle Hyper-V ou Azure Stack HCI sont configurées avec l'interface WinRM , VM Manager Tool peut ne pas être en mesure d'établir correctement les connexions simultanément dans plusieurs unités d'exécution. Dans ce cas, vous devez affecter la valeur 1 au paramètre vmm_thread_pool_size pour réduire le nombre d'unités d'exécution de connexion. En outre, envisagez d'ajouter d'autres outils de gestionnaire de machine virtuelle pour répartir la charge entre eux.

Fenêtres Traitement manuel des incidents

Pour identifier et résoudre manuellement les problèmes liés aux connexions Hyper-V ou Azure Tack HCI, procédez comme suit.
  1. Pour vérifier si le service WinRm est en cours d'exécution, exécutez la commande suivante dans l'invite de commande.
    sc query WinRM
    Les résultats de la requête doivent inclure les informations suivantes :
    SERVICE_NAME: WinRM
    STATE       : 4  RUNNING
    
    Remarque: le contrôle de compte utilisateur Windows peut affecter l'accès utilisateur au service WinRM . Si vous utilisez le schéma d'authentification Negotiate, seul le compte Administrateur peut accéder au service. Pour permettre à tous les comptes d'accéder au service, définissez la valeur de registre suivante :
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\
    LocalAccountTokenFilterPolicy to '1'
  2. Vérifiez les propriétés de configuration WinRM à l'aide de l'invite de commande :
    1. Exécutez les commandes suivantes sur le serveur HCI Hyper-V ou Azure Stack:
      • winrm get winrm/config/service
      • winrm enumerate winrm/config/listener
    2. Exécutez les commandes suivantes sur le client :
      • winrm get winrm/config/client
      Remarque: Si Hyper-V ou Azure Stack HCI et License Metric Tool sont installés sur le même hôte, vous pouvez utiliser une seule commande pour extraire les informations requises: winrm get winrm/config.
  3. Configurez un scénario de test simple en modifiant l'un des paramètres WinRM.
    1. Sur le serveur License Metric Tool , ajoutez un astérisque à la liste Trustedhosts .
      winrm set winrm/config/client @{TrustedHosts="*"}
      TrustedHosts="*" contraint le client à abandonner l'authentification de l'extrémité distante. Toutefois, l'extrémité distante requiert toujours l'authentification de client. En règle générale, TrustedHost est défini sur le client avec le nom de serveur HCI Hyper-V ou Azure Stack.
    2. Autoriser l'authentification de base et le trafic non chiffré sur un serveur HCI Hyper-V ou Azure Stack.
      winrm set winrm/config/service/auth @{Basic="true"}
      winrm set winrm/config/service @{AllowUnencrypted="true"}
      Basic="true" active l'authentification de base HTTP à l'aide d'un ID utilisateur et d'un mot de passe en texte clair. AllowUnencrypted= true permet de transférer les données déchiffrées via HTTP entre le serveur et le client.
    3. Vérifiez la configuration WinRM..
      'winrm get winrm/config/client':
      Client:
              NetworkDelayms = 5000
              URLPrefix = wsman
              AllowUnencrypted = true
              Auth
                  Basic = true
                  Digest = true
                  Kerberos = true
                  Negotiate = true
                  Certificate = true
                  CredSSP = false
              DefaultPorts
                  HTTP = 5985
                  HTTPS = 5986
              TrustedHosts = *
       
      'winrm get winrm/config/service' on the Hyper-V server:
      Service:
          RootSDDL = O:NSG:BAD:P(A;;GA;;;BA)(A;;GA;;;S-1-5-21-3273298017-2363932476
          -3643925056-1633)S:P(AU;FA;GA;;;WD)(AU;SA;GWGX;;;WD)
          MaxConcurrentOperations = 4294967295
          MaxConcurrentOperationsPerUser = 15
          EnumerationTimeoutms = 600000
          MaxConnections = 15
          MaxPacketRetrievalTimeSeconds = 120
          AllowUnencrypted = true
          Auth
              Basic = true
              Kerberos = true
              Negotiate = true
              Certificate = true
              CredSSP = false
              CbtHardeningLevel = Relaxed
          DefaultPorts
              HTTP = 5985
              HTTPS = 5986
          IPv4Filter = *
          IPv6Filter = *
          EnableCompatibilityHttpListener = true
          EnableCompatibilityHttpsListener = true
          CertificateThumbprint
      
      Si la modification précédente Basic = true a résolu le problème d'authentification, le client et le serveur ne peuvent pas négocier le protocole d'authentification. Il est déconseillé d'utiliser le schéma d'authentification de base sauf si WinRM est configuré avec HTTPS. Cette procédure pourrait représenter un risque lié à la sécurité en envoyant un nom d'utilisateur, un mot de passe et le corps du message sous la forme d'un texte en clair. Microsoft utilise trois protocoles lors de la procédure du schéma Negotiate : Kerberos, NTLMV2, et NTLM. Le client et le serveur choisissent généralement les mécanismes d'authentification qui leur conviennent le mieux. License Metric Tool n'autorise pas le protocole Kerberos . Pour vérifier si le client et le serveur autorisent le protocole NTLMV2 ou NTLM, utilisez la requête de registre suivante.
      reg query HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\LSA\MSV1_0
      Les paramètres suivants situés sous cette clé de registre contrôlent le comportement du schéma d'authentification :
      • NtlmMinClientSec
      • NtlmMinServerSec
      Les paramètres peuvent être modifiés via la stratégie de groupe appropriée: Configuration de l'ordinateur > Paramètres Windows > Stratégies locales > Options de sécurité: niveau d'authentification du gestionnaire de réseau local.
  4. Pour identifier manuellement le mécanisme d'authentification approprié pour le service WinRM sur l'hôte distant, utilisez les commandes suivantes :
    • Exécutez la commande à partir de Windows PowerShell.
      Test-WSMan -ComputerName http://<server_name>:<port> 
      -Auth <authentification_scheme> -Cred <user_id>
      Où :
      <SERVER_NAME>
      Nom d'hôte du serveur HCI Hyper-V ou Azure Stack. Si vous utilisez HTTPS, le nom d'hôte doit correspondre au nom commun (CN) du certificat.
      <port>
      Est le numéro du port sur lequel le client Windows Remote Management pour le protocole HTTP ou HTTPS est en mode écoute.
      < schéma_authentification>
      Correspond au schéma d'authentification : Basic ou Negotiate
      <id_utilisateur>
      Correspond à l'ID utilisateur de Windows PowerShell.
    • Exécutez la commande à partir de l'invite de commande.
      winrm identify -r:http://<server_name>:<port> 
      -auth <authentification_scheme> -u:<user_id> -p:<password>
      Où :
    • <SERVER_NAME>
      Nom d'hôte du serveur HCI Hyper-V ou Azure Stack. Si vous utilisez HTTPS, le nom d'hôte doit correspondre au nom commun (CN) du certificat.
      <port>
      Est le numéro du port sur lequel le client Windows Remote Management pour le protocole HTTP ou HTTPS est en mode écoute.
      < schéma_authentification>
      Correspond au schéma d'authentification, à savoir Basic ou Negotiate
      <id_utilisateur>
      Correspond à l'ID utilisateur de WinRM PowerShell.
      <motdepasse>
      Correspond au mot de passe de WinRM.

Fonction de suivi d'événements

Si License Metric Tool ne parvient pas à se connecter à l'hôte HCI Hyper-V ou Azure Stack, utilisez le traçage d'événements Windows personnalisé. Lorsque les paramètres du client et du serveur sont en conflit, le journal des événements de sécurité génère le message d'erreur suivant: Unknown user name or bad password. Vous ne pouvez pas déterminer que le problème réel est lié à des protocoles d'authentification non pris en charge. Le suivi d'événements Windows obtient les données de diagnostic des requêtes WMI et WinRM.
  1. Pour démarrer le traçage d'événements sur le serveur HCI Hyper-V ou Azure Stack, utilisez les commandes suivantes:
    • logman.exe start winrmtrace -p Microsoft-Windows-Winrm -o winrmtrace.etl -ets
    • logman.exe start wmitrace -p Microsoft-Windows-WMI-Activity -o wmitrace.etl -ets
  2. Exécutez le test de connexion du gestionnaire de machine virtuelle. Si aucune connexion de gestionnaire de machine virtuelle n'est définie, la sortie de la commande est vide.
    • Fenêtres vmman.bat -testconnection
    • Linux vmman.sh -testconnection
  3. A l'issue du test de connexion, arrêtez de collecter les traces de données :
    • logman.exe stop winrmtrace -ets
    • logman.exe stop wmitrace -ets
  4. Pour modifier le formatage des fichiers journaux de suivi d'événements, utilisez les commandes suivantes :
    • Tracerpt winrmtrace.etl
    • Tracerpt wmitrace.etl
Le fichier journal de suivi d'événements formaté WinRM, winrmtrace.etl, contient des informations sur les problèmes d'authentification utilisateur.
<Task>User authentication </Task>
<Message>Sending HTTP 401 response to the client and disconnect the connection after
 sending the response</Message>
Le fichier contient également les requêtes SOAP ou XML qui sont envoyées par le client et qui fournissent des données vitales, particulièrement utiles pour identifier et résoudre les problèmes liés à Hyper-V.

Traitement des incidents liés au statut de connexion avec Wireshark

Exécutez le test de connexion du gestionnaire de machine virtuelle. Si aucune connexion de gestionnaire de machine virtuelle n'est définie, la sortie de la commande est vide.

  • Fenêtres vmman.bat -testconnection
  • Linux vmman.sh -testconnection
Remarque: UNIX Pour analyser le flux de trafic réseau sous UNIX sans environnement d'interface graphique, utilisez tcpdump. Pour vider tout le trafic vers le fichier externe, utilisez tcpdump -vvv -XX -w tcpdump.out. Le fichier tcpdump.out peut être visualisé avec Wireshark.
Test de connexion réussi entre License Metric Tool et Hyper-V ou Azure Stack HCI avec l'interface PowerShell .
Paramètres :
vmm_communication_interface=POWERSHELL
PowerShell utilise le protocole d'authentification NTLM.
L'écran affiche la console Wireshark avec les détails de connexion Hyper-V.
Il ne se connecte pas aux ports WinRM 5985 et 80, mais il utilise un mécanisme DCE-RPC pour se connecter au service Endpoint Mapper via le port 135.
  1. Sélectionnez l'entrée RemoteCreateInstance response.
  2. Pour vérifier si l'authentification a abouti, développez les paramètres et vérifiez la valeur du paramètre HResult. Si l'authentification a réussi, HResult est accompagné de la mention S_OK.
    L'écran affiche la valeur du paramètre hresults.
Par défaut, PowerShell v2 utilise NTLMv1 pour la négociation. Pour mettre à jour NTLM, utilisez le paramètre de registre suivant :
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA\LMCompatibilityLevel
Pour plus d'informations, voir How to enable NTLM 2 authentication.
Echec du test de connexion entre License Metric Tool et Hyper-V ou Azure Stack HCI avec l'interface NTLM.
Paramètres :
  • vmm_communication_interface=NTLM
  • vmm_url=http://.../wsman
  • Port par défaut : 80
Le test de connexion a échoué et trace.log_vmmconf_<VM_manager_ID>.log contient les messages d'erreur suivants.
(...)com.ibm.license.mgmt.vmmanager.hyperv.net.HttpConnector::send::
An error occured while trying to send request to http://.../wsman
(...)com.ibm.license.mgmt.vmmanager.hyperv.net.HttpConnector::send:java.net.
ConnectException: Connection refused: connect
Bien que les erreurs du fichier trace.log_vmmconf_<VM_manager_ID>.log ne fournissent pas suffisamment de détails, la capture Wireshark prouve que le problème est lié à TCP. Utilisez la commande suivante pour rechercher le programme d'écoute sur le port 80.
winrm enumerate winrm/config/listener
Si aucun programme d'écoute n'est détecté, exécutez la commande suivante pour configurer des programmes d'écoute.
winrm set winrm/config/service @{EnableCompatibilityHttpListener="true"}
Remarque: La configuration des programmes d'écoute sur le port 80 peut entrer en conflit avec les autres services HHTP sur cet ordinateur. Pour éviter ces problèmes, indiquez un port WinRM dédié, comme 5985 or 5986, sur la chaîne de connexion vmm_url.
Echec du test de connexion entre License Metric Tool et Hyper-V ou Azure Stack HCI avec l'interface NTLM. HTTP Error 401:
  1. Le test de connexion a échoué et trace.log_vmmconf_<VM_manager_ID>.log contient les messages d'erreur suivants.
    (...)com.ibm.license.mgmt.vmmanager.hyperv.net.HttpConnector::retrieve::
    Response Code is: 401
    (...)com.ibm.license.mgmt.vmmanager.hyperv.net.HttpConnector::retrieve::
    The following response code was returned while connecting to VM Manager 
    http://.../wsman: responseCode = 401
    La capture Wireshark suivante répertorie la négociation NTLM.
    Les quatre premières lignes indiquent une négociation NTLM réussie. La quatrième ligne arrête l'établissement de liaison NTML à quatre voies. La dernière ligne détecte HTTP Error 401: Unauthorizedet se développe dans la réponse HTTP suivante.
    La réponse WWW-Authenticate: Negotiate indique que le serveur est prêt à utiliser le schéma d'authentification NTLM, NTLMV2 ou HTTP Basic. Toutefois, le serveur a déjà correctement répondu à la séquence de négociation. Vérifiez que WinRM AllowUnencrypted = true.
    Remarque: les gestionnaires de machine virtuelle ne fournissent pas le chiffrement du corps HTTP . WinRM accepte uniquement le corps HTTP chiffré avec le paramètre Negotiate ou le protocole Kerberos.
  2. La capture Wireshark montre l'échec de la négociation NTLM.
    L'écran montre la capture Wireshark .
    L'établissement de liaison NTLM quadruple se termine par une erreur 401. Cette erreur est généralement due à des droits d'accès insuffisants. Pour vérifier si les comptes affectés au groupe Administrateurs sont autorisés à accéder à WinRM, configurez l'entrée de registre Windows suivante :
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\
    System\LocalAccountTokenFilterPolicy
Echec du test de connexion entre License Metric Tool et Hyper-V ou Azure Stack HCI causé par le bogue lié à l'interprétation du préfixe de domaine vmm_login .
Lorsque vous ajoutez un gestionnaire de machine virtuelle à License Metric Tool, veillez à fournir le nom d'utilisateur administrateur dans l'un des formats suivants:
  • nom_utilisateur@domaine, par exemple test@cluster.com
  • nom_utilisateur\domaine, par exemple test\cluster.com
9.2.16 A partir de la mise à jour de l'application 9.2.16, vous pouvez également fournir le nom d'utilisateur administrateur dans l'un des formats suivants:
  • domaine@nom_utilisateur, par exemple cluster.com@test
  • domaine\nom_utilisateur, par exemple cluster.com\test
Remarque: veillez à mettre à niveau VM Manager Tool vers la version 9.2.16, et pas seulement le serveur License Metric Tool .
Si vous ne suivez pas ce modèle et que vous fournissez le nom d'utilisateur dans un format incorrect, une erreur est générée lors de l'authentification du gestionnaire de machine virtuelle.
L'écran affiche la capture Wireshark qui contient l'erreur d'authentification de domaine.
Lorsque l'erreur se produit, le nom d'utilisateur est affecté à la zone incorrecte.